实验7 继承与派生
更新时间:2023-03-15 18:21:01 阅读量: 教育文库 文档下载
- 实验班提优训练推荐度:
- 相关推荐
电子信息学院 实验报告书
课程名: 面向对象程序设计
题 目: 实验7 继承与派生
实验类别 设计 班 级: BX1004 学 号: 35 姓 名: 赵鑫
评语: 实验态度:认真( ) 一般( ) 差( ) 实验结果:正确( ) 部分正确( )错( ) 实验理论:掌握( ) 熟悉( ) 了解( ) 不懂( ) 操作技能:强( ) 一般( ) 差( ) 实验报告:好( ) 一般( ) 差( ) 成绩: 指导教师: 陈群贤 批阅时间: 年 月 日 一.实验目的
1. 理解继承的含义,掌握派生类的定义方法和实现;
2. 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层
次中的各种类成员;
3. 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员
可以访问基类的部分非公开的成员;
4. 理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。 二.实验内容
1. 将例5.2的程序片段补充和改写成一个完整、正确的程序,用私有继承方式。在程序
中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。
2. 编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教
师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。 3. 编写一个程序计算出球、圆柱和圆锥的表面积和体积。 要求:
(1) 定义一个基类圆,至少含有一个数据成员半径; (2) 定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。 (3) 定义主函数,求球、圆柱、圆锥的和体积(初始化用构造函数)。
3.实验结果
⑴ #include
void get_value()
{cin>>num>>name>>sex;} void display()
{cout<<\学号:\cout<<\姓名:\cout<<\性别:\private:
char num[20]; char name[10]; char sex[10]; };
class Student1:private Student {public:
void get_value_1() {get_value(); cin>>age>>addr;} void display_1() {
display();
cout<<\年龄:\ cout<<\住址:\}
private: int age;
char addr[30]; };
int main() {
cout<<\请输入学生学号 姓名 性别 年龄 住址:\ Student1 stud1;
stud1.get_value_1();
cout<<\ cout< stud1.display_1(); cout< cout<<\ cout<<\欢迎再次使用!\ cout<<\喜迎“十八大”\ return 0; } 运行结果: ⑵ #include {public: Student(int a,string nam,string ban,string sco) {number=a; name=nam; banji=ban; score=sco; } void display() {cout<<\编号:\cout<<\姓名:\cout<<\班级:\cout<<\成绩:\} protected: int number; string name; string banji; string score; }; class Teacher {public: Teacher(int n,string nam,string tit,string dep) {number=n; name=nam; title=tit; department=dep; } void display1() {cout<<\编号:\cout<<\姓名:\cout<<\职称:\ cout<<\部门:\} protected: int number; string name; string title; string department; }; class Person:public Student,public Teacher {public: Person(int a,string nam,string ban,string sco,int n,string nam1,string tit,string dep): Student(a,nam,ban,sco),Teacher(n,nam1,tit,dep){} void show() {cout<<\人类 学生编号:\cout<<\人类 学生姓名:\cout<<\人类 学生班级:\cout<<\人类 学生成绩:\cout< void show1() {cout<<\人类 教师标号:\cout<<\人类 教师姓名:\cout<<\人类 教师职称:\ cout<<\人类 教师部门:\cout< int main() {Person Per(1,\赵鑫\夏建国\校长\行政\Per.show1(); Per.show(); return 0; } 运行结果: (3)#include class banjing(int bj,int h); {public: banjing(int bj) {R=bj;} void display(); protected: int R; }; class qiu:public banjing {public: qiu(int R):banjing(R) { R1=R; s1=4*pi*R1*R1; v1=4/3*pi*R1*R1*R1; } void show() { cout<<\球的表面积为:\ cout<<\球的体积为:\ cout< protected: int R1; float s1; float v1; }; class yuanzhu:public banjing {public: yuanzhu(int R,int h):banjing(R,h) { h2=h; R2=R; s2=pi*R2*R2+4*pi*R2*h2; v2=pi*R2*R2*h2; } void show() { cout<<\圆柱的表面积为:\ cout<<\圆柱的体积为:\ cout< protected: int R2; int h2; float s2; float v2; }; class yuanzhui:public banjing {public: yuanzhui(int R,int h):banjing(R,h) { h3=h; R3=R; s3=pi*R3*R3+38.0; v3=1/3*pi*R3*R3*h3; } void show() { cout<<\圆锥的表面积为:\ cout<<\圆锥的体积为:\ cout< protected: int R3; int h3; float s3; float v3; }; int main() { banjing ban(2,3); ban.show(); return 0; } 运行结果: 4.结果分析与实验体会 本次实验,我进一步熟悉和掌握了《继承和派生》的相关知识。截止到本章节,我们已经学习了C++的抽象性、封装性、继承派生性。一个新类从已有的类那里获得其已有特性, 这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父亲的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。这些定义,我通过课本例题、课后习题和本次实验得到了更深层次的理解。派生类是基类的具体化,而基类则是派生类的抽象。 在实验的第二道题中,由于最初编写时没有注意到多重继承引起的二义性问题,所以出错。通过进一步学习,我对多重继承引起的二义性问题有了更深的理解。由于老师和学生都有姓名和编号,所以使用基类名来限定是必不可少的,否则编译系统会发出ambiguous的错误提示。如:“cout<<\人类 学生姓名:\”,可避免程序中的二义性。在实验不断验证、修改的过程中,我对本章的知识点有了更深刻的理解和认识。 最后,感谢老师的指导。
正在阅读:
实验7 继承与派生03-15
坚决拥护支持改革02-11
智慧电厂信息化建设解决方案07-04
2016年福建事业单位面试题总汇05-05
我爱挑战作文800字06-21
电流线圈骨架注射模设计09-06
西藏旅游业发展的现状及未来110-07
试论现代教育技术在英语教学中的应用01-10
全市科级领导干部党风廉政教育大会主持词01-17
公务员跟班学习个人总结04-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 派生
- 继承
- 实验