收藏 分销(赏)

-C++练习题.doc

上传人:人****来 文档编号:4317565 上传时间:2024-09-05 格式:DOC 页数:8 大小:46.55KB
下载 相关 举报
-C++练习题.doc_第1页
第1页 / 共8页
-C++练习题.doc_第2页
第2页 / 共8页
-C++练习题.doc_第3页
第3页 / 共8页
-C++练习题.doc_第4页
第4页 / 共8页
-C++练习题.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、C+练习题一、编程题:所有的题需要在主函数中定义对象并测试类的功能。1、编写一个三角形类,有计算面积,显示面积的功能等。要求有无参数的和带参数的构造函数。2、设计一个立方体类Box,它能计算并输出立方体的体积和表面积。要求有无参数的和带参数的构造函数。3、定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性。4、利用Clock类,派生一个带“AM”、“PM”的新时钟类NewClock。5、建立一个基类Building ,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内

2、容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。6、设计一个建筑物类Building,由它派生出教学楼Teach-Building和宿舍楼类Dorm-Building,前者包括教学楼编号、层数、教室数、总面积等基本信息,后者包括宿舍楼编号、层数、宿舍数、总面积和容纳学生总人数等基本信息。7、定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。8、声明一个Shape基类,在此基础上派生出Rectang

3、le和Circle类,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。9、使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类circle作为基类。在circle类中定义一个数据成员radius和两个虚函数area()和volume()。由circle类派生sphere类和column类。在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。二、写出程序结果1、某学校对教师每月工资的计算公式如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴

4、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(25

5、0);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 Name

6、20;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()coutNam

7、eshowinfo ();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()coutw

8、idth*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 Animal

9、public: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,并存储下面的内容:卧室和浴室的数量,另外,建立派生类

10、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;d

11、ouble 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 Bu

12、ildingpublic: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

13、,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;

14、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

15、 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 endl;class B2 public:B2( )coutconstructing B3 *endl; B2( )coutdestructing B3endl; ;class C:public B2, virtual public B1 int j;public:C(int a,int b,int c):B1(a),memberB1(b) ,j(c)private:B1 memberB1;B2 memberB2;int main( )C obj(1,2,3);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服