ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:174.87KB ,
资源ID:6266310      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6266310.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C 实验二 类与对象附答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C 实验二 类与对象附答案.docx

1、C 实验二 类与对象附答案实验二 类与对象实验目的和要求 1掌握类、类的数据成员、类的成员函数的定义方式。 2理解类成员的访问控制方式。 3掌握对象的定义和操作对象的方法。 4理解构造函数和析构函数的定义与执行过程。 5掌握重载构造函数的方法。6了解拷贝构造函数的定义方法。实验内容1下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#includeclass Aapublic: Aa(int i=0) a=i; coutConstructor aendl; Aa() coutDestructor aendl; void print() coutaendl; privat

2、e: int a;int main() Aa al(1),a2(2); al.print(); couta2.aendl; return 0;2检查下面的程序,找出其中的错误,并改正。然后上机调试,使程序能正常运行。(1)#includeclass Date void set_date(); void show_date(); int year; int month; int day;Date d;int main() set_date(); show_date();void set_date() cind.year; cind.month; cind.day;void show_date()

3、 coutd.year/d.month/d.dayendl;(2)#includeclass Apublic: void A(int i=0) m=i; void show() coutmendl; void A()private: int m;int main() A a(5); a.m+=10; a.show(); return 0;(3)#includeclass Xprivate: int a=0; int &b; void setA(int i) a=i; X(int i) a=i; public: int X() a=b=0; X(int i,int j) a=i; b=j; vo

4、id setC(int k) c=c+k; ;void main() X x1; X x2(2); X x3(1,2); x1.setA(3);3调试下列程序。#includeclass TPointprivate: int X,Y;public: TPoint(int x,int y) X=x; Y=y; coutConstructor is calledendl; TPoint(TPoint &p); TPoint() coutDestructor is calledendl; int getx() return X; int gety() return Y; ;TPoint:TPoint

5、(TPoint &p) X=p.X; Y=p.Y; coutCopy-initialization Constructor is calledendl;void main() TPoint p1(4,9); TPoint p2(p1); TPoint p3 = p2; coutp3=(p3.getx(),p3.gety()endl; (1)写出程序的输出结果,并解释输出结果。 (2)按下列要求进行调试: 在主函数体内,添加下列说明语句: TPoint p4,p5(2); 调试程序会出现什么现象?为什么?如何解决?(提示:对已有的构造函数进行适当修改)结合运行结果分析如何使用不同的构造函数创建不

6、同的对象。 (3)在主函数内使用new创建不同参数动态两个动态对象,输出其坐标,并用delete删除之。运行程序,分析运行结果。 (4)在程序中定义个全局对象,在主函数最前添加语句: coutEnter mainendl;运行程序,分析运行结果。4完善程序,并写出运行结果根据程序要求,完善程序后输入源程序,编译连接,并写出运行结果。如果某个自然数除了1和它本身外还有其他因子,则这个自然数就是合数(非素数)。试定义一个类NUM,从3开始向上试探找出n个连续的自然数,且它们都是合数。当找到第一组连续的n个合数后,即停止查找。具体要求如下:(1)私有成员int n : 存放满足条件的连续自然数的个数

7、。int *p: 根据n的值申请一个动态数组用来存放求出的满足条件的n个自然数。(2)公有成员函数NUM(int n1): 构造函数,用n1初始化n,根据n的值申请动态数组空间,使p指向该动态数组空间。int yes(int x): 判断x是否为合数。如果是,返回1,否则返回0。void fun(): 从3开始向上试探找出n个连续的自然数,且它们都是合数,并依次存入动态数组。void print(): 输出满足条件的n个合数。NUM(): 析构函数,释放动态数组所占用的存储空间。(3)在主函数中定义一个NUM类的对象num,求出10个连续的合数。然后通过对象num调用成员函数求出10个连续的合

8、数,并输出计算结果。#include class NUM /定义数据类NUMprivate: int n; int *p;public: NUM(int n1) n=n1; p= ; /动态分配存放连续合数的存储空间 int yes(int x) for(int i=2;i=x/2;i+) if (x%i=0) return 1; return 0; void fun(void) int j; for(int i=3;1;i+) j=0; while( &jn) pj=i; j+; i+; if(j=n) break; void print(void) cout找到的n个连续合数为:endl;

9、 for(int i=0;in;i+) coutpi ; coutendl; NUM() ; /释放在构造函数中申请的存储空间 ;void main() coutn; NUM num(n); ; /寻找连续的合数,并存入动态申请的存储空间中 ; /输出寻找到的合数5请定义一个矩形类(Rectangle),私有数据成员为矩形的长度( len)和宽度(wid),缺省构造函数置len和wid为0,有参构造函数置len和wid为对应形参的值,另外还包括求矩形周长、求矩形面积、取矩形长度和宽度、修改矩形长度和宽度为对应形参的值、输出矩形尺寸等公有成员函数。要求输出矩形尺寸的格式为“length:长度,w

10、idth:宽度”。编写主函数对定义的类进行测试。6声明一个时间类,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和PrintTime)。SetTime根据传递的3个参数为对象设置时间;PrintTime负责将对象表示的时间显示输出,输出格式为“Hour:Minute:Second”。 (1)在主函数中,建立一个时间类的对象,设置时间为9点20分30秒并显示该时间。 (2)使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。 (3)重载时间类的构造函数(不带参数)使小时、分、秒均为

