第四组--三角形的种类与面积.doc_第1页
第四组--三角形的种类与面积.doc_第2页
第四组--三角形的种类与面积.doc_第3页
第四组--三角形的种类与面积.doc_第4页
第四组--三角形的种类与面积.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南人文科技学院课程设计 湖南人文科技学院计算机系 课程设计说明书 课 程 名 称:C+面向对象程序设计课 程 代 码:408007题 目:三角形的种类与面积年级/专业/班:2010级计算机科学与技术专业2班学 生 姓 名:陈兴 周福祥 刘要兰 陈孝先 曹毅学 号:10408216 10408217 10408218 10408219 10408220指 导 教 师:袁辉勇开 题 时 间:2011 年 6 月 13 日完 成 时 间:2011 年 6 月 24 日第18页目 录摘 要1一、引 言2二、设计目的与任务2三、设计方案21、总体设计32、详细设计33、程序清单64、程序调试与体会65、运行结果10四、结 论10五、致 谢14六、参考文献14摘 要本次设计用类进行有关三角形的种类和面积的操作。通过类的继承与派生,调用类的成员函数实现判别三角形的种类,求三角形三条边的长度,求三角形的面积,数据存入文件,查看文件数据,清空数据文件等操作。程序中使用了类的继承,提高代码的复用性。程序主要由点类、线段类、三角形类以及主函数构成。关键词:类、类的继承与派生AbstractThe design of the triangle is concerned with the type and area. By inheriting classes derived, and members of the function calls for the triangle, criterion the length of the triangle, the triangle area, data files, check the file data into empty data files, etc. In the process of using the inheritance, enhance code reusability. Program mainly by point, line, and the main function of triangles. Keywords : class, the class inherits and derivativesC+程序设计课程设计 -利用类的继承与派生求三角形的种类和面积一、引 言随着人们的物质生活水平的提高,因此,人们对计算机的需求越来越强烈了,计算机为了满足人们的需求而不断发展,如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用,计算机可以帮助我们高效、快捷地解决各种各样的问题,本课程设计就是用C+研究三角形的种类及面积的问题,实现对三角形的种类和面积的求解及实现类的应用以及函数的调用。二、设计目的与任务 1、本课程设计的目的1)通过课程设计巩固了计算机语言基础知识,进一步理解C+的基础知识和面向对象的思想。2)熟练掌握C+中类的继承与派生在程序中的应用,并熟练了解类中函数的调用。3)初步理解了软件设计方法、软件设计技术和设计思想,并在此过程中培养严谨的科学态度和良好的工作作风。4)通过分工协作,激发团队合作精神,培养团队合作的能力。同时,我们体验到了合作的乐趣和编程的乐趣。2、本课程设计的任务使用类实现对三角形的种类和面积求解,具体内容如下:1)设计菜单实现功能选择; 2)输入三角形的三个顶点坐标;3)判断三角形的种类(一般三角形、等腰三角形、等边三角形、直角三角形和不能构成三角形);4)计算并输出三角形的面积 5)对输入数据和输出结果均用文件实现三、设计方案1、总体设计(一)定义三个Point,Line,Triangle三个类。1、class point /定义一个point类 private: float x,y; /定义对像用x,y来表示坐标 public: void intput(); /声明一个输入函数 float get_x()return x; /返回x的值 float get_y()return y; /返回y的值 ;2、class line:public point /派生类line private: float l1,l2,l3; /定义三条线段 public: void al_line(point&, point&,point&); /声明一个计算三条边长度的函数 float get_l1()return l1; float get_l2()return l2; float get_l3()return l3;3、class triangle:public line /派生类triangle private: float s,p; public: void jud_tri(line&); /声明一个判断三角形的种类函数 void alg_tri(line&); /声明一个计算并输出三角形的面积函数 ;2、详细设计private:double s,pPoint p1,p2,p3; Line l1,l2,l3;本课程设计是通过先定义三个类Point,Line,Triangle,再在这三个类中分别插入一个函数。重要的程序段如下。1).输入坐标的函数 ,将你要求的三角形的三个顶点坐标输入void point:intput() cinxy;2).计算三条边的长度的函数void line: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.get_x()+ (p3.get_y()-p2.get_y()*(p3.get_y()-p2.get_y(); 3) .判断三角形的种类的函数,通过三边判断三角形的种类。void triangle:jud_tri(line& l) if(l.get_l1()+l.get_l2()l.get_l3()&l.get_l1()+l.get_l3() 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() coutn 所求三角形为等边三角形endl; else if(l.get_l2()=l.get_l3()|l.get_l1()=l.get_l2()|l.get_l2()=l.get_l3() coutn 所求三角形为等腰三角形endl; else if( l.get_l1()*l.get_l1()+l.get_l2()*l.get_l2()=l.get_l3()*l.get_l3() |l.get_l1()*l.get_l1()+l.get_l3()*l.get_l3()=l.get_l2()*l.get_l2() |l.get_l2()*l.get_l2()+l.get_l3()*l.get_l3()=l.get_l1()*l.get_l1() ) coutn 所求三角形为直角三角形endl; else coutn 所求三角形为一般三角形endl; else coutn 所输入的数据不能构成三角形,无法计算面积,请重新输入三个顶点的坐标endl; 4).计算三角形的面积函数,通过三边计算三角形的面积。void triangle:alg_tri(line& 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(); coutn 所求三角形的面积为: sendl;5).主函数main,输出菜单、结果。流程图如下:开始 输入三点坐标计算三边的长是否满足两边之和大于第三边,且两边之差小于第三边?能构成三角形不能构成三角形YN计算三角形的面积判断三角形的种类输出面积与种类结束 3、程序清单#include#include#includeusing namespace std;class point /定义一个point类 private: float x,y; /定义对像用x,y来表示坐标 public: void intput(); /声明一个输入函数 float get_x()return x; /返回x的值 float get_y()return y; /返回y的值 ;void point:intput() /定义输入坐标的函数 cinxy;class line:public point /派生类line private: float l1,l2,l3; /定义三条线段 public: void al_line(point&, point&,point&); /声明一个计算三条边长度的函数 float get_l1()return l1; float get_l2()return l2; float get_l3()return l3;void line: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.get_x()+ (p3.get_y()-p2.get_y()*(p3.get_y()-p2.get_y();class triangle:public line /派生类triangle private: float s,p; public: void jud_tri(line&); /声明一个判断三角形的种类函数 void alg_tri(line&); /声明一个计算并输出三角形的面积函数 ;void triangle:jud_tri(line& l) /利用计算好的三边判断三角形的种类 if(l.get_l1()+l.get_l2()l.get_l3()&l.get_l1()+l.get_l3() 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()&l.get_l2()=l.get_l3() coutn 所求三角形为等边三角形endl; else if(l.get_l2()=l.get_l3()|l.get_l1()=l.get_l2()|l.get_l2()=l.get_l3() coutn 所求三角形为等腰三角形endl; else if(l.get_l1()*l.get_l1()+l.get_l2()*l.get_l2()=l.get_l3()*l.get_l3() |l.get_l1()*l.get_l1()+l.get_l3()*l.get_l3()=l.get_l2()*l.get_l2() |l.get_l2()*l.get_l2()+l.get_l3()*l.get_l3()=l.get_l1()*l.get_l1() coutn 所求三角形为直角三角形endl; else coutn 所求三角形为一般三角形endl; else coutn 所输入的数据不能构成三角形,无法计算面积,请重新输入三个顶点的坐标endl;void triangle:alg_tri(line& 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(); coutn 所求三角形的面积为: sendl;int main() int n; point p1,p2,p3; /定义三个子对象,用来输入三个坐标 line l; triangle t; coutntt n tt n tt n tt 【课程设计】 n tt 三角形的种类与面积 n tt 10级 计算机科学与技术 n tt 计科二班 n tt 陈兴 周福祥 刘要兰 n tt 陈孝先 曹毅 n tt n tt n ttt 【1】输入顶点坐标;n ttt 【2】判断三角形的种类;n ttt 【3】计算三角形的面积;n ttt 【4】退出程序。n tt n endl; coutendl; coutn) switch(n) case 1:coutendl; cout 请分别输入三角形的三个顶点坐标endl; coutendl; coutsetw(33)xsetw(4)yendl; cout请输入顶点1的坐标并以回车结束:; put(); cout请输入顶点2的坐标并以回车结束:; put(); cout请输入顶点3的坐标并以回车结束:; put(); l.al_line(p1,p2,p3); coutendl; cout请您继续选择您要实现的功能(14):;break; case 2:t.jud_tri(l); coutendl; cout请您继续选择您要实现的功能(14):;break; case 3:t.alg_tri(l); coutendl; cout请您继续选择您要实现的功能(14):;break; case 4:coutt 谢谢使用 see youendl; coutendl; exit(1); return 0; 4、程序调试与体会问题1)现象:无论输入的的是整数还是小数,最后的答案总是整数原因:数据的储存类型不精确更改:所有的数据成员全部该为双精度类型问题2)现象:得不到判断三角形类型的预期结果原因:没考虑好调用函数的具体顺序更改:充分排好函数的调用顺序问题3)现象:菜单设计不美观,输出的结果排列不整齐原因:没做适当的调整输出的结果更改:把输出结果做下适当的调整5、运行结果1、在VC6.0中执行程序,出现如下菜单,如图 1所示。图 1.菜单显示窗口2.如图1中输入1 再按回车键,再依次输入三个顶点坐标(2,4)(3,6)(4,8),按Enter键,输入功能选项2出现图2窗口。 图 2 判断是否能够构成三角形 3再输入三个顶点坐标(2,6)(8,4)(3,9)按Enter 键输入功能选项2出现图3窗口。图 3 判断三角形为一般三角形4、再输入三个顶点坐标(0,0)(1,0)(0,1)按Enter 键输入功能选项2出现图4窗口。图 4 判断三角形为等腰三角形5.再输入三个顶点坐标(0,0)(0,3)(4,0)按Enter 键输入功能选项2出现图5窗口。图5 判断三角形为直角三角形6.再输入三个顶点坐标(0,0)(0,3)(4,0)按Enter 键输入功能选项2得出三角形为直角三角形,然后再按Enter 键输入功能选项3出现图6 窗口图6 求出三角形的面积7.判断完三角形种类计算了面积之后按Enter键,选择功能选项4程序执行完毕如图7如图7 程序运行结束四、结 论总结:在开发一个软件项目的过程中,程序调试过程占了一个绝大部分的时间,工作总量占软件开发总工作量的40%以上,软件测试是保证软件质量的关键步骤,可见程序调试它的重要性。通过不断地程序调试,我们发现了程序中的达不到要求的地方,并且能够从中改进程序编写的内容,如结构的编排,更好的判断方法等等,最后开发出质量最好的软件五、致 谢拿到这次的课程设计题目时,我们认为这是一项非常具有挑战性的任务,尽管我们有一个小团队,但是困难还是不容小觑。我们五个队友一起商讨每个步骤,分工合作,再一起商议确定。整个过程,我们确实遇到了不少棘手的困难,但是因为有队友、指导老师做后盾,我们都不畏地举步,一步步尝试、摸索向前,终于有了这份c+课程程序设计。这份课程设计可能还有不够详尽、完善的地方,但是有这样的成果,我们都已经很欣慰了。在这里,我们由衷地感谢学校给我们提供这样一个一起学习和研究的机会,也给了我们锻炼和提高的机会,让我们把理论知识应用到实际中来。根据老师的指导,在设计中我们基本能按照规范的方法和步骤进行,开始对实现判断各类三角形的形状及计算它们的面积进行讨论,并查阅有关资料,最后确定设计方案,然后设计并制作。在

温馨提示

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

评论

0/150

提交评论