2023年查詢與排序?qū)嶒?yàn)報(bào)告_第1頁
2023年查詢與排序?qū)嶒?yàn)報(bào)告_第2頁
2023年查詢與排序?qū)嶒?yàn)報(bào)告_第3頁
2023年查詢與排序?qū)嶒?yàn)報(bào)告_第4頁
2023年查詢與排序?qū)嶒?yàn)報(bào)告_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)院專業(yè)班學(xué)號(hào)

姓名協(xié)作者教師評(píng)估

實(shí)驗(yàn)題目查詢與排序

綜合實(shí)驗(yàn)評(píng)分表

號(hào)評(píng)分項(xiàng)目評(píng)分標(biāo)準(zhǔn)滿分打分

1完畢度按規(guī)定獨(dú)立完畢實(shí)驗(yàn)準(zhǔn)備、程序調(diào)試、實(shí)驗(yàn)報(bào)告撰寫。20

(1)完畢功能需求分析、存儲(chǔ)結(jié)構(gòu)設(shè)計(jì);

(2)程序功能完善、可正常運(yùn)營;

2實(shí)驗(yàn)內(nèi)容30

(3)測(cè)試數(shù)據(jù)對(duì)的,分析對(duì)的,結(jié)論對(duì)的。

3實(shí)驗(yàn)報(bào)告內(nèi)容齊全,符合規(guī)定,文理通順,排版美觀。40

對(duì)實(shí)驗(yàn)過程碰到的問題能初步獨(dú)立分析,解決后能總結(jié)問題

4總結(jié)10

因素及解決方法,有心得體會(huì)。

實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)?zāi)康呐c規(guī)定

1、掌握散列表的構(gòu)造及實(shí)現(xiàn)散列查找;

2、掌握堆排序的算法;

3、綜合比較各類排序算法的性能。

二、實(shí)驗(yàn)內(nèi)容

#1nclude"stdio.h"

#incIude"stdlib.h"

#inc1ude"string.h"

#include"windows.h"

#defineMAX20

typedefstruct{

°unsignedlongkey;

intresuIt;

charname[30];}RNode;

RNOdet[MAX],r[MAX];

inth(unsignedlongk)/*散列函數(shù)*/

