

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