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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  《通用排序程序》</b></p><p>  程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告</p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)系 </p><p>  班 級(jí): 2011級(jí)2班 </p><p>  姓 名: 吳靜雯 <

2、;/p><p>  學(xué) 號(hào): 2011508028 </p><p>  指導(dǎo)教師: 高攀 </p><p>  完成日期:2012-7-3 </p><p><b>  目錄</b></p><p>  1. 課程設(shè)計(jì)目的- 3 -&

3、lt;/p><p>  1.1課程設(shè)計(jì)目的:- 3 -</p><p>  1.2課程設(shè)計(jì)題目:- 3 -</p><p>  1.3題目要求:- 3 -</p><p>  2.總體設(shè)計(jì)- 6 -</p><p>  2.1總體組成框圖:- 6 -</p><p>  2.2總體流程圖:

4、- 7 -</p><p>  3.詳細(xì)設(shè)計(jì)- 8 -</p><p>  3.1數(shù)據(jù)錄入模塊- 8 -</p><p>  3.1.1函數(shù)功能:- 8 -</p><p>  3.1.2函數(shù)入口:- 8 -</p><p>  3.1.3函數(shù)流程圖:- 8 -</p><p>  

5、3.2輸出排序后的有序數(shù)據(jù)模塊- 9 -</p><p>  3.2.1函數(shù)功能:- 9 -</p><p>  3.2.2函數(shù)介紹:- 9 -</p><p>  3.2.3函數(shù)流程圖:- 9 -</p><p>  3.3數(shù)據(jù)排序主要函數(shù)模塊- 9 -</p><p>  3.3.1函數(shù)功能:- 9 -

6、</p><p>  3.3.2函數(shù)介紹- 10 -</p><p>  3.3.3函數(shù)流程圖- 10 -</p><p>  4、運(yùn)行結(jié)果- 11 -</p><p>  4.1主界面- 11 -</p><p>  4.2int型數(shù)據(jù)排序- 11 -</p><p>  4.3do

7、uble型數(shù)據(jù)排序- 12 -</p><p>  4.4char型數(shù)據(jù)排序- 12 -</p><p>  4.5string型數(shù)據(jù)排序- 13 -</p><p>  5、課程設(shè)計(jì)總結(jié)- 14 -</p><p>  6、參考文獻(xiàn)- 15 -</p><p>  1. 課程設(shè)計(jì)目的 </p>

8、<p>  1.1課程設(shè)計(jì)目的:</p><p>  《C++程序設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的必修課。自己做一個(gè)課程設(shè)計(jì)是學(xué)習(xí)完本書后進(jìn)行的一次全面的綜合性練習(xí)。根據(jù)課堂講授內(nèi)容,學(xué)生做相應(yīng)的自主練習(xí),消化課堂所講解的內(nèi)容;通過調(diào)試典型例題或習(xí)題積累調(diào)試C程序的經(jīng)驗(yàn);通過完成輔導(dǎo)教材中的編程題,逐漸培養(yǎng)學(xué)生的編程能力、用計(jì)算機(jī)解決實(shí)際問題的能力。</p><p>  1.2

9、課程設(shè)計(jì)題目:</p><p>  題目: 通用排序程序</p><p><b>  1.3題目要求: </b></p><p>  程序可以對任意類型的數(shù)值常數(shù)或字符串構(gòu)成的行進(jìn)行排序,通過人機(jī)對話選擇程序是按數(shù)值進(jìn)行排序還是按字符順序進(jìn)行排序。排序是針對數(shù)據(jù)文件的。例如</p><p>  初識(shí)數(shù)據(jù)為:12,24,9

10、,128,3,76,345</p><p>  按數(shù)值大小排序應(yīng)為:3,9,12,24,76,128,345</p><p>  按字符串大小排序應(yīng)為:12,128,24,3,345,76,9</p><p>  1.問題描述(功能要求):</p><p>  程序可以對任意類型的數(shù)值常數(shù)或字符串構(gòu)成的行進(jìn)行排序,通過人機(jī)對話選擇程序是按數(shù)值

11、進(jìn)行排序還是按字符順序進(jìn)行排序。排序是針對數(shù)據(jù)文件的。例如</p><p>  初識(shí)數(shù)據(jù)為:12,24,9,128,3,76,345</p><p>  按數(shù)值大小排序應(yīng)為:3,9,12,24,76,128,345</p><p>  按字符串大小排序應(yīng)為:12,128,24,3,345,76,9</p><p>  2.問題的解決方案:&l

12、t;/p><p>  在c++ Template中很多地方都用到了typename 與class這兩個(gè)關(guān)鍵字,而且好像可以替換,是不是這兩個(gè)關(guān)鍵字完全一樣呢?相信學(xué)習(xí)C++的人對class這個(gè)關(guān)鍵字都非常明白,class用于定義類,在模板引入c++后,最初定義模板的方法為: template<class T>。在這里class關(guān)鍵字表明T是一個(gè)類型,后來為了避免class在這兩個(gè)地方的使用可能給人帶來混

13、淆,所以引入了typename這個(gè)關(guān)鍵字,它的作用同class一樣表明后面的符號(hào)為一個(gè)類型,這樣在定義模板的時(shí)候就可以使用下面的方式了: template<typename T>。在模板定義語法中關(guān)鍵字class與typename的作用完全一樣。typename難道僅僅在模板定義中起作用嗎?其實(shí)不是這樣,typename另外一個(gè)作用為:使用嵌套依賴類型(nested depended name),如下所示:</p>

14、;<p>  class MyArray </p><p><b>  { </b></p><p>  public:typedef int LengthType;....</p><p><b>  }</b></p><p>  template<class T> v

