c++第五次实验报告.docx
文本预览下载声明
1、实验目的根据现有类建立新类;学习构造基类和虚函数的用法。2、实验内容应用VC++6.0的编辑环境构造一个类Jhtx及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。 试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。3、概要设计(1)实现的功能:本次实验应用到了继承与多态的一些主要应用,通过构造类及其派生类,实现关于几何图形的基本操作。对于基类“几何图形”,有求面积,求周长操作(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。(2)函数原型及纯虚函数:Geometry(double r); //构造函数~Geometry(); //析构函数virtual double GetArea()=0; //纯虚函数,求面积virtual double Getperimeter()=0; //纯虚函数,求周长virtual double Getcolume(); //球体积函数virtual void show()=0; //纯虚函数,输出函数4、详细设计1、声明一个抽象类,在内定义纯虚函数:class Geometry{private: double R; public:Geometry(double r){R=r;}~Geometry(){}virtual double GetArea()=0;//求面积的纯虚函数virtual double Getperimeter()=0;//求周长的纯虚函数virtual double Getcolume(){return 0;}virtual void show()=0;//输出纯虚函数};2、声明圆派生类:class Circle:public Geometry{//派生一个类Circleprotected:double radiums;//在派生类圆内定义一个保护变量public:Circle(double r):Geometry(r){radiums=r;}~Circle(){} doubleGetArea(){return M*radiums*radiums;}//求面积函数doubleGetperimeter(){return 2*M*radiums;}//求周长函数void show(){cout-----------------圆的面积和周长-----------------endl;cout它的面积是:GetArea()endl;cout它的周长是:Getperimeter()endl; }};3、声明矩形派生类 class Rectangle:public Geometry{//派生一个矩形类private:double L,W;public:Rectangle(double x,doubley,double r):Geometry(r) { L=x; W=y; }//构造函数实现初始化doubleGetArea() {return L*W; }//求矩形的面积doubleGetperimeter() {return 2*(L+W); }//求矩形的周长void show() {cout-----------------矩形的面积和周长-----------------endl;cout它的面积是:GetArea()endl;cout它的周长是:Getperimeter()endl; }};4、声明类圆的派生类圆球class Ball:public Circle{//类圆的派生类圆球public:Ball(double x):Circle(x) { } ~Ball() {}doubleGetArea() {return 4.0*M*radiums*radiums; }//求圆球的面积doubleGetcolume() { return 4/3*M*radiums*radiums*radiums; }//球圆球的体积void show() {cout-----------------球的表面积和周长-----------------endl;cout它的表面积是:GetArea()endl;cout它的体积是:Getcolume()endl; }};5、声明类圆的派生类圆柱c
显示全部