c++課程設(shè)計(jì)之幾何體的表面積與體積_第1頁
c++課程設(shè)計(jì)之幾何體的表面積與體積_第2頁
c++課程設(shè)計(jì)之幾何體的表面積與體積_第3頁
c++課程設(shè)計(jì)之幾何體的表面積與體積_第4頁
c++課程設(shè)計(jì)之幾何體的表面積與體積_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)報告課程設(shè)計(jì)題目:幾何體的表面積與體積 學(xué)生姓名: 徐 輝專 業(yè): 軟件工程(電商)班 級: 1421812指導(dǎo)教師: 魏 振 華學(xué) 號: 201420181209 2015年 6月 30 日 目 錄一、引 言1二、設(shè)計(jì)目的與任務(wù)1三、設(shè)計(jì)方案2四、結(jié) 論10五、致 謝11一、引 言 通過C+課程設(shè)計(jì),使學(xué)生能將學(xué)到的面向?qū)ο蟮某绦蛟O(shè)計(jì)思想用到具體的工作和學(xué)習(xí)中,加深對類與對象的理解,是將計(jì)算機(jī)課程與實(shí)際問題相聯(lián)接的關(guān)鍵步驟。通過課程設(shè)計(jì),能夠提高學(xué)生分析問題、解決問題,從而運(yùn)用所學(xué)知識解決實(shí)際問題的能力,并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能,因而必須給予足夠的重視。二、設(shè)計(jì)目的與任務(wù)定義

2、一個抽象類形狀(shape),包含輸入基本圖形的信息函數(shù)input()、顯示基本圖形信息函數(shù)disp()、計(jì)算表面積的函數(shù)area()、計(jì)算體積的函數(shù)volume(),它們均為純虛函數(shù)。通過繼承形狀類派生出球體類、正方體類、長方體類、圓柱體類。程序需實(shí)現(xiàn)以下功能:1、設(shè)計(jì)菜單實(shí)現(xiàn)定義一個抽象類形狀(shape),包含輸入基本圖形的信息函功能選擇; 2、輸入各種形狀信息;3、顯示各種形狀信息;4、計(jì)算各種形狀的表面積;5、計(jì)算各種形狀的體積; 6、輸入數(shù)據(jù)和輸出結(jié)果用文件的形式實(shí)現(xiàn)。三、設(shè)計(jì)方案1、總體設(shè)計(jì) 該程序主要是在確定物體的形狀后,計(jì)算物體的表面積和體積,在輸入數(shù)據(jù)和輸出結(jié)果時用文件的形

3、式,所以這個程序主要用到的內(nèi)容是類的繼承與派生,另外還涉及文件、指針等內(nèi)容。程序首先建立一個抽象類shape,作為公共接口;然后建立四個圖形類:Ball、Cube、Cubiod、Cylinder,公有繼承shape類,分別計(jì)算各物體的表面積和體積;然后在主函數(shù)中定義各對象,調(diào)用各類中的成員函數(shù),輸出所要結(jié)果。2、詳細(xì)設(shè)計(jì) Input():數(shù)據(jù)輸入函數(shù),輸入所需的半徑、邊長、高等數(shù)據(jù); Area():計(jì)算各物體表面積的函數(shù); Volume():計(jì)算各物體體積的函數(shù); Disp():輸出計(jì)算結(jié)果的函數(shù); Run():定義指針,調(diào)用抽象類里的每個接口(即調(diào)用每個函數(shù));MainMenu():調(diào)用各函

4、數(shù),輸出結(jié)果。 3、程序清單#includeusing namespace std;const double PI=3.14;class shapepublic:virtual void input()=0;virtual void disp()=0;virtual double area()=0;virtual double volume()=0;class ball:public shapeprivate:int r;public:ball(double r=0):r(r) void input()cout輸入球體的半徑:r;double area()return 4*PI*r*r;dou

5、ble volume()return 4/3*PI*r*r*r;void disp()cout球體的半徑:rendl;cout球體的面積:area()endl;cout球體的體積:volume()endl;class square:public shapeprivate:int x;public:square(double x=0):x(x)void input()cout輸入正方體的邊長x;double area()return 6*x*x;double volume()return x*x*x;void disp()cout正方體的邊長:xendl;cout正方體的面積:area()end

6、l;cout正方體的體積:volume()endl;class cuboid:public shapeprivate:int l,w,h;public:cuboid(double l=0,double w=0,double h=0):l(l),w(w),h(h)void input()cout輸入長方體的長寬高lwh;double area()return 2*(l*w)+2*(w*h)+2*(l*h);double volume()return l*w*h;void disp()cout長方體的長寬高是:lwhendl;cout長方體的面積是:area()endl;cout長方體的體積是:v

7、olume()endl; class cylinder:public shapeprivate:int r,h;public:cylinder(double r=0,double h=0):r(r),h(h)void input()cout輸入圓柱體的底面半徑和高rh;double area()return 2*PI*r*h+PI*r*r;double volume()return PI*r*r*h;void disp()cout底面半徑和高:rhendl;cout圓柱體的面積:area()endl;cout圓柱體的體積:volume()endl;void use_ball() ball b;

8、 b.input(); b.disp(); return ; void use_square() square s; s.input(); s.disp(); return ; void use_cuboid() cuboid c; c.input(); c.disp(); return; void use_cylinder() cylinder cy;cy.input();cy.disp();return; void menu() int i;cout*幾何體的表面積與體積*nendl;cout*(0):退出系統(tǒng)*nendl;cout*(1):球體*nendl;cout*(2):正方體*ne

