第5章习题参考答案文档格式.docx
- 文档编号:21175021
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:14
- 大小:17.59KB
第5章习题参考答案文档格式.docx
《第5章习题参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《第5章习题参考答案文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
//车轮数
floatweight;
//表示汽车承重
};
vehicle:
:
vehicle(intin_wheels,floatin_weight){
wheels=in_wheels;
weight=in_weight;
}
floatvehicle:
get_weight(){
returnweight;
intvehicle:
get_wheels(){
returnwheels;
voidvehicle:
setWeels(intwls){
wheels=wls;
setWeight(floatwt){
weight=wt;
classtruck:
publicvehicle//定义货车类truck
//新增私有数据成员
floatweight_load;
//承重
//新增公有成员函数
truck(intwheel,floatwt,floatwl):
vehicle(wheel,wt){
weight_load=wl;
floatgetLoads(){
returnweight_load;
vehicle:
display();
汽车承重"
weight_load<
//车和客车,客车又可分为轿车、面包车和公共汽车
classcar:
publicvehicle//定义客车类car
intpassenger_load;
//新增私有数据成员,表示载客数
//新增公有成员函数
car(intin_wheels,floatin_weight,intpeople=4):
vehicle(in_wheels,in_weight)
{
passenger_load=people;
intgetPassengers(){
returnpassenger_load;
voidsetPassengers(intpeople){
载客数:
passenger_load<
voidmain(){
trucktruck1(8,400,100000);
//货车
carcar1(4,20);
//客车
carsaloon_car(4,10,5);
//轿车
carmicrobus(6,10,18);
//面包车
carbus(6,20,30);
//公共汽车
//显示相关信息
truck1.display();
---------------------"
car1.display();
saloon_car.display();
microbus.display();
bus.display();
程序的运行结果:
8汽车重量:
400
汽车承重100000
---------------------
4汽车重量:
20
4
10
5
6汽车重量:
18
30
10.设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。
使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽、高、中心点等)和方法(如初始化、求面积等),并看看这些图形是否能进一步划分为子类。
classFigure//定义基类图形类
Figure(intwid){width=wid;
floatarea(){}
intgetWidth(){returnwidth;
intwidth;
//宽度或半径
classRectangle:
publicFigure{//定义矩形类
intheight;
Rectangle(intwid,inthei):
Figure(wid){
height=hei;
floatarea(){returngetWidth()*height;
classTriangle:
publicFigure{//定义三角形类
intheight;
Triangle(intwid,inthei):
floatarea(){return1.0/2*getWidth()*height;
classCircle:
publicFigure{//定义圆类
Circle(intwid):
floatarea(){return3.14*getWidth()*getWidth();
Rectanglerect(5,4);
Triangletri(5,4);
Circlecir(5);
矩形的面积是:
rect.area()<
endl
<
三角形的面积是:
tri.area()<
圆的面积是:
cir.area()<
程序的运行结果为:
78.5
11.考虑大学的学生情况,试利用单继承来实现学生和毕业生两个类,设计相关的数据成员及函数,编程对继承情况进行测试。
iostream.h>
string.h>
classStudent//定义基类vehicle
Student(intn,char*na,intg):
number(n),grade(g){
strcpy(name,na);
intgetNumber(){
returnnumber;
char*getName(){
returnname;
intgetGrade(){
returngrade;
cout<
学号:
number<
姓名:
name<
年级:
grade<
intnumber;
//学号
charname[20];
//姓名
intgrade;
//年级
classGraduate:
publicStudent{//定义毕业生类
chardesignSubject[20];
Graduate(intn,char*na,char*deSub,intg=4):
Student(n,na,g)
{strcpy(designSubject,deSub);
Student:
设计题目:
designSubject<
//创建对象
Studentli(2,"
LiMing"
3);
Graduatezhang(3,"
ZhangGang"
"
学生成绩管理系统"
);
//显示对象的相关信息
li.display();
cout<
endl<
-----------------------------------"
<
zhang.display();
2
LiMing
3
-----------------------------------
ZhangGang
学生成绩管理系统
12.定义一个哺乳动物类,再由此派生出人类、狗类和猫类,这些类中均有speak()函数,观察在调用过程中,到底使用了谁的speak()函数。
classAnimal{
voidspeak(){}
voidsetWeight(floatwt){weight=wt;
floatgetWeight(){returnweight;
classHuman:
publicAnimal{
voidspeak(){
说话"
classCat:
喵喵"
classDog:
汪汪"
//定义三个对象
Humanhm;
Catcat;
Dogdog;
//调用不同类的speak函数
人:
;
hm.speak();
猫:
cat.speak();
狗:
dog.speak();
说话
喵喵
汪汪
13.通过多重继承定义研究生类,研究生既有学生的属性,又有教师的属性。
#include<
classPerson{
protected:
charm_strName[10];
intm_nSex;
intm_nAge;
Person(char*name,intage,charsex){
strcpy(m_strName,name);
m_nSex=(sex=='
m'
?
0:
1);
m_nAge=age;
voidsetName(char*name){
voidsetSex(intsex){
voidsetAge(intage){
returnm_strName;
intgetAge(){
returnm_nAge;
intgetSex(){
returnm_nSex;
voidShowMe(){
姓名:
m_strName<
性别:
(m_nSex==0?
男"
女"
)<
年龄:
m_nAge<
classTeacher:
publicPerson{
charm_strDept[20];
intm_fSalary;
Teacher(char*name,intage,charsex,char*dept,intsalary)
:
Person(name,age,sex){
strcpy(m_strDept,dept);
m_fSalary=salary;
voidShowMe(){
Person:
ShowMe();
工作单位:
m_strDept<
月薪:
m_fSalary<
voidsetSalary(intsalary){
m_fSalary=salary;
char*getDept(){
returnm_strDept;
intgetSalary(){
returnm_fSalary;
classStudent:
charm_strID[12];
charm_strClass[12];
Student(char*name,intage,charsex,char*ID,char*Class)
strcpy(m_strID,ID);
strcpy(m_strClass,Class);
学号:
m_strID<
班级:
m_strClass<
\n"
voidsetID(char*ID){
voidsetClass(char*Class){
char*getID(){
returnm_strID;
char*getClass(){
returnm_strClass;
classMaster:
publicStudent,publicTeacher{
Master(char*name,intage,charsex,char*ID,char*Class,char*dept,intsalary)
Student(name,age,sex,ID,Class),Teacher(name,age,sex,dept,salary){
getDept()<
getSalary()<
//定义三个不同类的对象
Teacherteacher1("
刘馨"
38,'
计算机系"
3800);
Studentstd1("
刘丽"
20,'
f'
03016003"
计算机03"
Mastermaster("
张鑫"
25,'
003"
机械052"
机械系"
1000);
//显示各类人员的属性
teacher1.ShowMe();
--------------------"
std1.ShowMe();
master.ShowMe();
刘馨
男
38
计算机系
3800
--------------------
03016003
刘丽
女
计算机03
003
张鑫
25
机械052
机械系
1000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)