2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論