【2017年整理】面向对象程序设计实验报告-实验三

上传人:爱****1 文档编号:943418 上传时间:2017-05-23 格式:DOC 页数:11 大小:311KB
返回 下载 相关 举报
【2017年整理】面向对象程序设计实验报告-实验三_第1页
第1页 / 共11页
【2017年整理】面向对象程序设计实验报告-实验三_第2页
第2页 / 共11页
【2017年整理】面向对象程序设计实验报告-实验三_第3页
第3页 / 共11页
【2017年整理】面向对象程序设计实验报告-实验三_第4页
第4页 / 共11页
【2017年整理】面向对象程序设计实验报告-实验三_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《【2017年整理】面向对象程序设计实验报告-实验三》由会员分享,可在线阅读,更多相关《【2017年整理】面向对象程序设计实验报告-实验三(11页珍藏版)》请在金锄头文库上搜索。

1、1北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY班级:13 级计算机 3 班 学号:130201031037 姓名:郑永雄 指导教师:谭忠兵 实验题目:多态性 实验时间:2014-06-09 成绩:一、实验内容程序 1. 编写一个程序,用成员函数重载运算符“+ ”和“-”将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。程序 2. 编写一个程序,要求:(1)声明一个类 complex,定义类 complex 的两个对象 c1 和 c2,对象 c1 通过构造函数直接指定复数

2、的实部和虚部(类私有数据成员为 double 类型:real 和 imag)为 2.5 及 3.7,对象c2 通过构造函数直接指定复数的实部和虚部为 4.2 及 6.5;(2)定义友元运算符重载函数,它以 c1、c2 对象为参数,调用该函数时,能返回两个复数对象相加操作;(3)定义成员函数 print,调用该函数时,以格式“(real,imag) ”输出当前对象的实部和虚部,例如:对象的实部和虚部分别为 4.2 和 6.5,则调用 print 函数输出格式为:(4.2,6.5) ;(4)编写主程序,计算出复数对象 c1 和 c2 相加结果,并将其结果输出。程序 3. 写一个程序,定义抽象基类

3、Container,由它派生出 3 个派生类:Sphere(球体) 、Cylinder(圆柱体) 、Cube (正方体) 。用虚函数分别计算几种图形的表面积和体积。程序 4.编写程序:定义抽象基类 Shape,area( )为求图形面积的虚成员函数。由它派生出三个派生类:Circle(圆形) 、Rectangle(长方形) 、和 Triangle (三角形) ,用虚函数 area 分别计算各种图形的面积。在主函数中,分别创建派生类的对象并计算其面积,求出它们的面积的和。要求用基类指针数组,使它的每一个元素指向一个派生类的对象,以体现多态性。程序 5.计算正方体、球体、圆柱体的体积。要求:定义基

4、类 shape,在其中定义求体积的纯虚函数 volume,并定义一个数据成员 r,它可作为球体的半径、正方体的边长以及圆柱体的底面圆半径。由 shape 类派生出 3 个类,分别是正方体类、球体类和圆柱体类,在这 3 个类中都具有求体积的重定义版本。在主函数中统一求 3 种对象的体积,实现多态性。二、问题分析(类的数据成员、成员函数等的确定,对象的创建等)程序1:首先定义一个数组类,数据成员是数组c23,成员函数有运算符重载函数shuzu operator+(int b23)和shuzu operator-(int b23),当然还有输出函数 show。在主函数中创建对象x,y,z。当然也要按

5、要求输入数组。程序2:首先定义类complex,数据成员有real和imag,成员函数有友元运算符重载函数friend complex operator+(complex &a,complex &b)和输出函数print。在主函数中创建对象c1和c2,最后运算结果。2程序3:首先定义抽象基类Container,数据成员有r,成员函数有友元虚函数 virtual void s_v()由它公有派生出3个派生类:Sphere(球体) 、Cylinder(圆柱体) 、Cube(正方体) 。在主函数中分别创建各派生类的对象s1,c1和,c2。用虚函数virtual void s_v()分别计算3种图形的

6、表面积和体积。程序 4:首先定义抽象基类 Shape,数据成员有 a 和 b,area( )为求图形面积的虚成员函数。由它公有派生出三个派生类:Circle(圆形) 、Rectangle(长方形) 、和 Triangle (三角形) ,用虚函数 area 分别计算各种图形的面积。在主函数中,创建基类指针 ptr,分别创建派生类的对象 c1, r1 和 t1。Ptr 指针指向派生类的对象,用 area()计算其面积。程序 5:首先定义基类 shape,在其中定义求体积的纯虚函数 volume,并定义一个数据成员r,它是球体的半径、正方体的边长以及圆柱体的底面圆半径。由 shape 类派生出 3

7、个类,分别是正方体类、球体类和圆柱体类,圆柱体增加数据成员 h,在这 3 个类中都具有求体积的重定义版本。在主函数中创建对象 s1 ,c1 和 c2,并调用各自的纯虚函数 volume 计算体积。三、程序实现(完整程序)程序1:#include#includeusing namespace std;class shuzupublic:shuzu()for(int i=0;ik;nij=k;cout#includeusing namespace std;class complexpublic:complex(double r=0,double i=0);friend complex operat

8、or+(complex &a,complex &b);void print()cout#includeusing namespace std;class Containerpublic:Container(double r1)r=r1;virtual void s_v()cout#includeusing namespace std;class shapepublic:shape(double x,double y)a=x;b=y;virtual void area()=0;protected:double a;double b;class Circle:public shapepublic:

9、Circle(double x):shape(x,x)void area()const double pi=3.14159262;7coutarea();ptr=&r1;ptr-area();ptr=&t1;ptr-area();getchar();getchar();return 0; 程序 5:8#include#includeusing namespace std;class shapepublic:shape(double r1)r=r1;virtual void volume()=0;protected:double r;class Sphere:public shapepublic

10、:Sphere(double r1):shape(r1)void volume()const double pi=3.14159262;cout球体的半径是:rendl;cout体积是:(4/3)*pi*r*r*rendl;class Cylinder:public shapepublic:Cylinder(double r1,double h1):shape(r1)h=h1;void volume()const double pi=3.14159262;cout圆柱体的半径是:r高是:hendl;cout体积是:h*pi*r*rendl;private:double h;class Cube

11、:public shapepublic:Cube(double r1):shape(r1)void volume()cout正方体的边长是:rendl;cout体积是:r*r*rendl;9;int main()system(color 3D);Sphere s1(2);s1.volume();Cylinder c1(3,4);c1.volume();Cube c2(5);c2.volume();getchar();getchar();return 0;4、调试与运行程序 1 的运行结果:程序 2 的运行结果:程序 3 的运行结果:10程序 4 的运行结果:程序 5 的运行结果:5、实验总结:

12、1、学会了面向对象程序的多态性。掌握了运算符的重载和运用虚函数,当然对类的继承更加熟悉了,同时还学会了运用 system 函数调整运行界面的颜色,使运行结果更好看。2、遇到了什么问题,如何解决的。这次在写程序时,一时大意忘了写 public,结果共有成员都变成私有的,在写主函数时,发现公有成员都无法访问。最后细心检查才发现问题。在写程序 1 时发现自己对运算符的重11载还不太熟悉,只能翻翻书熟悉在写了。3、实验中需要特别注意什么,有哪些细节和技巧。在写程序前先不要急着写,应该先弄清楚所写的程序要运用哪些基本知识,自己如果对哪些知识不熟悉就得巩固一下,在按照题目要求弄清这个程序的思路,在写这样会减少很多不必要的麻烦。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号