欢迎来到天天文库
浏览记录
ID:52715780
大小:431.00 KB
页数:9页
时间:2020-03-29
《实验五:派生类和继承(二).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、福建农林大学实验报告实验5派生类和继承(二)一、实验目的和要求(1)掌握派生类的声明与定义方法,进一步理解类的继承的概念,能够定义和使用类的继承关系。(2)熟悉公有派生和私有派生的访问特性。(3)了解虚基类在解决二义性问题中的作用。二、实验内容和原理1、试写出所能想到的所有形状(包括二维的和三维的),生成一个形状层次类结构。生成的层次结构以Shape作为基类,并由此派生出TwoDimShape类和ThreeDimShape类。它们的派生类是不同形状类,定义层次结构中的每一个类,并用函数main()进行测试。2、设计一个学生类CStudent。数据成员包括学生姓名,性别,年龄,学号,已修学分。成
2、员函数包括输入输出或修改学生姓名、学号,增加已修学分。设计一个教师类CTeacher。数据成员包括教师姓名,性别,年龄,职称,担任课程。成员函数包括输入输出或修改教师姓名、年龄,更改职称等。以CStudent为基类派生子类CGraduateStudent。增加数据成员导师姓名、研究生已发表论文的数目;成员函数为增加已发表论文数目。最后,用函数main()函数进行测试。(提示:可为CStudent类和CTeacher类创建一个公共基类)三、实验环境1.硬件:PC机;2.软件:Windows操作系统、VisualC++6.0四、算法描述及实验步骤#includeconstd
3、oublePI=3.14;classshape{public:shape(){};doublearea()const{return0.0;}doublebulk()const{return0.0;}};classTwoDimShape:publicshape{};classCircle:publicTwoDimShape{public:Circle(doublemyr){R=myr;}doublearea()const{returnPI*R*R;}protected:doubleR;};classThreeDimShape:publicshape{};classsphere:publicThr
4、eeDimShape{public:sphere(doublemyw){R=myw;}doublebulk()const{return4/3*PI*R*R*R;}protected:doubleR;};intmain(){shapesha;doublearea;doublebulk;Circlec(3.0);area=c.area();cout<<"Areaofcircleis"<#
5、includeusingnamespacestd;classPerson{public:Person(stringn,strings,inta){name=n;sex=s;age=a;}voidinput(){cin>>"姓名:">>name;cin>>"性别:">>sex;cin>>"年龄:">>age;}voiddisplay(){cout<<"姓名:"<6、:virtualpublicPerson{public:Teacher(stringn,strings,inta,stringt,stringl):Person(n,s,a){title=t;lesson=l;}voidinput(){Person::input();cin>>"职称:">>title;cin>>"担任课程:">>lesson;}voiddisplay(){Person::display();cout<<"职称:"<7、ssStudent:virtualpublicPerson{public:Student(stringn,strings,inta,stringno,stringc):Person(n,s,a){num=no;credit=c;}voidinput(){Person::input();cin>>"学号:">>num;cin>>"已修学分:">>credit;}voiddisplay(){Perso
6、:virtualpublicPerson{public:Teacher(stringn,strings,inta,stringt,stringl):Person(n,s,a){title=t;lesson=l;}voidinput(){Person::input();cin>>"职称:">>title;cin>>"担任课程:">>lesson;}voiddisplay(){Person::display();cout<<"职称:"<
7、ssStudent:virtualpublicPerson{public:Student(stringn,strings,inta,stringno,stringc):Person(n,s,a){num=no;credit=c;}voidinput(){Person::input();cin>>"学号:">>num;cin>>"已修学分:">>credit;}voiddisplay(){Perso
此文档下载收益归作者所有