數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多關(guān)鍵字實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多關(guān)鍵字實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多關(guān)鍵字實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多關(guān)鍵字實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多關(guān)鍵字實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、淮 海 工 學(xué) 院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱(chēng): 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 選題名稱(chēng): 多關(guān)鍵字排 姓 名: 學(xué) 號(hào): 專(zhuān)業(yè)班級(jí): 系 (院): 計(jì)算機(jī)工程學(xué)院 設(shè)計(jì)時(shí)間: 2013.12.232013.1.5 設(shè)計(jì)地點(diǎn): 軟件工程實(shí)驗(yàn)室、教室 成績(jī):指導(dǎo)教師評(píng)語(yǔ): 簽名: 年 月 日數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 第 27 頁(yè),共 頁(yè)1課程設(shè)計(jì)目的1、訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí),獨(dú)立完成問(wèn)題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識(shí),編寫(xiě)程序求解指定問(wèn)題。 2.初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;3.提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;4.訓(xùn)練用系統(tǒng)的

2、觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),鞏固、深化學(xué)生的理論知識(shí),提高編程水平,并在此過(guò)程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。2課程設(shè)計(jì)任務(wù)與要求:任務(wù)多關(guān)鍵字的排序是根據(jù)多個(gè)不同的要求來(lái)進(jìn)行的,在某些方面,有其一定的實(shí)用范圍。例如:在對(duì)高考學(xué)生的成績(jī)進(jìn)行分析和處理的時(shí)候,各個(gè)學(xué)校錄取學(xué)生除了需要考慮總分的情況,不同的專(zhuān)業(yè)對(duì)單科的分?jǐn)?shù)的要求也有所不同。因此在總分相同的情況下,還需要根據(jù)學(xué)校定的單科分?jǐn)?shù)的高低來(lái)考慮考生錄取的優(yōu)先次序??傮w要求:1、在處理每個(gè)題目時(shí),要求從分析題目的需求入手,按設(shè)計(jì)抽象數(shù)據(jù)類(lèi)型、構(gòu)思算法、通過(guò)設(shè)計(jì)實(shí)現(xiàn)抽象數(shù)據(jù)類(lèi)型、編制上機(jī)程序和上機(jī)調(diào)試等若干步驟完成題目,最終寫(xiě)

3、出完整的分析報(bào)告。前期準(zhǔn)備工作完備與否直接影響到后序上機(jī)調(diào)試工作的效率。在程序設(shè)計(jì)階段應(yīng)盡量利用已有的標(biāo)準(zhǔn)函數(shù),加大代碼的重用率。 2、.設(shè)計(jì)的題目要求達(dá)到一定工作量(300行以上代碼),并具有一定的深度和難度。3、程序設(shè)計(jì)語(yǔ)言推薦使用c/c+,程序書(shū)寫(xiě)規(guī)范,源程序需加必要的注釋;4、每位同學(xué)需提交可獨(dú)立運(yùn)行的程序;5 、每位同學(xué)需獨(dú)立提交設(shè)計(jì)報(bào)告書(shū)(每人一份),要求編排格式統(tǒng)一、規(guī)范、內(nèi)容充實(shí),不少于10頁(yè)(代碼不算);6、 課程設(shè)計(jì)實(shí)踐作為培養(yǎng)學(xué)生動(dòng)手能力的一種手段,單獨(dú)考核。題目要求: (1) 假設(shè)待排序的記錄數(shù)不超過(guò)10000,表中記錄的關(guān)鍵字?jǐn)?shù)不超過(guò)5,各個(gè)關(guān)鍵字的范圍均為0至100

