面向对象程序设计教程 c 语言描述,C面向对象程序设计教程(第3版)陈维兴林小茶课后习题答案...

《C面向对象程序设计教程(第3版)陈维兴林小茶课后习题答案》由会员分享,可在线阅读,更多相关《C面向对象程序设计教程(第3版)陈维兴林小茶课后习题答案(54页珍藏版)》请在人人文库网上搜索。

1、本文档如对你有帮助,请帮忙下载支持!C+面向对象程序设计教程课后题答案什么是面向对象程序设计 ?面向对象程序设计是一种新的程序设计范型 . 这种范型的主要特征是 :程序=对象+消息 面向对象程序的基本元素是对象。主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成;第二,程序中的一切操作都是通过向对象发送消息来实现的。1.2什么是对象 ?什么是类 ?对象与类之间的关系是什么 ?对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统 一体。类就是具有相同的数据和相同的操作的一组对象的集合, 也就是说, 类是对具有 相同数据结构和相同操作的一类对象的描述。类和对象之间的关系是。

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

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

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

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

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

7、acestd; int main()int*pi =pifor*pi = new int 1;1 = 1;(int i = 2; i using namespacestd;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);main() intreturn 0;2.24 解决百钱问题。将一元人民币换成1、。

8、2、 5 分的硬币,有多少种换法?#include using namespacestd;main()int intfornum = 0; /(int i = 0; i总共换法的总数。初始化为 0。 100)break ;for (int k =0; k 100)break ;cout using namespacestd; void swap( int &a, int &b) a = a + b;b = a - b;a = a - b;int main()int a, b;cin a b;if (a b)swap(a, b);cout using namespacestd; double F。

9、un( double x) return 35*x + 25; / 假设 f(x)=35x+25main() intdouble a, b; cin a;if (Fun(a) = 0)cout b;0);while (Fun(a) * Fun(b) = if (Fun(b) = 0)cout b)a = a + b; b = a - b; a = a - b;while (1)if (Fun(a + b)/ 2) = 0)(a + b)/2 using namespacestd; class DateprintDate(); setDay( int d); setMonth( int m); 。

10、setYear( int y);public :voidvoidvoidvoidprivate :int day, month, year;void Date:printDate()cout 5)qu =1;else本文档如对你有帮助,请帮忙下载支持!qu = q;price = 10 * qu; int book:mult()return qu * price; int book books 5 = 1, 2, 3, 4,5; for (int i = 0; i 5)1;qu =elsequ = q;10 * qu;price =int book:mult()return qu * pric。

11、e;int main()book books 5 = 1, 2, 3, 4,5; book *p = books;p+= 4;for (int i = 0; i mult() using namespacestd; class Stock private :char stockcode 25; int quan; double price;public :Stock(Stock( void ;char na, int char na);print();q = 1000, double p = 8.98);Stock:Stock( char na, strcpy(stockcode, na); 。

12、quan = q; price = p; void Stock:print() cout stockcode quanprice using namespacestd;class studentprivate :char name 25, studentNo int score;staticstaticpublic :student(int sum;int totalScore;char na, charvoid show(); static void showTotal();student:student( char na,strcpy(name, na); strcpy(studentNo。

13、, stuNo); score = sc;+sum;totalScore += sc;void student:show()cout using namespacestd;#include class tablepublic :table( int p, int q)i = p;j = q;void ascii( void ); protected :int i, j; void table:ascii()int k = 1; for (; i using namespacestd; #include class area_c1 protected :doubledoublepublic :a。

14、rea_c1(height; width;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(); double rectangle:area() return height * width;area_c1 class isosceles : public public :double s):area_c1(。

15、r, s)isosceles( double r,virtual double area(); double isosceles:area() return (height * width)/int main() rectangle r( isosceles i( area_c1 *a; a = &r; coutarea() area() using namespacestd;#include class Timepublic :Time( int h, int m, int s) hours = h;minutes = m; seconds = s;void display()cout us。

16、ing namespacestd; #include class person protected :char number 25;char name 25; public :char na)person( char num, strcpy(number, num); strcpy(name, na);void showName()cout using namespacestd; class twoDArrayint a 2 3; public :twoDArray()for (int i = 0; i aij;twoDArray a1, a2(a), total, sub;total = a。

17、1 + a2;sub = a1 - a2;total.show();sub.show();return 0;#include using namespacestd; class twoDArray18.本文档如对你有帮助,请帮忙下载支持!int a 2 3; public : twoDArray() for (int i = 0; i aij;twoDArray a1, a2(a), total, sub;total = a1 + a2;sub = a1 - a2;total.show();sub.show();return 0;19.#include using namespacestd; class complexdouble real, imag; public :comp。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值