完整版c++毕业课程设计之三角形的种类和面积Word文档格式.docx
- 文档编号:20263543
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:9
- 大小:17.93KB
完整版c++毕业课程设计之三角形的种类和面积Word文档格式.docx
《完整版c++毕业课程设计之三角形的种类和面积Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版c++毕业课程设计之三角形的种类和面积Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
Thedesignofthetriangleisconcernedwiththetypeandarea.Byinheritingclassesderived,andmembersofthefunctioncallsforthetriangle,criterionthelengthofthetriangle,thetrianglearea,datafiles,checkthefiledataintoemptydatafiles,etc.Intheprocessofusingtheinheritance,enhancecodereusability.Programmainlybypoint,line,andthemainfunctionoftriangles.
Keywords:
class,theclassinheritsandderivatives
《C++程序设计语言》课程设计
——利用类的继承与派生求三角形的种类和面积
一、引言
随着人们生活水平的提高,计算机发展异常迅速。
如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。
通过计算机对各类问题求解已经成为一种高效、快捷的方式。
本课程设计就是用C++研究三角形的种类及面积的问题,实现对三角形的种类和面积的求解及实现类的应用以及函数的调用。
二、设计目的与任务
1、本课程设计的目的
1)通过课程设计更进一步理解C++的基础知识和面向对象的思想。
2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
3)熟练掌握C++中类的继承与派生在程序中的应用,并熟练了解类中函数的调用。
4)通过分工协作,激发团队合作精神,培养团队合作的能力。
2、本课程设计的任务
使用类实现对三角形的种类和面积求解,具体内容如下:
1)设计菜单实现功能选择;
2)输入三角形的三个顶点坐标;
3)判断三角形的种类(一般三角形、等腰三角形、等边三角形、直角三角形和不能构成三角形);
4)计算并输出三角形的面积
5)对输入数据和输出结果均用文件实现
三、设计方案
(一)定义三个Point,Line,Triangle三个类,它们之间的关系。
如图示:
(二)详细设计
详细注释:
public:
Point();
:
点类无参构造函数
Point(参数);
点类带参构造函数
Private:
doubleX;
点的x坐标
doubleY;
点的y坐标
Line();
线段类无参构造函数
Line(参数);
线段类带参构造函数
private:
doubleX1,X2,Y1,Y2;
两个点的x坐标和y坐标
Pointp1,p2;
两个点类成员
Triangle();
三角形类无参构造函数
Triangle(参数);
三角形带参构造函数
trilineput();
三角形边长输出函数
triarea();
求三角形面积函数
trijudgekind();
三角形类型判断函数
trisave();
三角形点的数据及面积存入文件函数
tricheck();
文件内容查看函数
triclear();
文件内容清空函数
doubleX1,X2,X3,Y1,Y2,Y3;
三角形三点的x坐标和y坐标
Pointp1,p2,p3;
三个点类成员
Linel1,l2,l3:
三个线段类成员
(三)其他自定义函数
voidsetprecision();
设置输出数据精度函数
viodtriin(Triangle&
t);
:
初始化一个三角形对象函数
voiddisplay();
主菜单显示函数
(四)主函数:
voiddisplay();
switch(intn):
调用操作
四、程序清单
#include"
iostream.sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2));
返回两点的距离值,即三角形边
}长的值
三角形类
classTriangle:
publicLine公有继承线段类函数
{
Triangle():
l1(),l2(),l3()三角形类无参构造函数,对私有数据成员赋缺省值
X1=0;
X2=0;
X3=0;
Y1=0;
Y2=0;
Y3=0;
}
Triangle(doublex1,doubley1,doublex2,doubley2,doublex3,doubley3):
Line(),l1(x1,y1,x2,y2),l2(x1,y1,x3,y3),l3(x2,y2,x3,y3)
{三角形带参构造函数,对私有数据进行初始化
X1=x1;
X2=x2;
X3=x3;
Y1=y1;
Y2=y2;
Y3=y3;
voidtrilineput();
doubletriarea();
voidtrijudgekind();
三角形判断函数
voidtrisave();
数据存入函数
voidtricheck();
查看文件数据
voidtriclear();
清空数据函数
Linel1,l2,l3;
私有线段类成员
私有点类成员
私有数据成员
};
voidTriangle:
trilineput()
输出三角形三条边的长度
cout<
<
"
这三个点组成三边的长度分别为:
setiosflags(ios:
fixed)<
setprecision(P)设定数据输出精度
l1.linelength()<
\t"
l2.linelength()<
l3.linelength()<
endl;
}调用三角形类中的成员函数linelength()求边长
doubleTriangle:
triarea()
计算三角形的面积
doublea=l1.linelength();
调用三角形类成员函数:
求两点距离
doubleb=l2.linelength();
doublec=l3.linelength();
doublep=(a+b+c)2;
returnsqrt(p*(p-a)*(p-b)*(p-c));
返回面积三角形的值
trijudgekind()
三角形的判断
if((X1==X2&
&
X2==X3)||(Y1==Y2&
Y2==Y3)||((X3-X2)*(Y2-Y1)-(Y3-Y2)*(X2-X1))==0)判断三点是否在一条直线上
三点所成直线与坐标轴垂直或者不垂直于直线
这三点在一条直线是上,不能构成三角形!
else
doublea=l1.linelength(),b=l2.linelength(),c=l3.linelength();
将三角形形三条边的长度分别赋给a,b,c
if(a==b||b==c||a==c)判断是否有两条边相等
if(((X2-X1)*(X3-X2)+(Y2-Y1)*(Y3-Y2))==0||((X2-X1)*(X3-X1)+(Y2-Y1)*(Y3-Y1))==0||((X3-X2)*(X3-X1)+(Y3-Y2)*(Y3-Y1))==0)判断直角
这是一个等腰直角三角形."
endl<
边长分别为:
a<
b<
c<
elseif(a==b&
b==c)判断是否三条边相等
这是一个等边三角形,"
边长为:
."
if(b==c)判断底边的值
setprecision(P)
这是一个等腰三角形."
腰长为:
"
底边长为:
elseif(a==b)
;
else三条边不相等
if(((X2-X1)*(X3-X2)+(Y2-Y1)*(Y3-Y2))==0||((X2-X1)*(X3-X1)+(Y2-Y1)*(Y3-Y1))==0||((X3-X2)*(X3-X1)+(Y3-Y2)*(Y3-Y1))==0)判断直角
这是一个直角三角形."
fixed)
setprecision(P)<
if((a*a+b*b-c*c)<
0||(a*a+c*c-b*b)<
0||(b*b+c*c-a*a)<
0)
这是一个一般钝角三角形,"
这是一个一般锐角三角形,"
trisave()
定义点数据及面积数据存入
ofstreamftriangle;
charc;
\n保存三个点的坐标及面积数据,是否继续?
[YN]:
cin>
>
c;
if(toupper(c)!
='
Y'
)return;
ftriangle.open("
triangledata.txt"
ios:
out);
ftriangle<
X1<
Y1<
X2<
Y2<
X3<
Y3<
三点形成三角形的面积是:
triarea()<
ftriangle.close();
\n保存点数据及面积数据已经完成...\n"
triclear()
清空文件中的数据
\n将会清空数据,是否继续?
if(toupper(c)=='
)
);
ftriangle.clear();
\n数据已经清空...\n"
elsereturn;
tricheck()
查看文件中的数据
charch;
ifstreamftriangle("
binary|ios:
nocreate);
if(ftriangle)
while(ftriangle.good())
ftriangle.get(ch);
if(!
ch)
break;
ch;
error:
Cannotopenfile'
triangledata.txt'
文件数据读取完毕!
...\n"
voidtriin(Triangle&
t)
录入三个点的坐标对操作数据进行初始化
doublex1,x2,x3,y1,y2,y3;
输入第一个点的坐标值:
x1>
y1;
输入第二个点的坐标值:
x2>
y2;
输入第三个点的坐标值:
x3>
y3;
Trianglep(x1,y1,x2,y2,x3,y3);
t=p;
voidsetprecision()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 c+ 毕业 课程设计 三角形 种类 面积
![提示](https://static.bdocx.com/images/bang_tan.gif)