实验二 类及类的继承Word文件下载.docx
《实验二 类及类的继承Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验二 类及类的继承Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
{
number=a;
name=b;
age=c;
cout<
<
"
学号:
number<
姓名:
name<
年龄:
age<
endl;
}
~student()
Destructed."
};
intmain()
{
students1(1412010708,"
雷宇"
20);
students2(1412010709,"
李嘉锡"
18);
students3(1412010710,"
刘奇瑞"
19);
return0;
}
2、定义日期类Date。
要求:
(1)可以设置日期;
(2)日期加一天操作;
(3)输出函数,输出格式为“XXXX年XX月XX日”;
(4)编写主函数,定义对象,完成相应功能。
#include<
//判断year是否是闰年
boolisLeapYear(intyear)
return(year%400==0||(year%4==0&
&
year%100!
=0));
//日期类
classDate{
intyear;
intmonth;
intday;
Date()
{}
Date(intyear,intmonth,intday)
{this->
year=year;
this->
month=month;
day=day;
//1.设置日期
voidsetDate(intyear,intmonth,intday)
//2.在当前日期的基础上增加一天
voidaddOneDay()
{day++;
switch(month){
//a.讨论1,3,5,7,8,10月份
case1:
case3:
case5:
case7:
case8:
case10:
{if(day>
31)
{day-=31;
month++;
}
break;
//b.讨论12月份
case12:
{day=1;
month=1;
year++;
//c.讨论4,6,9,11月份
case4:
case6:
case9:
case11:
{if(day>
30)
{day-=30;
}
//d.讨论2月份
case2:
{if(isLeapYear(year))
29)
{day-=29;
else
{
if(day>
28)
{day-=28;
}
}
default:
cout<
error!
;
{break;
//3.输出函数,输出格式为:
XXXX年XX月XX日,如2010年4月11日
voiddisplay()
year<
年"
month<
月"
day<
日"
//输入函数,输入格式为:
XXXXXXXX
DateInputDate()
intyear,month,day;
Datenow=Date();
cin>
>
year>
month>
day;
now.setDate(year,month,day);
returnnow;
voidmain()
请输入日期(XXXXXXXX)"
now=InputDate();
日期:
now.display();
now.addOneDay();
一天后:
//设置日期:
北京奥运会
设置新日期"
now.setDate(2008,8,8);
新日期:
3、编写一个程序计算出球、圆柱和圆锥的表面积和体积。
(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;
(3)编写主函数,求球、圆柱、圆锥的表面积和体积。
math.h>
constdoublepi=3.1415926;
classcircle//基类圆
{
circle(doublerad){r=rad;
}
protected:
doubler;
classball:
publiccircle//球类
public:
ball(doublerad):
circle(rad){}
voidcom_surface(){surface=4*pi*r*r;
voidcom_volume(){volume=4*pi*r*r*r/3;
doubleget_surface(){returnsurface;
doubleget_volume(){returnvolume;
doublesurface;
doublevolume;
classtaper:
publiccircle//圆锥类
taper(doublerad,doublelength):
circle(rad)
l=length;
voidcom_surface(){surface=pi*l*r+pi*r*r;
voidcom_volume(){volume=pi*r*r*sqrt(l*l-r*r)/3;
doublel;
//圆锥侧长
classcolumn:
publiccircle//圆柱类
column(doublerad,doublehigh):
h=high;
voidcom_surface(){surface=pi*r*r*2+2*pi*r*h;
voidcom_volume(){volume=pi*r*r*h;
doubleh;
//圆柱高
voidmain()
ballb(3);
_surface();
_volume();
该球的表面积是:
b.get_surface()<
该球的体积是:
b.get_volume()<
------------------------------------"
tapert(3,5);
该圆锥的表面积是:
t.get_surface()<
该圆锥的体积是:
t.get_volume()<
columnc(3,5);
该圆柱的表面积是:
c.get_surface()<
该圆柱的体积是:
c.get_volume()<
4、输入以下程序,分析运行结果。
classB1
B1(inti)
b1=i;
cout<
构造函数B1."
b1<
voidprint(){cout<
intb1;
classB2
B2(inti)
b2=i;
构造函数B2."
b2<
intb2;
classB3
B3(inti)
b3=i;
构造函数B3."
b3<
intgetb3(){returnb3;
intb3;
classA:
publicB2,publicB1
A(inti,intj,intk,intl):
B1(i),B2(j),bb(k)
a=l;
构造函数A."
a<
voidprint()
B1:
:
print();
B2:
inta;
B3bb;
Aaa(1,2,3,4);
aa.print();
修改上面的4个类,添加析构函数,在析构函数中输出各私有数据成员的值。
并分析结果。
三、实验要求
1、写出程序,并调试程序,要给出测试数据和实验结果。
2、整理上机步骤,总结经验和体会。
完成实验报告和上交程序