VisualC++面向对象程序设计教程与实验(第二版)清华大学出版社—章答案.docx
《VisualC++面向对象程序设计教程与实验(第二版)清华大学出版社—章答案.docx》由会员分享,可在线阅读,更多相关《VisualC++面向对象程序设计教程与实验(第二版)清华大学出版社—章答案.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VisualC+面向对象程序设计教程与实验(第二版)清华大学出版社章答案 第一章 1. 什么是面向对象程序设计?它与传统的结构化程序设计有什么不同? 面向对象程序设计既吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界的问题求解尽可能简单化。 面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用了数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型类,并且考虑不同对象之间的联系和对象所在类的重要性。 面向对象程序设计优于传统的结构化程序设计,其优越性表现在,它有希望解决软件工程的两个主要
2、的问题软件复杂性控制和软件生产率的提高,此外它还符合人类的思维习惯,能够自然地表现现实世界的实体和问题,它对软件开发过程具有重要的意义。 在面向对象程序设计中可以用下面的式子表示程序: 程序=对象+对象+对象 对象=算法+数据结构+程序设计语言+语言环境 在结构化程序设计中可以用下面的式子表示程序: 程序=数据结构+算法+程序设计语言+语言环境 2. 面向对象程序设计语言有哪几类? (1) LISP家族 LISP是50年代开发出来的一种语言,它以表处理为特色,是一种人工智能语言,70年代以来,在LISP基础上开发了很多LISP家族的面向对象语言。 (2) Simula Simula语言是60年
3、代开发出来的,在Simula中引入了几个面向对象程序设计语言中最重要的概念和特性,即数据抽象、类和继承性机制。Simula67是它具有代表性的一个版本,70年代发展起来的CLU,Ada,Modula-2等语言是在 它的基础上发展起来的。 (3) Smalltalk Smalltalk是第一个真正的面向对象程序设计语言,它体现了纯粹的OOP设计思想,是最纯的OOP语言。它起源于Simula语言。尽管Smalltalk不断完善,但在那个时期,面向对象程序设计语言并没有得到广泛的重视,程序设计的主流是结构化程序设计。 (4) C家族 在19世纪80年代,C语言成为一种极其流行、应用非常广泛的语言。C
4、+是在C语言的基础上进行扩充,并增加了类似Smalltalk语言中相应的对象机制。它将“类”看作是用户定义类型,使其扩充比较自然。C+以其高效的执行效率赢得了广大程序设计员的青睐,在C+中提供了对C语言的兼容性,因此,很多已有的C程序稍加改造甚至不加改造就可以重用,许多有效的算法也可以重新利用。它是一种混合型的面向对象程序设计语言,由于它的出现,才使面向对象的程序设计语言越来越得到重视和广泛的应用。 JAVA语言是一种适用于分布式计算的新型面向对象程序设计语言,可以看作是C+语言的派生,它从C+语言中继承了大量的语言成分,抛弃了C+语言中冗余的、容易引起问题的功能,增加了多线程、异常处理、网络
5、程序设计等方面的支持,掌握了C+语言,可以很快学会JAVA 语言。 3. 面向对象系统有哪些特性?分别加以解释。 (1) 抽象性(abstract) 抽象是一种从一般的观点看待事物的方法,它要求程序员集中于事物的本质特征,而不是具体细节或具体实现。类的概念来自人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:从特殊到一般的归纳法和从一般到特殊的演绎法。在归纳的过程中,我们从一个个具体的事物中把共同的特征抽取出来,形成一个一般的概念,这就是“归类”;在演绎的过程中,我们又把同类的事物,根据不同的特征分成不同的小类,这就是“分类”。对于一个具体的类,它有许多具体的个体,我们称这些个
6、体叫做“对象”。 (2) 封装性(encapsulation) 所谓数据封装就是指一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。数据封装就是给数据提供了与外界联系的标准接口,无论是谁,只有通过这些接口,使用规范的方式,才能访问这些数据。数据封装是软件工程发展的必然产物,使得程序员在设计程序时可以专注于自己的对象,同时也切断了不同模块之间数据的非法使用,减少了出错的可能性。 (3) 继承性(inheritance) 从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能,这种思想是面向对象设计方法的主要贡献。继承是对许多问题中分层特性的一种自然描述,
7、因而也是类的具体化和被重新利用的一种手段,它所表达的就是一种对象类之间的相交关系。它使得某类对象可以继承另外一类对象的特征和能力。继承所具有的作用有两个方面:一方面可以减少代码冗余;另一方面可以通过协调性来减少相互之间的接口和界面。 (4) 多态性(polymorphism) 不同的对象接收到相同的消息时产生多种完全不同的行为的现象称为多态性。C+语言支持两种多态性即编译时的多态性和运行时的多态性。编译时的多态性通过重载函数实现,而运行时的多态性通过虚函数实现。使用多态性可以大大提高了我们解决复杂问题的能力。 4.解释类、对象、消息和方法的概念。 (1) 类(class) 在面向对象系统中,并
8、不是将各个具体的对象都进行描述,而是忽略其非本质的特性,找出其共性,将对象划分成不同的类,这一过程为抽象过程。类是对象的抽象及描述,是具有共同属性和操作的多个对象的相似特性的统一描述体。在类的描述中,每个类要有一个名字标识,用以表示一组对象的共同特征。类中的每个对象都是该类的实例。类提供了完整的解决特定问题的能力,因为类描述了数据结构(对象属性)、算法(服务、方法)和外部接口(消息协议),是一种用户自定义的数据类型。 (2) 对象(object) 在面向对象系统中,对象是系统中用来描述客观事物的一个实体,它是构成系统的一个 基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成。属性和
9、服务是构成对象的两个主要因素,属性是一组数据机构的集合,表示对象的一种状态,对象的状态只供对象自身使用,用来描述静态特性,而服务是用来描述对象动态特征(行为)的一个操作序列,是对象一组功能的体现。 对象是类的实例。 (3) 消息(message) 消息是面向对象系统中实现对象间的通信和请求任务的操作,是要求某个对象执行其中某个功能操作的规格说明。发送消息的对象称为发送者,接受消息的对象称为接收者。对象间的联系,只能通过消息来进行。对象在接收到消息时才被激活。 (4) 方法(m ethod) 在面向对象程序设计中,要求某一对象做某一操作时,就向对象发送一个相应的消息,当对象接收到发向它的消息时,
10、就调用有关的方法,执行相应的操作。方法就是对象所能执行的操作。方法包括界面和方法体两部分。方法的界面就是消息的模式,它给出了方法的调用协议;方法体则是实现某种操作的一系列计算步骤,也就是一段程序。消息和方法的关系是:对象根据接收到的消息,调用相应的方法;反过来,有了方法,对象才能响应相应的消息。所以消息模式与方法界面应该是一致的。同时,只要方法界面保持不变,方法体的改动不会影响方法的调用。在C+语言中方法是通过函数来实现的,称为成员函数。 第二章 1分析下列程序的执行结果: 输出随机数 2. 分析下列程序的执行结果: i=0 3. C+语言对C语言在结构化程序设计方面进行了哪些扩充? 主要在以
11、下方面进行了扩充: 文件扩展名、注释符、名字空间、输入输出、变量的定义、强制类型转换、动态内存的分配与释放、作用域运算符:、引用、const 修饰符、字符串、函数 4. 下述C+程序有若干处错误,试找出并纠正之。 正确程序为: #include const float PAI=3.14159265; float square(float r) return PAI*r*r; float square(float high,float length=0 ) return high*length; float (*fs)(float,float=0); void main() fs=&square
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 面向 对象 程序设计 教程 实验 第二 清华大学出版社 答案
限制150内