4、。按用戶(hù)給定的進(jìn)行排序的關(guān)鍵字的優(yōu)先關(guān)系,輸出排序結(jié)果。 (2) 約定按lsd法進(jìn)行多關(guān)鍵字的排序。在對(duì)各個(gè)關(guān)鍵字進(jìn)行排序時(shí)采用兩種策略:其一是利用穩(wěn)定的內(nèi)部排序法,其二是利用分配和收集的方法。并綜合比較這兩種策略。 3課程設(shè)計(jì)說(shuō)明書(shū)一 需求分析在進(jìn)行高考分?jǐn)?shù)的處理時(shí),除了需對(duì)總分進(jìn)行排序外,不同的專(zhuān)業(yè)對(duì)單科的分?jǐn)?shù)的要求不同,因此尚需在總分相同的情況下,按用戶(hù)提出的單科分?jǐn)?shù)的次序要求排出考生錄取的次序。針對(duì)這一問(wèn)題,設(shè)計(jì)一個(gè)用c語(yǔ)言描述的高考成績(jī)排名系統(tǒng)。按學(xué)科關(guān)鍵字高考總分進(jìn)行排序的情況下,各科程序排序。本程序規(guī)定如下:1. 創(chuàng)建高考成績(jī)表包含語(yǔ)文、數(shù)學(xué)、英語(yǔ)、綜合四門(mén)成績(jī),以及考號(hào)姓名等考

5、生信息存放到名為高考成績(jī).txt文本中。2. 對(duì)考生成績(jī)可以實(shí)現(xiàn)查找、顯示等功能。3. 可以輸入成績(jī)進(jìn)行排序也可以從文件中讀取數(shù)據(jù)進(jìn)行排序。4. 對(duì)學(xué)生的成績(jī)排序,在總分不同的時(shí)候按照各自的排序,在總分相同的情況下。5. 對(duì)單科成績(jī)進(jìn)行排序時(shí)分別用穩(wěn)定的冒泡排序和“分配”和“收集”的方法進(jìn)行排序。二 概要設(shè)計(jì)1.規(guī)定成績(jī)個(gè)數(shù)、成績(jī)記錄的最大記錄數(shù)、和存儲(chǔ)每個(gè)成績(jī)的數(shù)組隊(duì)列#define max_num_of_key 5#define radix 101#define max_space 10002.定義結(jié)構(gòu)體存儲(chǔ)考生成績(jī)信息struct slcellint keysmax_num_of_key

6、;char name20;int number; int next; ;3.定義靜態(tài)鏈表struct sllistslcell rmax_space;int keynum;int recnum;adt sllist數(shù)據(jù)對(duì)象:d:d=a|a屬于sllist數(shù)據(jù)關(guān)系:r:數(shù)據(jù)元素同屬一個(gè)集合。基本操作:p:sllist * creat()操作結(jié)果:用sllist存儲(chǔ)輸入的考生的信息,但是不存入文件中。void read(sllist *l) 操作結(jié)果:從文件中讀取考生的各科成績(jī)進(jìn)行操作。void search(sllist *l) 操作結(jié)果:可以按考號(hào)或姓名查找考生的各科成績(jī)。void distr

7、ibute(recordtypel *r,int i,int *f,int *e)初始條件:存在以i為下標(biāo)的關(guān)鍵字。操作結(jié)果:以下標(biāo)為i的關(guān)鍵字為準(zhǔn)做一趟分配。void collect(recordtypel *r,int i,int *f,int *e)初始條件:存在以i為下標(biāo)的關(guān)鍵字。操作結(jié)果:以下標(biāo)為i的關(guān)鍵字為準(zhǔn)做一趟收集。void radixsortmaths(sllist *l)操作結(jié)果:對(duì)*l中的成績(jī)做鏈?zhǔn)交鶖?shù)排序,以數(shù)學(xué)成績(jī)?yōu)殛P(guān)鍵字排序。void radixsortchinese(sllist *l)操作結(jié)果:對(duì)*l中的成績(jī)做鏈?zhǔn)交鶖?shù)排序,以語(yǔ)文成績(jī)?yōu)殛P(guān)鍵字排序。void ra

