




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告書設(shè)計(jì)題目一: 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1m,女子m+1m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些項(xiàng)目取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)。功能要求:1)可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);2)能統(tǒng)計(jì)各學(xué)校總分;3)可以按學(xué)校編號(hào)、學(xué)??偡帧⒛信畧F(tuán)體總分排序輸出;4)可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;5) 可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。需求分析:本演示程序中,用戶自定義
2、學(xué)校個(gè)數(shù),項(xiàng)目個(gè)數(shù),并且自動(dòng)生成學(xué)校編號(hào)和項(xiàng)目編號(hào)詳細(xì)設(shè)計(jì):#include <stdio.h> void main() int n,w,m,i,num,j,t,r,f,g;int inumber2; int inumber;int schnumber;int c20,d20,e20;int array40;struct Schoolint number;int schgl;int mgl;int wmgl;int items40; school20;struct Itemint a3,b5; int number; item40;printf("-n");pr
3、intf("-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)-n");printf("-n");printf("n");printf("請(qǐng)輸入?yún)⒓舆\(yùn)動(dòng)會(huì)的學(xué)校個(gè)數(shù):");scanf("%d",&n); while(n<=0|n>20) printf("對(duì)不起,您輸入的數(shù)不符合要求,請(qǐng)重新輸入:"); scanf("%d",&n);printf("規(guī)定它們的編號(hào)分別是:");for( i=1;i<=n;i+)schooli-1.numb
4、er=i;printf("%d,",i);printf("nn"); printf("請(qǐng)輸入男項(xiàng)的個(gè)數(shù)(020):"); scanf("%d",&m);while(m<=0|m>20) printf("您輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); scanf("%d",&m);printf("n"); printf("請(qǐng)輸入女項(xiàng)的個(gè)數(shù)(020):"); scanf("%d",&w); wh
5、ile(w<=0|w>20) printf("對(duì)您輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); scanf("%d",&w); printf("n"); printf("男項(xiàng)的編號(hào)分別是:");for(i=1;i<=m;i+)itemi-1.number=i;printf("%d,",i); printf("n"); printf("女項(xiàng)的編號(hào)分別是:");for(i=m+1;i<=m+w;i+)itemi-1.number=i;pr
6、intf("%d,",i); printf("n"); printf("請(qǐng)輸入需要取前三名的項(xiàng)目個(gè)數(shù)(040):"); scanf("%d",&num);while(num<0|num>m+w) printf("您輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); scanf("%d",&num);printf("n"); printf("n");for(i=1;i<=20;i+) schooli.schgl=0; s
7、chooli.wmgl=0; schooli.mgl=0;for(i=1;i<=40;i+)for(j=0;j<3;j+)itemi.aj=0; for(i=1;i<=40;i+)for(j=0;j<5;j+)itemi.bj=0; for(i=1;i<=20;i+)for(j=1;j<=40;j+) schooli.itemsj=0;for(i=0;i<=40;i+)arrayi=0;printf("請(qǐng)輸入項(xiàng)目編號(hào)和項(xiàng)目前三名的學(xué)校編號(hào)。n");printf("項(xiàng)目編號(hào) 該項(xiàng)目前三名的學(xué)校編號(hào):n ");for
8、(i=0;i<num;i+)scanf("%d",&inumber);arrayi=inumber;t=inumber;printf(" ");for(j=0;j<3;j+)scanf("%d",&itemt.aj); schoolitemt.a0.schgl=schoolitemt.a0.schgl+5; schoolitemt.a1.schgl=schoolitemt.a1.schgl+3; schoolitemt.a2.schgl=schoolitemt.a2.schgl+2; schoolitemt
9、.a0.itemst=schoolitemt.a0.itemst+5; schoolitemt.a1.itemst=schoolitemt.a1.itemst+3; schoolitemt.a2.itemst=schoolitemt.a2.itemst+2;if(inumber<=m)schoolitemt.a0.mgl=schoolitemt.a0.mgl+5; schoolitemt.a1.mgl=schoolitemt.a1.mgl+3; schoolitemt.a2.mgl=schoolitemt.a2.mgl+2;else schoolitemt.a0.wmgl=schooli
10、temt.a0.wmgl+5; schoolitemt.a1.wmgl=schoolitemt.a1.wmgl+3; schoolitemt.a2.wmgl=schoolitemt.a2.wmgl+2;printf("n");printf("請(qǐng)輸入前五名的項(xiàng)目編號(hào)以及項(xiàng)目前五名的學(xué)校編號(hào):n");printf("項(xiàng)目編號(hào) 該項(xiàng)目前五名的學(xué)校編號(hào):n ");for(i=0;i<m+w-num;i+) scanf("%d",&inumber); t=inumber;printf(" "
11、); for(j=0;j<5;j+)scanf("%d",&itemt.bj); schoolitemt.b0.schgl=schoolitemt.b0.schgl+7; schoolitemt.b1.schgl=schoolitemt.b1.schgl+5; schoolitemt.b2.schgl=schoolitemt.b2.schgl+3; schoolitemt.b3.schgl=schoolitemt.b3.schgl+2; schoolitemt.b4.schgl=schoolitemt.b4.schgl+1; schoolitemt.b0.it
12、emst=schoolitemt.b0.itemst+7; schoolitemt.b1.itemst=schoolitemt.b1.itemst+5; schoolitemt.b2.itemst=schoolitemt.b2.itemst+3; schoolitemt.b3.itemst=schoolitemt.b3.itemst+2; schoolitemt.b4.itemst=schoolitemt.b4.itemst+1;if(inumber<=m)schoolitemt.b0.mgl=schoolitemt.b0.mgl+7; schoolitemt.b1.mgl=school
13、itemt.b1.mgl+5; schoolitemt.b2.mgl=schoolitemt.b2.mgl+3; schoolitemt.b3.mgl=schoolitemt.b3.mgl+2; schoolitemt.b4.mgl=schoolitemt.b4.mgl+1;else schoolitemt.b0.wmgl=schoolitemt.b0.wmgl+7; schoolitemt.b1.wmgl=schoolitemt.b1.wmgl+5; schoolitemt.b2.wmgl=schoolitemt.b2.wmgl+3; schoolitemt.b3.wmgl=schoolit
14、emt.b3.wmgl+2; schoolitemt.b4.wmgl=schoolitemt.b4.wmgl+1;printf("n"); printf("規(guī)定前五名的項(xiàng)目積分為7,5,3,2,1."); printf("n"); printf("規(guī)定前三名的項(xiàng)目積分為5,3,2."); printf("n"); printf("請(qǐng)輸入需要查詢的項(xiàng)目編號(hào)n"); printf("輸入1代表按學(xué)校編號(hào)輸出總分n"); printf("輸入2代表按學(xué)
15、??偡钟纱蟮叫≥敵隹偡謓"); printf("輸入3代表按男團(tuán)成績(jī)由大到小輸出總分n"); printf("輸入4代表按女團(tuán)成績(jī)由大到小輸出總分n"); printf("輸入其他數(shù)字代表跳過這一查詢階段n"); f=1; for(i=0;f>0&&f<=4;i+) printf("請(qǐng)輸入查詢的數(shù)字:"); scanf("%d",&f); if(f=1) printf("按學(xué)校編號(hào)輸出總分為:"); for( i=1;i<=
16、n;i+) printf("%d ",schooli.schgl); printf("nn"); if(f=2) for(i=1;i<=20;i+)ci=schooli.schgl; printf("按學(xué)校總分由大到小輸出總分為:"); for(i=1;i<=n;i+) for(j=i;j<=n;j+) if(ci<cj) t=ci; ci=cj; cj=t; for(i=1;i<=n;i+) printf("%d ",ci); printf("nn"); if(f
17、=3) for(i=1;i<=20;i+) di=schooli.mgl; printf("男子成績(jī)由大到小輸出"); for(i=1;i<=n;i+) for(j=i;j<=n;j+) if(di<dj) t=di; di=dj; dj=t; for(i=1;i<=n;i+) printf("%d ",di); printf("nn"); if(f=4) for(i=1;i<=20;i+) ei=schooli.wmgl; printf("女子成績(jī)由大到小輸出"); for(i
18、=1;i<=n;i+) for(j=i;j<=n;j+) if(ei<ej) t=ei; ei=ej; ej=t; for(i=1;i<=n;i+) printf("%d ",ei); printf("nn"); t=1; while(t>=1&&t<=n) printf("輸入學(xué)校編號(hào),查找學(xué)校運(yùn)動(dòng)會(huì)某個(gè)項(xiàng)目情況"); scanf("%d",&schnumber); while(schnumber<=0|schnumber>20) print
19、f("您輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); scanf("%d",&schnumber); printf("n"); r=schnumber; printf("學(xué)校該項(xiàng)目的總分,男子,女子分?jǐn)?shù)分別是:"); printf("%d,%d,%d",schoolr.schgl,schoolr.mgl,schoolr.wmgl);printf("n");printf("學(xué)校所有項(xiàng)目的分?jǐn)?shù):n");for(i=1;i<=m+w;i+)printf(&q
20、uot;%-3d",i); printf("n");for(i=1;i<=m+w;i+)printf("%-3d",schoolr.itemsi); printf("n"); printf("繼續(xù)查找則輸入學(xué)校編號(hào)數(shù)字,否則輸入其他數(shù)字"); scanf("%d",&t); t=1; while(t>=1&&t<=m+w) printf("輸入項(xiàng)目編號(hào)查找該項(xiàng)目學(xué)校的排名情況:n"); scanf("%d"
21、;,&inumber2); while(inumber2<=0|inumber2>m+w) printf("您輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入:"); scanf("%d",&inumber2); printf("n"); r=inumber2; printf("您輸入的項(xiàng)目編號(hào)是%d.n",r); for(i=0;i<num;i+) if(r=arrayi) g=1; break; else g=0; if(g=1) printf("該項(xiàng)目的前三名學(xué)校編號(hào)以及積分是:n&qu
22、ot;); for(i=0;i<3;i+) printf("%d ",itemr.ai); printf("n"); printf("5 3 2"); if(g=0) printf("該項(xiàng)目的前五名學(xué)校編號(hào)以及積分是:n"); for(i=0;i<5;i+) printf("%d ",itemr.bi); printf("n"); printf("7 5 3 2 1"); printf("n"); printf("
23、繼續(xù)查找則輸入項(xiàng)目編號(hào)數(shù)字,否則輸入其他數(shù)字:"); scanf("%d",&t); 調(diào)試分析:按照程序給定的要求和指令,可以得到相應(yīng)的結(jié)果。比如按照學(xué)??偡峙鸥叩停茨凶樱ɑ蚺樱┛偡峙鸥叩头?jǐn)?shù);某項(xiàng)目前三名的學(xué)校編號(hào);某一學(xué)校各項(xiàng)目的分?jǐn)?shù)情況。用戶手冊(cè):1) 演示程序的運(yùn)行環(huán)境為Windows Vista系統(tǒng),Microsoft Visual Studio 6.0中的Microsoft Visual C+ 6.0中運(yùn)行。執(zhí)行文件為:運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì).exe測(cè)試結(jié)果:學(xué)校個(gè)數(shù):5 男子項(xiàng)目個(gè)數(shù):4 女子項(xiàng)目個(gè)數(shù):3 總項(xiàng)目個(gè)數(shù):7設(shè)計(jì)題目二: 哈希表查找的
24、設(shè)計(jì)任務(wù):設(shè)哈希表長(zhǎng)為20,用除留余數(shù)法構(gòu)造一個(gè)哈希函數(shù),以開放定址法中的線性探測(cè)再散列法作為解決沖突的方法,編程實(shí)現(xiàn)哈希表查找、插入和建立算法。需求分析:用戶在給定的哈希表長(zhǎng)中輸入不多于20個(gè)的正整數(shù),并取一個(gè)不大于20的數(shù)作為除數(shù),改造一個(gè)哈希函數(shù),并將這些數(shù)按要求插入到哈希表中。若某個(gè)數(shù)插入時(shí),該哈希表中有了一個(gè)數(shù),此時(shí)用線性探測(cè)在散列的方法處理沖突。功能要求:在構(gòu)造好哈希表后,可以查找在哈希表中的某個(gè)關(guān)鍵字,并能指出該關(guān)鍵字在表中的位置,當(dāng)輸入的某數(shù)不在表中時(shí),可以將其插入到哈希表中。概要設(shè)計(jì):for(i=0;i<m;i+) /構(gòu)建一個(gè)哈希函數(shù) t=arrayi%p; /余數(shù)t為
25、哈希地址 if(hashsizet=-1) /表示該位置為空 hashsizet=arrayi; /將數(shù)加到該位置上 else /用開發(fā)地址法解決沖突 for(j=0;hashsizet!=-1;j+)t=(t+1)%20; /線性探測(cè)在散列解決沖突hashsizet=arrayi; /將數(shù)加到該位置上 詳細(xì)設(shè)計(jì):#include <stdio.h>void main()int hashsize20;int i,j,array20,p,t,t2,c,m,n;int b,k,f=0;for(i=0;i<20;i+)hashsizei=-1; /用-1代表該位置為空printf(
26、"please input a key number (020):");scanf("%d",&p); while(p<=0|p>20) printf("sorry the number is fault,please input again:"); scanf("%d",&p);printf("n"); printf("please input positive intege number(020):");scanf("%d"
27、,&m);while(m>20|m<=0) printf("sorry the number is fault,please input again:"); scanf("%d",&m);printf("n");printf("請(qǐng)輸入這%d個(gè)數(shù)據(jù):",m);for(i=0;i<m;i+) scanf("%d",&arrayi);for(i=0;i<m;i+) t=arrayi%p; /余數(shù)t為哈希地址 if(hashsizet=-1) /表示該位置
28、為空,將數(shù)加到該位置上 hashsizet=arrayi; else /用開發(fā)地址法解決沖突 for(j=0;hashsizet!=-1;j+)t=(t+1)%20;hashsizet=arrayi; for(i=0;i<20;i+)printf("%-3d",i); /輸出右對(duì)齊printf("n");for(i=0;i<20;i+)if(hashsizei!=-1) printf("%-3d",hashsizei);elseprintf(" ");printf("n");for(k=1;k=1;) printf("請(qǐng)輸入你想要查找其地址的一個(gè)正整數(shù):"); scanf("%d",&c); printf("您輸入的數(shù)為%d",c); printf
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保險(xiǎn)條款考試試題及答案
- 電力稽查考試試題及答案
- 華州區(qū)四年級(jí)試卷及答案
- 湖北省武漢市中考語文試卷及答案
- 2025年財(cái)政與稅務(wù)專業(yè)知識(shí)考試試題及答案
- 2025年社會(huì)學(xué)研究生入學(xué)考試試卷及答案
- 2025年高校音樂教育專業(yè)綜合素質(zhì)測(cè)試題及答案
- 2025年語文素養(yǎng)測(cè)試考試試卷及答案
- 自考《古代文學(xué)史(一)》考試復(fù)習(xí)題(附答案)
- 河北省第二屆職業(yè)技能大賽(應(yīng)急救援賽項(xiàng))備考題(附答案)
- 對(duì)外經(jīng)濟(jì)貿(mào)易大學(xué)畢業(yè)答辯模板
- 豐富多彩的課間活動(dòng)課件
- 江西省宜豐縣圳口里-奉新縣枧下窩礦區(qū)陶瓷土(含鋰)礦勘查環(huán)評(píng)報(bào)告
- 中山酒店行業(yè)狀況分析
- 《平衡記分卡BSC》課件
- 防病毒 應(yīng)急預(yù)案
- 生活中的經(jīng)濟(jì)學(xué)
- 停車場(chǎng)利潤(rùn)分成協(xié)議
- 小學(xué)綜合實(shí)踐活動(dòng)理論知識(shí)
- 先秦兩漢文學(xué)史演示演示課件
- 馬工程版《中國(guó)經(jīng)濟(jì)史》各章思考題答題要點(diǎn)及詳解
評(píng)論
0/150
提交評(píng)論