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