C++几何图形面积周长计算25428.pdf

上传人:得****3 文档编号:83515133 上传时间:2023-03-31 格式:PDF 页数:17 大小:641.35KB
返回 下载 相关 举报
C++几何图形面积周长计算25428.pdf_第1页
第1页 / 共17页
C++几何图形面积周长计算25428.pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《C++几何图形面积周长计算25428.pdf》由会员分享,可在线阅读,更多相关《C++几何图形面积周长计算25428.pdf(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、福建工程学院计算机与信息科学系 实验报告 10 11 学年第 1 学期 任课老师:林志强、郑积仕 课程名称 面向对象课程设计 班级 计 算 机0802 座号 24 姓名 谢茂财 实验题目 图形多态 实验时间 实验开始日期:报告提交日期:实验目的、要求 编写一个程序,计算任给一个几何形体的面积和周长。几何形体可以是矩形、三角型、圆形、扇型、梯形。要求:(1)由用户通过键盘输入要处理的几何形体,每次输入一个几何形体。输入规则是:程序输出提示信息,请用户选择要处理的几何形体的类型。如果输入字母“E”,表示要退出程序的运行,根据用户选择的几何形体类型,输出提示信息,请用户输入几何形体的描述数据。例如圆

2、形的中心点坐标和半径。要求在提示信息中说明输入数据的格式。由程序根据规定的格式读入数据,如果输入数据的格式不对、或错误(例如把一个负数作为圆形的半径输入),要输出提示信息请求用户输入正确的数据、并再次读入。(2)在用户输入一个几何形体后,程序输出该几何形体的面积和周长,要求在输出中注明哪个数据是面积、哪个数据是周长。然后回到上一步,继续处理新的几何形体,直到用户选择退出程序运行为止。(3)在基类中加两个虚函数 setfromfile(),printtofile()分别用于文件读写,文件统一后缀.geo,在输入文件名时不必输入。向文件输出时注意在每个输出后要输出 或n,否则从文件输入时会出错。从

3、文件输入时,只能屏幕输出,输出结果是按周长大小排序的。而从键盘输入时可以选择是屏幕输出还是文件输出,但都是按面积大小排序的。实验设计内容 1、设计说明 程序共 7 个类,抽象类 base、类 point、以及 5 个图形类;抽象类中有 4 个纯虚函数,并派生出 5 个图形类,以实现多态;类 point 的对象作为图形类的成员。2、流程图 类的关系图:Base -area()=0:float/-girth()=0:float -setfromfile()=0:void -printftofile()=0:void tri Rec 继承 Cir Sca Tra -a,b,c:point -A:po

4、int/h,l:float +Rec()-a:point/r:float -a:point/r,b:float -a:point/l1,l2,h,l,r:float +tri()(同 base)+cir()+sca()+tra (同 base)(同 base)(同 base)(同 base)point -x,y:float +point()/getx()/gety()流程图:MAIN MENU Rectangle Triangle Circle Scall Trape H,L H,L H,L H,L H,L PRINTTOFILE LOAD SORT OUTPUT 记录每次实验结果以及分析情况

5、 开始界面:矩形:三角形:圆:扇形:梯形:文件输出:总结以及心得体会 指导老师评阅意见 指导老师:年 月 日 填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。eo);float a,l;(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();coutal;void Rec:printtofile()char s20;coutendl请输入你要保存的文件名!s;ofstream file(s,ios_base:app|ios_base:binary);strcat(s,.geo);float a,l;a

6、=Area();l=Girth();(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();class Tri:public Base eo);float a,l;(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();coutal;void Tri:printtofile()char s20;coutendl请输入你要保存的文件名!s;ofstream file(s,ios_base:app|ios_base:binary);strcat

7、(s,.geo);float a,l;a=Area();l=Girth();(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();class Cir:Base eo);float a,l;(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();coutal;void Cir:printtofile()char s20;coutendl请输入你要保存的文件名!s;ofstream file(s,ios_base:app|ios_base:b

8、inary);strcat(s,.geo);float a,l;a=Area();l=Girth();(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();class Sca:public Base eo);float a,l;(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();coutal;void Sca:printtofile()char s20;coutendl请输入你要保存的文件名!s;ofstream file(s,ios

9、_base:app|ios_base:binary);strcat(s,.geo);float a,l;a=Area();l=Girth();(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();class Tra eo);float a,l;(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();coutal;void Tra:printtofile()char s20;coutendl请输入你要保存的文件名!s;ofstream fi

10、le(s,ios_base:app|ios_base:binary);strcat(s,.geo);float a,l;a=Area();l=Girth();(reinterpret_cast(&a),sizeof(a);(reinterpret_cast(&l),sizeof(l);();int Positive(float h,float l)if(h0&l0)return 1;else throw 0;int Positive(float r)if(r0)return 1;else throw 0;void Rectangle()coutendl请输入矩形的描述数据:endlendl;f

11、loat h,l,x,y;coutendlxy;coutendlhl;try Positive(h,l);Point a(x,y);Rec m(a,h,l);cout面积:()周长:();();catch(int)cout输入数据有误,请重输!endl;void Triangle()int x1,y1,x2,y2,x3,y3;coutendl请输入三角形的描述数据:endl;coutendlx1y1;coutendlx2y2;coutendlx3y3;Point a(x1,y1),b(x2,y2),c(x3,y3);Tri t(a,b,c);cout面积:()周长:()endl;();void

12、 Circle()int x1,y1,r;coutendl请输入圆形的描述数据:endl;coutendlx1y1;coutendlr;Point a(x1,y1);Cir c(a,r);cout面积:()周长:()endl;();void Scall()int x1,y1,r,b;coutendl请输入扇形的描述数据:endl;coutendlx1y1;coutendlr;coutendlb;Point a(x1,y1);Sca c(a,r,b);cout面积:()周长:()endl;();void Trape()int x1,y1,l,r,l1,l2,h;coutendl请输入梯形的描述数

13、据:endl;coutendlx1y1;coutendll1;coutendll2;coutendll;coutendlr;coutendlh;Point a(x1,y1);Tra t(a,l,r,l1,l2,h);cout面积:()周长:()endl;();void Sort(float a,float z,int count)for(int i=0;icount-1;i+)for(int j=i;jcount;j+)if(ajai)float t=ai;ai=aj;aj=t;float m=zi;zi=zj;zj=m;void Output(const float a,const floa

14、t z,const int count)cout面积:周长:endl;for(int i=0;icount;i+)coutai ziendl;void Load()cout请输入要显示的文件名!s;ifstream file(s);(0);int count=0;while(file)count+;(reinterpret_cast(&ai),sizeof(ai);(reinterpret_cast(&zi),sizeof(zi);i+;Sort(a,z,count-1);cout输出结果按面积大小排序endl;Output(a,z,count-1);void Menu()while(1)co

15、utendl欢迎进入几何图形世界endlendl;cout|A:矩形世界|endl;cout|B:三角型世界|endl;cout|C:圆形世界|endl;cout|D:扇型世界|endl;cout|E:梯形世界|endl;cout|F:从文件输出|endl;cout|G:退出|endl;coutendlendl;cout请选择你要操作的图形代号:num;switch(num)case a:case A:Rectangle();break;case b:case B:Triangle();break;case c:case C:Circle();break;case d:case D:Scall();break;case e:case E:Trape();break;case f:case F:Load();break;case g:case G:exit(0);default:break;int main(int argc,char*argv)Menu();return 0;

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com