版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深 圳 大 学 实 验 报 告 课程名称: C+程序设计 实验项目名称: 继承与派生的基本概念 学院: 信息工程学院 专业: 通信工程 指导教师: 张力 报告人: 学号: 2011130151 班级: 2班 实验时间: 2013年12月4日 实验报告提交时间: 2013年12月30日 教务处制实验目的与要求:1.练习实践教程P81范例,定义一个继承与派生关系的类体系,在派生类中访问基类成员。先定义一个点类,包含x,y坐标数据成员,显示函数和计算面积的函数成员; 以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数;定义一个线段类,以两个点类对象作数据成员,定义显示、求面积及
2、长度函数,线段类采用聚合方式,因为有两个端点,不能用派生。编程测试所定义类体系,体会和熟悉继承与派生的基本概念及实现方法,掌握派生类构造函数初始化基类成员和对象成员的方法。2. 实践教程P83编程,多层派生练习,由上面Point类和Circle类继续派生出Cylinder类,计算圆柱的底面积、侧面积、全面积和体积,编写所有完整成员函数,并编写主函数进行验证。方法、步骤:1.打开VC+,选择file|new 菜单,单击project标签,打开其选项卡,选择win32 console application 工程类型,在project name 文本框中输入工程名5_1,在location 文本框
3、中输入工程路径,单击OK按钮,在弹出的对话框中选择an empty project,单击finish按钮。2.选择file|new 菜单,单击files选项卡,选择C+ source file,在file文本框中输入文件名5_1.cpp,选中add to project 复选框,单击OK按钮。3. 打开源文件编辑窗口,按要求编写代码。编写完成后,保存,编译。若编译无错误,则链接,执行。若出现错误,则根据error框显示的错误逐行进行修正。执行过程中,若产生死循环,则应回到源程序找出错误,直至符合要求为止。实验过程及内容:实验代码:#include<iostream>#include
4、<cmath>using namespace std;#define PI 3.14159class Pointprotected :double x,y;public:Point()x=0;y=0;Point(double xv,double yv)x=xv;y=yv;double Area()return 0;void Show()cout<<"x="<<x<<"y="<<y<<endl;class Circle:public Pointfriend class Cylinder
5、;double radius;public:Circle()x=0;y=0;radius=0;Circle(double xv,double yv,double vv):Point(xv,yv)radius =vv;Circle(Circle & cir):Point(cir)radius =cir.radius;Circle & operator=(Circle & cir)this->Point:operator=(cir);radius=cir.radius;return *this;double Area()return PI*radius*radius;
6、void Show()cout<<"x="<<x<<"y="<<y<<"radius="<<radius<<endl;class Cylinder:public Circle /Cylinder类double height;public:Cylinder()x=0;y=0;radius=0;height=0;Cylinder(double xv,double yv,double vv,double hv):Circle(xv,yv,vv)height=
7、hv; /调用派生类构造函数 Cylinder(Cylinder & cyl):Circle(cyl)/赋值兼容规则,cyl可作Circle构造函数实参height=cyl.height;Cylinder & operator=(Cylinder & cyl)/重载复制赋值操作符固有标准格式this->Circle:operator =(cyl);height=cyl.height;return *this;double Area() /圆柱底面积return PI*radius*radius;double LateralArea() /圆柱侧面积return P
8、I*2*radius*height;double GrossArea() /圆柱全面积return PI*radius*radius*2+PI*2*radius*height;double Volume() /圆柱体积return PI*radius*radius*height;void Show()cout<<"x="<<x<<'t'<<"y="<<y<<'t'<<"radius="<<radius<
9、<'t'<<"height="<<height<<endl;int main()Cylinder cy1(100,100,10,10),cy2(cy1),cy3;cout<<"cy1 底面积:"<<cy1.Area()<<'t'<<"cy1 侧面积:"<<cy1.LateralArea()<<endl<<"cy1 全面积:"<<cy1.GrossA
10、rea()<<'t'<<"cy1 体积:"<<cy1.Volume()<<endl;cy1.Show();cout<<"cy2 底面积:"<<cy2.Area()<<'t'<<"cy2 侧面积:"<<cy2.LateralArea()<<endl<<"cy2 全面积:"<<cy2.GrossArea()<<'t'&
11、lt;<"cy2 体积:"<<cy2.Volume()<<endl;cy2.Show();cy3=cy1;cout<<"cy3 底面积:"<<cy3.Area()<<'t'<<"cy3 侧面积:"<<cy3.LateralArea()<<endl<<"cy3 全面积:"<<cy3.GrossArea()<<'t'<<"cy3 体积:"<<cy3.Volume()<<endl;cy3.Show();return 0;数据处理分析:思考题:(1)(2)将x,y访问权限改成private,再运行,编译出错。不允许private成员公开化。(3)若不将Cline设为CPoint友元,需在Cline中重新定义点start和end。实验结论: 通过这次的实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南京师范大学附属中学栋梁学校保健教师招聘备考题库完整参考答案详解
- 2026年中远海运集装箱运输备考题库服务有限公司招聘备考题库完整参考答案详解
- 2026年中国联通丽江分公司招聘16人备考题库参考答案详解
- 2026年广东省阳江市江城第一中学公开引进高层次(急需紧缺)人才9人备考题库及一套参考答案详解
- 2026年华东师范大学附属闵行永德学校教师招聘(第二批)备考题库及答案详解参考
- 保健调理考试题及答案
- 2026年中关村第二小学教育集团招聘备考题库完整答案详解
- 2026年吉安市人才资源开发服务有限公司招聘备考题库及一套参考答案详解
- 阿u考试题及答案
- 校园安全宣讲课讲解
- 送你一朵小红花评语
- 2025至2030中国IT培训行业项目调研及市场前景预测评估报告
- 2025年国家开放大学《普通心理学(研究生)》期末考试参考题库及答案解析
- 多联机空调安装施工方案
- 2025秋期版国开河南电大专科《公务员制度讲座》一平台我要考试无纸化考试试题及答案
- 2025年三亚塑料包装材料项目可行性研究报告
- 2025年证券从业资格考试试卷及参考答案
- 2025贵州铜仁市公开招聘专业化管理村党组织书记43人考试参考题库及答案解析
- 菏泽在线食品安全培训课件
- 小数四则混合运算专项练习276题(有答案)
- 国家事业单位招聘2025中国民用航空局清算中心应届毕业生招聘笔试历年参考题库附带答案详解
评论
0/150
提交评论