11、0。 (4)在时间类的析构函数中输出Good bye!” (5)定义拷贝构造函数并调用。7下面是一个整型链表类intList的声明,请给出该类所有数据成员的类外定义,并在主函数中测试该类。class intListprotected: struct Node int data; Node *next; ; Node *L;public: intList(); /构造函数 intList(); /析构函数 bool Insert(int i,int elem); bool Remove(int i,int &elem); /删除链表的第i个位置的元素,删除成功返回true,失败返回false i

12、nt Find(int elem); /在链表中查找值为elem的元素,找到返回该元素在链表中的位置,否则返回0 int Length(); /返回链表长度(元素个数) void PrintList(); /输出链表;参考答案(非权威,仅仅是我自己的理解,如有错误,欢迎批评指正!)第一题:#includeclass Aapublic: Aa(int i=0) a=i; coutConstructor aendl; Aa() coutDestructor aendl; void print() coutaendl; private: int a;int main() Aa al(1),a2(2)

13、; al.print(); a2.print(); return 0;第二题(1)#includeclass Datepublic: void set_date(); void show_date();private: int year; int month; int day;Date d; int main() d.set_date(); d.show_date();return 0;void Date:set_date() cinyear; cinmonth; cinday;void Date:show_date() coutyear/month/dayendl;(2)#includecl

14、ass Apublic: A(int i=0) m=i; void show() coutmendl; A() friend void add(A &); private: int m;void add(A &a) a.m+=10; int main() A a(5); add(a); a.show(); return 0;(3)#includeclass Xprivate: int a,b,c;public: X(int i) a=i; X() a=b=0; X(int i,int j) a=i; b=j; void setC(int k) c=c+k; void setA(int i) a

15、=i; ;void main() X x1; X x2(2); X x3(1,2); x1.setA(3);第三题(1)void main() TPoint p1(4,9); /调用构造函数初始化p1 TPoint p2(p1); /显示调用拷贝构造函数初始化p2 TPoint p3 = p2; /对象之间的赋值,由于之前没有定义p3,因此用另一个同类的对象给其赋值时,会调用拷贝构造函数。 coutp3=(p3.getx(),p3.gety()endl; /输出p3在赋值后的x和y(2)答:调试程序会程序错误,原因是对于无输入的对象和只要一个输入值的对象没有相应的构造函数,要解决也挺简单,就是

16、在说明部分加上相应的构造函数就可以了。修改后的程序如下:#includeclass TPointprivate: int X,Y;public: TPoint() X=Y=0; coutA Constructor is calledendl; TPoint(int i) X=i; Y=0; coutB Constructor is calledendl; TPoint(int x,int y) X=x; Y=y; coutConstructor is calledendl; TPoint(TPoint &p); TPoint() coutDestructor is calledendl; in

17、t getx() return X; int gety() return Y; ;TPoint:TPoint(TPoint &p) X=p.X; Y=p.Y; coutCopy-initialization Constructor is calledendl;void main() TPoint p1(4,9); coutp1=(p1.getx(),p1.gety()endl; TPoint p2(p1); coutp2=(p2.getx(),p2.gety()endl; TPoint p3 = p2; coutp3=(p3.getx(),p3.gety()endl; TPoint p4,p5

18、(2); coutp4=(p4.getx(),p4.gety()endl; coutp5=(p5.getx(),p5.gety()endl;(3)#includeclass TPointprivate: int X,Y;public: TPoint(int x,int y) X=x; Y=y; coutConstructor is calledendl; TPoint(TPoint &p); TPoint() coutDestructor is calledendl; int getx() return X; int gety() return Y; ;TPoint:TPoint(TPoint

19、 &p) X=p.X; Y=p.Y; coutCopy-initialization Constructor is calledendl;void main() TPoint *p1=new TPoint(4,9); coutp1=(getx(),gety()endl; delete p1; (4)#includeclass TPointprivate: int X,Y;public: TPoint(int x,int y) X=x; Y=y; coutConstructor is calledendl; TPoint(TPoint &p); TPoint() coutDestructor i

20、s calledendl; int getx() return X; int gety() return Y; void ShowPoint() coutp1=(X,Y)endl; ;TPoint:TPoint(TPoint &p) X=p.X; Y=p.Y; coutCopy-initialization Constructor is calledendl;void main() coutEnter mainShowPoint(); delete p1; 第四题:#include class NUM /定义数据类NUMprivate: int n; int *p;public: NUM(in

21、t n1) n=n1; p=new intn; /动态分配存放连续合数的存储空间 int yes(int x) for(int i=2;i=x/2;i+) if (x%i=0) return 1; return 0; void fun(void) int j; for(int i=3;1;i+) j=0; while(yes(i)&jn) pj=i; j+; i+; if(j=n) break; void print(void) cout找到的n个连续合数为:endl; for(int i=0;in;i+) coutpi ; coutendl; NUM() if(p) deletep; /释放

22、在构造函数中申请的存储空间 ;void main() coutn; NUM num(n); num.fun(); /寻找连续的合数,并存入动态申请的存储空间中 num.print() ; /输出寻找到的合数第五题:#includeclass Rectangleprivate: int len,wid;public: Rectangle() len=wid=0; coutFirst Constructor is calledendl; Rectangle(int i,int w) len=i; wid=w; coutSecond Constructor is calledlen; cinwid; int Get_Perimeter() return 2*(len+wid); int Get_Area() return len*wid; int get_len() return len; int get_wid() return wid; Rectangle() coutDestructor is calledendl; ;void main()int temp;Rectangle rect,Default(8,9);cout

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1