




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)告三角形的種類和面積班 級(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ì)用類進(jìn)行有關(guān)三角形的種類和面積的操作。通過類的繼承與派生,調(diào)用類的成員函數(shù)實(shí)現(xiàn)判別三角形的種類,求三角形三條邊的長(zhǎng)度,求三角形的面積,數(shù)據(jù)存入文件,查看文件數(shù)據(jù),清空數(shù)據(jù)文件等操作。程序中使用了類的繼承,提高代碼的復(fù)用性。程序主要由點(diǎn)類、線段類、三角形
2、類以及主函數(shù)構(gòu)成。22C+程序設(shè)計(jì)語言課程設(shè)計(jì) 利用類的繼承與派生求三角形的種類和面積一、引言隨著人們生活水平的提高,計(jì)算機(jī)發(fā)展異常迅速。如今,計(jì)算機(jī)已經(jīng)深入到我們社會(huì)的各個(gè)領(lǐng)域,計(jì)算機(jī)的使用也已不再局限于科學(xué)計(jì)算,它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。通過計(jì)算機(jī)對(duì)各類問題求解已經(jīng)成為一種高效、快捷的方式。本課程設(shè)計(jì)就是用C+研究三角形的種類及面積的問題,實(shí)現(xiàn)對(duì)三角形的種類和面積的求解及實(shí)現(xiàn)類的應(yīng)用以及函數(shù)的調(diào)用。二、設(shè)計(jì)目的與任務(wù)1、本課程設(shè)計(jì)的目的1)通過課程設(shè)計(jì)更進(jìn)一步理解C+的基礎(chǔ)知識(shí)和面向?qū)ο蟮乃枷搿?)訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),并在此過程中培養(yǎng)嚴(yán)
3、謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能。3)熟練掌握C+中類的繼承與派生在程序中的應(yīng)用,并熟練了解類中函數(shù)的調(diào)用。4)通過分工協(xié)作,激發(fā)團(tuán)隊(duì)合作精神,培養(yǎng)團(tuán)隊(duì)合作的能力。2、本課程設(shè)計(jì)的任務(wù)使用類實(shí)現(xiàn)對(duì)三角形的種類和面積求解,具體內(nèi)容如下:1)設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇; 2)輸入三角形的三個(gè)頂點(diǎn)坐標(biāo);3)判斷三角形的種類(一般三角形、等腰三角形、等邊三角形、直角三角形和不能構(gòu)成三角形);4)計(jì)算并輸出三角形的面積 5)對(duì)輸入數(shù)據(jù)和輸出結(jié)果均用文件實(shí)現(xiàn)三、設(shè)計(jì)方案(一)定義三個(gè)Point,Line,Triangle三個(gè)類,它們之間的關(guān)系
4、。如圖示:Point類Line類Triangle類繼承繼承派生派生(二)詳細(xì)設(shè)計(jì)private:double X1,X2,X3,Y1,Y2,Y3;Point p1,p2,p3; Line l1,l2,l3;Point 類:作為基類Line類:公有繼承Point類Triangle類:公有繼承Line類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ì)注釋:public:Point();:點(diǎn)類無參構(gòu)造函數(shù)Point(參數(shù));:點(diǎn)類帶參構(gòu)造函數(shù)Private:double X;:點(diǎn)的x坐標(biāo)double Y;:點(diǎn)的y坐標(biāo)public:Line();:線段類無參構(gòu)造函數(shù)Line(參數(shù));:線段類帶參構(gòu)造函數(shù)private:double X1,X2,Y1,Y2;兩個(gè)點(diǎn)的x坐標(biāo)和y坐標(biāo)Point p1,p2;兩個(gè)點(diǎn)類成員public:Triangle();:三角形類無參構(gòu)造函數(shù)Triangle(參數(shù));:三角形帶參
6、構(gòu)造函數(shù)trilineput();:三角形邊長(zhǎng)輸出函數(shù)triarea();:求三角形面積函數(shù)trijudgekind();:三角形類型判斷函數(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)類成員Line l1,l2,l3:三個(gè)線段類成員(三)其他自定義函數(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)類/做線段類的基類class Pointpublic:Point()/
8、點(diǎn)類無參構(gòu)造函數(shù)X=0;Y=0;Point(double x,double y)/點(diǎn)類帶參構(gòu)造函數(shù)X=x;Y=y;private:double X;/點(diǎn)類私有數(shù)據(jù)成員double Y;/線段類class Line: public Point/公有繼承點(diǎn)類public:Line()/線段類無參構(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)/線段類帶參構(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)類成員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)的值/三角形類class Triangle: public Line/公有繼承線段類函數(shù)public:Triangle():l1(0,0,0,0),l2(0,0,0,0),l3(0,0,0,0)/三角形類無參構(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;/私有線段類成員Point p1,p2,p3;/私有點(diǎn)類成員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)用三角形類中的成員函數(shù)linelength()求邊長(zhǎng)double Triangle:triarea()/計(jì)算三角形的面積double a=l1.linelength();/調(diào)用三角形類成員函數(shù):求兩點(diǎn)距離double b=l2.linelength();/調(diào)用三角形類成員函數(shù):求兩點(diǎn)距離double c=l3.linelength();/調(diào)用三角形類
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)是否在一條直線上/三點(diǎn)所成直線與坐標(biāo)軸垂直或者不垂直于直線cout<<"這三點(diǎ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* 三角形的種類與面積 *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ì)在開發(fā)一個(gè)軟件項(xiàng)目的過程中,程序調(diào)試過程占了一個(gè)絕大部分的時(shí)間,可見程序調(diào)試它的重要性。通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省莆田市某校2024-2025學(xué)年高二上學(xué)期期末考試政治試題(原卷版+解析版)
- 2025年湖北省中考思想品德與法治模擬試卷(附答案)
- 2025年黨章黨紀(jì)黨史黨建知識(shí)競(jìng)賽多項(xiàng)選擇題庫及答案(共190道題)
- 中學(xué)精神文明建設(shè)工作計(jì)劃
- 宮腔鏡下輸卵管插管通液治療不孕不育效果探討
- 節(jié)日教職工福利(花生油)項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 鄉(xiāng)村農(nóng)田管理與開發(fā)協(xié)議
- 音樂制作與發(fā)行全流程指南
- 船舶導(dǎo)航與航行技術(shù)指南
- 環(huán)保設(shè)備可行性研究報(bào)告
- 有機(jī)化學(xué)(馮駿材編)課后習(xí)題答案
- 東北三省三校2024年高三一模(第一次聯(lián)合模擬考試)語文試卷(含答案)
- 無人機(jī)的傳感器系統(tǒng)
- 圖文解讀中小學(xué)教育懲戒規(guī)則(試行)全文內(nèi)容課件模板
- 2024年廣西旅發(fā)置業(yè)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《無塵室基礎(chǔ)知識(shí)》課件
- 中式烹調(diào)技藝教案
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學(xué)
- 加固工程監(jiān)理實(shí)施細(xì)則
- 醫(yī)保按病種分值付費(fèi)(DIP)院內(nèi)培訓(xùn)
- 高聚物改性瀝青防水卷材檢驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論