多态程序实例--几何形体处理程序
来源:互联网 发布:3d动画制作软件 编辑:程序博客网 时间:2024/04/28 02:26
几何形体处理程序: 输入若干个几何形体的参数,
要求按面积排序输出。输出时要指明形状。
Input:
第一行是几何形体数目n(不超过100).下面有n行,每行以一个字母c开头.
若 c 是 ‘R’,则代表一个矩形,本行后面跟着两个整数,分别是矩形的宽和高
若 c 是 ‘C’,则代表一个圆,本行后面跟着一个整数代表其半径
要求按面积排序输出。输出时要指明形状。
Input:
第一行是几何形体数目n(不超过100).下面有n行,每行以一个字母c开头.
若 c 是 ‘R’,则代表一个矩形,本行后面跟着两个整数,分别是矩形的宽和高
若 c 是 ‘C’,则代表一个圆,本行后面跟着一个整数代表其半径
若 c 是 ‘T’,则代表一个三角形,本行后面跟着三个整数,代表三条边的长度
Output:
按面积从小到大依次输出每个几何形体的种类及面积。每行一个几何形体,输
出格式为:
形体名称:面积
几何形体处理程序
Sample Input:
3
R 3 5
C 9
T 3 4 5
Sample Output
Triangle:6
Rectangle:15
Circle:254.34
// Geometric_processing.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>#include <math.h>using namespace std;#define pi 3.1415926//总的基类class xingti{public:virtual void print()=0;//输出,纯虚函数virtual double MianJi()=0;//面积,纯虚函数,没有函数体};//三角形类class Triangle:public xingti{public:double x;double y;double z;virtual void print();virtual double MianJi();};void Triangle::print(){cout<<"Triangle:"<<MianJi()<<endl;}double Triangle::MianJi(){double p = ( x+ y + z) / 2.0;return sqrt(p * ( p - x)*(p- y)*(p - z));}//矩形框类class Rectangle:public xingti{public:double x;double y;virtual void print();virtual double MianJi();};void Rectangle::print(){cout<<"Rectangle:"<<MianJi()<<endl;}double Rectangle::MianJi(){return x*y;}//圆类class circle:public xingti{public:double r;virtual void print();virtual double MianJi();};void circle::print(){cout<<"circle:"<<MianJi()<<endl;}double circle::MianJi(){ return pi*r*r;}//进行排序的程序void qort(xingti* a[100],int n){int i=0,k=0;for(i=0;i<n-1;i++){for(k=i+1;k<n;k++){if(a[i]->MianJi()>a[k]->MianJi()){xingti* temp;temp=a[i];a[i]=a[k];a[k]=temp;}}}}int _tmain(int argc, _TCHAR* argv[]){xingti* all_xingti[100];Triangle* Tr;Rectangle* Re;circle* Ci;int number;char ch;cin>>number;int i=0;for( i=0;i<number;i++){cin>>ch;switch(ch){case 'T':Tr=new Triangle();cin>>Tr->x>>Tr->y>>Tr->z;all_xingti[i]=Tr;break;case 'R':Re=new Rectangle();cin>>Re->x>>Re->y;all_xingti[i]=Re;break;case 'C':Ci=new circle();cin>>Ci->r;all_xingti[i]=Ci;break;}}for(int i=0;i<number;i++){all_xingti[i]->print();}qort(all_xingti,number);for(int i=0;i<number;i++){all_xingti[i]->print();}//system("pause");return 0;}
0 0
- 多态程序实例--几何形体处理程序
- 064day(多态实例:几何形体程序)
- 多态的应用之几何形体处理
- 几何形体对象--Geometry
- 《深入浅出数字信号处理》实例程序
- 一个SharePoint事件处理程序实例
- VC6.0处理Excel2003的实例程序
- VC6.0处理Excel2003的实例程序
- .net中的一般处理程序实例
- APUE 7-3 终止处理程序实例
- 几何原本查询程序1.0
- 几何原本查询程序2.0
- 几何原本查询程序2.5
- 【Unity】Mesh网格编程(三)万能网格几何形体
- 7-003几何形体面积排序,有错,待改
- 通过文档事件处理程序引入JavaScript脚本代码实例
- Linux下C程序使用多线程方式处理实例
- iPhone企业应用实例分析之二:程序处理流程
- unity3d-获得当前使用的系统版本和设备参数
- 伸展树splay+uva11922
- Spring3.x--事务管理
- phpcms手机门户网站配置
- Spring事务管理 @Transactional
- 多态程序实例--几何形体处理程序
- ThreadLocal的简单例子
- 【学习】Hadoop概念及使用案例
- 定时任务
- wordpress博客添加微博、微信分享等等
- linux下inode深入浅出
- hdu1235统计同成绩人数
- (复习)(转)03进制状态压缩DP——HDU3001 Travelling 旅行商问题
- 【学习】大数据成熟度模型