版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 C+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告三角形的種類(lèi)和面積班 級(jí): 10級(jí)2班 _姓 名: 沈 茂 良 _ _ _學(xué) 號(hào): 101102025 _指導(dǎo)教師: 唐 遠(yuǎn) 翔 _完成時(shí)間: 2011 年 11 月 30 日目 錄2摘 要一、引言二、設(shè)計(jì)目的與任務(wù)1、本課程設(shè)計(jì)的目的2、本課程設(shè)計(jì)的任務(wù)三、設(shè)計(jì)方案四、程序清單五、程序調(diào)試與體會(huì)六、總結(jié) 摘 要本次設(shè)計(jì)用類(lèi)進(jìn)行有關(guān)三角形的種類(lèi)和面積的操作。通過(guò)類(lèi)的繼承與派生,調(diào)用類(lèi)的成員函數(shù)實(shí)現(xiàn)判別三角形的種類(lèi),求三角形三條邊的長(zhǎng)度,求三角形的面積,數(shù)據(jù)存入文件,查看文件數(shù)據(jù),清空數(shù)據(jù)文件等操作。程序中使用了類(lèi)的繼承,提高代碼的復(fù)用性。程序主要由點(diǎn)類(lèi)、線(xiàn)段類(lèi)、三角形
2、類(lèi)以及主函數(shù)構(gòu)成。22C+程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì) 利用類(lèi)的繼承與派生求三角形的種類(lèi)和面積一、引言隨著人們生活水平的提高,計(jì)算機(jī)發(fā)展異常迅速。如今,計(jì)算機(jī)已經(jīng)深入到我們社會(huì)的各個(gè)領(lǐng)域,計(jì)算機(jī)的使用也已不再局限于科學(xué)計(jì)算,它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。通過(guò)計(jì)算機(jī)對(duì)各類(lèi)問(wèn)題求解已經(jīng)成為一種高效、快捷的方式。本課程設(shè)計(jì)就是用C+研究三角形的種類(lèi)及面積的問(wèn)題,實(shí)現(xiàn)對(duì)三角形的種類(lèi)和面積的求解及實(shí)現(xiàn)類(lèi)的應(yīng)用以及函數(shù)的調(diào)用。二、設(shè)計(jì)目的與任務(wù)1、本課程設(shè)計(jì)的目的1)通過(guò)課程設(shè)計(jì)更進(jìn)一步理解C+的基礎(chǔ)知識(shí)和面向?qū)ο蟮乃枷搿?)訓(xùn)練用系統(tǒng)的觀(guān)點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),并在此過(guò)程中培養(yǎng)嚴(yán)
3、謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能。3)熟練掌握C+中類(lèi)的繼承與派生在程序中的應(yīng)用,并熟練了解類(lèi)中函數(shù)的調(diào)用。4)通過(guò)分工協(xié)作,激發(fā)團(tuán)隊(duì)合作精神,培養(yǎng)團(tuán)隊(duì)合作的能力。2、本課程設(shè)計(jì)的任務(wù)使用類(lèi)實(shí)現(xiàn)對(duì)三角形的種類(lèi)和面積求解,具體內(nèi)容如下:1)設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇; 2)輸入三角形的三個(gè)頂點(diǎn)坐標(biāo);3)判斷三角形的種類(lèi)(一般三角形、等腰三角形、等邊三角形、直角三角形和不能構(gòu)成三角形);4)計(jì)算并輸出三角形的面積 5)對(duì)輸入數(shù)據(jù)和輸出結(jié)果均用文件實(shí)現(xiàn)三、設(shè)計(jì)方案(一)定義三個(gè)Point,Line,Triangle三個(gè)類(lèi),它們之間的關(guān)系
4、。如圖示:Point類(lèi)Line類(lèi)Triangle類(lèi)繼承繼承派生派生(二)詳細(xì)設(shè)計(jì)private:double X1,X2,X3,Y1,Y2,Y3;Point p1,p2,p3; Line l1,l2,l3;Point 類(lèi):作為基類(lèi)Line類(lèi):公有繼承Point類(lèi)Triangle類(lèi):公有繼承Line類(lèi)public:Point();Point(參數(shù));public:Line();Line(參數(shù));linelength();public:Triangle();Triangle(參數(shù)); trilineput();triarea(); trijudgekind();trisave();tricheck
5、();triclear();Private:double X;double Y;private:double Point p1,p2;詳細(xì)注釋?zhuān)簆ublic:Point();:點(diǎn)類(lèi)無(wú)參構(gòu)造函數(shù)Point(參數(shù));:點(diǎn)類(lèi)帶參構(gòu)造函數(shù)Private:double X;:點(diǎn)的x坐標(biāo)double Y;:點(diǎn)的y坐標(biāo)public:Line();:線(xiàn)段類(lèi)無(wú)參構(gòu)造函數(shù)Line(參數(shù));:線(xiàn)段類(lèi)帶參構(gòu)造函數(shù)private:double X1,X2,Y1,Y2;兩個(gè)點(diǎn)的x坐標(biāo)和y坐標(biāo)Point p1,p2;兩個(gè)點(diǎn)類(lèi)成員public:Triangle();:三角形類(lèi)無(wú)參構(gòu)造函數(shù)Triangle(參數(shù));:三角形帶參
6、構(gòu)造函數(shù)trilineput();:三角形邊長(zhǎng)輸出函數(shù)triarea();:求三角形面積函數(shù)trijudgekind();:三角形類(lèi)型判斷函數(shù)trisave();:三角形點(diǎn)的數(shù)據(jù)及面積存入文件函數(shù)tricheck();:文件內(nèi)容查看函數(shù)triclear();:文件內(nèi)容清空函數(shù)private:double X1,X2,X3,Y1,Y2,Y3;:三角形三點(diǎn)的x坐標(biāo)和y坐標(biāo)Point p1,p2,p3;:三個(gè)點(diǎn)類(lèi)成員Line l1,l2,l3:三個(gè)線(xiàn)段類(lèi)成員(三)其他自定義函數(shù)void setprecision();:設(shè)置輸出數(shù)據(jù)精度函數(shù)viod triin(Triangle &t);:初始
7、化一個(gè)三角形對(duì)象函數(shù)void display();:主菜單顯示函數(shù)(四)主函數(shù):void display();switch(int n):調(diào)用操作四、程序清單#include"iostream.h"#include"math.h"#include"fstream.h"#include"ctype.h"#include"iomanip.h"#include"stdlib.h"static int P=2;/點(diǎn)類(lèi)/做線(xiàn)段類(lèi)的基類(lèi)class Pointpublic:Point()/
8、點(diǎn)類(lèi)無(wú)參構(gòu)造函數(shù)X=0;Y=0;Point(double x,double y)/點(diǎn)類(lèi)帶參構(gòu)造函數(shù)X=x;Y=y;private:double X;/點(diǎn)類(lèi)私有數(shù)據(jù)成員double Y;/線(xiàn)段類(lèi)class Line: public Point/公有繼承點(diǎn)類(lèi)public:Line()/線(xiàn)段類(lèi)無(wú)參構(gòu)造函數(shù)X1=0;X2=0;Y1=0;Y2=0;/給私有數(shù)據(jù)成員賦初值Line(double x1,double y1,double x2,double y2):Point(0,0),p1(x1,y1),p2(x2,y2)/線(xiàn)段類(lèi)帶參構(gòu)造函數(shù),初始化數(shù)據(jù)X1=x1;X2=x2;Y1=y1;Y2=y2;dou
9、ble linelength();/求兩點(diǎn)距離函數(shù)private:Point p1,p2; /私有點(diǎn)類(lèi)成員double X1,X2,Y1,Y2;/私有數(shù)據(jù)成員;double Line:linelength()/定義求兩點(diǎn)距離函數(shù),即三角形的邊長(zhǎng)return sqrt(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2);/返回兩點(diǎn)的距離值,即三角形邊 /長(zhǎng)的值/三角形類(lèi)class Triangle: public Line/公有繼承線(xiàn)段類(lèi)函數(shù)public:Triangle():l1(0,0,0,0),l2(0,0,0,0),l3(0,0,0,0)/三角形類(lèi)無(wú)參構(gòu)造函數(shù),對(duì)私有數(shù)據(jù)成員賦
10、缺省值X1=0;X2=0;X3=0;Y1=0;Y2=0;Y3=0;Triangle(double x1,double y1,double x2,double y2,double x3,double y3):Line(0,0,0,0),l1(x1,y1,x2,y2),l2(x1,y1,x3,y3),l3(x2,y2,x3,y3) /三角形帶參構(gòu)造函數(shù),對(duì)私有數(shù)據(jù)進(jìn)行初始化X1=x1;X2=x2;X3=x3;Y1=y1;Y2=y2;Y3=y3;void trilineput();/三角形邊長(zhǎng)輸出函數(shù)double triarea();/求三角形面積函數(shù)void trijudgekind();/三角形
11、判斷函數(shù)void trisave();/數(shù)據(jù)存入函數(shù)void tricheck();/查看文件數(shù)據(jù)void triclear();/清空數(shù)據(jù)函數(shù)private:Line l1,l2,l3;/私有線(xiàn)段類(lèi)成員Point p1,p2,p3;/私有點(diǎn)類(lèi)成員double X1,X2,X3,Y1,Y2,Y3;/私有數(shù)據(jù)成員;void Triangle:trilineput()/輸出三角形三條邊的長(zhǎng)度cout<<"這三個(gè)點(diǎn)組成三邊的長(zhǎng)度分別為:"<<setiosflags(ios:fixed)<<setprecision(P) /設(shè)定數(shù)據(jù)輸出精度<
12、;<l1.linelength()<<"t"<<l2.linelength()<<"t"<<l3.linelength()<<endl; /調(diào)用三角形類(lèi)中的成員函數(shù)linelength()求邊長(zhǎng)double Triangle:triarea()/計(jì)算三角形的面積double a=l1.linelength();/調(diào)用三角形類(lèi)成員函數(shù):求兩點(diǎn)距離double b=l2.linelength();/調(diào)用三角形類(lèi)成員函數(shù):求兩點(diǎn)距離double c=l3.linelength();/調(diào)用三角形類(lèi)
13、成員函數(shù):求兩點(diǎn)距離double p=(a+b+c)/2;return sqrt(p*(p-a)*(p-b)*(p-c);/返回面積三角形的值void Triangle:trijudgekind()/三角形的判斷if(X1=X2&&X2=X3)|(Y1=Y2&&Y2=Y3)|(X3-X2)*(Y2-Y1)-(Y3-Y2)*(X2-X1)=0)/判斷三點(diǎn)是否在一條直線(xiàn)上/三點(diǎn)所成直線(xiàn)與坐標(biāo)軸垂直或者不垂直于直線(xiàn)cout<<"這三點(diǎn)在一條直線(xiàn)是上,不能構(gòu)成三角形!"<<endl;elsedouble a=l1.linele
14、ngth(),b=l2.linelength(),c=l3.linelength();/將三角形形三條邊的長(zhǎng)度分別賦給a,b,cif(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)/判斷直角cout<<"這是一個(gè)等腰直角三角形."<<endl<<"邊長(zhǎng)分別為:"<<setiosflags(ios:fix
15、ed)<<setprecision(P) /設(shè)定數(shù)據(jù)輸出精度<<a<<"t"<<b<<"t"<<c<<endl;else if(a=b&&b=c)/判斷是否三條邊相等cout<<"這是一個(gè)等邊三角形,"<<"邊長(zhǎng)為:"<<setiosflags(ios:fixed)<<setprecision(P) /設(shè)定數(shù)據(jù)輸出精度<<a<<".&q
16、uot;<<endl;elseif(b=c)/判斷底邊的值cout<<setiosflags(ios:fixed)<<setprecision(P)<<"這是一個(gè)等腰三角形."<<"腰長(zhǎng)為:"<<b<<","<<"底邊長(zhǎng)為:"<<a<<"."<<endl;else if(a=b)cout<<setiosflags(ios:fixed)<<se
17、tprecision(P)<<"這是一個(gè)等腰三角形."<<"腰長(zhǎng)為:"<<b<<","<<"底邊長(zhǎng)為:"<<c<<"."<<endl;elsecout<<setiosflags(ios:fixed)<<setprecision(P)<<"這是一個(gè)等腰三角形."<<"腰長(zhǎng)為:"<<a<<&qu
18、ot;,"<<"底邊長(zhǎng)為:"<<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)/判斷直角cout<<"這是一個(gè)直角三角形."<<endl<<"邊長(zhǎng)分別為:"<<setiosflags(ios:fixed)<<setpr
19、ecision(P)<<a<<"t"<<b<<"t"<<c<<endl;elseif(a*a+b*b-c*c)<0|(a*a+c*c-b*b)<0|(b*b+c*c-a*a)<0)cout<<"這是一個(gè)一般鈍角三角形,"<<endl<<"邊長(zhǎng)分別為:"<<setiosflags(ios:fixed)<<setprecision(P)<<a<<&
20、quot;t"<<b<<"t"<<c<<endl;elsecout<<"這是一個(gè)一般銳角三角形,"<<endl<<"邊長(zhǎng)分別為:"<<setiosflags(ios:fixed)<<setprecision(P)<<a<<"t"<<b<<"t"<<c<<endl;void Triangle:trisave()
21、/定義點(diǎn)數(shù)據(jù)及面積數(shù)據(jù)存入ofstream ftriangle;char c;cout<<"n保存三個(gè)點(diǎn)的坐標(biāo)及面積數(shù)據(jù),是否繼續(xù)?Y/N:"cin>>c;if(toupper(c)!='Y') return;ftriangle.open("triangledata.txt",ios:out);ftriangle<<"<"<<X1<<","<<Y1<<">"<<endl&l
22、t;<"<"<<X2<<","<<Y2<<">"<<endl<<"<"<<X3<<","<<Y3<<">"<<endl<<"三點(diǎn)形成三角形的面積是:"<<triarea()<<endl;ftriangle.close();cout<<"n保
23、存點(diǎn)數(shù)據(jù)及面積數(shù)據(jù)已經(jīng)完成.n"void Triangle:triclear()/清空文件中的數(shù)據(jù)char c;cout<<"n將會(huì)清空數(shù)據(jù),是否繼續(xù)?Y/N:"cin>>c;if(toupper(c)='Y')ofstream ftriangle;ftriangle.open("triangledata.txt");ftriangle.clear();ftriangle.close();cout<<"n數(shù)據(jù)已經(jīng)清空.n"else return;void Triangle:
24、tricheck()/查看文件中的數(shù)據(jù)char ch;ifstream ftriangle("triangledata.txt",ios:binary|ios:nocreate);if(ftriangle)while(ftriangle.good()ftriangle.get(ch);if(!ch)break;cout<<ch;elsecout<<"error:Cannot open file 'triangledata.txt'."<<endl;ftriangle.close();cout<&l
25、t;endl<<"文件數(shù)據(jù)讀取完畢!.n"void triin(Triangle &t)/錄入三個(gè)點(diǎn)的坐標(biāo)對(duì)操作數(shù)據(jù)進(jìn)行初始化double x1,x2,x3,y1,y2,y3;cout<<"輸入第一個(gè)點(diǎn)的坐標(biāo)值:"cin>>x1>>y1;cout<<endl<<"輸入第二個(gè)點(diǎn)的坐標(biāo)值:"cin>>x2>>y2;cout<<endl<<"輸入第三個(gè)點(diǎn)的坐標(biāo)值:"cin>>x3&g
26、t;>y3;cout<<endl;Triangle p(x1,y1,x2,y2,x3,y3);t=p;void setprecision()/設(shè)置數(shù)據(jù)的輸出精度cout<<"設(shè)置輸出精度(0-15):"int n;cin>>n;cout<<endl;P=n;void display()/顯示菜單界面cout<<"nntt*n"cout<<"ttt* 三角形的種類(lèi)與面積 *ntt*n"cout<<"nttt *n"cout<
27、;<"tttt1-三角形的判斷n"cout<<"tttt2-三條邊的長(zhǎng)度n"cout<<"tttt3-計(jì)算三角形的面積n"cout<<"tttt4-點(diǎn)數(shù)據(jù)及面積數(shù)據(jù)存入n"cout<<"tttt5-查看存入數(shù)據(jù)n"cout<<"tttt6-數(shù)據(jù)清空n"cout<<"tttt7-退出n "cout<<"ttt *n"cout<<"
28、;ttt 請(qǐng)選擇(1-7):"int main()Triangle t;char c;while(1)display();cin>>c;system("cls");switch(c)case '1':triin(t);setprecision();t.trijudgekind();cout<<endl;system("pause");break;case '2':triin(t);setprecision();t.trilineput();cout<<endl;system(&
29、quot;pause");break;case'3':triin(t);setprecision();cout<<"這個(gè)三角形的面積為:"<<t.triarea()<<endl<<endl;system("pause");break;case '4':t.trisave();cout<<endl;system("pause");break;case '5':t.tricheck();cout<<endl;s
30、ystem("pause");break;case '6':t.triclear();cout<<endl;system("pause");break;case '7':goto end;break;default: cout<<"請(qǐng)正確輸入!n"cout<<endl;system("pause");break;system("cls");end:cout<<"n.See you .nn"return 0;五、程序調(diào)試與體會(huì)在開(kāi)發(fā)一個(gè)軟件項(xiàng)目的過(guò)程中,程序調(diào)試過(guò)程占了一個(gè)絕大部分的時(shí)間,可見(jiàn)程序調(diào)試它的重要性。通
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年五年級(jí)數(shù)學(xué)上冊(cè) 五 小數(shù)乘法和除法第3課時(shí) 小數(shù)乘小數(shù)(2)說(shuō)課稿 蘇教版
- 2023七年級(jí)英語(yǔ)上冊(cè) Module 10 Spring Festival Unit 2 My mother's cleaning our houses and sweeping away bad luck說(shuō)課稿 (新版)外研版
- 2024年秋九年級(jí)化學(xué)上冊(cè) 第二單元 我們周?chē)目諝?課題3 制取氧氣說(shuō)課稿 (新版)新人教版
- 4電能和磁能 說(shuō)課稿-2024-2025學(xué)年科學(xué)六年級(jí)上冊(cè)教科版
- 2024-2025學(xué)年學(xué)年高中地理《海水運(yùn)動(dòng)》說(shuō)課稿
- 二零二五年度外籍專(zhuān)家項(xiàng)目合作與成果分享協(xié)議
- 二零二五年度旅游車(chē)輛租賃與景區(qū)夜間旅游項(xiàng)目合作協(xié)議3篇
- 二零二五年度離婚協(xié)議書(shū):子女監(jiān)護(hù)權(quán)及教育支出協(xié)議
- 8匆匆 說(shuō)課稿-2023-2024學(xué)年六年級(jí)下冊(cè)語(yǔ)文統(tǒng)編版
- 2024春七年級(jí)數(shù)學(xué)下冊(cè) 第3章 整式的乘除3.3多項(xiàng)式的乘法(2)說(shuō)課稿(新版)浙教版001
- 安全生產(chǎn)網(wǎng)格員培訓(xùn)
- 小學(xué)數(shù)學(xué)分?jǐn)?shù)四則混合運(yùn)算300題帶答案
- 林下野雞養(yǎng)殖建設(shè)項(xiàng)目可行性研究報(bào)告
- 心肺復(fù)蘇術(shù)課件2024新版
- 苜蓿青貯料質(zhì)量分級(jí)DB41-T 1906-2019
- 新鮮牛肉購(gòu)銷(xiāo)合同模板
- 2024年內(nèi)蒙古呼和浩特市中考文科綜合試題卷(含答案)
- 大型商場(chǎng)招商招租方案(2篇)
- 會(huì)陰擦洗課件
- 2024年交管12123學(xué)法減分考試題庫(kù)和答案
- 臨床下肢深靜脈血栓的預(yù)防和護(hù)理新進(jìn)展
評(píng)論
0/150
提交評(píng)論