实验二 类及类的继承.docx
- 文档编号:7293885
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:10
- 大小:16.64KB
实验二 类及类的继承.docx
《实验二 类及类的继承.docx》由会员分享,可在线阅读,更多相关《实验二 类及类的继承.docx(10页珍藏版)》请在冰豆网上搜索。
实验二类及类的继承
C++与数据结构
实验指导书
实验二类及类的继承
一、实验目的
1、熟悉并掌握类的概念及定义类的格方法;
2、掌握类对象的定义;
3、掌握构造函数和析构函数的含义与作用以及定义方式和实现方法;
4、理解继承的含义,掌握派生类的定义方法和实现;
5、理解多继承的概念及多继承中构造与析构的应用。
二、实验内容
1、定义一个学生类,数据成员有学号、姓名、年龄,并使用成员函数实现如下功能:
(1)使用成员函数实现输入、输出;
(2)使用构造函数和析构函数实现对数据的输入、输出;
编写主函数使用这个类,实现对学生数据的赋值和输出。
#include
#include
usingnamespacestd;
classstudent{
private:
intnumber;
stringname;
intage;
public:
student(inta,stringb,intc)
{
number=a;name=b;age=c;
cout<<"学号:
"< "< "< } ~student() { cout<<"学号: "< "< "< } }; intmain() { students1(1412010708,"雷宇",20); students2(1412010709,"李嘉锡",18); students3(1412010710,"刘奇瑞",19); return0; } 2、定义日期类Date。 要求: (1)可以设置日期; (2)日期加一天操作; (3)输出函数,输出格式为“XXXX年XX月XX日”; (4)编写主函数,定义对象,完成相应功能。 #include usingnamespacestd; //判断year是否是闰年 boolisLeapYear(intyear) { return(year%400==0||(year%4==0&&year%100! =0)); } //日期类 classDate{ private: intyear; intmonth; intday; public: Date() {} Date(intyear,intmonth,intday) {this->year=year; this->month=month; this->day=day; } //1.设置日期 voidsetDate(intyear,intmonth,intday) {this->year=year; this->month=month; this->day=day; } //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: {if(day>31) {day=1; month=1; year++; } break; } //c.讨论4,6,9,11月份 case4: case6: case9: case11: {if(day>30) {day-=30; month++; } break; } //d.讨论2月份 case2: {if(isLeapYear(year)) {if(day>29) {day-=29; month++; } } else { if(day>28) {day-=28; month++; } } break; } default: cout<<"error! "; {break; } } } //3.输出函数,输出格式为: XXXX年XX月XX日,如2010年4月11日 voiddisplay() { cout< } }; //输入函数,输入格式为: XXXXXXXX DateInputDate() { intyear,month,day; Datenow=Date(); cin>>year>>month>>day; now.setDate(year,month,day); returnnow; } voidmain() { Datenow=Date(); cout<<"请输入日期(XXXXXXXX)"; now=InputDate(); cout<<"日期: "; now.display(); now.addOneDay(); cout<<"一天后: "; now.display(); //设置日期: 北京奥运会 cout<<"设置新日期"< now.setDate(2008,8,8); cout<<"新日期: "; now.display(); now.addOneDay(); cout<<"一天后: "; now.display(); } 3、编写一个程序计算出球、圆柱和圆锥的表面积和体积。 要求: (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员; (2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数; (3)编写主函数,求球、圆柱、圆锥的表面积和体积。 #include #include usingnamespacestd; constdoublepi=3.1415926; classcircle//基类圆 { public: 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;} private: doublesurface; doublevolume; }; classtaper: publiccircle//圆锥类 { public: 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;} doubleget_surface(){returnsurface;} doubleget_volume(){returnvolume;} private: doublel;//圆锥侧长 doublesurface; doublevolume; }; classcolumn: publiccircle//圆柱类 { public: column(doublerad,doublehigh): circle(rad) { h=high; } voidcom_surface(){surface=pi*r*r*2+2*pi*r*h;} voidcom_volume(){volume=pi*r*r*h;} doubleget_surface(){returnsurface;} doubleget_volume(){returnvolume;} private: doubleh;//圆柱高 doublesurface; doublevolume; }; voidmain() { ballb(3); _surface(); _volume(); cout<<"该球的表面积是: "< cout<<"该球的体积是: "< cout<<"------------------------------------"< tapert(3,5); _surface(); _volume(); cout<<"该圆锥的表面积是: "< cout<<"该圆锥的体积是: "< cout<<"------------------------------------"< columnc(3,5); _surface(); _volume(); cout<<"该圆柱的表面积是: "< cout<<"该圆柱的体积是: "< } 4、输入以下程序,分析运行结果。 #include usingnamespacestd; classB1 { public: B1(inti) { b1=i; cout<<"构造函数B1."< voidprint(){cout< private: intb1; }; classB2 { public: B2(inti) { b2=i; cout<<"构造函数B2."< voidprint(){cout< private: intb2; }; classB3 { public: B3(inti) { b3=i; cout<<"构造函数B3."< intgetb3(){returnb3;} private: intb3; }; classA: publicB2,publicB1 { public: A(inti,intj,intk,intl): B1(i),B2(j),bb(k) { a=l; cout<<"构造函数A."< voidprint() { B1: : print(); B2: : print();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 类及类的继承 实验 继承