




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌航空大学实验报告 2011年11月16号课程名称:面向对象程序设计B 实验名称: 继承与多态性 班级: 姓名: 同组人: 无 指导教师评定: 签名: 一、实验目的根据现有类建立新类;学习构造基类和虚函数的用法。二、实验内容应用VC+6.0的编辑环境构造一个类Jhtx及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。 试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。三、概要设计 要实现的功能:求类圆和矩的面积、周长,求类圆的派生类圆球和圆柱表面积、体积; 函数原型:double Ball:GetArea(); double Ball:Getvolume(); double Circle:GetArea(); double Circle:Getperimeter(); double Column:GetArea(); double Column:Getvolume(); double Rectangle:GetArea(); double Rectangle:Getperimeter();void Show();4、 详细设计定义纯虚函数: virtual double Get_Girth()=0; virtual double Get_Volume()=0; virtual double Get_SurArea()=0; virtual double Get_Area()=0; 求圆的面积的操作:double Circle:GetArea()return M*radiums*radiums;求圆周长的操作:double Circle:Getperimeter()return 2*M*radiums;求球表面积的操作:double Ball:GetArea() return 4.0*M*radiums*radiums;求球体积的操作:double Ball:Getvolume() return 4/3*M*radiums*radiums*radiums;求圆柱表面积的操作:double Column:GetArea()return 2*M*(radiums*H+radiums*radiums);求圆柱体积的操作:double Column:Getvolume()return M*H*radiums*radiums;求矩形面积的操作:double Rectangle:GetArea()return Long*Wide;求矩形周长的操作:double Rectangle:Getperimeter()return 2*(Long+Wide);五、程序调试 在函数调试的过程中,出现了以下错误提示信息: 1、 error C2470: “Circle”: 看起来像函数定义,但没有参数列表;跳过明显的函数体; 原因为在语句“double Circle:GetArea()”将域作用符“:”错写为“:“;经调试无误后,运行的结果为:6、 实验总结 通过这次的试验,我明显的感觉到自己对这方面的知识掌握的还不够熟练,不能顺利地、流畅地运用这方面的知识,因为我没有在规定的时间内完成程序的设计,课后还是要多复习。七、附录(源程序代码)#include#define M 3.14class Geometryprivate: double R; public:Geometry(double r) R=r; virtual double GetArea()=0;virtual double Getperimeter()=0;virtual double Getvolume(); virtual void show()=0;double Geometry:Getvolume() cout求体积操作endl; return 0;class Circle:public Geometryprotected:double radiums;public:Circle(double r):Geometry(r) radiums=r;double GetArea();double Getperimeter(); void show();double Circle:GetArea()return M*radiums*radiums;double Circle:Getperimeter()return 2*M*radiums;void Circle:show() cout这个圆的面积是:GetArea()endl; cout这个圆的周长是:Getperimeter()endl;class Ball:public Circlepublic: Ball(double x):Circle(x) double GetArea(); double Getvolume(); void show();double Ball:GetArea() return 4.0*M*radiums*radiums;double Ball:Getvolume() return 4/3*M*radiums*radiums*radiums;void Ball:show() cout这个球的表面积:GetArea()endl; cout这个球的体积是:Getvolume()endl;class Column:public Circleprivate:double H;public:Column(double x,double h):Circle(x) H=h; double GetArea();double Getvolume(); void show();double Column:GetArea()return 2*M*(radiums*H+radiums*radiums);double Column:Getvolume()return M*H*radiums*radiums; void Column:show() cout这个圆柱的表面积是:GetArea()endl; cout这个圆柱的体积是:Getvolume()endl; class Rectangle:public Geometryprivate: double Long,Wide;public: Rectangle(double x,double y,double r):Geometry(r) Long=x; Wide=y; double GetArea(); double Getperimeter(); void show();double Rectangle:GetArea()return Long*Wide;double Rectangle:Getperimeter()return 2*(Long+Wide);void Rectangle:show()cout这个矩形的面积是:GetArea()endl;cout这个矩形的周长是:Getperimeter()endl;int main() Geometry *A;cout1.平面圆操作2.圆球操作3.圆柱操作4.矩形操作endl;cout请输入你要计算的几何体:(如输入1,2,3,4)?i;if(i=1) cout请输入该圆的半径:R1; Circle A1(R1); A=&A1; A-show();else if(i=2) cout请输入该球的半径:R2; Ball A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论