(

。return((k-)%l1);

voidinsert(RNodet[],RNodex)/*插入函數(shù),以線性探查方法解決沖突*/

。1nti,j=0;

i=h(xkey);

while((j<MAX)&&(t[(i+j)%MAX].key!=x.key)&&(t[(i+j)%MAX].key>0))

j++;

if(j==MAX)printf("fu1l\n");

i=(i+j)%MAX;

?if(t[i].key==0)

…{t[i]=x;}

else

0(

。1f(t[i].key==x.key)

printf("記錄已存在!\n“);

)

)

intsearch(RNodet[],unsignedlongk)/*插入函數(shù),以線性探查方法解決沖

突*/

(

inti,j=0;

i=h(k);

°whiIe((j<MAX)&&(t[(i+j)%MAX].key!=k)&&(t[(i+j)%MAX].key!=0))

j++;

。i=(i+j)%MAX;

if(t[i].key==k)

retum(1);

。if(j==MAX)

returnMAX;

。else

?return(-i);

)

voidsift(RNoder[],intv,intw)

(

0int1J;

。RNodea;

。i=v;

°a=r[i];

j=2*1+1;

°while(j<=w)

(

°if((j<w)&&(r[j]result>r[j+l].result))

。j++;

°if(a.result>r[j].resuit)

{r[i]=r[j];i=j;j=2*j+l;}

…elsebreak;

r[i]=a;

)

voidsort(RNoder[],intn)

(

0inti;

°RNodey;

°for(i=n/2-1;i>=0;i--)

°sift(r,i,n-1);

for(i=n-1;i>0;i--)

{y=r[O];r[O]=r[i];r[i]=y;

printf("學(xué)生姓名:%s\t學(xué)生學(xué)號(hào):%u\t學(xué)生成績:%d\n",r[i].name,r[i].key,r[i].

result);

sift(r,0,1-1);

)

printf("學(xué)生姓名%s\t學(xué)生學(xué)號(hào)為u\t學(xué)生成績%d\n",r[0].name,r[0].key,r

[0].result);

)

intmenu()/*菜單函數(shù)*/

(

intseiect;

printf("\n\n");

printf("\n");

printf("\t\t*************查找排序?qū)嶒?yàn)******************\n

printf("\t\t夫\n");

printf("\t\t********欠1卬幺充******************\n")*

printf("\t\t*menu:An");

print*1.查找*\n

printf("\t\t*2.排序An");

printf("\t\t*0.退出*\n");

pr-intf("\t\t*******************************************\n

printf("\n");

printf("\t\t\t請(qǐng)輸入0—2\n”);

printf("\n");

printf("請(qǐng)選擇您所要的操作(選擇(0)退出):”);

scanf("%d",&select);

getchar();

return(select);

voidmain()/*主函數(shù)*/

(

inti,s,n,select;

intj=0,m=0;

RNodey;

for(i=0;i<MAX;i++)

t[i].key=O;/*初始化*/

for(i=0;1<10;i++)/*導(dǎo)入記錄*/

{

switch(i){

case0:{

RNodex;

x.key=310900***;

°strepy(x.name,”***");

x.resu1t=90;

insert(t,x);

break;}

case1:{

°RNodex;

°x.key=31090***1;

strcpy(x.name,"***");

x.result=95;?

insert(t,x);

break;}

case2:{

6RNodex;

,x.key=3109005***;

°strcpy(x.name,"***");

x.resuIt=92;

insert(t,x);

break;)

case3:{

。。RNodex;

°x.key=31090***;

strcpy(x.name,"***");

x.result=93;

insert(t,x);

break;}

case4:{

RNodex;

x.key=3109005***;

strepy(x.name,"***");

x.resu1t=94;。

1nsert(t,x);

break;}

°case5:{

RNodex;

x.key=310900***;

strcpy(x.name,"***");

°x.result=91;

insert(t,x);

break;}

?case6:{

RNodex;

。xkey=3109005***;

strcpy(x.name***");

?x.result=96;。

insert(t,x);

break;}

case7:{

。RNodex;

x.key=310900***;

°strcpy(,"***");

°x.result=99;

1nsert(t,x);

break;}

case8:{

?RNodex;

?x.key=310900***;

strcpy(x.name,"***");

xresult=98;。

1nsert(t,x);

break;}

?case9:{

°°RNodex;

sx.key=310900***;

strcpy(x.name,"***");

x.result=97;。

insert(t,x);

break;}

)

}

printf("\n\n\n\n\n\n\n");

system("cls");

Ioop:{

。printf("\n\n\n");

se1ect=menu();

switch(select){

case1:{

printf("\n請(qǐng)輸入要查找的學(xué)生學(xué)號(hào):");

scanf("%u",&y.key);

s=search(t,y.key);

if(s==MAX||s<0)printf("notfind\n");

else

{printf("\n\n你要查找的學(xué)生信息\n");

printf("學(xué)生姓名:%s\t學(xué)生學(xué)號(hào):%u",t[s].name,t[s].key);}

break;}

。case2:{

°for(i=0;1<MAX;i++)

°{if(t[i].key!=0)

0(

。r[j++]=t[i];

?m++;

00}

)

printf("排序之前:\n\n");

?for(i=0;i<m;i++)

0printf("學(xué)生姓名:%s\t學(xué)生學(xué)號(hào):%u\t學(xué)生成績:%d\n",r[i].name,r[i].ke

y,r[i].result);

printf("\n排序之后:\n");

osort(r,m);

break;

)

case0:exit(0);

)

getchar();

goto1oop;

)

)

三、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)解決

(1)查找數(shù)據(jù)(310900****)

(2)排序

四、總結(jié)

這次的課程實(shí)驗(yàn)完畢了主控界面,錄入,輸出,排序,查找,結(jié)束界面等功能。在程

序調(diào)試過程之中,我還是個(gè)初學(xué)者,在編寫程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論