




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)報告書設(shè)計(jì)題目一: 運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)任務(wù):參加運(yùn)動會有n個學(xué)校,學(xué)校編號為1n。比賽分成m個男子項(xiàng)目,和w個女子項(xiàng)目。項(xiàng)目編號為男子1m,女子m+1m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些項(xiàng)目取前五名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)。功能要求:1)可以輸入各個項(xiàng)目的前三名或前五名的成績;2)能統(tǒng)計(jì)各學(xué)??偡郑?)可以按學(xué)校編號、學(xué)??偡?、男女團(tuán)體總分排序輸出;4)可以按學(xué)校編號查詢學(xué)校某個項(xiàng)目的情況;5) 可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。需求分析:本演示程序中,用戶自定義
2、學(xué)校個數(shù),項(xiàng)目個數(shù),并且自動生成學(xué)校編號和項(xiàng)目編號詳細(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)動會分?jǐn)?shù)統(tǒng)計(jì)-n");printf("-n");printf("n");printf("請輸入?yún)⒓舆\(yùn)動會的學(xué)校個數(shù):");scanf("%d",&n); while(n<=0|n>20) printf("對不起,您輸入的數(shù)不符合要求,請重新輸入:"); scanf("%d",&n);printf("規(guī)定它們的編號分別是:");for( i=1;i<=n;i+)schooli-1.numb
4、er=i;printf("%d,",i);printf("nn"); printf("請輸入男項(xiàng)的個數(shù)(020):"); scanf("%d",&m);while(m<=0|m>20) printf("您輸入的數(shù)據(jù)有誤,請重新輸入:"); scanf("%d",&m);printf("n"); printf("請輸入女項(xiàng)的個數(shù)(020):"); scanf("%d",&w); wh
5、ile(w<=0|w>20) printf("對您輸入的數(shù)據(jù)有誤,請重新輸入:"); scanf("%d",&w); printf("n"); printf("男項(xiàng)的編號分別是:");for(i=1;i<=m;i+)itemi-1.number=i;printf("%d,",i); printf("n"); printf("女項(xiàng)的編號分別是:");for(i=m+1;i<=m+w;i+)itemi-1.number=i;pr
6、intf("%d,",i); printf("n"); printf("請輸入需要取前三名的項(xiàng)目個數(shù)(040):"); scanf("%d",&num);while(num<0|num>m+w) printf("您輸入的數(shù)據(jù)有誤,請重新輸入:"); 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("請輸入項(xiàng)目編號和項(xiàng)目前三名的學(xué)校編號。n");printf("項(xiàng)目編號 該項(xiàng)目前三名的學(xué)校編號: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("請輸入前五名的項(xiàng)目編號以及項(xiàng)目前五名的學(xué)校編號:n");printf("項(xiàng)目編號 該項(xiàng)目前五名的學(xué)校編號: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("請輸入需要查詢的項(xiàng)目編號n"); printf("輸入1代表按學(xué)校編號輸出總分n"); printf("輸入2代表按學(xué)
15、??偡钟纱蟮叫≥敵隹偡謓"); printf("輸入3代表按男團(tuán)成績由大到小輸出總分n"); printf("輸入4代表按女團(tuán)成績由大到小輸出總分n"); printf("輸入其他數(shù)字代表跳過這一查詢階段n"); f=1; for(i=0;f>0&&f<=4;i+) printf("請輸入查詢的數(shù)字:"); scanf("%d",&f); if(f=1) printf("按學(xué)校編號輸出總分為:"); 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("男子成績由大到小輸出"); 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("女子成績由大到小輸出"); 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é)校編號,查找學(xué)校運(yùn)動會某個項(xiàng)目情況"); scanf("%d",&schnumber); while(schnumber<=0|schnumber>20) print
19、f("您輸入的數(shù)據(jù)有誤,請重新輸入:"); 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é)校編號數(shù)字,否則輸入其他數(shù)字"); scanf("%d",&t); t=1; while(t>=1&&t<=m+w) printf("輸入項(xiàng)目編號查找該項(xiàng)目學(xué)校的排名情況:n"); scanf("%d"
21、;,&inumber2); while(inumber2<=0|inumber2>m+w) printf("您輸入的數(shù)據(jù)有誤,請重新輸入:"); scanf("%d",&inumber2); printf("n"); r=inumber2; printf("您輸入的項(xiàng)目編號是%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é)校編號以及積分是: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é)校編號以及積分是: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)目編號數(shù)字,否則輸入其他數(shù)字:"); scanf("%d",&t); 調(diào)試分析:按照程序給定的要求和指令,可以得到相應(yīng)的結(jié)果。比如按照學(xué)校總分排高低,按男子(或女子)總分排高低分?jǐn)?shù);某項(xiàng)目前三名的學(xué)校編號;某一學(xué)校各項(xiàng)目的分?jǐn)?shù)情況。用戶手冊:1) 演示程序的運(yùn)行環(huán)境為Windows Vista系統(tǒng),Microsoft Visual Studio 6.0中的Microsoft Visual C+ 6.0中運(yùn)行。執(zhí)行文件為:運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì).exe測試結(jié)果:學(xué)校個數(shù):5 男子項(xiàng)目個數(shù):4 女子項(xiàng)目個數(shù):3 總項(xiàng)目個數(shù):7設(shè)計(jì)題目二: 哈希表查找的
24、設(shè)計(jì)任務(wù):設(shè)哈希表長為20,用除留余數(shù)法構(gòu)造一個哈希函數(shù),以開放定址法中的線性探測再散列法作為解決沖突的方法,編程實(shí)現(xiàn)哈希表查找、插入和建立算法。需求分析:用戶在給定的哈希表長中輸入不多于20個的正整數(shù),并取一個不大于20的數(shù)作為除數(shù),改造一個哈希函數(shù),并將這些數(shù)按要求插入到哈希表中。若某個數(shù)插入時,該哈希表中有了一個數(shù),此時用線性探測在散列的方法處理沖突。功能要求:在構(gòu)造好哈希表后,可以查找在哈希表中的某個關(guān)鍵字,并能指出該關(guān)鍵字在表中的位置,當(dāng)輸入的某數(shù)不在表中時,可以將其插入到哈希表中。概要設(shè)計(jì):for(i=0;i<m;i+) /構(gòu)建一個哈希函數(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; /線性探測在散列解決沖突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("請輸入這%d個數(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); /輸出右對齊printf("n");for(i=0;i<20;i+)if(hashsizei!=-1) printf("%-3d",hashsizei);elseprintf(" ");printf("n");for(k=1;k=1;) printf("請輸入你想要查找其地址的一個正整數(shù):"); scanf("%d",&c); printf("您輸入的數(shù)為%d",c); printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 編譯原理及技術(shù)實(shí)施試題及答案
- 法學(xué)概論考試中的競爭策略及試題及答案
- 確保班級多元合作的實(shí)施方式計(jì)劃
- 甘肅省武威市第五中學(xué)2025年七下數(shù)學(xué)期末質(zhì)量檢測模擬試題含解析
- 網(wǎng)絡(luò)管理員的創(chuàng)新思維研討試題及答案
- 企業(yè)社交責(zé)任與其戰(zhàn)略決策的相互影響試題及答案
- 增強(qiáng)科學(xué)實(shí)驗(yàn)的實(shí)踐能力計(jì)劃
- 倉庫內(nèi)外部溝通機(jī)制改進(jìn)計(jì)劃
- 長期投資與短期投資的區(qū)別計(jì)劃
- 財政政策與貨幣政策的互動試題及答案
- 2023-2024學(xué)年上海市寶山區(qū)八年級(下)期末數(shù)學(xué)試卷 (含答案)
- 2025年中考數(shù)學(xué)模擬考試卷(附答案)
- 汽車合伙合同協(xié)議書
- 四川省九師聯(lián)盟2025屆高三仿真模擬卷物理試卷及答案(HG)
- 2025年保密法基礎(chǔ)知識考試題庫帶答案(預(yù)熱題)參考答案詳解
- 乙狀結(jié)腸癌試題及答案
- 2025夏季安徽蚌埠市東方人力資源有限勞務(wù)派遣人員招聘30人筆試參考題庫附帶答案詳解
- 2024年貴州銅仁公開招聘社區(qū)工作者考試試題答案解析
- 2025年中央民族大學(xué)輔導(dǎo)員招聘考試筆試試題(含答案)
- 4、《通向金融王國的自由之路》
- 配料間管理制度(食品)
評論
0/150
提交評論