




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+练习题一、编程题:所有的题需要在主函数中定义对象并测试类的功能。1、编写一个三角形类,有计算面积,显示面积的功能等。要求有无参数的和带参数的构造函数。2、设计一个立方体类Box,它能计算并输出立方体的体积和表面积。要求有无参数的和带参数的构造函数。3、定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性。4、利用Clock类,派生一个带“AM”、“PM”的新时钟类NewClock。5、建立一个基类Building ,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。6、设计一个建筑物类Building,由它派生出教学楼Teach-Building和宿舍楼类Dorm-Building,前者包括教学楼编号、层数、教室数、总面积等基本信息,后者包括宿舍楼编号、层数、宿舍数、总面积和容纳学生总人数等基本信息。7、定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。8、声明一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。9、使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类circle作为基类。在circle类中定义一个数据成员radius和两个虚函数area()和volume()。由circle类派生sphere类和column类。在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。二、写出程序结果1、某学校对教师每月工资的计算公式如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资。#includeusing namespace std;class Teacherprotected:double salary;int workhours;public:Teacher(int wh=0)workhours=wh;virtual void cal_salary()=0;void print()coutsalarycal_salary();prof.print();Vice_Prof vice_prof(250);pt=&vice_prof;pt-cal_salary();vice_prof.print();Lecture lecture(100);pt=&lecture;pt-cal_salary();lecture.print ();return 0;2、有一个交通工具类vehicle,将它作为基类派生小车类car、卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。#include#includeusing namespace std;class Vehiclepublic:virtual void showinfo()=0;protected: char Name20;class Car:public Vehiclepublic:Car(char *name)strcpy(Name,name);void showinfo()coutNameendl;protected:int Radius;class Truck:public Vehiclepublic:Truck(char *name)strcpy(Name,name);void showinfo()coutNameendl;class Boat:public Vehiclepublic:Boat(char *name)strcpy(Name,name);void showinfo()coutNameshowinfo ();vp=&truck;vp-showinfo ();vp=&boat;vp-showinfo ();return 0;3、 定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。#include#includeusing namespace std;class Shapepublic:virtual void Area()=0;class Rectangle:public Shapepublic:Rectangle(double w,double h)width=w,height=h;void Area()coutwidth*heightendl;protected:double width,height;class Circle:public Shapepublic:Circle(double r)radius=r;void Area()cout3.1415*radius*radiusArea ();sp=&cir1;sp-Area ();return 0;4、 定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),二者都包含虚函数 sound( ),要求根据派生类对象的不同调用各自重载后的成员函数。#includeusing namespace std;class Animalpublic:virtual void Speak()=0;class Cat :public Animalvoid Speak()coutMy name is Catendl;class Leopard:public Animalvoid Speak()coutMy name is LeopardSpeak();Leopard leopard;pa=&leopard;pa-Speak();return 0;5、建立一个基类Building ,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。程序代码:#include using namespace std;class Buildingpublic:Building(int f,int r,double ft)floors=f; rooms=r; footage=ft;void show()cout floors: floorsendl;cout rooms: roomsendl;cout total area: footageendl;protected:int floors;int rooms;double footage;class Housing:public Buildingpublic:Housing(int f,int r,double ft,int bd,int bth):Building(f,r,ft) bedrooms=bd;bathrooms=bth;void show()coutn HOUSING:n; Building:show(); cout bedrooms: bedroomsendl; cout bathrooms: bathroomsendl;private:int bedrooms;int bathrooms;class Office:public Buildingpublic:Office(int f,int r,double ft,int ph,int ex):Building(f,r,ft) phones=ph; extinguishers=ex;void show()coutn HOUSING:n; Building:show(); cout phones: phonesendl; cout extinguishers: extinguishersendl;private:int phones;int extinguishers;void main() Housing hob(5,7,140,2,2); Office oob(8,12,500,12,2); hob.show(); oob.show();6、看程序写结果#include using namespace std;class parent int i; protected: int x; public: parent( ) x=0; i=0; void change( ) x+; i+; void display();class son: public parent public: void modify();void parent: display() coutx=xendl; void son:modify() x+; void main() son A; parent B; coutDisplay derived class object A:n; A.display(); A.change(); A.display(); A.modify(); A.display(); coutDisplay base class object B:n; B.change(); B.display();7、看程序写结果#include using namespace std;class base public: void show() coutclass base show() is called.n; ;class derived: public base public: void show() coutclass derived show() is called.n; ;void main()base demo1; derived demo2; demo1.show(); demo2.show(); demo2.base:show();8、看程序写结果#includeusing namespace std;class B1public:B1(int i)coutconstructing B1 iendl; B1( )coutdestructing B1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务提成制度管理办法
- 规范城市建设管理办法
- 藤县渡口安全管理办法
- 个人社保权益管理办法
- 管理办法及管理规定
- 计划管理部管理办法
- 中央企业绩效管理办法
- 个人贷款资料管理办法
- 中央救助资金管理办法
- 行政中心接待管理办法
- 小学四年级语文上册教材分析
- 泰山版(2025版)小学信息技术第5册教学计划
- 政治理论应知应会100题
- 2024年宁德监狱囚犯心理咨询服务合同
- 副总经理招聘面试题与参考回答(某大型国企)2024年
- 玻璃体切割手术治疗2型糖尿病视网膜病变专家共识
- 意向金退款合同模板
- 2024年店中店合作协议范本
- 2023年成人高等考试《民法》(专升本)真题及答案
- IBM Maximo:Maximo数据迁移与备份策略.Tex.header
- 山东省职业指导师职业技能竞赛决赛考试题库(含答案)
评论
0/150
提交评论