查詢與排序?qū)嶒?yàn)報(bào)告_第1頁(yè)
查詢與排序?qū)嶒?yàn)報(bào)告_第2頁(yè)
查詢與排序?qū)嶒?yàn)報(bào)告_第3頁(yè)
已閱讀5頁(yè),還剩7頁(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、學(xué)院專業(yè) 班 學(xué)號(hào)協(xié)作者師評(píng)定實(shí)驗(yàn)題目查詢與排序綜合實(shí)驗(yàn)評(píng)分表指導(dǎo)教師評(píng)分標(biāo)準(zhǔn)序 號(hào)評(píng)分項(xiàng)目評(píng)分標(biāo)準(zhǔn)滿分打分1完成度按要求獨(dú)立完成實(shí)驗(yàn)準(zhǔn)備、程序調(diào)試、實(shí)驗(yàn)報(bào)告撰寫(xiě)。202實(shí)驗(yàn)容(1)完成功能需求分析、存儲(chǔ)結(jié)構(gòu)設(shè)計(jì);(2)程序功能完善、可正常運(yùn)行;(3)測(cè)試數(shù)據(jù)正確,分析正確,結(jié)論正確。303實(shí)驗(yàn)報(bào)告容齊全,符合要求,文理通順,排版美觀。404總結(jié)對(duì)實(shí)驗(yàn)過(guò)程遇到的問(wèn)題能初步獨(dú)立分析,解決后能總結(jié)問(wèn)題 原因及解決方法,有心得體會(huì)。10實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康呐c要求1、掌握散列表的構(gòu)造及實(shí)現(xiàn)散列查找;2、掌握堆排序的算法;3、綜合比較各類排序算法的性能。實(shí)驗(yàn)容#includestdio.h#includes

2、tdlib.h#includestring.h#includewindows.h#defineMAX 20typedef structunsigned long key;int result;char name30; RNode;RNode tMAX,rMAX;int h( unsigned long k) /* 散列函數(shù) */return (k - 3109005700) %11);void insert(RNode t,RNode x) /* 插入函數(shù),以線性探查方法解決沖突 */ int i,j = 0;i= h(x .key);while (j 0) j+ ;if (j= MAX) p

3、rintf( fulln );i= (i+ j)%MAX;if (ti .key = 0)ti =x;elseif (ti .key = x.key)printf( 記錄已存在 !n );int search(RNode t, unsigned long k) /* 插入函數(shù),以線性探查方法解決沖突 */ int i,j = 0;i= h(k);while (j MAX) & (t(i+j)%MAX .key != k)& (t(i+j)%MAX .key !=0)j+ ;i= (i+ j)%MAX;return (i);if (j= MAX)return MAX;elsereturn (-i

4、);void sift(RNode r, int v,int w)int i,j;RNode a;i=v;a= ri;j=2*i+1;while (j= w)if (j rj+1 .result) j+ ;if (a.result rj .result)ri = rj;i =j;j=2*j+1;else break ;void sort(RNode r, int n)int i;RNode y;for (i=n/2-1;i= 0;i - )sift(r,i,n -1);for (i = n - 1;i 0;i - )y = r0;r0 = ri;ri =y;printf( 學(xué)生: %st 學(xué)生

5、學(xué)號(hào): %ut 學(xué)生成 績(jī): %dn ,ri .name,ri .key,ri .result);sift(r,0,i -1);printf(學(xué)生:st學(xué)生學(xué)號(hào):ut學(xué)生成 績(jī): %dn ,r0 .name,r0 .key,r0 .result);int menu() /* 菜單函數(shù) */int select;printf( nn );printf( n );nx查找排序?qū)嶒?yàn)*n);printf( tt*歡迎進(jìn)入系統(tǒng)*n );printf( tt*menu:*n );printf( tt*1.查找*n );printf( tt*2.排序*n );printf( tt*0.退出*n );prin

6、tf( tt*n );printf(IItt*n);printf( n );printf( ttt 請(qǐng)輸入0-2n );printf( n );printf( 請(qǐng)選擇您所要的操作 (選擇(0)退出 ):);scanf( %d ,& select);getchar();return (select);void main()/* 主函數(shù) */int i,s,n,select;int j= 0,m = 0;RNode y;for (i= 0;i MAX;i +)for (i= 0;i 10;i + ) /* 導(dǎo)入記錄*/switch (i)case 0:RNode x;x.key = 310900

7、*; strcpy(x .name, * );x.result =90;insert(t,x);break ;case 1:RNode x;x.key = 31090 * 1; strcpy(x .name, * );x.result =95;insert(t,x);break ;case 2:RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =92;insert(t,x);break ;case 3:RNode x;x.key = 31090 * ;strcpy(x .name, * );x.result =93;insert(

8、t,x);break ;case 4:RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =94;insert(t,x);break ;case 5:RNode x;x.key = 310900 * ; strcpy(x .name, * );x.result =91;insert(t,x);break ;RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =96;insert(t,x);break ;case 7:RNode x;x.key = 310900 *; st

9、rcpy(x .name, * );x.result =99;insert(t,x);break ;case 8:RNode x;x.key = 310900 *; strcpy(x .name, * );x.result =98;insert(t,x);break ;case 9:RNode x;x.key = 310900 *;strcpy(x .name, * );x.result =97;insert(t,x);break ;printf( nnnnnnn );system( cls );loop: printf( nnn );select = menu();switch (selec

10、t) case 1:printf( n 請(qǐng)輸入要查找的學(xué)生學(xué)號(hào): );scanf( %u ,& y.key);s= search(t,y .key);if (s= MAX |s 0) printf( not findn );else printf( nn 你要查找的學(xué)生信息 n );printf(學(xué)生:st 學(xué)生學(xué)號(hào):u,,ts .key);break ; for (i=0;iMAX;i + ) if (ti .key != 0)rj+ = ti;m+ ;printf( 排序之前: nn );for (i = 0;i m;i + )%ut 學(xué)生成printf( 學(xué)生: %st 學(xué)

11、生學(xué)號(hào):績(jī): %dn ,ri .name,ri .key,ri .result);printf( n 排序之后: n );sort(r,m);break ;case 0:exit(0);getchar();goto loop;三、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)處理(1)查找數(shù)據(jù)(310900* )(2)排序四、總結(jié)這次的課程實(shí)驗(yàn)完成了主控界面,錄入,輸出,排序,查找,結(jié)束界面等功能。在 程序調(diào)試過(guò)程之中,我還是個(gè)初學(xué)者,在編寫(xiě)程序的過(guò)程中不斷出現(xiàn)不同狀況的錯(cuò)誤, 在修改中不斷發(fā)現(xiàn)自己的問(wèn)題和不足。通過(guò)編譯調(diào)試,程序提示錯(cuò)誤所在,然后我們根 據(jù)提示再進(jìn)行修改。從這個(gè)過(guò)程之中,使我多多思考問(wèn)題,不斷摸索,盡量自己發(fā)現(xiàn)錯(cuò) 誤所在并加以改正,以便在下次不再犯同類型的錯(cuò)誤。也就是說(shuō)在調(diào)試的過(guò)程中,不斷 的學(xué)習(xí),不斷的改進(jìn),提高自身 C語(yǔ)言學(xué)習(xí)能力和算法設(shè)計(jì)能力。五、問(wèn)題與討論1、 分析你所構(gòu)造散列表的查找成功的平均查找長(zhǎng)度?01234567891033343536

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論