15、oid MyMethod( T myarr ) </p><p><b>  { </b></p><p>  typedef typename T::LengthType LengthType; </p><p>  LengthType length = myarr.GetLength; </p><p><b

16、>  }</b></p><p>  這個(gè)時(shí)候typename的作用就是告訴c++編譯器,typename后面的字符串為一個(gè)類型名稱,而不是成員函數(shù)或者成員變量,這個(gè)時(shí)候如果前面沒有typename,編譯器沒有任何辦法知道T::LengthType是一個(gè)類型還是一個(gè)成員名稱(靜態(tài)數(shù)據(jù)成員或者靜態(tài)函數(shù)),所以編譯不能夠通過。所以我們使用typename進(jìn)行函數(shù)模版的使用。</p>

17、<p>  根據(jù)題目功能要求,可以將問題分為以下步驟:</p><p>  (1)分析題目中出現(xiàn)的細(xì)微的要求和相互間的關(guān)系;</p><p>  (2)根據(jù)問題描述,理清在int和string類型之間的相互間的聯(lián)系;</p><p>  (3)確定數(shù)據(jù)結(jié)構(gòu),使用模版函數(shù)進(jìn)行處理;</p><p>  (4)完成模版函數(shù)中的通用的函數(shù)

18、模型;</p><p>  (5)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。</p><p><b>  3.其它要求:</b></p><p>  (1)只能使用C/C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀</p><p> ?。?)至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p

19、> ?。?)學(xué)生可自動(dòng)增加新功能模塊</p><p><b>  2.總體設(shè)計(jì) </b></p><p>  2.1總體組成框圖:</p><p><b>  圖2-1 總體框圖</b></p><p><b>  2.2總體流程圖:</b></p><

20、;p>  圖2-2 總體流程圖</p><p><b>  3.詳細(xì)設(shè)計(jì)</b></p><p>  使用template<typename T> void print(T *array,const int size){}的形式來定義函數(shù),在使用的時(shí)候進(jìn)行模版的替換。因?yàn)槲野l(fā)現(xiàn),在幾種類型的比較中大體的思想是一樣的,所以這是我選擇使用模版函數(shù)的一個(gè)主

21、要的原因。</p><p><b>  3.1數(shù)據(jù)錄入模塊</b></p><p>  3.1.1函數(shù)功能:</p><p>  對指定的數(shù)據(jù)類型數(shù)據(jù)進(jìn)行輸入,并存入數(shù)組中,以便后續(xù)使用。</p><p>  3.1.2函數(shù)入口:</p><p>  template<typename T&

22、gt;</p><p>  void Input(T *array, int Num){}</p><p>  3.1.3函數(shù)流程圖:</p><p>  圖3-1 Input(T *array, int Num)數(shù)據(jù)錄入函數(shù)流程圖</p><p>  3.2輸出排序后的有序數(shù)據(jù)模塊</p><p>  3.2.1函數(shù)

23、功能:</p><p>  輸出排序完成后的有序的數(shù)據(jù)。</p><p>  3.2.2函數(shù)介紹: </p><p>  template<typename T></p><p>  void print(T *array,const int size){}將已經(jīng)排好序的函數(shù)進(jìn)行輸出。實(shí)現(xiàn)有序的存儲(chǔ)。</p><

24、;p>  3.2.3函數(shù)流程圖:</p><p>  圖3-2 print(T *array,const int size)有序數(shù)據(jù)輸出流程圖</p><p>  3.3數(shù)據(jù)排序主要函數(shù)模塊</p><p>  3.3.1函數(shù)功能:</p><p>  作為一個(gè)通用排序的主要的排序函數(shù),使用的不同的數(shù)據(jù)類型的不同,有數(shù)的形參進(jìn)行傳遞,在

25、內(nèi)部的排序是相同的。對各種類型的參數(shù)的傳遞都能實(shí)現(xiàn)排序。</p><p><b>  3.3.2函數(shù)介紹</b></p><p>  template<typename T></p><p>  void bubble_sort(T *array,const int size){}內(nèi)部對數(shù)據(jù)的處理時(shí)不需要類型的,在類型進(jìn)行傳遞時(shí),自

26、動(dòng)進(jìn)行比較排序。排序的方式使用冒泡排序方式。</p><p>  3.3.3函數(shù)流程圖</p><p>  圖3-3 bubble_sort(T *array,const int size)數(shù)據(jù)排序函數(shù)流程圖</p><p><b>  4、運(yùn)行結(jié)果</b></p><p><b>  4.1主界面</b

27、></p><p>  圖4-1—程序主界面</p><p>  4.2int型數(shù)據(jù)排序</p><p>  圖4-2—int型數(shù)據(jù)排序</p><p>  4.3double型數(shù)據(jù)排序</p><p>  圖4-3—double型數(shù)據(jù)排序</p><p>  4.4char型數(shù)據(jù)排序&l

28、t;/p><p>  圖4-4—char型數(shù)據(jù)排序</p><p>  4.5string型數(shù)據(jù)排序</p><p>  圖4-5—string型數(shù)據(jù)排序</p><p><b>  5、課程設(shè)計(jì)總結(jié)</b></p><p>  回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在整整半個(gè)月的日子里

29、,我學(xué)到很多很多的東西,不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的內(nèi)容。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才是真正的知識(shí),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程遇到了各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計(jì),把以前所

30、學(xué)過的知識(shí)重新溫故,鞏固了所學(xué)的知識(shí)。</p><p><b>  6、參考文獻(xiàn)</b></p><p>  1.《C++程序設(shè)計(jì)》 作者:譚浩強(qiáng) 清華大學(xué)出版社</p><p>  2.《VC++深入詳解》作者:孫鑫、余安萍 電子工業(yè)出版社 2006</p><p>  3.《Visual C++項(xiàng)目開發(fā)實(shí)用案例》

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論