版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息科學(xué)與技術(shù)學(xué)院</b></p><p> 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告</p><p> 題目名稱: 簡(jiǎn)單圖形的處理系統(tǒng) </p><p> 學(xué)生姓名: 萬(wàn) 千 </p><p>
2、 學(xué) 號(hào): 2011508046 </p><p> 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)11級(jí)2班 </p><p> 指導(dǎo)教師: 郭 理 </p><p> 2012年 6 月 30 日</p>
3、<p><b> 目 錄</b></p><p><b> 1課程設(shè)計(jì)題目3</b></p><p><b> 1.1設(shè)計(jì)題目3</b></p><p><b> 1.2設(shè)計(jì)要求3</b></p><p><b>
4、2.總體設(shè)計(jì)3</b></p><p><b> 3詳細(xì)設(shè)計(jì)5</b></p><p> 1.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):5</p><p><b> 4運(yùn)行結(jié)果8</b></p><p> 5課程設(shè)計(jì)總結(jié)12</p><p><b> 參考文獻(xiàn)
5、:13</b></p><p><b> 1課程設(shè)計(jì)題目</b></p><p><b> 1.1設(shè)計(jì)題目</b></p><p> 設(shè)某圖形處理程序只考慮點(diǎn)、直線、圓三種基本圖形。對(duì)于點(diǎn),給出點(diǎn)的橫縱坐標(biāo);對(duì)于直線,給出方程ax+by+c=0的三個(gè)系數(shù)a,b,c;對(duì)于圓,給出圓心坐標(biāo)和半徑。</
6、p><p> 試說(shuō)明圖形的幾何形狀類型,并編寫(xiě)輸入和輸出圖形數(shù)據(jù)、求兩點(diǎn)距離、求兩直線交點(diǎn)、已知點(diǎn)和半徑形成圓、已知兩點(diǎn)形成直線等函數(shù)。</p><p><b> 1.2設(shè)計(jì)要求</b></p><p> 根據(jù)系統(tǒng)的功能要求,可以將問(wèn)題解決分為以下步驟:</p><p> 分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為
7、;</p><p> 根據(jù)問(wèn)題描述,設(shè)計(jì)各系統(tǒng)的類層次;</p><p> 完成類層次中各個(gè)類的描述(包括屬性和方法);</p><p> 完成類中各個(gè)成員函數(shù)的定義;</p><p><b> 完成系統(tǒng)應(yīng)用模塊;</b></p><p><b> 功能調(diào)試;</b>
8、;</p><p> 完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書(shū)。</p><p><b> 其他要求:</b></p><p> 只能采用C/C++語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀</p><p> 至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p> 學(xué)生可自動(dòng)增加
9、新功能模塊(視情況可另外加分)</p><p><b> 2.總體設(shè)計(jì)</b></p><p> 程序的總體框架圖如下:</p><p> 其中二維空間的點(diǎn)數(shù)據(jù)處理模塊包括以下幾個(gè)功能:</p><p><b> 求點(diǎn)到原點(diǎn)的距離;</b></p><p> 給出
10、兩點(diǎn)確定一個(gè)方向向量;</p><p><b> 求兩點(diǎn)間的距離;</b></p><p> 將點(diǎn)旋轉(zhuǎn)一定角度后得到新的點(diǎn);</p><p> 把點(diǎn)按某方向向量平移后得到新的點(diǎn)。</p><p> 三維空間的點(diǎn)數(shù)據(jù)處理模塊包括以下幾個(gè)功能:</p><p> 給出一個(gè)方向軸,繞該方向軸旋
11、轉(zhuǎn)一定角度后得到新的點(diǎn);</p><p> 按方向向量平移后得到新的點(diǎn);</p><p><b> 求兩點(diǎn)距離;</b></p><p><b> 求點(diǎn)到原點(diǎn)的距離</b></p><p> 二維空間上的直線處理包括以下幾個(gè)功能:</p><p> 給出兩點(diǎn)求直線方
12、程;</p><p> 將直線繞某定點(diǎn)旋轉(zhuǎn)一定的角度得到新的直線方程;</p><p> 直線平移得到新的直線方程;</p><p><b> 求兩直線夾角;</b></p><p> 求直線的方向余弦角;</p><p> 判斷兩直線的位置關(guān)系;</p><p>
13、;<b> 求直線交點(diǎn)。</b></p><p> 二維空間內(nèi)的圓數(shù)據(jù)生成方式為:</p><p> 給出圓心和半徑,求出圓面積和圓心到直線的距離。</p><p><b> 3詳細(xì)設(shè)計(jì) </b></p><p> 1.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):</p><p><b
14、> 類層次圖如下:</b></p><p> 二維點(diǎn)類中包含兩個(gè)數(shù)據(jù)成員,就是點(diǎn)的橫坐標(biāo)及縱坐標(biāo);三維點(diǎn)類中新增加了z軸坐標(biāo),和用來(lái)做三維點(diǎn)變換的思維數(shù)組,以及變換的比例因子;圓類中增加了一個(gè)半徑數(shù)據(jù)成員。</p><p> 二維直線中包含兩個(gè)點(diǎn)數(shù)據(jù)成員,一個(gè)點(diǎn)代表直線所過(guò)的某一定點(diǎn),一個(gè)代表著直線的方向向量。3.2主模塊設(shè)計(jì)</p><p&g
15、t; 二維點(diǎn)類中有這些成員函數(shù)(或友元函數(shù)):</p><p> V2D_point():time(){x=0,y=0,R=0,G=0,B=0;}//默認(rèn)初始化構(gòu)造函數(shù),所有數(shù)據(jù)成員初始值為0,RGB是我另外加的數(shù)據(jù)成員,主模塊中不設(shè)計(jì),time 也是一個(gè)數(shù)據(jù)成員;</p><p> V2D_point(long double i,long double j):x(i),y(j),t
16、ime(){R=0,G=0,B=0;}//帶參數(shù)的初始化構(gòu)造函數(shù),用來(lái)初始化橫縱坐標(biāo);</p><p> long double getX()const{return x;}//用來(lái)得到數(shù)據(jù)成員x的值;</p><p> long double getY()const{return y;}//用來(lái)得到數(shù)據(jù)成員y的值;</p><p> friend ostre
17、am&operator<<(ostream&,const V2D_point&);//重載了流插入運(yùn)算符,用來(lái)輸出一個(gè)點(diǎn)的坐標(biāo);</p><p> friend istream&operator>>(istream&,V2D_point&);//重載了流提取運(yùn)算符,用來(lái)輸入一個(gè)點(diǎn)的數(shù)據(jù)成員;</p><p> vi
18、rtual V2D_point direction(const V2D_point&);//用來(lái)求兩點(diǎn)確定的方向向量,參數(shù)為一 個(gè)二維點(diǎn)對(duì)象,返回一個(gè)二維點(diǎn)對(duì)象;</p><p> void revolve(long double);//用來(lái)旋轉(zhuǎn)點(diǎn),入口參數(shù)是旋轉(zhuǎn)角度,改變了當(dāng)前對(duì)象點(diǎn)的位置,無(wú)返回值;</p><p> virtual void setpoint(long d
19、ouble,long double);//用來(lái)重新設(shè)置點(diǎn)的坐標(biāo),前一參數(shù)傳遞給橫坐標(biāo),后一參數(shù)傳遞給縱坐標(biāo);</p><p> virtual void carrypoint(long double,long double);//按方向向量移動(dòng)點(diǎn)的位置,前一參數(shù)為方向向量的橫坐標(biāo),后一參數(shù)為方向向量的縱坐標(biāo);</p><p> virtual void showpoint()const
20、;//用來(lái)顯示點(diǎn)坐標(biāo),和重載的流插入運(yùn)算符相同的功能;</p><p> virtual long double p_distance(const V2D_point&)const;//計(jì)算兩點(diǎn)間的距離,參數(shù)是另外一個(gè)點(diǎn)的坐標(biāo),返回值是距離;</p><p> virtual long double p_o()const;//計(jì)算點(diǎn)到原點(diǎn)的距離,返回值是距離。</p>
21、;<p> 三維點(diǎn)類的成員函數(shù)有如下:</p><p> V3D_point(long double i,long double j,long double k):V2D_point(i,j),z(k){s=1;}//帶參數(shù)的初始化構(gòu)造函數(shù),比例因子默認(rèn)初始化為1;</p><p> void setpoint(long double,long double,long
22、double);//重設(shè)點(diǎn)坐標(biāo);</p><p> long double getZ()const{return z;}//返回z坐標(biāo)的值;</p><p> void carrypoint(long double,long double,long double);//移動(dòng)點(diǎn)坐標(biāo);</p><p> long double p_distance(const V
23、3D_point&)const;//求兩點(diǎn)間的距離,參數(shù)是另外一個(gè)點(diǎn)的坐標(biāo),返回值是距離;</p><p> void revolve(long double,V3D_point &,V3D_point&);//旋轉(zhuǎn)點(diǎn),第一個(gè)參數(shù)為旋轉(zhuǎn)角,后兩個(gè)參數(shù)為旋轉(zhuǎn)軸上的兩點(diǎn),旋轉(zhuǎn)方式符合右手系旋轉(zhuǎn),無(wú)返回值,改變當(dāng)前點(diǎn)坐標(biāo);</p><p> long double p
24、_o()const;//求點(diǎn)到原點(diǎn)的距離,返回值是距離;</p><p> void enlarge(long double,long double,long double);//x、y、z坐標(biāo)分別按第一個(gè)參數(shù)的比例和第二個(gè)參數(shù)的比例以及第三個(gè)參數(shù)的比例放縮;</p><p> 二維直線類包括以下成員函數(shù):</p><p> V2D_line(long dou
25、ble x1,long double y1,long double x2,long double y2);//初始化構(gòu)造函數(shù),前兩個(gè)坐標(biāo)給位置點(diǎn)的值,后兩坐標(biāo)給方向點(diǎn)的值;</p><p> V2D_point getpd();//返回直線過(guò)的定點(diǎn);</p><p> V2D_point getpt();//返回直線方向向量;</p><p> bool se
26、tline(long double,long double,long double,long double);//重新設(shè)置直線,如果設(shè)置成功返回1,設(shè)置失敗返回0;</p><p> void move(long double,long double);//按方向向量移動(dòng)直線;</p><p> void revolve(long double theta);//將直線繞當(dāng)前定點(diǎn)旋轉(zhuǎn)一
27、定角度;</p><p> void showequation();//輸出直線方程;</p><p> void showangle();//顯示當(dāng)前直線的方向余弦角;</p><p> long double inangle(const V2D_line&);//求兩直線的夾角,入口參數(shù)為另一條直線,返回值為夾角;</p><p
28、> V2D_point Point_of_intersection(const V2D_line&)//求兩直線的交點(diǎn),參數(shù)為另一條直線,返回值為交點(diǎn);</p><p> bool judge_parallel(const V2D_line&)//判斷直線平行,參數(shù)為另一條直線,如果平行返回真值,如果不平行返回假值。</p><p> 圓類中有以下成員函數(shù):&l
29、t;/p><p> circle(long double x1,long double y1,long double R):V2D_point(x1,y1),r(R){}//初始化構(gòu)造函數(shù);</p><p> void setcircle(long double,long double,long double);}//重新設(shè)置圓的參數(shù);</p><p> long
30、 double getr_()//返回半徑的值;</p><p> friend ostream&operator<<(ostream&,circle&);//重載的流插入運(yùn)算符,用來(lái)輸出圓的數(shù)據(jù);</p><p> friend istream&operator>>(istream&,circle&);//重載流
31、提取運(yùn)算符,用來(lái)輸入圓的數(shù)據(jù)</p><p><b> 4運(yùn)行結(jié)果</b></p><p><b> 圖一</b></p><p><b> 圖二</b></p><p><b> 圖三</b></p><p><b&
32、gt; 圖四</b></p><p><b> 圖五</b></p><p><b> 5課程設(shè)計(jì)總結(jié)</b></p><p> 經(jīng)過(guò)一段時(shí)間的思構(gòu),課程設(shè)計(jì)告一段落,課程設(shè)計(jì)旨在把我們大一兩學(xué)期學(xué)的知識(shí)串聯(lián)起來(lái),進(jìn)行一個(gè)綜合的運(yùn)用,在剛開(kāi)始時(shí)思考了很多內(nèi)容,原打算全部做如課程設(shè)計(jì)里,但是由于這學(xué)期的時(shí)
33、間原因而放棄了,但是在類的構(gòu)造上面可以看出自己的思考還算比較廣泛、周全,C++這門(mén)程序設(shè)計(jì)語(yǔ)言相對(duì)而言比較復(fù)雜,但是如果掌握熟練的話用來(lái)解決大型的、復(fù)雜的問(wèn)題不難得出很容易的結(jié)論,這次的課程設(shè)計(jì)暴露出了自身很多問(wèn)題,很多內(nèi)容要用時(shí)覺(jué)得棘手,說(shuō)明自身沒(méi)有掌握牢固,這就督促在后面的時(shí)間里自己要多嘗試寫(xiě)些程序,力圖把這門(mén)語(yǔ)言用得得心應(yīng)手,當(dāng)然,在這個(gè)程序里面也可能還有很多問(wèn)題沒(méi)有發(fā)現(xiàn),并且有些小bug沒(méi)有解決,希望在后期的學(xué)習(xí)和實(shí)踐中通過(guò)提高
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)——簡(jiǎn)單圖形的處理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-- 簡(jiǎn)單圖形處理系統(tǒng)
- 【課程設(shè)計(jì)】簡(jiǎn)單語(yǔ)音處理系統(tǒng)設(shè)計(jì)
- 簡(jiǎn)單圖形處理系統(tǒng)
- 課程設(shè)計(jì)---數(shù)據(jù)采集及處理系統(tǒng)的設(shè)計(jì)
- 字符串處理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--語(yǔ)音信號(hào)變聲處理系統(tǒng)
- c課程設(shè)計(jì)---字符串處理系統(tǒng)
- 機(jī)電課程設(shè)計(jì)-sbr廢水處理系統(tǒng)
- 機(jī)電課程設(shè)計(jì)-sbr廢水處理系統(tǒng)
- 數(shù)字圖像處理課程設(shè)計(jì)--數(shù)字圖像處理系統(tǒng)
- 大氣課程設(shè)計(jì)--高效霧化吸收異味氣體處理系統(tǒng)設(shè)計(jì)
- 水污染課程設(shè)計(jì)--- - 生物膜法處理系統(tǒng)
- 水污染課程設(shè)計(jì)---生物膜法處理系統(tǒng)
- 固廢課程設(shè)計(jì)--生活垃圾綜合分選處理系統(tǒng)設(shè)計(jì)
- 固廢課程設(shè)計(jì)--生活垃圾綜合分選處理系統(tǒng)設(shè)計(jì)
- 某小區(qū)生活污水處理系統(tǒng)課程設(shè)計(jì)
- 固廢課程設(shè)計(jì)---生活垃圾綜合分選處理系統(tǒng)設(shè)計(jì)
- 給水處理課程設(shè)計(jì)---鍋爐補(bǔ)給水處理系統(tǒng)初步設(shè)計(jì)
- 課程設(shè)計(jì)---簡(jiǎn)單學(xué)生管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論