c面向对象程序设计三角形的种类与面积

上传人:痛*** 文档编号:138938183 上传时间:2022-08-22 格式:DOC 页数:22 大小:699.50KB
收藏 版权申诉 举报 下载
c面向对象程序设计三角形的种类与面积_第1页
第1页 / 共22页
c面向对象程序设计三角形的种类与面积_第2页
第2页 / 共22页
c面向对象程序设计三角形的种类与面积_第3页
第3页 / 共22页
资源描述:

《c面向对象程序设计三角形的种类与面积》由会员分享,可在线阅读,更多相关《c面向对象程序设计三角形的种类与面积(22页珍藏版)》请在装配图网上搜索。

1、湖南人文科技学院计算机系 课程设计说明书 课 程 名 称:C+面向对象程序设计课 程 代 号:436103题 目:三角形的种类与面积年级/专业/班:2010级软件工程专业一班学 生 姓 名:学 号:指 导 教 师:开 题 时 间:2011 年 6 月 13 日完 成 时 间:2011 年 6 月 24 日目 录摘 要3一、引 言3二、设计目的与任务3三、设计方案21、总体设计22、详细设计43、程序清单74、程序调试与体会125、运行结果13四、结 论16五、致 谢16六、参考文献17 摘 要C+是C语言的超集,它不仅保持了与C语言的兼容,而且还支持面向对象程序设计的特征,C+程序在可重用性、

2、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。本文论述了使用设计了判断三角形的种类和计算基面积的系统。首先使用C+中的类设计了Point类、Line派生类和Triangle多级派生类;然后再编写intput()、al_line()、jud_tri()以及alg_tri()函数,它们的功能分别是输入数据、计算边长、判断种类以及计算和输出面积;最后在主程序中调用intput()、al_line()、jud_tri()以及alg_tri()函数实现整个程序的运行。经过多次调试,结果成功通过编译并得出了正确的结果,使我的系统可以正常实现菜单选择、输入数

3、据、进行判断和计算并输入结果等功能。关键词:VC6.0;派生类;多级派生类;AbstractC + + is C language of super set, it not only keeps up with the C language compatible, but also do it support object-oriented program design,which is the characteristics of the C + + program in the reusability, scalability, and reliability, maintainabili

4、ty.And in such aspects ,C+ have improved, it become more suitable for the development of large and medium-sized system software and application. This paper discusses the problem that useing the to design a system to judge the types of triangle and calculation the area of it.At first,we use the class

5、 of C+ to design a class Point,a derived class Line and a multilevel derived class Triangle.Then we write the fuctions intput(),al_line(),jud_tri() and alg_tri().Their functions are data inputting, length calculation,types judgement and area outputting.Finally,the host program can realize the whole

6、operation by calling the functions intput(),al_line(),jud_tri() and alg_tri().Conclusively,we have past the compiling and get a right result after debugging many times.And then we have knowm our system can realize the functions are menu selection,data inputting,judgement and result outputting.Key wo

7、rds:VC6.0; Derived class; Multilevel derived class;C+程序设计课程设计-三角形的种类与面积一、引 言面向对象程序设计课程设计是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。二、设计目的与任务通过课程设计,让学生能够熟练运用C+进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。通过课程设计,掌握使用一种面向对象

8、程序设计语言开发工具如DEV-C+ 5或Visual C+等;培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力;通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括: 通过调查研究和上机实习,收集和调查有关技术资料。 掌握设计课题的基本步骤和方法。 根据课题的要求进行上机实验调试。任务要求 本课程设计了判断三角形的种类和计算并输出其面积的系统。该系统能实现输入三角形的三个顶点坐标、判断三角形的种类以及计算并输出三角形的面积等功能。三、设计方案1、总体设计经过我们分析,在本课程设计中,首先设计了如下总体设计流程图,如图1开始输入三角形的三个顶点输入选择选择操作子

9、程序 保存文件并结束图1 总体设计流程序然后在此基础上设计了Point类、Line类、Triangle类,其框架如下:Point类class point /定义一个point类public: void intput(); /声明一个输入函数 float get_x() return x; /返回x的值 float get_y() return y; /返回y的值private:float x,y; /定义对象x,y用来表示坐标;Line类class line:public point /派生类linepublic: void al_line(point& ,point& ,point&); /

10、声明一个计算三条边长度的函数float get_l1() return l1; /返回l1的值float get_l2() return l2; /返回l2的值float get_l3() return l3; /返回l3的值 private:float l1,l2,l3; /定义三条线段;class triangle :public line /派生类trianglepublic:void jud_tri(line& ); /声明一个判断三角形的种类函数void alg_tri(line& ); /声明一个计算并输出三角形的面积函数private:float p,s; /定义s计算面积,p为

