C++幾何圖形面積周長計算_第1頁
C++幾何圖形面積周長計算_第2頁
C++幾何圖形面積周長計算_第3頁
C++幾何圖形面積周長計算_第4頁
C++幾何圖形面積周長計算_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、福建工程學(xué)院計算機(jī)與信息科學(xué)系實驗報告10-11學(xué)年第1學(xué)期任課老師:林志強(qiáng)、鄭積仕課程名稱面向?qū)ο笳n程設(shè)計班級計算機(jī)0802座號24姓名謝茂財實驗題目圖形多態(tài)實驗時間實驗開始日期:報告提交日期:實驗?zāi)康?、要求編寫一個程序,計算任給一個幾何形體的面積和周長。幾何形體可以是矩形、三角型、圓形、扇型、梯形。要求:(1)由用戶通過鍵盤輸入要處理的幾何形體,每次輸入一個幾何形體。輸入規(guī)則是:程序輸出提示信息,請用戶選擇要處理的幾何形體的類型。如果輸入字母“E”,表示要退出程序的運行,根據(jù)用戶選擇的幾何形體類型,輸出提示信息,請用戶輸入幾何形體的描述數(shù)據(jù)。例如圓形的中心點坐標(biāo)和半徑。要求在提示信息中說明

2、輸入數(shù)據(jù)的格式。由程序根據(jù)規(guī)定的格式讀入數(shù)據(jù),如果輸入數(shù)據(jù)的格式不對、或錯誤(例如把一個負(fù)數(shù)作為圓形的半徑輸入),要輸出提示信息請求用戶輸入正確的數(shù)據(jù)、并再次讀入。(2)在用戶輸入一個幾何形體后,程序輸出該幾何形體的面積和周長,要求在輸出中注明哪個數(shù)據(jù)是面積、哪個數(shù)據(jù)是周長。然后回到上一步,繼續(xù)處理新的幾何形體,直到用戶選擇退出程序運行為止。(3)在基類中加兩個虛函數(shù)setfromfile(),printtofile()分別用于文件讀寫,文件統(tǒng)一后綴".geo”,在輸入文件名時不必輸入。向文件輸出時注意在每個輸出后要輸出或'n',否則從文件輸入時會出錯。從文件輸入時,

3、只能屏幕輸出,輸出結(jié)果是按周長大小排序的。而從鍵盤輸入時可以選擇是屏幕輸出還是文件輸出,但都是按面積大小排序的。實驗設(shè)計內(nèi)容H,LH,LH,LH,LH,LPRINTTOFILELOADSORTOUTPUT記錄每次實驗結(jié)果以及分析情況開始界面:佳“MgFROnbpn*vwtrrripcwr入幾圖形世畀由<£<啜比矩形世界生三育型世界匚:圓形世界D:房型世界E桃形世界F二從文件輸出G二退出»>»»»»>»»»<««««««

4、;««««請逸若體要操作的國刃代號:矩形:清選擇你要搦祚約圖形代虧:£清粉入毒坨的用拜學(xué)噌:,左上頂點T標(biāo):格式12)00在,寬二格式(23)a4面幟:,2周任U4請輸入你要保存的文件名!三角形:諳連挺你要操他的圍吊代號:b'請輸人三串字的描述蚊據(jù):第一個坐標(biāo)::格式(12)00|第二個坐標(biāo)二格式(L2)10第三個坐標(biāo):格式(L2)01武秋二口.5周長:3,41421港輸人體要保存的女件名:圓:請選擇你要操作的圖形代號:C請輸入圓形的描述數(shù)據(jù):坐標(biāo):格式(1£)00半窗3®g?:78.53g7周長:3L415g請前人

5、你要呆存的文件名!扇形:I請選擇你要操作的圖形代號:d請輸入扇形的描述數(shù)據(jù);坐標(biāo):格式口2)00半役:4孤度;90面積:12.5664周長;2832清翰入你荽保存的文件名!梯形:請選擇你要操作的圖形代號廠苦常人喋二.的虧-f.蚊我左上坐標(biāo)::格式?;?。上邊:4下邊:5左邊:3右邊4高;3面積:工工5周長:15謔物入你要保存的文件名:文件輸出:請選擇你要操作的畫形代號:f請輸入要顯示的文件名!aa輸出結(jié)果畤面積大小排序面積:周長:D.53.414210.&3,41421610121412.U.283213.5162&27431£.84Q578.a3973L4159總結(jié)以

6、及心得體會指導(dǎo)老師評閱意見指導(dǎo)老師:填寫內(nèi)容時,可把表格擴(kuò)大。實驗的源程序代碼(要有注釋)附在表后。eo");floata,l;(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();cout<<a<<l;voidRec:printtofile()chars20;cout<<endl<<"請輸入你要保存的文件名!"<<endl;cin>>s;ofst

7、reamfile(s,ios_base:app|ios_base:binary);strcat(s,".geo");floata,l;a=Area();l=Girth();(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();)classTri:publicBaseeo");floata,l;(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_ca