8、dixsortenglish(sllist *l)操作結(jié)果:對(duì)*l中的成績(jī)做鏈?zhǔn)交鶖?shù)排序,以英語(yǔ)成績(jī)?yōu)殛P(guān)鍵字排序。void radixsortzonghe(sllist *l)操作結(jié)果:對(duì)*l中的成績(jī)做鏈?zhǔn)交鶖?shù)排序,以理綜成績(jī)?yōu)殛P(guān)鍵字排序。void radixsort(sllist *l) 操作結(jié)果:按用戶(hù)選擇的關(guān)鍵字排序并輸出排序結(jié)果void radixsorttotal(sllist *l)操作結(jié)果:對(duì)總分排序void showrank(sllist *l)操作結(jié)果:按名次順序輸出考生名次 考號(hào) 姓名 總分 數(shù)學(xué) 英語(yǔ) 語(yǔ)文 理綜分?jǐn)?shù)adt sllist系統(tǒng)流程圖如下:多關(guān)鍵字排序系統(tǒng) 查

9、詢(xún) 取得考生信息的方式 各種排序手動(dòng)輸入從文件讀取按姓名查詢(xún)按考號(hào)查詢(xún)總分相同按語(yǔ)文成績(jī)排序總分相同按英語(yǔ)成績(jī)排序總分相同按數(shù)學(xué)成績(jī)排序總分相同按綜合成績(jī)排序考號(hào)姓名各科成績(jī)?nèi)?詳細(xì)設(shè)計(jì)1.存儲(chǔ)文件的書(shū)寫(xiě)void read(sllist *l)2.考生信息輸入sllist * creat() 3.查找函數(shù)void search(sllist *l)4.鏈?zhǔn)交鶖?shù)排序void distribute(slcell *r,int i,int *f,int *e)/*以下標(biāo)為i的關(guān)鍵字為準(zhǔn)做一趟分配*/int j,p;for(j=radix-1;j=0;-j)/將radix個(gè)隊(duì)列初始化為空隊(duì)列fj=0;

10、for(p=r0.next;p;p=rp.next)j=rp.keysi;if(!fj)/將下標(biāo)p所指的節(jié)點(diǎn)插入第j個(gè)隊(duì)列中fj=p;elserej.next=p;ej=p;void collect(slcell *r,int i,int *f,int *e)/*收集*/int j,t;for(j=radix-1;!fj;j-);/找第一個(gè)非空隊(duì)列r0.next=fj;t=ej;while(j=0)for(j-;j0&!fj;j-);/找下一個(gè)非空隊(duì)列if(fj&j=0)rt.next=fj;t=ej;/鏈接兩個(gè)非空隊(duì)列rt.next=0;/t指向最后一個(gè)非空隊(duì)列中的最后節(jié)點(diǎn)/*對(duì)*l中的成績(jī)

11、做鏈?zhǔn)交鶖?shù)排序,鏈表的記錄按從小到大的順序連接*/void radixsortchinese(sllist *l)/語(yǔ)文int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=3;i0;-i)distribute(l-r,i,f,e);collect(l-r,i,f,e);void radixsortmaths(sllist *l)/數(shù)學(xué)int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=

12、1;ir,i,f,e);collect(l-r,i,f,e);void radixsortenglish(sllist *l)/英語(yǔ)int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=1;ir,i,f,e);collect(l-r,i,f,e);void radixsortzonghe(sllist *l)/綜合int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=1;ir,i,f,e)

13、;collect(l-r,i,f,e);void radixsorttotal(sllist *l)/對(duì)總分排序slcell *r;r=l-r;int f401,e401;int j,p,t;for(j=400;j=0;-j) fj=0;for(p=r0.next;p;p=rp.next)j=rp.keys0;if(!fj) fj=p;elserej.next=p;ej=p;for(j=400;!fj;j-);r0.next=fj;t=ej;while(j=0)for(j-;j0&!fj;j-);if(fj&j=0)rt.next=fj;t=ej;rt.next=0;void showrank

14、(sllist *l)/按名次順序輸出考生名次 學(xué)號(hào) 姓名 總分 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合分?jǐn)?shù)int rank=1,i;cout 名次 考號(hào) 名字 總分 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合r0.next;rankrecnum;rank+)cousetw(2)rank;coutsetw(10)ri.numbersetw(10);coutsetw(10)ri.keys0;cout setw(10)ri.keys1setw(10)ri.keys2;cout setw(10)ri.keys3setw(10)ri.keys4ri.next;四 設(shè)計(jì)與調(diào)試分析剛開(kāi)始的時(shí)候我設(shè)計(jì)了文件的插入、刪除、修改、查

