第十四周上机实践项目——acm所有图形面积之和
来源:互联网 发布:郎咸平 空姐 知乎 编辑:程序博客网 时间:2024/05/18 03:33
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: acm所有图形面积之和*作者:刘中林 *完成日期:2014 年 5 月 27 日 *版本号:v1.0 *对任务及求解方法的描述部分: *问题描述:编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。 用虚函数分别计算几种图形面积,并求它们之和。 要求用基类指针数组,使它每一个元素指向一个派生类对象。 *输入描述:题意。 *程序输出: 五个图形面积之和*问题分析: *算法设计: */#include <iostream>#include <cmath>#include <iomanip>using namespace std;const float s=3.1415926;class Shape{ public: virtual float area() =0;};class Circle:public Shape{ public: Circle(float r):R(r) {} virtual float area() { return (s*R*R); } protected: float R;};class Square:public Shape{ public: Square(float l):length(l) {} virtual float area() { return (length*length); } protected: float length;};class Rectangle:public Shape{ public: Rectangle(float l,float w):length(l),width(w) {} virtual float area() { return (length*width); } protected: float length,width;};class Trapezoid:public Shape{ public: Trapezoid(float sl,float xl,float h):slength(sl),xlength(xl),hight1(h) {} virtual float area() { return ((slength+xlength)*hight1*1/2); } protected: float slength,xlength,hight1;};class Triangle:public Shape{ public: Triangle(float dl,float h):dlength(dl),hight2(h) {} virtual float area() { return (dlength*hight2*1/2); } protected: float dlength,hight2;};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;}
*样例输出:
*心得体会:纯虚函数:virtual 函数名称 函数名 (参数列表) =0.
0 0
- 第十四周上机实践项目——acm所有图形面积之和
- 第十四周上机实践项目——数组大折腾
- 第十四周上机实践项目——函数处理
- 第十四周上机实践项目——字符数组排序
- 第十四周上机实践项目——选择排序
- 第十四周上机实践项目——字符串统计(1)
- 第十四周上机实践项目——字符串统计(2)
- 第十四周上机实践项目——体验虚析构函数
- 第十四周上机实践项目——动物这样叫
- 第十四周上机实践项目——阿拉伯数字之素数
- 第十四周上机实践—项目3—是否二叉排序树
- 第十四周上机实践项目——成绩处理(函数版)
- 第十四周上机实践项目——体验纯虚函数
- 第十四周上机实践项目——动物这样叫(抽象类法)
- 第十四周上机实践项目——形状类族的中的纯虚函数
- 第十四周上机实践项目——立体类族共有的抽象类
- 第十四周上机实践—项目1(1)—验证折半查找算法
- 第十四周上机实践—项目1(2)—验证分块查找算法
- package&import
- SDN Pre-Assesment Quiz 计算机网络知识
- 如何写出更好的Java代码
- 如何写出更好的Java代码
- 卓越工程师教育培养计划
- 第十四周上机实践项目——acm所有图形面积之和
- struts2 标签
- shell编程sort
- Spring Expression Language (Spring 3.0)
- 以国付宝为例,如何完成给某一个平台提供线上充值功能
- 华中科技大学软件工程硕士
- eclipse 配置tomcat 5X / 6X /7X 的一些问题(配置,发布相关)
- 互联网金融加速引发人才荒 或现“薪水泡沫”
- XEIM 里如何使用 CFileException 处理异常的