收藏 分享(赏)

C 面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc

上传人:精品资料 文档编号:8475997 上传时间:2019-06-29 格式:DOC 页数:46 大小:104.41KB
下载 相关 举报
C  面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc_第1页
第1页 / 共46页
C  面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc_第2页
第2页 / 共46页
C  面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc_第3页
第3页 / 共46页
C  面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc_第4页
第4页 / 共46页
C  面向对象程序设计教程[第3版]__陈维兴,林小茶课后习题答案及解析.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、 WORD 完美格式 专业知识编辑整理 C+面向对象程序设计教程课后题答案1.1 什么是面向对象程序设计?面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是:程序=对象+消息面向对象程序的基本元素是对象。主要结构特点是:第一, 程序一般由类的定义和类的使用两部分组成;第二, 程序中的一切操作都是通过向对象发送消息来实现的。1.2 什么是对象?什么是类?对象与类之间的关系是什么?对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。类和对象之间的关系是抽象和

2、具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。1.3 现实世界中的对象有哪些特征?请举例说明。现实世界中的对象具有以下特征:1) 每一个对象必须有一个名字以区别于其他对象;2) 用属性来描述对象的某些特征;3) 有一组操作,每组操作决定对象的一种行为;WORD 完美格式 专业知识编辑整理 4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。

3、1.4 什么是消息?消息具有什么性质?一个对象向另一个对象发出的请求成为“消息”。消息具有以下 3 个性质:1) 同一个对象可以接收不同形式的多个消息,做出不同的相应;2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的;3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。1.5 什么是抽象和封装?请举例说明。抽象是将有关事物的共性归纳、集中的过程。例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等

4、操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。1.6 什么是继承?请举例说明。继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。WORD 完美格式 专业知识编辑整理 例如:哺乳动物是一种热血、有毛发、用奶哺育幼崽的动物; 狗是有犬牙、食肉、特定的骨骼结构、群居的哺乳动物。 狗就继承了哺乳动物。1.7 若类之间具有继承关系,则他们之间具有什么特征?若类之间具有继承关系,则他们之间具有下列几个特征:1) 类间具有共享特征(包括数据和操作代码的共享);2) 类间具有差别或新增部分(包括非共享的数据和操作代码);3) 类具有层次结构

5、。1.8 什么是单继承、多继承?请举例说明。单继承是指每个派生类只直接继承了一个基类的特征。例如狗继承自哺乳动物。多继承是指多个基类派生出一个派生类的继承关系。比如玩具车同时继承自玩具和车。1.9 什么是多态?请举例说明。多态是指不同的对象收到相同的消息时执行不同的操作。例如,有一个窗口类对象,还有一个棋子类对象。当我们发出“移动”消息时,两个对象的行为不同。1.10 面向对象程序设计的主要优点是什么?1. 可提高程序的重用性;2. 可控制程序的复杂性;3. 可改善程序的可维护性;4. 能够更好地支持大型程序设计;5. 增强了计算机处理信息的范围;能够很好地适应新的硬件环境。WORD 完美格式

6、 专业知识编辑整理 2.1 简述 C+的主要特点。1) C+是 C 的超集,保持与 C 的兼容。2) 保持了 C 的简洁、高效和接近汇编语言等特点,并对 C 的功能作了不少扩充。用 C+编写的程序比 C 更安全,可读性更好,代码结构更为合理。3) 程序质量高。4) 增加了面向对象机制。2.2#include using namespace std;int main()int a, b, d, min;cout a b;min = a b ? b : a;for(d = 2; d using namespace std;int main()int a = 1;#define T1 a+a#def

7、ine T2 T1-T1cout using namespace std;int main()int *pi = new int20;*pi = 1;pi1 = 1;for(int i = 2; i using namespace std;double sroot(int num)return (double)sqrt(double)num);double sroot(long num)return (double)sqrt(double)num);double sroot (double num)return (double)sqrt(num);int main()return 0;2.24

8、 解决百钱问题。将一元人民币换成 1、2 、5 分的硬币,有多少种换法?#include using namespace std;int main()int num = 0; /总共换法的总数。初始化为 0。for(int i = 0; i 100)break;for(int k = 0; k 100)break;cout using namespace std;void swap(int b = a - b;a = a - b;int main()int a, b;cin a b;if(a b)swap(a, b);cout using namespace std;double Fun(do

9、uble x)return 35*x +25; /假设 f(x)=35x+25int main()double a, b;cin a;if(Fun(a) = 0)cout b;while (Fun(a) * Fun(b) = 0);if(Fun(b) = 0)cout b)a = a + b;b = a - b;a = a - b;while(1)if(Fun(a + b)/2) = 0)cout using namespace std;class Datepublic:void printDate();void setDay(int d);WORD 完美格式 专业知识编辑整理 void se

10、tMonth(int m);void setYear(int y);private:int day, month, year;void Date:printDate()cout 5)WORD 完美格式 专业知识编辑整理 qu = 1;elsequ = q;price = 10 * qu;int book:mult()return qu * price;int main()book books5 = 1,2,3,4,5;for(int i = 0; i 5)qu = 1;WORD 完美格式 专业知识编辑整理 elsequ = q;price = 10 * qu;int book:mult()re

11、turn qu * price;int main()book books5 = 1,2,3,4,5;book *p = books;p += 4;for(int i = 0; i mult() using namespace std;class Stockprivate:char stockcode25;int quan;double price;public:WORD 完美格式 专业知识编辑整理 Stock(char na, int q = 1000, double p = 8.98);Stock(char na);void print();Stock:Stock(char na, int

12、q = 1000, double p = 8.98)strcpy(stockcode, na);quan = q;price = p;void Stock:print()cout stockcode quan price using namespace std;class studentprivate:char name25, studentNo10;int score;static int sum;static int totalScore;public:WORD 完美格式 专业知识编辑整理 student(char na, char stuNo, int sc);void show();s

13、tatic void showTotal();student:student(char na, char stuNo, int sc)strcpy(name, na);strcpy(studentNo, stuNo);score = sc;+sum;totalScore += sc;void student:show()cout using namespace std;#include class tablepublic:table(int p, int q)i = p;j = q;WORD 完美格式 专业知识编辑整理 void ascii(void);protected:int i, j;v

14、oid table:ascii()int k = 1;for(; i using namespace std;#include class area_c1protected:double height;double width;public:area_c1(double r, double s)height = r;width = s;virtual double area() = 0;class rectangle : public area_c1public:rectangle(double r, double s):area_c1(r, s)virtual double area();d

15、ouble rectangle:area()return height * width;class isosceles : public area_c1public:isosceles(double r, double s):area_c1(r, s)virtual double area();double isosceles:area()return (height * width)/2;WORD 完美格式 专业知识编辑整理 int main()rectangle r(10, 5);isosceles i(4, 6);area_c1 *a;a = coutarea() area() usin

16、g namespace std;#include class Timepublic:Time(int h, int m, int s)hours = h;minutes = m;seconds = s;void display()cout using namespace std;#include class personprotected:char number25;char name25;public:person(char num, char na)strcpy(number, num);strcpy(name, na);void showName()cout “编号:“ number “ 姓名:“ name;class student : public personprivate:int classNumber, score;public:student(char num, char na, int cNumber, int sc):person(num, na)classNumber = cNumber;score = sc;void show()showName();cout “ 班号:“ classNumber “ 成绩:“ score endl;class teacher : public personprivate:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报