15、詢(xún)等功能,后來(lái)我用了靜態(tài)鏈表存儲(chǔ),同時(shí)在文件讀取的時(shí)候我設(shè)置了每次讀取的最大值為10所以在插入、刪除之后就出現(xiàn)了亂碼的情況,所以我就放棄了插入、刪除的功能,只寫(xiě)了查詢(xún)的功能。在寫(xiě)查詢(xún)的時(shí)候我本來(lái)想用兩個(gè)子函數(shù)和一個(gè)查找主函數(shù)的,可是后來(lái)在主函數(shù)中用switch語(yǔ)句調(diào)用兩個(gè)子函數(shù)出錯(cuò)。后來(lái)我把函數(shù)寫(xiě)在switch語(yǔ)句中就對(duì)了。在選擇功能界面和排序界面時(shí)也出錯(cuò)了,一開(kāi)始我用的是switch語(yǔ)句套在switch語(yǔ)句中,總是出現(xiàn)錯(cuò)誤,而且檢查不出來(lái)。后來(lái)我把套在里面的switch語(yǔ)句寫(xiě)在另外一個(gè)函數(shù)里,然后再調(diào)用這樣就沒(méi)有錯(cuò)誤了。寫(xiě)文件的時(shí)候把值直接賦給指針了,所以導(dǎo)致我一直出錯(cuò),后來(lái)進(jìn)過(guò)看書(shū)弄懂了。

16、鏈?zhǔn)交鶖?shù)排序的程序是按照書(shū)上的寫(xiě)的,所以沒(méi)什么大問(wèn)題。五 用戶(hù)手冊(cè)1 主界面:1手動(dòng)輸入考生成績(jī)進(jìn)行排序2顯示文件中已經(jīng)存儲(chǔ)的考生成績(jī)信息3各種查詢(xún)考生成績(jī)信息4各種排序5輸出排序后的考生成績(jī)信息6.退出2 選擇1,進(jìn)入手動(dòng)輸入考生成績(jī)信息界面:依次分別輸入考生考號(hào)、姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、綜合,輸入完成按回車(chē)鍵。若想繼續(xù)輸入按1,不再輸入按0。2 選擇2,進(jìn)入顯示考生信息界面(從文件中讀取考生成績(jī)信息)3 選擇3,進(jìn)入查詢(xún)界面:1按考號(hào)查找2按姓名查找4 選擇4,進(jìn)入排序界面:1總分相同時(shí)按語(yǔ)文成績(jī)排序2總分相同時(shí)按英語(yǔ)成績(jī)排序3總分相同時(shí)按數(shù)學(xué)成績(jī)排序4總分相同時(shí)按綜合成績(jī)排序。5 選擇5

17、,輸出排好順序的考生成績(jī)信息,按總分排序。六 測(cè)試成果1. 手動(dòng)輸入考生信息測(cè)試結(jié)果2. 從文件中讀取考生信息進(jìn)行排序七 附錄(源程序清單)#include#include#include#include#include #define max_num_of_key 5 /關(guān)鍵字最多為5#define radix 101#define max_space 1000 /待排序的數(shù)最大為1000struct slcellint keysmax_num_of_key;/子關(guān)鍵字?jǐn)?shù)組 char name20;int number; int next;/*定義一個(gè)靜態(tài)鏈表*/struct sllists

