版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- QC/T 1210-2024汽車防夾系統(tǒng)
- GB/T 35601-2024綠色產(chǎn)品評(píng)價(jià)人造板和木質(zhì)地板
- 工作總結(jié)之護(hù)士職業(yè)道德總結(jié)
- 工作總結(jié)之地鐵實(shí)習(xí)總結(jié)2000字
- 電工電子技術(shù)(第3版) 課件 3.4 變壓器結(jié)構(gòu)與工作原理
- 公司自查報(bào)告-企業(yè)管理
- 《讓成交變得更輕松》課件
- 《計(jì)算機(jī)應(yīng)用研究》課件
- 八年級(jí)《列夫·托爾斯泰》課件
- 《機(jī)械制造基礎(chǔ)》課件 汪曉云 模塊5-8 機(jī)床夾具的基礎(chǔ)知識(shí)- 機(jī)械裝配工藝的基礎(chǔ)知識(shí)
- 遼寧省名校聯(lián)盟2024年高三12月份聯(lián)合考試 語文試卷(含答案解析)
- 《垂體瘤規(guī)范化診治》課件
- 2024年專業(yè)會(huì)務(wù)服務(wù)供應(yīng)與采購協(xié)議版B版
- 中國上市公司ESG行動(dòng)報(bào)告
- 浙江省9+1高中聯(lián)盟2024-2025學(xué)年高三上學(xué)期11月期中考試數(shù)學(xué)試題
- 《電子煙知識(shí)培訓(xùn)》課件
- GB/T 30661.10-2024輪椅車座椅第10部分:體位支撐裝置的阻燃性要求和試驗(yàn)方法
- 2024年聯(lián)通合作合同范本
- 實(shí)+用法律基礎(chǔ)-形成性考核任務(wù)二-國開(ZJ)-參考資料
- 城關(guān)中學(xué)學(xué)校食堂校長現(xiàn)場(chǎng)辦公制度
- 自動(dòng)化生產(chǎn)線設(shè)備調(diào)試方案
評(píng)論
0/150
提交評(píng)論