




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告课程设计题目:几何体的表面积与体积 学生姓名: 徐 辉专 业: 软件工程(电商)班 级: 1421812指导教师: 魏 振 华学 号: 201420181209 2015年 6月 30 日 目 录一、引 言1二、设计目的与任务1三、设计方案2四、结 论10五、致 谢11一、引 言 通过 C+课程设计,使学生能将学到的面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,并培养基本的、良好的程序设计技能,因而必须给予足够的重视。二、设计目
2、的与任务定义一个抽象类形状(shape),包含输入基本图形的信息函数input()、显示基本图形信息函数disp()、计算表面积的函数area()、计算体积的函数volume(),它们均为纯虚函数。通过继承形状类派生出球体类、正方体类、长方体类、圆柱体类。程序需实现以下功能:1、设计菜单实现定义一个抽象类形状(shape),包含输入基本图形的信息函功能选择; 2、输入各种形状信息;3、显示各种形状信息;4、计算各种形状的表面积;5、计算各种形状的体积; 6、输入数据和输出结果用文件的形式实现。三、设计方案1、总体设计 该程序主要是在确定物体的形状后,计算物体的表面积和体积,在输入数据和输出结果
3、时用文件的形式,所以这个程序主要用到的内容是类的继承与派生,另外还涉及文件、指针等内容。程序首先建立一个抽象类shape,作为公共接口;然后建立四个图形类:Ball、Cube、Cubiod、Cylinder,公有继承shape类,分别计算各物体的表面积和体积;然后在主函数中定义各对象,调用各类中的成员函数,输出所要结果。2、详细设计 Input():数据输入函数,输入所需的半径、边长、高等数据; Area():计算各物体表面积的函数; Volume():计算各物体体积的函数; Disp():输出计算结果的函数; Run():定义指针,调用抽象类里的每个接口(即调用每个函数);MainMenu(
4、):调用各函数,输出结果。 3、程序清单#include<iostream>using namespace std;const double PI=3.14;class shapepublic:virtual void input()=0;virtual void disp()=0;virtual double area()=0;virtual double volume()=0;class ball:public shapeprivate:int r;public:ball(double r=0):r(r) void input()cout<<"输入球体的半
5、径:"<<endl;cin>>r;double area()return 4*PI*r*r;double volume()return 4/3*PI*r*r*r;void disp()cout<<"球体的半径:"<<r<<endl;cout<<"球体的面积:"<<area()<<endl;cout<<"球体的体积:"<<volume()<<endl;class square:public sha
6、peprivate:int x;public:square(double x=0):x(x)void input()cout<<"输入正方体的边长"<<endl;cin>>x;double area()return 6*x*x;double volume()return x*x*x;void disp()cout<<"正方体的边长:"<<x<<endl;cout<<"正方体的面积:"<<area()<<endl;cout<
7、<"正方体的体积:"<<volume()<<endl;class cuboid:public shapeprivate:int l,w,h;public:cuboid(double l=0,double w=0,double h=0):l(l),w(w),h(h)void input()cout<<"输入长方体的长宽高"<<endl;cin>>l>>w>>h;double area()return 2*(l*w)+2*(w*h)+2*(l*h);double vol
8、ume()return l*w*h;void disp()cout<<"长方体的长宽高是:"<<l<<w<<h<<endl;cout<<"长方体的面积是:"<<area()<<endl;cout<<"长方体的体积是:"<<volume()<<endl; class cylinder:public shapeprivate:int r,h;public:cylinder(double r=0,double
9、h=0):r(r),h(h)void input()cout<<"输入圆柱体的底面半径和高"<<endl;cin>>r>>h;double area()return 2*PI*r*h+PI*r*r;double volume()return PI*r*r*h;void disp()cout<<"底面半径和高:"<<r<<h<<endl;cout<<"圆柱体的面积:"<<area()<<endl;cout&
10、lt;<"圆柱体的体积:"<<volume()<<endl;void use_ball() ball b; b.input(); b.disp(); return ; void use_square() square s; s.input(); s.disp(); return ; void use_cuboid() cuboid c; c.input(); c.disp(); return; void use_cylinder() cylinder cy;cy.input();cy.disp();return; void menu() int
11、 i;cout<<"*几何体的表面积与体积*n"<<endl;cout<<"*(0):退出系统*n"<<endl;cout<<"*(1):球体*n"<<endl;cout<<"*(2):正方体*n"<<endl;cout<<"*(3):长方体*n"<<endl;cout<<"*(4):圆柱体*n"<<endl;cout<<
12、"*感谢使用本软件*n"<<endl;cout<<"请输入你的选择项(0-4)"<<endl;cin>>i;if(i<0|i>4)cout<<"错误,请输入指定数字!"<<endl;elseswitch(i)case 0: exit(0);break;case 1: use_ball();break;case 2: use_square( );break;case 3: use_cuboid( );break;case 4: use_cylinder(
13、 );break;return; void main() int n; do menu(); cin>>n; while(n!=0); 4、程序调试与体会 在程序的编写过程中遇到很多麻烦,像如何调用成员函数,如何用文件的形式输入数据和输出结果但最后我们都解决了,这让我们很有成就感,很自豪,也让我们知道了团结的力量。程序完成后调试没错误,但却无法正常运行,通过我的反复思考,程序中的错误得到顺利解决,让它正常运行,函数功能也得到了进一步的完善。并且在本次课程设计的过程中,让我进一步认识到了团队的力量,只有团结才能发挥出一个集体的力量。一个人的力量真的好有限,即使个人能力再强,做一个大点
14、的项目,也会力不从心。只有分工协作才能将事办得越快越好。通过这次课程设计,会为我们以后进入社会提供一定的经验。我们相信在今后的学习真的我们会更加努力,积累经验。使自己在编程等各方面得到提高。这次程序设计让我们受益匪浅!5、运行截图主菜单4个具体项目:四、结 论忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
15、么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有
16、类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。 从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。 总之,这次课程设计让我受益良多,我会好好珍惜像这种难得的机会。五、致 谢这次的课程设计对我们来说是一次尝试与挑战的过程。在这里,我们由衷地感谢帮助、支持和鼓励我们完成课程设计的老师和一起奋斗过的伙伴。首先我们要感谢学校给我们提供这样一个一起学习和研究的机会,让我们把理论知识应用到实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 畜牧智能养殖大数据分析与决策支持考核试卷
- 纸板生产过程中的废纸脱墨与利用考核试卷
- 电信企业数字化转型与互联网+战略考核试卷
- 电玩具高级环境适应性测试考核试卷
- 广播电视传输网络中的频谱效率提升技术考核试卷
- 畜牧良种繁殖场环境监测与污染控制考核试卷
- 电能表的电能质量改进策略考核试卷
- 环保社会组织参与自然保护考核试卷
- 聚苯并噁唑纤维耐氧化性能考核试卷
- 时尚产业中的品牌创意与品牌差异化考核试卷
- 中医眼干燥症试题及答案
- 租电动车电子合同协议
- 纺织服装产业链的韧性及其空间演变研究
- 2025-2030中国公路沥青行业市场发展趋势与前景展望战略研究报告
- 2024年全球及中国互联网舆情监测系统行业头部企业市场占有率及排名调研报告
- 2025年人教版五年级(下)期中数学试卷
- 《血小板分离机》课件
- 快递云仓合同协议
- 2025-2030功能性饲料行业市场发展分析及发展前景与投资机会研究报告
- 江苏省常州市2024-2025学年高一下学期4月期中考试英语试题(含答案)
- 建筑设计中的重点难点及相应控制措施
评论
0/150
提交评论