清华大学:c++8多态性
- 格式:ppt
- 大小:120.00 KB
- 文档页数:38
《软件工程》课程教学大纲一、课程代码与名称(小四号宋体加粗)课程代码: CS132201中文名称: 软件工程英文名称: Software Engineering二、课程概述及与相关课程关系软件工程是计算机科学与技术专业的专业必修课, 是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习, 学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
软件工程与前后课程间关联关系、课程群对应的局部鱼骨图分别如下所示:图例:应用方向软件工程课程群及对应课程群项目、学年项目(局部)图图例:三、课程教学对象与教学目的适用专业: 计算机科学与技术教学目的:通过理论教学和实践相结合, 使学生初步具备运用软件工程的概念、原理、技术和方法开发与维护软件的能力, 并提高学生编写相关技术文档的能力, 及分析问题和解决问题的能力和团队工作交流能力。
*注: 该表所列指标可对照培养方案中所列指标来解释。
A: 认知, 指从教、学活动中、从生活经验和社会经验等多种信息渠道获得知识, 侧重知识的获取, 没有实训要求。
B: 训练, 指教、学活动中由教师引导开展的基础测试或练习, 匹配有课程讨论、课后研讨等环节。
C: 实践, 指以学生为主导, 通过实练而形成的对完成某种任务所必须的活动方式, 匹配有课程的三级项目或其它实践环节。
D: 探索, 指学生独立探寻问题、摸索、解答的活动, 不设置专门的考核。
(留空表示无该项要求)四、课程内容、学时分配及主要的教学方法本课程对主要软件开发方法采用项目驱动教学模式, 结合实验和项目开发实践, 使课程的实践与理论教学内容紧密配合, 同步进行, 达到理论指导实践, 实践促进理论学习目的。
通过理论教学、实践(实验)、团队项目开发实践3环节将理论与实践紧密联系。
教学中采用问题引导方式推进学生基于问题的学习(problem based learning), 以为学生为中心鼓励学生参与课程讨论, 促进学生采用主动学习方法(active learning)。
计算机科学与技术专业主要课程简介1H10306计算机导论学分:2.5 Introduction to Computer Science预修课程:无内容简介:本课程是计算机科学与技术、信息与计算科学专业的重要入门课程,系统而全面地向学生介绍信息技术的基础知识,引导学生进入计算机科学技术的大门,让学生了解和掌握本专业要学习基本内容和特征。
主要内容包括:信息化社会特点、计算机的基本知识、计算机系统及其组成、软件基础;计算机网络及其应用技术基础;计算机法规与知识产权保护、计算机病毒防治等基础知识;计算机的基本操作、中英文输入法、Office等办公软件的操作使用方法。
推荐教材:《计算机科学技术导论》(专业版·第二版),陶树平主编,高等教育出版社,2004年主要参考书:《计算机系统导论》,许洪杰主编,南开大学出版社,2003年《Computer Concepts》(4thEdition), June Jamrich Parsons,机械工业出版社,2002年《计算机科学技术导论实践教程》,丁岳伟主编,高等教育出版社,2004年1H12046程序设计基础(C)学分:3.5C Programming预修课程:计算机导论内容简介:本课程是计算机及相关专业的一门重要的基础课,通过C语言的学习,以及程序设计基础能力的培养,使学生掌握初步的计算机编程能力。
主要内容包括C语言程序设计方法概述、数据类型、运算符与表达式、输入输出语句、控制语句、数组、函数、指针、结构体等。
推荐教材:《C语言程序设计》,刘玉英等主编,中国水利水电出版社,2002年主要参考书:《C语言学习指南与题解》,刘玉英等主编,中国水利水电出版社,2002年《C程序设计语言》(影印版·第二版),Brian W. Kernighan 、Dennis M. Ritche,清华大学出版社,1997年1H11756程序设计基础(C++)学分:3.5 C++Programming预修课程:计算机导论、程序设计基础(C)内容简介:本课程是计算机及相关专业的一门十分重要的基础课,通过从C到C++语言程序设计的学习,让学生进一步掌握程序设计基础,掌握基于对象的程序设计,了解面向对象的设计方法,重点培养学生的计算机编程能力。
第一章概述1-1简述计算机程序设计语言的发展历程。
解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
C++语言是目前应用最广的面向对象的编程语言。
1-3什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
1-4什么是对象?什么是面向对象方法?这种方法有哪些特点?解:从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。
最新C++语言程序答案第四版清华大学汇总C++语言程序答案第四版清华大学第一章概述1-1 简述计算机程序设计语言的发展历程。
解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2 面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。
面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。
因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。
C++语言是目前应用最广的面向对象的编程语言。
1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
三、名词解释1. 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术方法结合起来,这就是软件工程。
2.软件危机在计算机硬件技术得以发展后,软件开发技术的进步未能满足发展的需要,在软件开发中遇到的问题找不到解决的办法,使问题越积越多,形成了尖锐的矛盾,因而导致了软件危机。
软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
3. 软件生存周期模型描述软件开发过程中各种活动如何执行的模型是软件工程思想的具体化,是实施于过程模型中的软件开发方法和工具,是软件开发实践中总结出来的软件开发方法和步骤。
总的来说,它是跨越整个软件生命周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。
P134. 信息隐蔽是在设计和确定模块时,使一个模块内包海宁的信息(过程和数据)对于不需要这些信息的构件来所是不能访问的。
它通过定义一组独立的模块来实现有效的模块化。
P715. 抽象是人类在认识复杂现象的过程中使用的强有力的思维工具。
在现实世界中一定事物、状态或过程之间总是存在某些共性,把这些共性集中和概括起来,暂时忽略它们之间的差异,这就是抽象。
抽象就是抽出事物的本质特性而暂时不考虑它们的物理细节。
6、数据流图P55解:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具.是一种功能模型7. 数据字典数据字典是关于数据信息的集合,对数据流图中的各个元素作完整的定义与说明,是数据流图的补充工具。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
8、模块 P69在软件系统设计中,模块指这样一组程序语句集合,包括输入输出和逻辑处理功能、内部信息及其运行计划。
第4章习题解答一、选择题1.在C语言中,函数返回值的类型最终取决于A)函数定义时的函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型解析:函数返回值类型最终取决于定义函数时所定义的函数类型.答案:A2.设函数Fun()的定义形式为:void Fun(char ch,float x){}则以下对函数Fun()的调用语句中,正确的是.A)Fun(”abc”, 3。
0);B)t = Fun(’D’,16.5);C)Fun('65’,2.8); D)Fun(32,32);解析:选项A中"abc”是字符串,与形参不匹配:由于Fun函数的返回值类型为void,所以选项B中进行了赋值操作是不正确的;在选项C中,’65’是不合法的字符形式,单引号中应该是单个字符。
只有选项D才是合法的函数调用形式。
答案:D3.有以下程序:/*文件路径名:ex4_1_3\main。
c */#include <stdio。
h> /* 标准输入/输出头文件*/int f1(int x,int y){return x 〉y ? x : y;}int f2(int x,int y){return x 〉y ? y : x;}int main(void)/*主函数main()*/{int a = 4,b = 3, c = 5,d = 2,e,f, g;/* 定义变量*/e = f2(f1(a,b),f1(c,d));f = f1(f2(a,b),f2(c, d));/*调用函数*/g = a + b + c + d —e —f;/* 算术运算*/printf(”%d,%d,%d\n", e, f,g);/*输出e,f,g */return 0; /*返回值0,返回操作系统*/}程序运行后的输出结果是。
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7解析:函数f1用于求两个数中的最大数,而函数f2用于求两个数中的最小数.因此有:e=f2(f1(a,b),f1(c,d))=f2(f1(4,3),f1(5,2))= f2(4,5)=4;f=f1(f2(a,b),f2(c,d)) =f1(f2(4,3),f2(5,2)) =f1(3,2)=3;g=a+b+c+d—e—f=4+3+5+2—4—3=7.答案:A4.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是.A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不会占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元解析:在C语言中,函数的形参和实参是分别占用不同的存储单元的,因此,选项D是正确的。
cck8原理CCK8原理。
CCK8(Cell Counting Kit-8)是一种用于细胞增殖和细胞毒性检测的试剂盒,它通过将WST-8还原为橙色的水溶性甲醛盐(formazan),来间接地反映细胞数量。
CCK8原理的核心是将细胞代谢产生的还原型细胞色素C(cyt c)还原为水溶性的formazan,从而实现对细胞数量和活力的检测。
CCK8试剂盒包含的主要成分是WST-8和辅酶N-乙基-N-(2-甲氧基-4-硝基苯基)-3-硝基-5-(2-甲氧基-5-甲基苯基)-2-苯基-2H-四唑-3-甲胺(CCK-8)。
WST-8是一种新型的水溶性偶氮盐,它在还原时会产生一种橙黄色的产物,而CCK-8则是一种促进WST-8还原的辅酶。
在使用CCK8进行细胞增殖和细胞毒性检测时,首先需要将CCK8溶液加入到含有细胞的培养基中,然后培养一定的时间,让WST-8与细胞代谢产生的还原型细胞色素C发生反应,最终形成formazan。
接着,通过测定formazan的光密度,就可以间接地反映出细胞数量和细胞活力的情况。
CCK8原理的优势在于其灵敏度高、操作简便、结果稳定可靠。
相比于传统的显微镜计数法和放射性核素标记法,CCK8检测方法不仅能够减少操作步骤,提高工作效率,还能够避免放射性物质的使用,减少对实验人员和环境的伤害。
因此,CCK8已经成为细胞生物学研究中常用的细胞增殖和细胞毒性检测方法之一。
除了在细胞生物学研究中的应用,CCK8原理还可以用于药物筛选、毒性评价、细胞治疗等领域。
在药物筛选中,科研人员可以利用CCK8检测药物对细胞增殖和细胞毒性的影响,从而筛选出对特定疾病具有潜在疗效的药物。
在毒性评价中,CCK8可以帮助评估化合物对细胞的毒性程度,为毒性学研究提供重要参考。
在细胞治疗中,CCK8可以用于评估细胞治疗药物对受体细胞的生物学效应,为临床治疗提供实验依据。
总之,CCK8原理作为一种快速、灵敏、可靠的细胞增殖和细胞毒性检测方法,已经在细胞生物学研究、药物筛选、毒性评价和细胞治疗等领域得到了广泛的应用。