c++第九章练习答案Word格式.docx
- 文档编号:8136158
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:16
- 大小:17.71KB
c++第九章练习答案Word格式.docx
《c++第九章练习答案Word格式.docx》由会员分享,可在线阅读,更多相关《c++第九章练习答案Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
Sex=(sex=='
?
'
'
f'
);
}
ShowMe()
cout<
<
Name<
"
"
Age<
Sex<
endl;
intmain()
charname[20],sex;
intage;
Personperson1,person2;
cout<
endl;
cin>
>
name>
age>
sex;
person1.Register(name,age,sex);
;
person1.ShowMe();
person1.Register("
19,'
person2=person1;
person2.ShowMe();
return0;
2设计一个完整的Date类,包含属性day,month,year以及对这些属性操作的方法。
根据类的封装性要求,把day,month,year声明为私有的数据成员。
输入输出函数为voidinit(int,int,int)、voidprint_ymd()、voidprint_mdy()。
Enterdate(daymonthyear:
1122010
2010-12-1
12-1-2010
(简单的日期类)公有的数据成员
classDate
intday,mouth,year;
voidset_date(Date&
d);
voidshow_date1(Dated);
voidshow_date2(Dated);
Datedate1;
set_date(date1);
show_date2(date1);
show_date1(date1);
d)
d.day>
d.mouth>
d.year;
voidshow_date1(Dated)
d.mouth<
-"
d.day<
d.year<
voidshow_date2(Dated)
(简单的完整日期类)私有的数据成员
voidinit(int,int,int);
voidprint_ymd();
voidprint_mdy();
voidDate:
init(intyy,intmm,intdd)
mouth=(mm>
=1&
&
mm<
=12)?
mm:
1;
year=(yy>
=1900&
yy<
=2100)?
yy:
1900;
day=(dd>
dd<
=31)?
dd:
print_ymd()
year<
mouth<
day<
print_mdy()
day>
mouth>
year;
date1.init(year,mouth,day);
date1.print_ymd();
date1.print_mdy();
3设计一个Dog类,包含name、age、sex和weight等属性以及对这些属性操作的方法。
根据类的封装性要求,把name、age、sex和weight声明为私有的数据成员,编写公有成员函数setdata()对数据进行初始化,GetName()、GetAge()、GetSex()和GetWeight()获取相应属性。
初始化数据由用户输入。
Pleaseinputname,age,sexandweight
ahuang3m2.4
Dog’sname:
ahuang
Dog’sage:
3
Dog’ssex:
m
Dog’sweight:
2.4
Dogspeak:
Arf!
注意,其中第2行“ahuang3m2.4”为输入,单引号为中文单引号
classDog
charname[20];
charsex;
floatweight;
voidRegister(char*Name,intAge,charSex,floatWeight);
char*GetName(){returnname;
intGetAge(){returnage;
charGetSex(){returnsex;
floatGetWeight(){returnweight;
voidSpeak(){cout<
voidDog:
Register(char*Name,intAge,charSex,floatWeight)
strcpy(name,Name);
age=Age;
sex=Sex;
weight=Weight;
Pleaseinputname,age,sexandweight"
Dogdog1;
sex>
weight;
dog1.Register(name,age,sex,weight);
dog1.GetName()<
dog1.GetAge()<
dog1.GetSex()<
dog1.GetWeight()<
dog1.Speak();
4设计并测试一个名为Ellipse的椭圆类,其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积。
根据类的封装性要求,在类的声明中用4个私有的整型变量表示两个点的坐标值,声明成员函数initial(int,int,int,int)初始化数据成员,函数GetPosition(int&
int&
)读取坐标值,函数Area()计算面积。
Pleaseinput4integerstodefineaellipse:
3399
Theareaofe1:
28.2743
Thecoordinatesofe2:
1,1,4,3
cmath>
classEllipse
{
intx1,y1,x2,y2;
Ellipse(int,int,int,int);
voidGetPosition(int&
doubleArea();
Ellipse:
Ellipse(inta,intb,intc,intd):
x1(a),y1(b),x2(c),y2(d)
{}
voidEllipse:
GetPosition(int&
a,int&
b,int&
c,int&
d)
a=x1,b=y1,c=x2,d=y2;
doubleEllipse:
Area()
return(double)abs((x1-x2)*(y1-y2))/4*3.14159;
{intx1,y1,x2,y2;
x1>
y1>
x2>
y2;
Ellipsee1(x1,y1,x2,y2);
Ellipsee2(1,1,4,3);
e2.GetPosition(x1,y1,x2,y2);
e1.Area()<
x1<
'
y1<
x2<
y2<
5仿照Date类设计一个Time类,成员函数SetTime()设置时间,print_12()以12小时制显示时间(AM上午,PM下午),print_24()以24小时制显示时间。
Pleaseinputatime(h,m,s)
132334
01:
23:
34PM
13:
34
classTime
inthour,minute,second;
intSecCalc();
Time(inth=0,intm=0,ints=0);
voidSetTime(inth=0,intm=0,ints=0);
voidprint_12();
voidprint_24();
voidprint_hms();
TimeAdd(Time&
TimeSub(Time&
Time:
Time(inth,intm,ints){SetTime(h,m,s);
voidTime:
SetTime(inthh,intmm,intss)
hour=(hh>
=0&
hh<
=23)?
hh:
0;
minute=(mm>
=59)?
second=(ss>
ss<
ss:
print_24()
((hour<
10)?
0"
)<
hour<
<
((minute<
minute<
((second<
second;
print_12()
inthh=(hour==0||hour==12)?
12:
hour%12;
second<
(hour<
12?
AM"
PM"
print_hms()
intTime:
SecCalc()
return(hour*60+minute)*60+second;
TimeTime:
Add(Time&
t)
Timetmp;
intss;
ss=SecCalc()+t.SecCalc();
tmp.hour=ss/3600%24;
tmp.minute=ss%3600/60;
tmp.second=ss%3600%60;
returntmp;
Sub(Time&
ss=abs(SecCalc()-t.SecCalc());
Timet1(2,34),t2;
Pleaseinputatime(h,m,s)"
ints,h,m;
h>
m>
s;
t2.SetTime(h,m,s);
t2.print_12();
t2.print_hms();
cout<
Timet2;
t2.print_24();
6设计一个Circle(圆)类,其私有数据成员有圆心坐标x和y及半径r。
其公有成员函数为:
Set(int,int,double);
设置圆的属性;
voidshow(void);
显示圆心和半径;
doublecircumference(void);
计算周长;
doublearea(void);
计算面积;
在主函数中用该类声明对象,输入圆心、半径,调用相关函数为对象设置属性,显示圆的半径、圆心,计算圆的周长、面积。
注意,圆周率用3.14。
程序运行结果如下:
请输入圆心坐标和圆的半径
111.5
该圆为
圆心(1,1)
半径1.5
圆的周长为9.42
圆的面积为7.065
#include<
classyuan
intx,y;
doubler;
voidset(int,int,double);
doublec(){return2*3.14*r;
doublearea();
voidyuan:
set(inta,intb,doublec)
x=a,y=b,r=c;
doubleyuan:
area()
return3.14*r*r;
请输入圆心坐标和圆的半径"
x>
y>
r;
yuany1;
y1.set(x,y,r);
该圆为"
圆心"
("
x<
"
y<
)"
半径"
r<
圆的周长为"
y1.c()<
圆的面积为"
y1.area()<
doublecircumference();
circumference()
return2*3.14*r;
y1.circumference()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 第九 练习 答案