版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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> 題目名稱(chēng): 簡(jiǎn)單圖形的處理系統(tǒng) </p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào):
2、 </p><p> 專(zhuān)業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)11級(jí)2班 </p><p> 指導(dǎo)教師: </p><p> 2012年 6 月 30 日</p><p><b> 目 錄</b>&l
3、t;/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> 2.總體設(shè)計(jì)3</b></p><p&g
4、t;<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):13</b></p><p>&l
5、t;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)和半徑。</p><p> 試說(shuō)明圖形的幾何形狀類(lèi)型,并編寫(xiě)輸入和
6、輸出圖形數(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)系及其屬性和行為;</p><p> 根據(jù)問(wèn)題描述,設(shè)計(jì)各系統(tǒng)的
7、類(lèi)層次;</p><p> 完成類(lèi)層次中各個(gè)類(lèi)的描述(包括屬性和方法);</p><p> 完成類(lèi)中各個(gè)成員函數(shù)的定義;</p><p><b> 完成系統(tǒng)應(yīng)用模塊;</b></p><p><b> 功能調(diào)試;</b></p><p> 完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使
8、用說(shuō)明書(shū)。</p><p><b> 其他要求:</b></p><p> 只能采用C/C++語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨專(zhuān)钩绦蛉菀组喿x</p><p> 至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p> 學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)</p><p>&
9、lt;b> 2.總體設(shè)計(jì)</b></p><p> 程序的總體框架圖如下:</p><p> 其中二維空間的點(diǎn)數(shù)據(jù)處理模塊包括以下幾個(gè)功能:</p><p><b> 求點(diǎn)到原點(diǎn)的距離;</b></p><p> 給出兩點(diǎn)確定一個(gè)方向向量;</p><p><b
10、> 求兩點(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è)方向軸,繞該方向軸旋轉(zhuǎn)一定角度后得到新的點(diǎn);</p><p> 按方
11、向向量平移后得到新的點(diǎn);</p><p><b> 求兩點(diǎn)距離;</b></p><p><b> 求點(diǎn)到原點(diǎn)的距離</b></p><p> 二維空間上的直線處理包括以下幾個(gè)功能:</p><p> 給出兩點(diǎn)求直線方程;</p><p> 將直線繞某定點(diǎn)旋轉(zhuǎn)一定的
12、角度得到新的直線方程;</p><p> 直線平移得到新的直線方程;</p><p><b> 求兩直線夾角;</b></p><p> 求直線的方向余弦角;</p><p> 判斷兩直線的位置關(guān)系;</p><p><b> 求直線交點(diǎn)。</b></p>
13、;<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> 類(lèi)層次圖如下:</b></p>&l
14、t;p> 二維點(diǎn)類(lèi)中包含兩個(gè)數(shù)據(jù)成員,就是點(diǎn)的橫坐標(biāo)及縱坐標(biāo);三維點(diǎn)類(lèi)中新增加了z軸坐標(biāo),和用來(lái)做三維點(diǎn)變換的思維數(shù)組,以及變換的比例因子;圓類(lèi)中增加了一個(gè)半徑數(shù)據(jù)成員。</p><p> 二維直線中包含兩個(gè)點(diǎn)數(shù)據(jù)成員,一個(gè)點(diǎn)代表直線所過(guò)的某一定點(diǎn),一個(gè)代表著直線的方向向量。3.2主模塊設(shè)計(jì)</p><p> 二維點(diǎn)類(lèi)中有這些成員函數(shù)(或友元函數(shù)):</p>&
15、lt;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),time(){R=0,G=0,B=0;}//帶參數(shù)的初始化構(gòu)造函數(shù),用來(lái)初始
16、化橫縱坐標(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 ostream&operator<<(ostream&,
17、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> virtual V2D_point direction(const V2D_p
18、oint&);//用來(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 double,long double);//用來(lái)重新設(shè)置點(diǎn)的坐標(biāo),前一參數(shù)傳
19、遞給橫坐標(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;//用來(lái)顯示點(diǎn)坐標(biāo),和重載的流插入運(yùn)算符相同的功能;</p>
20、<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><p> 三維點(diǎn)類(lèi)的成員函數(shù)有如下:</p>
21、<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 double);//重設(shè)點(diǎn)坐標(biāo);</p><p>
22、 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 V3D_point&)const;//求兩點(diǎn)間的距離,參數(shù)是另外一個(gè)
23、點(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_o()const;//求點(diǎn)到原點(diǎn)的距離,返回值是距離;</p>
24、;<p> void enlarge(long double,long double,long double);//x、y、z坐標(biāo)分別按第一個(gè)參數(shù)的比例和第二個(gè)參數(shù)的比例以及第三個(gè)參數(shù)的比例放縮;</p><p> 二維直線類(lèi)包括以下成員函數(shù):</p><p> V2D_line(long double x1,long double y1,long double x2,
25、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 setline(long double,long double,long do
26、uble,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)一定角度;</p><p> void showe
27、quation();//輸出直線方程;</p><p> void showangle();//顯示當(dāng)前直線的方向余弦角;</p><p> long double inangle(const V2D_line&);//求兩直線的夾角,入口參數(shù)為另一條直線,返回值為夾角;</p><p> V2D_point Point_of_intersection
28、(const V2D_line&)//求兩直線的交點(diǎn),參數(shù)為另一條直線,返回值為交點(diǎn);</p><p> bool judge_parallel(const V2D_line&)//判斷直線平行,參數(shù)為另一條直線,如果平行返回真值,如果不平行返回假值。</p><p> 圓類(lèi)中有以下成員函數(shù):</p><p> circle(long doub
29、le 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 double getr_()//返回半徑的值;</p>&
30、lt;p> friend ostream&operator<<(ostream&,circle&);//重載的流插入運(yùn)算符,用來(lái)輸出圓的數(shù)據(jù);</p><p> friend istream&operator>>(istream&,circle&);//重載流提取運(yùn)算符,用來(lái)輸入圓的數(shù)據(jù)</p><p>&l
31、t;b> 4運(yùn)行結(jié)果</b></p><p><b> 圖一</b></p><p><b> 圖二</b></p><p><b> 圖三</b></p><p><b> 圖四</b></p><p>
32、;<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í)間原因而放棄了,但是在類(lèi)的構(gòu)造上面可以看出自己的思考還算比較廣泛、周全,C
33、++這門(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ò)提高自身來(lái)解決這些問(wèn)題。暴露問(wèn)題并沒(méi)減少我對(duì)這門(mén)語(yǔ)言的興趣,更沒(méi)阻止我前進(jìn)的路
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-- 簡(jiǎn)單圖形處理系統(tǒng)
- 課程設(shè)計(jì)--簡(jiǎn)單圖形的處理系統(tǒng)
- c++課程設(shè)計(jì)--簡(jiǎn)單成績(jī)管理系統(tǒng)
- 【課程設(shè)計(jì)】簡(jiǎn)單語(yǔ)音處理系統(tǒng)設(shè)計(jì)
- 簡(jiǎn)單的通信管理系統(tǒng)--課程設(shè)計(jì)c++
- 簡(jiǎn)單圖形處理系統(tǒng)
- c++課程設(shè)計(jì)---簡(jiǎn)單3d建模系統(tǒng)
- c++課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- c++課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- c++課程設(shè)計(jì)報(bào)告--簡(jiǎn)單計(jì)算器
- c++簡(jiǎn)單計(jì)算器課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)--簡(jiǎn)單的行編輯器
- c課程設(shè)計(jì)---字符串處理系統(tǒng)
- c++課程設(shè)計(jì)--簡(jiǎn)單文本編輯器的設(shè)計(jì)
- 課程設(shè)計(jì)--基于visual c++實(shí)現(xiàn) 簡(jiǎn)單的通訊薄
- c++課程設(shè)計(jì)報(bào)告-簡(jiǎn)易圖像處理
- 航空售票系統(tǒng)+c++課程設(shè)計(jì)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--基于c++的火車(chē)票管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論