9、ndl;cout*(3):長方體*nendl;cout*(4):圓柱體*nendl;cout*感謝使用本軟件*nendl;cout請輸入你的選擇項(xiàng)(0-4)i;if(i4)cout錯誤,請輸入指定數(shù)字!n; while(n!=0); 4、程序調(diào)試與體會 在程序的編寫過程中遇到很多麻煩,像如何調(diào)用成員函數(shù),如何用文件的形式輸入數(shù)據(jù)和輸出結(jié)果但最后我們都解決了,這讓我們很有成就感,很自豪,也讓我們知道了團(tuán)結(jié)的力量。程序完成后調(diào)試沒錯誤,但卻無法正常運(yùn)行,通過我的反復(fù)思考,程序中的錯誤得到順利解決,讓它正常運(yùn)行,函數(shù)功能也得到了進(jìn)一步的完善。并且在本次課程設(shè)計(jì)的過程中,讓我進(jìn)一步認(rèn)識到了團(tuán)隊(duì)的力量,

10、只有團(tuán)結(jié)才能發(fā)揮出一個集體的力量。一個人的力量真的好有限,即使個人能力再強(qiáng),做一個大點(diǎn)的項(xiàng)目,也會力不從心。只有分工協(xié)作才能將事辦得越快越好。通過這次課程設(shè)計(jì),會為我們以后進(jìn)入社會提供一定的經(jīng)驗(yàn)。我們相信在今后的學(xué)習(xí)真的我們會更加努力,積累經(jīng)驗(yàn)。使自己在編程等各方面得到提高。這次程序設(shè)計(jì)讓我們受益匪淺!5、運(yùn)行截圖主菜單4個具體項(xiàng)目:四、結(jié) 論忙碌了一個多星期,在大家的共同努力下,我們總算將此程序設(shè)計(jì)出來。盡管不是自己獨(dú)立完成,但仍然很高興,因?yàn)樵谠O(shè)計(jì)的過程中,讓我了解到要設(shè)計(jì)一個大型程序,查找資料是至關(guān)重要的,在他人的基礎(chǔ)上,再根據(jù)自己所學(xué)進(jìn)行修改與調(diào)試,最后設(shè)計(jì)出自己想要的程序,這過程艱辛

11、,但只要你持之以恒,成功指日可待。另外平時扎實(shí)的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻闫綍r學(xué)得就不怎么樣,那么你面對這么一個比較有難度的程序,你可能會望而卻步,看他人的程序都是個難點(diǎn),更別說讓你自己去設(shè)計(jì)。為了解決此。類問題,最好就是多向同學(xué),老師請教,不要怕難為情。尤其是老師,評他們多年的編寫程序的經(jīng)驗(yàn),要解決我們的問題,對他們來說只是small case。在設(shè)計(jì)這個程序時,我們剛開始是根據(jù)老師給我們提供的資料,用畫圖以及循環(huán)將框架設(shè)計(jì)出來,但是接下去便無從下手了,計(jì)算是個關(guān)鍵和難點(diǎn),我們也查了相應(yīng)的資料,但是它上面用得是坐標(biāo)來做的,所以為了方便設(shè)計(jì)程序,我們也改為坐標(biāo)來做的,這樣計(jì)算問題解決了。接下去就

12、是按鍵問題,我們的資料是用鼠標(biāo)做的,所以關(guān)于按鍵這個函數(shù)就只能我們自己設(shè)計(jì),還好手頭有類似的資料,經(jīng)過自己的反復(fù)嘗試以及與與同學(xué)的討論,這也不難,最好還是被我們搞定了。最后就是閃爍,這個設(shè)計(jì)的方法很死板,都一個類型,就是算坐標(biāo)比較煩瑣,要確定好它的位置,但是這些只要你自己愿意去嘗試,問題都可以迎刃而解的。 從這一個多星期的設(shè)計(jì)過程中,我看到了大家的拼搏與努力,也讓我知道團(tuán)隊(duì)精神得難能可貴,盡管一年下來大家不怎么有多大接觸,但是彼此之間的友誼已經(jīng)在我們心里扎根生底,在遇到問題時,我們會共同進(jìn)退,每個人都很慷慨不會因?yàn)槭峭ㄟ^自己艱辛勞動設(shè)計(jì)出來的東西而不準(zhǔn)他人剽竊了。 總之,這次課程設(shè)計(jì)讓我受益良多,我會好好珍惜像這種難得的機(jī)會。五、致 謝這次的課程設(shè)計(jì)對我們來說是一次嘗試與挑戰(zhàn)的過程。在這里,我們由衷地感謝幫助、支持和鼓勵我們完成課程設(shè)計(jì)的老師和一起奮斗過的伙伴。首先我們要感謝學(xué)校給我們提供這樣一個一起學(xué)習(xí)和研究的機(jī)會,讓我們把理論知識應(yīng)用到實(shí)際中來。其次我們要感謝我們的指導(dǎo)老師魏振華老師,在進(jìn)行課程設(shè)計(jì)的這段時間里他對我們的指導(dǎo)和幫助,為我們課程設(shè)計(jì)的順利

溫馨提示

  • 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

提交評論