11、中间变量;Triangle类2、详细设计 层次(调用)关系:经过我们集体更加细致的分析和讨论,首先得出了一个详细的层次关系设计流程图,如图2输入三角形的三个顶点输入选择判断三角形的种类计算三角形的面积判断出种类计算出面积退出输入选择图2层次关系设计流程图2.2类设计图:通过我们大家的共同努力,我们设计出了类的详细代码,如下:Point类class point /定义一个point类public: void intput(); /声明一个输入函数 float get_x() return x; /返回x的值 float get_y() return y; /返回y的值private:float

12、x,y; /定义对象x,y用来表示坐标;void point:intput() /定义输入坐标的函数 cinxy; Line类Line类class line:public point /派生类linepublic: void al_line(point& ,point& ,point&); /声明一个计算三条边长度的函数float get_l1() return l1; /返回l1的值float get_l2() return l2; /返回l2的值float get_l3() return l3; /返回l3的值 private:float l1,l2,l3; /定义三条线段;void li

13、ne:al_line(point& p1,point& p2,point& p3) /计算三条边的长度 l1=sqrt(p2.get_x()-p1.get_x()*(p2.get_x()-p1.get_x()+ (p2.get_y()-p1.get_y()*(p2.get_y()-p1.get_y(); l2=sqrt(p3.get_x()-p1.get_x()*(p3.get_x()-p1.get_x()+ (p3.get_y()-p1.get_y()*(p3.get_y()-p1.get_y(); l3=sqrt(p3.get_x()-p2.get_x()*(p3.get_x()-p2.g

14、et_x()+ (p3.get_y()-p2.get_y()*(p3.get_y()-p2.get_y();Triangle类class triangle :public line /派生类trianglepublic:void jud_tri(line& ); /声明一个判断三角形的种类函数 void alg_tri(line& ); /声明一个计算并输出三角形的面积函数 private:float p,s; /定义s计算面积,p为中间变量;void triangle:jud_tri(line& l) /利用计算好的三边判断三角形的种类void triangle:alg_tri(line&

15、l) / 利用工式计算三角形的面积 p=(l.get_l1()+l.get_l2()+l.get_l3()/2.0; s=sqrt(p*(p-l.get_l1()*(p-l.get_l2()*(p-l.get_l3();3、程序清单#include#include#includeusing namespace std;class point /定义一个point类public: void intput(); /声明一个输入函数 float get_x() return x; /返回x的值 float get_y() return y; /返回y的值private:float x,y; /定义对

16、象x,y用来表示坐标;void point:intput() /定义输入坐标的函数 cinxy; class line:public point /派生类linepublic: void al_line(point& ,point& ,point&); /声明一个计算三条边长度的函数float get_l1() return l1; /返回l1的值float get_l2() return l2; /返回l2的值float get_l3() return l3; /返回l3的值 private:float l1,l2,l3; /定义三条线段;void line:al_line(point& p

17、1,point& p2,point& p3) /计算三条边的长度 l1=sqrt(p2.get_x()-p1.get_x()*(p2.get_x()-p1.get_x()+ (p2.get_y()-p1.get_y()*(p2.get_y()-p1.get_y(); l2=sqrt(p3.get_x()-p1.get_x()*(p3.get_x()-p1.get_x()+ (p3.get_y()-p1.get_y()*(p3.get_y()-p1.get_y(); l3=sqrt(p3.get_x()-p2.get_x()*(p3.get_x()-p2.get_x()+ (p3.get_y()

18、-p2.get_y()*(p3.get_y()-p2.get_y();class triangle :public line /派生类trianglepublic:void jud_tri(line& ); /声明一个判断三角形的种类函数 void alg_tri(line& ); /声明一个计算并输出三角形的面积函数 private:float p,s; /定义s计算面积,p为中间变量;void triangle:jud_tri(line& l) /利用计算好的三边判断三角形的种类 if(l.get_l1()+l.get_l2()l.get_l3()&l.get_l1()+l.get_l3(

19、)l.get_l2()&l.get_l2()+l.get_l3()l.get_l1() if(l.get_l1()=l.get_l2()&l.get_l1()=l.get_l3() coutt endl; coutt endl; coutt 所求三角形为等边三角形 endl; coutt endl; coutt endl; else if(l.get_l2()=l.get_l3()|l.get_l1()=l.get_l2()| l.get_l2()=l.get_l3() coutt endl; coutt endl; coutt 所求三角形为等腰三角形 endl; coutt endl; co

20、utt endl; else if(l.get_l2()*l.get_l2()+l.get_l3()*l.get_l3()= l.get_l1()*l.get_l1()|l.get_l1()*l.get_l1()+ l.get_l3()*l.get_l3()=l.get_l2()*l.get_l2()| l.get_l1()*l.get_l1()+l.get_l2()*l.get_l2()= l.get_l3()*l.get_l3() coutt endl; coutt endl; coutt 所求三角形为直角三角形 endl; coutt endl; coutt endl; else cou

21、tt endl; coutt endl; coutt 所求三角形为一般三角形 endl; coutt endl; coutt endl; else coutendl; coutt endl; coutt endl; coutt endl; coutt endl; coutt endl; coutt 所输入的数据不能构成三角形,无法计算面积 endl; couttt 请重新输入三个顶点的坐标或选择退出程序 endl; void triangle:alg_tri(line& l) / 利用工式计算三角形的面积 p=(l.get_l1()+l.get_l2()+l.get_l3()/2.0; s=s

22、qrt(p*(p-l.get_l1()*(p-l.get_l2()*(p-l.get_l3(); coutendl; coutt endl; coutt endl; coutt 所求三角形为的面积为 endl; coutt s endl;coutt endl; coutt endl; int main() int n; point p1,p2,p3; /定义三个子对象,用来输入三个坐标准 line l; triangle t; coutt endl; coutt endl; coutt endl; coutt endl; coutt 欢迎来到软件工程C+课程设计三角形种类与面积 endl; c

23、outt endl; coutt 软工一班 学号:18号,19号,20号,21号,22号 endl; coutt 指导老师: 袁辉勇 endl; coutt endl; coutt endl; coutendl; couttt endl; couttt 本程序有以下功能 endl; couttt 请参照下列说明选择您要实现的功能 endl; couttt endl; couttt endl; coutttendl; coutttendl; couttt 1.输入三角形的三个顶点坐标 endl; couttt 2.判断三角形的种类 endl; couttt 3.计算并输出三角形的面积 endl;

24、 couttt 4.退出程序 endl; coutttendl; coutttendl; coutttn) /参照上述的功能,输入一个要实现的功能 switch(n) /用switch实现菜单选择功能 case 1:coutendl; /控制换行,美化界面,以下“coutendl;”的功能相同 couttt 请分别输入三角形的三个顶点坐标 endl; coutendl; coutsetw(48)xsetw(4)yendl; couttt请输入顶点1的坐标并以回车结束:; p1.intput(); /调用三次intput()函数输入三角形三个顶点的坐标(第一次) couttt请输入顶点2的坐标并

25、以回车结束:; p2.intput(); /调用三次intput()函数输入三角形三个顶点的坐标(第二次) couttt请输入顶点3的坐标并以回车结束:; p3.intput(); /调用三次intput()函数输入三角形三个顶点的坐标(第三次) l.al_line( p1, p2, p3 ); /调用al_line()函数计算三条边的长度 coutendl; coutt 请参照上述功能继续选择您要实现的功能(14) endl; couttt 请在此处输入并以回车结束:; break; case 2:t.jud_tri( l ); /调用jud_tri()函数判断三角形的种类 coutendl

26、; coutt 请参照上述功能继续选择您要实现的功能(14) endl; couttt 请在此处输入并以回车结束:; break; case 3:t.alg_tri( l ); /调用alg_tri()函数计算并输出三角形的面积 coutendl; coutt 请参照上述功能继续选择您要实现的功能(14) endl; couttt 请在此处输入并以回车结束:; break; case 4:coutendl; cout感谢您的使用! =endl; couttttt endl; couttttt endl; couttttt endl; couttttt endl; couttttt 6 6 en

27、dl; couttttt endl; couttttt endl; couttttt endl; couttttt endl; coutendl; exit(1); /退出程序 return 0;4、程序调试与体会 在程序调试的过程中,首先遇到了不知怎么调用类中的私有成员(如Point类中的x和y),后经过不断查询资料和调试后,才知道了用get_x()和get_y()两个函数来实现。接着在判断三角形的种类和计算其面积上总出现错误,后来在百度里找了好多的资料,通过数学方法,再将其转化为程序语言,终于解决了这个问题。然后便是用户界面的设计,这里我弄了很久,一直在设计一个既美观又实用的用户界面,在查

28、询了不少资料还有和大家讨论后,终于得出了一个较好的用户界面。可是在用户界面出来的时候,又出现了一个问题,那就是一般人会不知道你这个东西的第一步是要干什么,所以后来又经过了优化,加了一个 x y 方法来告诉用户,我们的程序第一步所要做的就是输入x和y 。最后在使用了while来控制输入的数据时,却发现程序不能退出,后来才发现用exit(1)函数可以实现这个功能,这才将程序完善好了。通过此次调试,让我学到了很多,首先是团队合作精神。一直以来,团队合作的好坏都是作为一个项目能否顺利完的一个重要因素。然后便是网络对于我们的帮助是非常大的,我们所为学计算机的,就一定要发挥好我们的这个优势。还有就是书本永

29、远是一个不可或缺的老师。对于我们来说,老师不可能时刻跟着你,随时随地的帮助你,只有书本可以在你需要帮助的时候,给予你很好的帮助。5、程序运行结果在中执行程序,出现以下菜单,如图3所示:图3 主菜单(用户界面)在图中选择“1”选项,出现图2图4 输入三角形的三个项点坐材料在图中选择“2”,出现图3图5 通过判断,所输入的数据不能构成三角形,出现了错误在图中再选择“1”,出现图4图6 重新输入三角形的三个顶点坐标在图中再选择“2”后再选择“3”,出现图5图7 判断出所输入的数据构成一个直角三角形,且其面积为6在图中选择“4”,出现图6图8 程序运行完毕,退出四、结 论通过这次的实践我成功的掌握了类

30、的派生与多级派生的使用,并在程序中使用Get来获取和设置私用成员的值,使用exit()来退出程序。本程序的难点是对类的派生与多级派生的使用,由于在类的派生上学得不是很好,所以便对程序的设计造成了一定的难度。五、致 谢在经历了这几个星期的课程设计,终于在老师规定的时间内完成了预定的设计要求,达到了预期的目的,完成了导师布置的任务。在论文即将完成之际,回顾紧张但又充实的学习和开发过程,我们在此向所有关心我们的及帮助我们的老师和同学们致以最真诚的感谢。 在本次毕业设计中,我们从指导老师袁老师身上学到了很多东西。他认真负责的工作态度,使我们受益匪浅。无论在理论上还是在实践中,都给与我们很大的帮助,使我

31、们得到很大的提高,为我们指明了方向,避免了走弯路的可能,这对于我们以后的工作和学习都是一种巨大的帮助,在此感谢他耐心的辅导。在撰写论文阶段,老师给我们提出了许多宝贵意见,没有老师的指导,我们就不能较好的完成课题设计的任务。感谢老师的无私奉献!感谢计算机系各位老师!六、参考文献1 张国峰编著.C+语言及其程序设计教程.北京:电子工业出版社,1996.2 秦勇编著.Visual C程序设计.北京:北京大学出版社,1994.3 张素琴主编.C+程序设计语言.北京:清华大学出版社,19954 揣锦华等编.C+程序设计语言.西安: 西安电子科技大学出版社,20035 李军民等编.C+程序设计语言经典题解

32、与实验指导.西安: 西安电子科技大学出版社,20036 吕凤翥著.C+语言基础教程.北京:清华大学出版社,20017 陈志泊编.面向对象的程序设计语言C+,北京:电子工业出版社, 20028刁成嘉主编,面向对象C+程序设计,机械工业出版社,20049 刘瑞新主编,曹建春,沈淑娟,张连堂等编著,Visual C+面向对象程序设计程,机械工业出版社,200410 陈文宇,张松梅编著,C+语言教程,电子科技大学出版社,200411 张凯主编,付兴宏主审,VC+程序设计,大连理工大学出版社,200212 马建红,沈西挺主编,范贻明主审,Visual C+程序设计与软件技术基础,中国水利水电出版社,20

33、0213 钱能主编,C+程序设计教程,清华大学出版社,199914 艾德才主编,C+程序设计简明教程,中国水利水电出版社,200015 于明等编著,Visual C+程序设计教程,海洋出版社,200116 郑人杰主编,软件工程,清华大学出版,199917 王育坚等编著,Visual C+程序基础教程,北京邮电大学出版社,2000课程设计任务书及成绩评定课题名称: 三角形的种类与面积 完 成 者: 杨路根、鲁江波、胡坤、吴钢、李婷 1、 设计的目的与要求:通过课程设计,让学生能够熟练运用C+进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。本课程设计了判断三角形的种类和计算并输出其面积的系统。该系统能实现输入三角形的三个顶点坐标、判断三角形的种类以及计算并输出三角形的面积等功能。2、设计进度及完成情况日期内容613选题查阅资料615总体设计617详细设计619编写与调试622书写文档3、成绩评定:设计成绩: (教师填写)指导老师: (签字) 年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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