8、st<char*>(&l),sizeof(l);();cout<<a<<l;)voidTri:printtofile()chars20;cout<<endl<<"請輸入你要保存的文件名!"<<endl;cin>>s;ofstreamfile(s,ios_base:app|ios_base:binary);strcat(s,".geo");floata,l;a=Area();l=Girth();(reinterpret_cast<char*>(&

9、a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();classCir:Baseeo");floata,l;(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();cout<<a<<l;voidCir:printtofile()chars20;cout<<endl<<"請輸入你要保存的文件名!"&l

10、t;<endl;cin>>s;ofstreamfile(s,ios_base:app|ios_base:binary);strcat(s,".geo");floata,l;a=Area();l=Girth();(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();classScapublicBaseeo");floata,l;(reinterpret_cast<char*>(&a)

11、,sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();cout<<a<<l;)voidSca:printtofile()(chars20;cout<<endl<<"請輸入你要保存的文件名!"<<endl;cin>>s;ofstreamfile(s,ios_base:app|ios_base:binary);strcat(s,".geo");floata,l;a=Area();l=Girth();(reinterp

12、ret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();)classTraeo");floata,l;(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();cout<<a<<l;)voidTra:printtofile()(chars20;cout<<endl<<&

13、quot;請輸入你要保存的文件名!"<<endl;cin>>s;ofstreamfile(s,ios_base:app|ios_base:binary);strcat(s,".geo");floata,l;a=Area();l=Girth();(reinterpret_cast<char*>(&a),sizeof(a);(reinterpret_cast<char*>(&l),sizeof(l);();intPositivefloath,floatl)if(h>0&&l>0

14、)return1;elsethrow0;intPositive(floatr)if(r>0)return1;elsethrow0;voidRectangle()cout<<endl<<"請輸入矩形的描述數(shù)據(jù):"<<endl<<endl;floath,l,x,y;coutvvendlv<"左上頂點坐標(biāo):格式(12)"cin»x»y;coutv令ndlvY,長,寬:格式(23)"cin»h»l;try(Positive(hJ);Pointa(x,y)

15、;Recm(a,h,l);8""面積:"VV()VV“周長:"«();0;catch(int)(coutv<"輸入數(shù)據(jù)有誤,請重輸!”v<endl;)voidTriangle()(intx1,y1,x2,y2,x3,y3;coutv<endlv<"請輸入三角形的描述數(shù)據(jù):"v<endl;coutv<endlv<H第一個坐標(biāo)二格式(12)"cin»x1»y1;coutv<endlv<"第二個坐標(biāo)二格式(12)"ci

16、n»x2»y2;coutv<endlv<"第三個坐標(biāo)二格式(12)"cin»x3»y3;Pointa(x1,y1),b(x2,y2),c(x3,y3);Trit(a,b,c);8成<"面積:"vv()vv"周長:"«()«endl;0;)voidCircle()(intx1,y1,r;coutv<endlv<*'請輸入圓形的描述數(shù)據(jù)'vvendl;coutv<endlv<"坐標(biāo):格式(12)"cin

17、»x1»y1;coutv<endlv<"半徑:";cin»r;Pointa(x1,y1);Circ(a,r);8成<"面積:"vv()vv"周長:"«()«endl;0;)voidScall()(intx1,y1,r,b;coutv<endlv<"請輸入扇形的描述數(shù)據(jù):"vvendl;coutv<endlv<"坐標(biāo):格式(12)"cin»x1»y1;cout<<endl&l

18、t;<"半徑:"cin>>r;coutvvendy弧度:"cin>>b;Pointa(x1,y1);Scac(a,r,b);cout<<"面積:"<<()<<"周長:"<<()<<endl;();voidTrape()intx1,y1,l,r,l1,l2,h;cout<<endl<<"請輸入梯形的描述數(shù)據(jù):"<<endl;cout<<endl<<"

19、左上坐標(biāo)::格式(12)"cin>>x1>>y1;cout<<endl<<"上邊:"cin>>l1;cout<<endl<<"下邊:"cin>>l2;cout<<endl<<"左邊:"cin>>l;cout<<endl<<"右邊:"cin>>r;cout<<endl<<"高:"cin>>

20、;h;Pointa(x1,y1);Trat(a,l,r,l1,l2,h);cout<<"面積:"<<()<<"周長:"<<()<<endl;();)voidSortfloata,floatz,intcount)(for(inti=0;i<count-1;i+)for(intj=i;j<count;j+)(if(aj<ai)(floatt=ai;ai=aj;aj=t;floatm=zi;zi=zj;zj=m;)voidOutput(constfloata,constfloatz,

21、constintcount)(cout<<"面積:"<<"周長:"<<endl;for(inti=0;i<count;i+)cout<<ai<<""<<zi<<endl;)voidLoad()coutvv”請輸入要顯示的文件名!"«endl;chars20;inti=0;floata100,z100;cin»s;ifstreamfile(s);(0);intcount=0;while(file)(count+;(re

22、interpret_cast<char*>(&ai),sizeof(ai);(reinterpret_cast<char*>(&zi),sizeoi(zi);i+;)Sort(a,z,count-1);coutv<"輸出結(jié)果按面積大小排序"«endl;Output(a,z,count-1);)voidMenu()(while(1)(cout«endl«">>>>>>>>>歡迎進(jìn)入幾何圖形世界vvvvvvvvvv2vendlv<endl;cout«"IA:矩形世界I"«endl;cout«"|B:三角型世界I"«endl;cout«"|C:圓形世界I"«endl;cout«"|D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論