


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、河北工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)(V。課程設(shè)計報告學(xué)院電氣與白動化學(xué)院班級電氣081姓名楊柳學(xué)號080697成績一、題目:排序算法應(yīng)用一(快速、選擇、冒泡法排序)(09)二、設(shè)計思路1、總體設(shè)計1)分析程序的功能輸入一組無序數(shù)列,分別通過快速、選擇、冒泡法進(jìn)行排序,使其按一定規(guī)律(由大到小或由小到大)排列。2)系統(tǒng)總體結(jié)構(gòu):本程序共包括一個頭文件,八個函數(shù)(包括一個主函數(shù),七個被調(diào)函數(shù))。主函數(shù)主要完成對各函數(shù)的調(diào)用及結(jié)構(gòu)的控制,七個被調(diào)函數(shù)中,包括一個輸入函數(shù),六個排序函數(shù)。2、各功能模塊的設(shè)計:l. 主函數(shù)模塊:主要通過對各函數(shù)的調(diào)用實現(xiàn)相應(yīng)的要求。n.輸入函數(shù)模塊:主要通過循環(huán)的方法實現(xiàn)對
2、一維數(shù)組的輸入。m.排序函數(shù)模塊:通過循環(huán)方法實現(xiàn)對一維數(shù)組有序排列。3、設(shè)計中的主要困難及解決方案1)由于沒有學(xué)過快速法排序,在編寫程序時遇到困難,總是調(diào)試不成功。在圖書館借到關(guān)于快速法排序算法的書,認(rèn)真閱讀與思考并應(yīng)用于程序,終于編好程序。2)對同一個數(shù)組進(jìn)行三次排序,第二、三次排序前數(shù)組已經(jīng)有序,達(dá)不到分別排序的目的。解決方案是將原數(shù)組復(fù)制到另外兩個數(shù)組中去,分別排序。3)由于之前并未涉及過有關(guān)多文件函數(shù)的編寫及處理問題,導(dǎo)致在創(chuàng)新設(shè)計開始時絲毫沒有頭緒。主要通過對實驗教程P15內(nèi)容的仔細(xì)閱讀與思考而學(xué)會并應(yīng)用于程序的編寫當(dāng)中去。4、我所設(shè)計的程序最終完成的功能1)所編程序可以完成對無序
3、數(shù)組的升序、降序排序并分別統(tǒng)計排序次序。2)準(zhǔn)備的測試數(shù)據(jù)如下:49386597761327運(yùn)行結(jié)果:三、程序清單本程序包含main.cpp、input.cpp、bubblesort.cpp、selectionsort.cpp、quicksort.cpp、bubble.cpp、selection.cpp、quick.cpp、keshe.h九個文件。1、main.cpp文件活單#includekeshe.h”voidmain()intsequenceN,n3=0,aN,bN,x,cN,dN,eN;cout請輸入N個整數(shù):endl;input(sequence);/輸入無序數(shù)組cout輸入的無序數(shù)
4、列為:”;for(inti=0;iN;i+)coutsequenceit;輸出無序數(shù)組,便于同排序后比較coutendl;for(i=0;iN;i+)ai=bi=ci=di=ei=sequencei;將輸入的數(shù)組復(fù)制給另外兩個數(shù)組,使三次分別對原輸入的數(shù)組排序cout”降序排列為:n”;bubblesort(sequence);/通過冒泡法進(jìn)行降序排序coutendl;selectionsort(a);/通過選擇法進(jìn)行降序排序coutendl;quicksort(b,0,N-1,&n3);/通過快速法進(jìn)行降序排序cout使用快速法降序排序后的數(shù)列為:”;for(i=0;iN;i+)coutbi
5、t;coutendl快速法的降序排序次序為:n3endl;/對快速法的降序排序結(jié)果進(jìn)行輸出coutn升序排歹U為:n;bubble(c);/通過冒泡法進(jìn)行升序排序coutendl;selection(d);/通過選擇法進(jìn)行升序排序coutendl;quick(e,0,N-1,&n3);/通過快速法進(jìn)行升序排序cout使用快速法升序排序后的數(shù)列為:”;for(i=0;iN;i+)couteit;coutendl快速法的升序排序次序為:n3endl;/對快速法的升序排序結(jié)果進(jìn)行輸出2、input.cpp文件活單#includekeshe.h”voidinput(ints)for(inti=0;is
6、i;3、bubblesort.cpp文件活單#includekeshe.hvoidbubblesort(ints)(inti,j,t,n1=0;for(i=0;iN-1;i+)for(j=0;jN-1-i;j+)if(s亦sj+1)(t=sj;sj=sj+1;sj+1=t;n1+;/統(tǒng)計排序次序cout使用冒泡法降序排序后的數(shù)列為:;for(i=0;iN;i+)coutsit;coutendl”冒泡法的降序排序次序為:n1endl;4、selectionsort.cpp文件活單#includekeshe.h”voidselectionsort(ints)(inti,j,k,t,n2=0;for
7、(i=0;iN;i+)(k=i;for(j=i+1;jsk)k=j;if(k!=i)(t=si;si=sk;sk=t;n2+;/統(tǒng)計排序次序cout使用選擇法降序排序后的數(shù)列為:”;for(i=0;iN;i+)coutsit;coutendl”選擇法的降序排序次序為:n2endl;5、quicksort.cpp文件活單#includekeshe.h”voidquicksort(ints,intlow,inthigh,int*p)(inti=low,j=high,t,x;t=slow;while(ij)(while(ij&sj=t)j-;if(ij)(x=sj;sj=t;si=x;(*p)+;/
8、統(tǒng)計排序次序while(it)i+;if(ij)(x=si;si=t;sj=x;(*p)+;/統(tǒng)計排序次序if(lowi-1)quicksort(s,low,i-1,p);if(j+1high)quicksort(s,j+1,high,p);6、bubble.cpp文件活單#includekeshe.h”voidbubble(ints)(inti,j,t,n1=0;for(i=0;iN-1;i+)for(j=0;jsj+1)(t=sj;sj=sj+1;sj+1=t;n1+;/統(tǒng)計排序次序cout使用冒泡法升序排序后的數(shù)列為:;for(i=0;iN;i+)coutsit;coutendl冒泡法的
9、升序排序次序為:n1endl;7、selection.cpp文件活單#includekeshe.h”voidselection(ints)inti,j,k,t,n2=0;for(i=0;iN;i+)k=i;for(j=i+1;jN;j+)if(s亦sk)k=j;if(k!=i)t=si;si=sk;sk=t;n2+;/統(tǒng)計排序次序cout使用選擇法升序排序后的數(shù)列為:;for(i=0;iN;i+)coutsit;coutendl選擇法的升序排序次序為:n2endl;8、quick.cpp文件活單#includekeshe.hvoidquick(ints,intlow,inthigh,int*p
10、)(inti=low,j=high,t,x;t=slow;while(ij)(while(i=t)j-;if(ij)(x=sj;sj=t;si=x;(*p)+;統(tǒng)計排序次序while(ij&sit)i+;if(ij)(x=si;si=t;sj=x;(*p)+;統(tǒng)計排序次序if(lowi-1)quick(s,low,i-1,p);if(j+1high)quick(s,j+1,high,p);9、keshe.h文件活單#includeconstintN=7;voidinput(ints);voidbubblesort(ints);voidselectionsort(ints);voidquicks
11、ort(ints,int,int,int*p);voidbubble(ints);voidselection(ints);voidquick(ints,int,int,int*p);四、對該設(shè)計題目有何更完善的方案1、對自己完成程序進(jìn)行自我評價。對于這個程序,我很滿意,畢竟這是我一周以來辛勤勞動的成果,這一周我往返于機(jī)房,圖書館,宿舍,不斷地完善自己的課題,雖然過程中有過困難,但是更多的是完成后的欣悅。對于一個初學(xué)者來說,這個程序難免有不盡如人意的地方,不過我會再接再厲,爭取更大的進(jìn)步。2、對課題提出更完善的方案1) 與用戶交流的程序較少,應(yīng)加強(qiáng)此方面的設(shè)計。2) 由于實際生活中的問題更加復(fù)雜,所以將此程序完善為可以錄入結(jié)構(gòu)體,會更加實用。五、收獲及心得體會1、收獲通過本次課程設(shè)計,我對循環(huán)的使用以及對函數(shù)的調(diào)用掌握得更加扎實,對排序算法有了深刻的了解。而且又自學(xué)了一部分課堂上未涉及的知識,提高了自學(xué)能力,增強(qiáng)了對C+語言的認(rèn)識。2、心得體會首先我對C+語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司品牌轉(zhuǎn)讓合同范本
- 互聯(lián)網(wǎng)戰(zhàn)略合作合同范本
- 發(fā)電站煤渣供銷合同范本
- 合同范本鎳礦
- 出資金合同范本
- 同行材料供貨合同范本
- 兩個人合伙臺球廳合同范例
- 包工合作提成合同范本
- 合法種植養(yǎng)殖合同范本
- 倉庫協(xié)議合同范例
- 排球正面雙手墊球教案教學(xué)設(shè)計
- 消防(控制室)值班記錄
- 【23精品】蘇少小學(xué)美術(shù)三下教案全冊
- 房屋租賃(出租)家私清單
- 計算機(jī)技術(shù)碩士專業(yè)學(xué)位授權(quán)點(diǎn)申報研究演示課件(PPT 39頁)
- 剪紙藝術(shù)-認(rèn)識剪紙
- 駕駛員違規(guī)違章學(xué)習(xí)記錄表
- 簡易瞬態(tài)工況法1
- 中國鐵路總公司環(huán)境保護(hù)管理辦法(鐵總計統(tǒng)〔2015〕260號)
- 技術(shù)分析介紹教程課件
- 汽車新能源汽車產(chǎn)業(yè)專利趨勢分析
評論
0/150
提交評論