版權(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)測試數(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《綿陽求職招聘技巧》課件
- 2020-2021學(xué)年遼寧省沈陽市郊聯(lián)體高一下學(xué)期期末考試歷史試題
- 小學(xué)一年級(jí)10以內(nèi)數(shù)字的分與合
- 小學(xué)數(shù)學(xué)新人教版一年級(jí)下冊(cè)20以內(nèi)口算練習(xí)題大全
- 小學(xué)三年級(jí)數(shù)學(xué)三位數(shù)加減法口算題
- 《汽車行業(yè)概述》課件
- 《運(yùn)輸與包裝》課件
- 吉他行業(yè)客服工作總結(jié)用心服務(wù)打造音樂快樂
- 《光纖通信基礎(chǔ)知識(shí)》課件
- 酒店招聘與人才引進(jìn)策略
- 國家中長期科技發(fā)展規(guī)劃綱要2021-2035
- GB/T 9128.2-2023鋼制管法蘭用金屬環(huán)墊第2部分:Class系列
- 網(wǎng)絡(luò)經(jīng)濟(jì)學(xué)PPT完整全套教學(xué)課件
- 2023年主治醫(yī)師(中級(jí))-臨床醫(yī)學(xué)檢驗(yàn)學(xué)(中級(jí))代碼:352考試參考題庫附帶答案
- 機(jī)械原理課程設(shè)計(jì)鎖梁自動(dòng)成型機(jī)床切削機(jī)構(gòu)
- 順產(chǎn)臨床路徑
- 人教版培智一年級(jí)上生活適應(yīng)教案
- 推動(dòng)架機(jī)械加工工序卡片
- RoHS檢測報(bào)告完整版
- 中國近現(xiàn)代史綱要(上海建橋?qū)W院)智慧樹知到答案章節(jié)測試2023年
- 同濟(jì)大學(xué)土力學(xué)試卷2023
評(píng)論
0/150
提交評(píng)論