18、lcell rmax_space;int keynum;int recnum; ;sllist * creat() /手動(dòng)輸入考生的高考成績(jī)信息sllist *l;int i=1,flag=1;l=new sllist;l-keynum=5;l-recnum=0;while(flag) /判斷是否繼續(xù)輸入cout請(qǐng)輸入考生考號(hào)、姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、綜合l-ri.number; ; cinl-ri.keys1; cinl-ri.keys2; cinl-ri.keys3; cinl-ri.keys4; l-ri.keys0=(l-ri.keys1+l-ri.keys2+

19、l-ri.keys3+l-ri.keys4);/成績(jī)總和 (l-recnum)+;cout繼續(xù)輸入考生成績(jī)則輸入1,否則輸入0flag;i+;return l;void read(sllist *l)/讀入文件int num=10;/定義從文件中讀取數(shù)據(jù)的最大值,可更改l-keynum=5;l-recnum=0; cout 考號(hào) 姓名 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合endl;ifstream infile (高考成績(jī).txt,ios:in); /判斷文件是否能夠打開(kāi)if ( ! infile )cout 打開(kāi)文件失敗endl; for (int i=1;il-ri.number;coutsetw(2)

20、ri.number; infile ;coutsetw(10);infile l-ri.keys1;coutsetw(10)ri.keys1;infile l-ri.keys2;coutsetw(10)ri.keys2; infile l-ri.keys3;coutsetw(10)ri.keys3;infile l-ri.keys4;coutsetw(10)ri.keys4ri.keys0=(l-ri.keys1+l-ri.keys2+l-ri.keys3+l-ri.keys4); (l-recnum)+; infile.close();/*查找函數(shù)*/void

21、 search(sllist *l)char name20;int number; int i;int j;cout按考號(hào)查找輸入0,按姓名查找輸入1j;switch (j) case 0:coutnumber;for (i=1;iri.number=number) /判斷輸入的學(xué)號(hào)是否正確 cout 考號(hào) 名字 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合endl; cout setw(2)ri.numbersetw(10); cout setw(10)ri.keys1setw(10)ri.keys2; cout setw(10)ri.keys3setw(10)ri.keys4endl; break

22、; case 1: coutname;for (i=1;,name)=0) cout 考號(hào) 姓名 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合endl; cout setw(2)ri.numbersetw(10); cout setw(10)ri.keys1setw(10)ri.keys2; cout setw(10)ri.keys3setw(10)ri.keys4=0;-j)/將radix個(gè)隊(duì)列初始化為空隊(duì)列fj=0;for(p=r0.next;p;p=rp.next)j=rp.keysi;if(!fj)/將下標(biāo)p所指的節(jié)點(diǎn)插入第j個(gè)隊(duì)列中fj=p;elserej.next=p;ej

23、=p;void collect(slcell *r,int i,int *f,int *e)/*收集*/int j,t;for(j=radix-1;!fj;j-);/找第一個(gè)非空隊(duì)列r0.next=fj;t=ej;while(j=0)for(j-;j0&!fj;j-);/找下一個(gè)非空隊(duì)列if(fj&j=0)rt.next=fj;t=ej;/鏈接兩個(gè)非空隊(duì)列rt.next=0;/t指向最后一個(gè)非空隊(duì)列中的最后節(jié)點(diǎn)/*對(duì)*l中的成績(jī)做鏈?zhǔn)交鶖?shù)排序,鏈表的記錄按從小到大的順序連接*/void radixsortchinese(sllist *l)/語(yǔ)文int f101,e101;int i;for(

24、i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=3;i0;-i)distribute(l-r,i,f,e);collect(l-r,i,f,e);void radixsortmaths(sllist *l)/數(shù)學(xué)int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=1;ir,i,f,e);collect(l-r,i,f,e);void radixsortenglish(sllist *l)/英語(yǔ)int f101,e101;int

25、i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=1;ir,i,f,e);collect(l-r,i,f,e);void radixsortzonghe(sllist *l)/綜合int f101,e101;int i;for(i=0;irecnum;i+) l-ri.next=i+1;l-rl-recnum.next=0;for(i=1;ir,i,f,e);collect(l-r,i,f,e);void radixsorttotal(sllist *l)/對(duì)總分排序slcell *r;r=l-r;int f401,e40

