c++习题1_H_虚函数-计算图形面积
来源:互联网 发布:小啰啰崩没哏网络直播 编辑:程序博客网 时间:2024/05/21 10:38
/**作者:lws*完成时间:2014/6/14*描述:编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。用虚函数分别计算几种图形面积,并求它们之和。要求用基类指针数组,使它每一个元素指向一个派生类对象。*输入:12.6 3.5 4.5 8.4 2.0 4.5 3.2 4.5 8.4*输出:total of all areas=574.11*/#include <iostream>#include <iomanip>const double PI=3.14159;using namespace std;class Shape //抽象类(包含纯虚函数的类){public: virtual double Area()=0; //纯虚函数(没有函数体的虚函数)};//圆形类class Circle:public Shape{public: Circle(double r):radius(r){} double Area() { return PI*radius*radius; }private: double radius;};//正方形类class Square:public Shape{public: Square(double s):side(s){} double Area() { return side*side; }private: double side;};//矩形类class Rectangle:public Shape{public: Rectangle(double l,double w):length(l),width(w){} double Area() { return length*width; }private: double length; double width;};//梯形类class Trapezoid:public Shape{public: Trapezoid(double u,double d,double h):up(u),down(d),height(h){} double Area() { return 1/2.0*(up+down)*height; }private: double up,down,height;};//三角形类class Triangle:public Shape{public: Triangle(double a1,double b1):a(a1),b(b1){} double Area() { return 1/2.0*a*b; }private: double a,b;};void PrintArea(Shape &p){ cout<<p.Area();//p.Aare()函数处理方法:在编译阶段,不确定调用哪一个函数,而是在此处保留5个虚函数Area()的5个入口地址。//在程序运行时,根据实参的类型来确定调用5个虚函数之一。}int main(){ float r,a,b,w1,w2,w,h; cout<<fixed<<setprecision(2); cin>>r; Circle circle(r); cin>>a; Square square(a); cin>>a>>b; Rectangle rectangle(a,b); cin>>w1>>w2>>h; Trapezoid trapezoid(w1,w1,h); cin>>w>>h; Triangle triangle(w,h); //抽象类的指针引用——>由抽象类派生出的类的对象 Shape *pt[5]= {&circle,&square,&rectangle,&trapezoid,&triangle}; double areas=0.0; for(int i=0; i<5; i++) areas=areas+pt[i]->Area(); cout<<"total of all areas="<<areas<<endl; return 0; return 0;}
运行结果:
0 0
- c++习题1_H_虚函数-计算图形面积
- C++习题 虚函数-计算图形面积
- C++习题 虚函数-计算图形面积
- [YTU]_2478( C++习题 虚函数-计算图形面积)
- 虚函数-计算图形面积
- 虚函数-计算图形面积
- 虚函数-计算图形面积
- YTU-OJ-Problem D: C++习题 虚函数-计算图形面积
- 14.3虚函数-计算图形面积
- ACM 虚函数--计算图形面积
- 【OJ】---H---虚函数-计算图形面积
- 第十四周 oj 利用虚函数-计算图形面积
- OJ嘻唰唰虚函数-计算图形面积
- (补)计算图形面积——虚函数
- C语言函数求图形面积
- 选择图形,计算面积
- matlab计算图形面积
- 图形面积计算
- 故乡的河
- java中的lang类型
- JD 1172:哈夫曼树
- NGUI小地图制作教程 1
- python基础教程_学习笔记10:异常
- c++习题1_H_虚函数-计算图形面积
- c#开发规范
- typedef struct与struct
- OCP 1Z0 052 81
- ThinkPHP的快速缓存方法---F
- MIT《线性代数》第二章 高斯消去 初等阵(消元阵) 置换阵
- c取Lua的全局变量数组
- ssh中各个架包的说明
- cocos2dx 3.0 学习笔记 引用cocostudio库 的环境配置