《C++实验报告--继承和派生(共6页).doc》由会员分享,可在线阅读,更多相关《C++实验报告--继承和派生(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 面向对象程序设计 实验报告实验名称 继承和派生 实验室 522 实验日期 2012/12/18 一、实验目的 1、进一步巩固C+语言中类和对象的概念和应用。2、掌握继承和派生的概念和实现。二、实验要求1、进一步熟练掌握类和对象的概念,使用的方法,访问的规则。2、掌握单继承的概念和应用。3、掌握多继承和虚基类的概念,并熟练应用。三、实验内容1、定义一个点类,矩形类,长方体类,其中点类派生了矩形类,矩形类派生了长方体类,要求每个类设计构造函数,点类中添加成员函数能够计算任意两点的距离,矩形类能够计算面积和周长,长方体类能够计算体积和表面积。(1).源程序:#includ
2、e using namespace std;#include math.hclass Pointprivate:int X,Y;public: Point(double x1,double y1)X=x1;Y=y1; double Getx()return X; double Gety()return Y; void showXY()cout点:(X,Y)endl; void distance(Point& p) double dX=X-p.X; double dY=Y-p.Y; cout距离:distance=sqrt(dX*dX+dY*dY) (cm)endl; ;class Rectan
3、gle:public Pointprotected:int A,B;public:Rectangle(int a,int b,int X,int Y):Point(X,Y)A=a;B=b; int show_area()return A*B;void show_area1()cout面积:A*B= A*B (cm2)endl;void show_zhouchang()cout周长:2*(A+B)= 2*(A+B) (cm)H=H; void show_volume()cout体积:A*B*H= H*(Rectangle:show_area() (cm3)endl; void show_biao
4、mianji() cout表面积: 2*(A*B+A*H+B*H)= 2*(A*B+A*H+B*H) (cm2)endl; ;void main()Point C(6,8),D(3,4);C.showXY();D.showXY();D.distance(C);Rectangle E(3,4,1,2);E.show_area1();E.show_zhouchang();Cuboid F(4,3,4,1,2);F.show_volume();F.show_biaomianji();(2).运行结果:2、根据如图所示编辑程序,计算教师的课时,计算学生的平均成绩,假定每个学生3门课程,并输出每个类的信
5、息(例如教师的职称,学生的专业等,程序实现要求使用到虚基类的知识)。(1).源程序:#include using namespace std;#include math.hclass Personprivate:int age;public:Person(int age)this-age=age;coutPerson constructing.endl;void show()coutPerson age:agelesson=lesson;coutTeacher constructing.endl;void show()Person:show();coutTeacher lesson:lesso
6、ngrade1=grade1; this-grade2=grade2; this-grade3=grade3; coutStudent constructing.; void show() Person:show(); coutStudent Grade:endl; coutgrade1:grade1endl; coutgrade2:grade2endl; coutgrade3:grade3endl; coutAverage Grade:(grade1+grade2+grade3)/3money=money; coutZhu_jiao constructing.endl; void show(
7、) Teacher:show(); coutZhu_jiao money:moneyClass=Class; coutYan constructing.endl; void show() Student:show(); coutYan Class.Classendl; ;class YJSZJ:public Teacher,public Studentpublic:YJSZJ(int age,int lesson,double grade1,double grade2,double grade3,int money,int Class):Person(age),Student(age,grade1,grade2,grade3),Teacher(age,lesson) coutconstructing.endl; void show() coutYJSZJ:endl; Teacher:show(); Student:show(); ;void main()YJSZJ x(21,50,98.0,99.0,97.0,5000,02);x.show();(2).运行结果:专心-专注-专业