版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p> 2.1 課程設(shè)計(jì)目的1</p><p> 2.2 課程設(shè)計(jì)任務(wù)1</p><p&g
2、t; 2.3 設(shè)計(jì)環(huán)境1</p><p> 2.4 開(kāi)發(fā)語(yǔ)言1</p><p><b> 3 分析和設(shè)計(jì)2</b></p><p> 3.1 模塊設(shè)計(jì)2</p><p> 3.2 系統(tǒng)流程圖2</p><p> 3.3 主要模塊的流程圖3</p><p&
3、gt; 4 具體代碼實(shí)現(xiàn)5</p><p> 5 課程設(shè)計(jì)總結(jié)7</p><p> 5.1 程序運(yùn)行結(jié)果7</p><p> 5.2 課程設(shè)計(jì)體會(huì)8</p><p><b> 參考文獻(xiàn)9</b></p><p><b> 致 謝9</b></p
4、><p><b> 1 前言</b></p><p> 編寫(xiě)一個(gè)程序來(lái)處理數(shù)字排序問(wèn)題。分別通過(guò)直接插入算法和選擇排序算法將一組數(shù)字按降序排列,然后輸出排列好的數(shù)字以及排序中數(shù)字交換的次數(shù)。任意輸入一組數(shù)字,結(jié)果顯示在屏幕上。</p><p><b> 2 需求分析</b></p><p> 2
5、.1 課程設(shè)計(jì)目的</p><p> 運(yùn)用所學(xué)課程的知識(shí)來(lái)研究、解決一些具有一定綜合性問(wèn)題的專(zhuān)業(yè)課題。通過(guò)課程設(shè)計(jì)(論文),提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)來(lái)解決實(shí)際問(wèn)題、使用文獻(xiàn)資料、及進(jìn)行科學(xué)實(shí)驗(yàn)或技術(shù)設(shè)計(jì)的初步能力,為畢業(yè)設(shè)計(jì)(論文)打基礎(chǔ)。對(duì)于本課程設(shè)計(jì)而言,重點(diǎn)在熟悉C語(yǔ)言基本語(yǔ)法規(guī)范以及靈活運(yùn)用C語(yǔ)言編程解決實(shí)際問(wèn)題。</p><p> 2.2 課程設(shè)計(jì)任務(wù)</p>
6、<p> 編寫(xiě)算法實(shí)現(xiàn)猜數(shù)字排序:</p><p> 1.輸入10個(gè)數(shù)字,并選擇排序方式(至少兩種不同的排序方法)</p><p> 2.按從大到小輸出數(shù)字,以及排序中數(shù)字交換的次數(shù)。</p><p><b> 2.3 設(shè)計(jì)</b></p><p><b> 環(huán)境</b><
7、/p><p> ?。?)WINDOWS 2000/2003/XP/7/Vista系統(tǒng)</p><p> ?。?)Visual C++或TC集成開(kāi)發(fā)環(huán)境</p><p><b> 2.4 開(kāi)發(fā)語(yǔ)言</b></p><p><b> C語(yǔ)言</b></p><p><b&g
8、t; 3 分析和設(shè)計(jì)</b></p><p><b> 3.1 模塊設(shè)計(jì)</b></p><p> 在主函數(shù)中,調(diào)用兩個(gè)子函數(shù)來(lái)分別實(shí)現(xiàn)直接插入法排序和選擇法排序。</p><p> 定義一個(gè)函數(shù)aa( ),用直接插入法對(duì)數(shù)組a中的數(shù)進(jìn)行排序。首先,按要求輸入數(shù)據(jù)。接著,利用雙重for循環(huán),其中外重循環(huán)是對(duì)中間變量temp
9、和計(jì)數(shù)變量count進(jìn)行賦值,從第一個(gè)數(shù)起依次賦給temp,然后在內(nèi)重循環(huán)中把temp與前一數(shù)比較,temp小則交換,以此向后推。最后,輸出排序好的新數(shù)組a以及排序次數(shù)。</p><p> 定義一個(gè)函數(shù)bb( ),用選擇法對(duì)數(shù)組a中的數(shù)進(jìn)行排序。首先,根據(jù)提示信息依次輸入數(shù)據(jù)。接著,利用雙重for循環(huán),其中外重循環(huán)控制中間變量max的賦值操作(max保存最大數(shù)的下標(biāo)),而在內(nèi)重循環(huán)中,用max作下標(biāo)所代表的數(shù)
10、與之后的每一個(gè)數(shù)作比較,max小則交換。最后,輸出排序好的數(shù)組a以及排序次數(shù)。</p><p><b> 3.2 系統(tǒng)流程圖</b></p><p> 圖3.1 系統(tǒng)流程圖</p><p> 3.3 主要模塊的流程圖</p><p> 函數(shù)aa()運(yùn)用直接插入法排序流程圖如下:</p><p
11、> 函數(shù)bb()選擇法排序流程圖如下:</p><p><b> 4 具體代碼實(shí)現(xiàn)</b></p><p> #include<iostream></p><p> #include<stdio.h> </p><p> #define N 10 </p><p
12、> void aa(); /*直接排序法*/</p><p> void bb(); /*選擇排序法*/</p><p> /*****主函數(shù)*****/</p><p> void main() </p><p><b> {</b></p><p>
13、printf("*****用直接法和選擇法排序*****\n");</p><p><b> aa();</b></p><p><b> bb(); </b></p><p><b> }</b></p><p> /*******子函數(shù)****
14、***/</p><p> using namespace std;</p><p> void aa() /*直接排序法*/</p><p> {int i,j,a[10];</p><p><b> int k;</b></p><p><b> int tem
15、p;</b></p><p> int count=0;</p><p> printf("please input ten num:\n");</p><p> for(i=0;i<10;i++)</p><p> scanf("%d",&a[i]);</p&g
16、t;<p> for(i = 1;i<10;++i)</p><p><b> {count++;</b></p><p> temp = a[i];</p><p> for(j=i;j>0&&temp>a[j-1];--j)</p><p> { a[j
17、]=a[j-1]; } </p><p> a[j]=temp;</p><p> printf("%3d:",count);</p><p> for(j=1;j<=10;j++) printf("%5d",a[j]);</p><p> printf("\n"
18、);</p><p><b> }</b></p><p> printf("the result is:\n");</p><p> for(k=0;k<N;++k) /*輸出結(jié)果*/</p><p> cout<<a[k]<<" "
19、; </p><p> cout<<endl; </p><p><b> }</b></p><p> void bb() /*選擇排序*/</p><p> { int i,j,max,tem,a[N];</p><p> int count=0;<
20、;/p><p> printf("please input ten num:\n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> printf("a[%d]=",i);</p><p&g
21、t; scanf("%d",&a[i]);}</p><p> printf("\n");</p><p> for(i=0;i<N;i++)</p><p> printf("%5d",a[i]);</p><p> printf("\n"
22、;);</p><p> for(i=0;i<N-1;i++) </p><p> {count++; max=i; /*從第一個(gè)數(shù)起,把下標(biāo)賦給max,然后用max進(jìn)行比較*/</p><p> for(j=i+1;j<N;j++) </p><p> if(a[max]<a[j]) max=j; /*前一
23、個(gè)數(shù)依次與后面的數(shù)比較,小就交換*/</p><p> {tem=a[i];</p><p> a[i]=a[max]; </p><p> a[max]=tem;} /*進(jìn)行交換*/</p><p> printf("%3d:",count); </p><p> for(j=1;
24、j<=10;j++)</p><p> printf("%4d",a[j]); printf("\n"); /*輸出結(jié)果*/</p><p><b> } </b></p><p> printf("After sorted \n"); </p>&
25、lt;p> for(i=0;i<N;i++) printf("%5d",a[i]); }</p><p><b> 5 課程設(shè)計(jì)總結(jié)</b></p><p> 5.1 程序運(yùn)行結(jié)果 </p><p> 從鍵盤(pán)輸入10個(gè)數(shù)據(jù),利用直接排序法對(duì)這10個(gè)數(shù)據(jù)進(jìn)行處理,輸出每個(gè)數(shù)據(jù)每次交換的次數(shù),最后輸出已排好序
26、結(jié)果。如圖5.1所示</p><p> 圖5.1 直接法排序運(yùn)行結(jié)果</p><p> 根據(jù)屏幕提示,依次從鍵盤(pán)輸入10個(gè)數(shù)據(jù)保存到數(shù)組a中并輸出,然后采用選擇排序法對(duì)數(shù)據(jù)進(jìn)行處理,并輸出每個(gè)數(shù)據(jù)每次交換的次數(shù),最后輸出已排好序結(jié)果。如圖5.2所示</p><p> 圖5.2 選擇法排序運(yùn)行結(jié)果</p><p> 5.2 課程設(shè)
27、計(jì)體會(huì)</p><p> 忙碌了一個(gè)多星期,在大家的共同努力下,我們總算將此程序設(shè)計(jì)出來(lái)。盡管不是自己獨(dú)立完成,但仍然很高興,因?yàn)樵谠O(shè)計(jì)的過(guò)程中,讓我了解到要設(shè)計(jì)一個(gè)程序,查找資料是至關(guān)重要的,在他人的基礎(chǔ)上,再根據(jù)自己所學(xué)進(jìn)行修改與調(diào)試,最后設(shè)計(jì)出自己想要的程序,這過(guò)程艱辛,但只要你持之以恒,成功指日可待。</p><p> 另外平時(shí)扎實(shí)的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻闫綍r(shí)學(xué)得就不怎么樣,
28、那么你面對(duì)這么一個(gè)比較有難度的程序,你可能會(huì)望而卻步,看他人的程序都是個(gè)難點(diǎn),更別說(shuō)讓你自己去設(shè)計(jì)。為了解此類(lèi)問(wèn)題,最好就是多向同學(xué),老師請(qǐng)教,不要怕難為情。</p><p> 在設(shè)計(jì)這個(gè)程序時(shí),我們剛開(kāi)始是根據(jù)網(wǎng)上查找的資料,通過(guò)平時(shí)所學(xué)的知識(shí)將程序代碼進(jìn)行編寫(xiě),經(jīng)過(guò)反復(fù)修改使得程序成果運(yùn)行。在這過(guò)程中我們遇到了很多問(wèn)題,也請(qǐng)教了很多同學(xué),當(dāng)我們的程序終于可以運(yùn)行時(shí),我們又發(fā)現(xiàn)了新的問(wèn)題。因?yàn)槲覀兯龅某绦蚴?/p>
29、需要兩種排序算法,而我們編寫(xiě)的時(shí)這兩個(gè)算法分別的代碼,而我們需要將這兩個(gè)子程序合并成為一個(gè)程序。還好手頭有類(lèi)似的資料,經(jīng)過(guò)自己的反復(fù)嘗試以及與與同學(xué)的討論,最好還是被我們完成了。</p><p> 從這一個(gè)多星期的設(shè)計(jì)過(guò)程中,我看到了大家的拼搏與努力,也讓我知道團(tuán)隊(duì)精神得難能可貴,盡管一年下來(lái)大家不怎么有多大接觸,但是彼此之間的友誼已經(jīng)在我們心里扎根生底,在遇到問(wèn)題時(shí),我們會(huì)共同進(jìn)退,每個(gè)人都很慷慨的將自己艱辛
30、勞動(dòng)設(shè)計(jì)出來(lái)的東西與同學(xué)們分享。</p><p> 總之,這次設(shè)計(jì)程序讓我受益良多,我會(huì)好好珍惜像這種難得的機(jī)會(huì)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]黃同成,周紅波.程序設(shè)計(jì)基礎(chǔ)教程(C語(yǔ)言).湖南人民出版社,2011.</p><p> [2]黃同成,黃磊.程序設(shè)計(jì)實(shí)踐教程(C
31、語(yǔ)言).湖南人民出版社,2011.</p><p> [3]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005.</p><p><b> 致 謝</b></p><p> 首先,我要感謝老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)---猜數(shù)字游戲報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告---排序算法的實(shí)現(xiàn)與比較
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---根據(jù)條件進(jìn)行學(xué)生成績(jī)排序
- c歸并排序與堆排序的課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--猜數(shù)字游戲
- c語(yǔ)言課程設(shè)計(jì)--猜數(shù)字游戲
- c語(yǔ)言語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---游戲設(shè)計(jì)
- 單獨(dú)實(shí)現(xiàn)各種排序 課程設(shè)計(jì)報(bào)告
- c語(yǔ)言年歷課程設(shè)計(jì)報(bào)告
- C語(yǔ)言課程設(shè)計(jì)報(bào)告.doc
- c語(yǔ)言課程設(shè)計(jì)實(shí)踐報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告模版
- 【課程設(shè)計(jì)】c語(yǔ)言課程設(shè)計(jì)
- c課程設(shè)計(jì)報(bào)告-- c語(yǔ)言程序設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)—超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論