26、1;int j,p,t;for(j=400;j=0;-j) fj=0;for(p=r0.next;p;p=rp.next)j=rp.keys0;if(!fj) fj=p;elserej.next=p;ej=p;for(j=400;!fj;j-);r0.next=fj;t=ej;while(j=0)for(j-;j0&!fj;j-);if(fj&j=0)rt.next=fj;t=ej;rt.next=0;void showrank(sllist *l)/按名次順序輸出考生名次 學(xué)號(hào) 姓名 總分 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 綜合分?jǐn)?shù)int rank=1,i;cout 名次 考號(hào) 名字 總分 語(yǔ)文 數(shù)學(xué) 英語(yǔ)

27、 綜合r0.next;rankrecnum;rank+)cout setw(2)rank;cout setw(10)ri.numbersetw(10);cout setw(10)ri.keys0;cout setw(10)ri.keys1setw(10)ri.keys2;cout setw(10)ri.keys3setw(10)ri.keys4ri.next;void radixsort(sllist *l) int x,k=1;while(k!=0) cout*endl; cout* 你可以選擇以下幾種操作: *endl; cout* 1.總分相同時(shí)按語(yǔ)文成績(jī)排序 *endl;

28、 cout* 2.總分相同時(shí)按英語(yǔ)成績(jī)排序 *endl; cout* 3.總分相同時(shí)按數(shù)學(xué)成績(jī)排序 *endl; cout* 4.總分相同時(shí)按綜合成績(jī)排序 *endl; cout* 5.退出 *endl; cout*endl; coutx; switch(x) case 1: radixsortchinese(l); radixsorttotal(l); cout考生成績(jī)已按您的選擇排序成功endl; showrank(l); break; case 2: radixsortmaths(l); radixsorttotal(l); cout考生成績(jī)已按您的選擇排序成功endl; showran

29、k(l); break; case 3: radixsortenglish(l); radixsorttotal(l); cout考生成績(jī)已按您的選擇排序成功endl; showrank(l); break; case 4: radixsortzonghe(l); radixsorttotal(l); cout考生成績(jī)已按您的選擇排序成功endl; showrank(l); break; case 5: return ; break; system(pause); system(cls); int main()int x,flag=1;sllist * l=new sllist;while(f

30、lag!=0) cout*歡迎使用多關(guān)鍵字排序系統(tǒng)*n; cout*-手動(dòng)輸入考生成績(jī)信息進(jìn)行排序請(qǐng)選-1*n; cout*-顯示考生成績(jī)信息請(qǐng)選擇-2*n; cout*-各種查詢(xún)考生成績(jī)信息請(qǐng)選擇-3*n; cout*-各種排序請(qǐng)選擇-4*n; cout*-輸出排序后的考生高考信息請(qǐng)選擇-5*n; cout*-退出請(qǐng)選擇-6*n; cout*n;coutx;switch(x)case 1: l=creat(); break; case 2: read(l); break; case 3: search(l); break; case 4:radixsort(l); break; case 5

31、: showrank(l); break; case 6: return 0 ; break; system(pause); system(cls);cout按任意鍵繼續(xù)操作endl; system(cls);return 0;4.課程設(shè)計(jì)心得本次課程設(shè)計(jì)我做的是多關(guān)鍵字lsd排序,在上數(shù)據(jù)結(jié)構(gòu)課時(shí),我對(duì)鏈?zhǔn)交鶖?shù)排序的過(guò)程和功能實(shí)現(xiàn)有了一定的認(rèn)識(shí),但是對(duì)“分配”和“收集”的方法算法程序沒(méi)怎么弄懂。在做這次實(shí)驗(yàn)時(shí),我又重新把書(shū)上的算法看了一下,知道lsd(最低位優(yōu)先)法是從最次位關(guān)鍵字起進(jìn)行排序,然后再對(duì)高一位的關(guān)鍵字進(jìn)行排序,依次重復(fù),直至對(duì)最高位關(guān)鍵字進(jìn)行排序后便成為一個(gè)有序序列?!胺峙洹焙汀笆占狈椒ㄊ窃谝惶伺判蛑校瑢⒔Y(jié)點(diǎn)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論