版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)</p><p><b> 2013年 1 月</b></p><p><b> 課程設(shè)計(jì)的目的</b></p><p> 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;</p><p> 初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系
2、統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;</p><p> 提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;</p><p> 訓(xùn)練用系統(tǒng)觀點(diǎn)和軟件開(kāi)發(fā)規(guī)范進(jìn)行軟件開(kāi)發(fā),培養(yǎng)軟件工作者應(yīng)具備的的工作方法和作風(fēng)。</p><p> 二、問(wèn)題描述問(wèn)題描述及分析</p><p> 任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比
3、賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名自己設(shè)定。(m<=20,n<=20)</p><p> 1) 可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);(成績(jī)只不記入個(gè)人,男女分開(kāi),項(xiàng)目分開(kāi),學(xué)校分開(kāi))</p><p>
4、 2) 能統(tǒng)計(jì)各學(xué)??偡郑信畧F(tuán)體總分。</p><p> 3) 按學(xué)校總分排序輸出、要求:</p><p> 學(xué)校編號(hào),名稱,總分</p><p><b> 男子團(tuán)體總分</b></p><p> 男子各項(xiàng)目的名稱和成績(jī)(一個(gè)項(xiàng)目一行)</p><p><b> 女子團(tuán)體總
5、分</b></p><p> 女子各項(xiàng)目的名稱和成績(jī)。(一個(gè)項(xiàng)目一行) </p><p> 4) 可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。 </p><p> 輸出形式:有中文提示,分?jǐn)?shù)為整型</p><p> 界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相
6、關(guān)的功能要求。</p><p> 存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ)在數(shù)據(jù)文件中。</p><p><b> 數(shù)據(jù)結(jié)構(gòu)描述</b></p><p> 本程序中學(xué)校的存儲(chǔ)結(jié)構(gòu)為鏈表,</p><p> typedef struct node1{ </p>&
7、lt;p> int school; /*學(xué)校編號(hào)*/ </p><p> int record; /*項(xiàng)目成績(jī)*/ </p><p> struct node1 *next; /*鏈域*/ </p><p> }Schools; </p><p> typedef struct { </
8、p><p> int item; /*項(xiàng)目編號(hào)*/ </p><p> Schools *firstschool; /*鏈域指向鏈表中第一個(gè)結(jié)點(diǎn)*/ </p><p> }ITEM; </p><p> typedef struct { </p><p> int z; /* 項(xiàng)目總數(shù)
9、 */ </p><p> ITEM a[MAX]; </p><p> }ALLitems; </p><p> typedef struct node2 { </p><p> int item; /*該學(xué)校獲獎(jiǎng)的項(xiàng)目*/ </p><p> int record; /*項(xiàng)目成績(jī)*
10、/ </p><p> struct node2 *next; /*鏈域*/ </p><p> }Items; </p><p> typedef struct { </p><p> int school; /*學(xué)校編號(hào)*/ </p><p> int score; /*學(xué)校
11、總分*/ </p><p> int boys; /*男團(tuán)體總分*/ </p><p> int girls; /*女團(tuán)體總分*/ </p><p> Items *firstitem; /*鏈域指向鏈表中第一個(gè)獲獎(jiǎng)項(xiàng)目的結(jié)點(diǎn)*/ </p><p> }SCHNode; </p><p&g
12、t; typedef struct { </p><p> int n; /* 學(xué)校總數(shù) */ </p><p> SCHNode b[MAX]; </p><p> }ALLNode; </p><p> ALLitems *g1; </p><p> ALLNode *g2; &
13、lt;/p><p><b> 主要算法流程描述</b></p><p><b> 1、總流程圖:</b></p><p><b> 分模塊流程圖:</b></p><p> Funct7流程圖如下:</p><p> Funct8流程圖如下:<
14、;/p><p> 3、主要代碼及程序說(shuō)明</p><p> void funct7(ALLNode *g2) /* 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 */ </p><p> { int i,j; </p><p> Items *p2; </p><p> printf(&q
15、uot;\n ****** 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 ******\n"); </p><p> printf(" 輸入要查詢的學(xué)校編號(hào):"); </p><p> scanf("%d",&i); </p><p&
16、gt; printf(" 輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&j); </p><p> p2=g2->b[i].firstitem; </p><p> while(p2!=NULL)
17、 </p><p> { if(p2->item==j) </p><p> printf(" 學(xué)校編號(hào):%d\t項(xiàng)目%d:得%d分\n",i,p2->item,p2->record); </p><p> p2=p2->next; </p>
18、<p><b> } </b></p><p> printf("\n"); </p><p> system("pause");</p><p> printf(" 按任意鍵返回主菜單......"); &l
19、t;/p><p> getchar(); </p><p><b> } </b></p><p> void funct8(ALLitems *g1) /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 */ </p><p> { int i; </p><p&
20、gt; Schools *p1; </p><p> printf("\n*** 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 ***\n"); </p><p> printf("輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&i); </p>&l
21、t;p> printf("項(xiàng)目編號(hào)\t\t\t取得名次的學(xué)校\n"); </p><p> printf("%d\t",i); </p><p> p1=g1->a[i].firstschool; </p><p> while(p1!=NULL) </p><p>
22、 { printf(" 學(xué)校%d:得%d分 ",p1->school,p1->record); </p><p> p1=p1->next; </p><p><b> } </b></p><p> printf("\n\n"); </p>&l
23、t;p> system("pause");</p><p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p><b> 主要使用的函數(shù)&
24、lt;/b></p><p><b> Main()</b></p><p><b> Funct ()</b></p><p><b> Menue ()</b></p><p><b> Save()</b></p><
25、;p><b> 使用說(shuō)明</b></p><p> Funct7:按項(xiàng)目代號(hào)查取得成績(jī)的學(xué)校是也是按編號(hào)查詢,只要學(xué)校項(xiàng)目代號(hào)與輸入要查的項(xiàng)目相同并且有成績(jī)就輸出。</p><p> Funct8:在統(tǒng)計(jì)學(xué)校總分和各學(xué)校男女項(xiàng)目總分時(shí)思路大致相同,在統(tǒng)計(jì)男(女)項(xiàng)目總分時(shí)只需確定下是否是男(女)子項(xiàng)目,如果是就加,判斷方法就是男子項(xiàng)目的項(xiàng)目代號(hào)小于等于男子
26、項(xiàng)目數(shù)(即:L->sc[j].xiangmu)<(L->m))而女子項(xiàng)目則大于男子項(xiàng)目數(shù)(即L->sc[j].xiangmu)>(L->m))</p><p><b> 軟件調(diào)試說(shuō)明</b></p><p><b> 1 主界面</b></p><p><b> 2 建立
27、參賽者信息</b></p><p><b> 3 查詢</b></p><p><b> 5 排名</b></p><p> Funct 7 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況</p><p> Funct8:按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校</p><p>&
28、lt;b> 總結(jié)</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。</p><p> 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng),時(shí)間和空間復(fù)雜度計(jì)算都比較復(fù)雜,運(yùn)動(dòng)會(huì)在調(diào)試的時(shí)候出現(xiàn)的問(wèn)題最多,頭文件就有很多問(wèn)題,一開(kāi)始的時(shí)候出現(xiàn)的很多錯(cuò)誤都是有關(guān)頭文件的,因?yàn)榧扔胹tudio
29、.h又用iostream,所以問(wèn)題比較多,隨后統(tǒng)一為studio,h則問(wèn)題得到解決,從中知道,兩個(gè)頭文件不能混合使用,運(yùn)動(dòng)會(huì)數(shù)涉及到文件的輸入輸出,這里也碰到很多問(wèn)題,首先是文件不能正常的讀出,以及一些格式的錯(cuò)誤,最后也得到解決,整個(gè)程序最主要的是建立學(xué)校和項(xiàng)目這兩個(gè)鏈表,以及兩者之間的具體關(guān)系,所以這個(gè)地方比較容易搞錯(cuò)</p><p><b> 上機(jī)調(diào)試</b></p>&
30、lt;p> 1、調(diào)試中遇到問(wèn)題及解決方法</p><p> 1)、程序調(diào)試過(guò)程中常會(huì)出現(xiàn)一些小錯(cuò)誤,如i,j混淆少括號(hào)少分號(hào)等小問(wèn)題都可以按照提示找到,然后改正。</p><p> 2)、語(yǔ)句錯(cuò)誤語(yǔ)句使用不當(dāng)造成程序無(wú)法運(yùn)行出正常的結(jié)果。</p><p> 3)、在排序過(guò)程中輸出的結(jié)果是按總分順序排序的,但是卻不能夠正確的輸出是哪個(gè)學(xué)校的總分,解決方法
31、是在新申請(qǐng)的順序表的節(jié)點(diǎn)中加入了一個(gè)紀(jì)錄學(xué)校代號(hào)的內(nèi)容,在輸出的同時(shí)就可以把學(xué)校代號(hào)也正確的輸出來(lái)了。</p><p><b> 2、設(shè)計(jì)體會(huì)</b></p><p> 通過(guò)這次課程設(shè)計(jì)使我進(jìn)一步達(dá)到理論與實(shí)際相結(jié)合,提高了自己組織數(shù)據(jù)及編寫(xiě)程序的能力,使我們能夠根據(jù)問(wèn)題要求和數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)組織的方法,把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái)并用軟件解
32、決問(wèn)題,培養(yǎng)良好的程序設(shè)計(jì)技能,掌握設(shè)計(jì)程序的思路,學(xué)會(huì)用計(jì)算機(jī)語(yǔ)言編寫(xiě)程序,以實(shí)現(xiàn)所需處理的任務(wù),鍛煉自己的動(dòng)腦能力,學(xué)會(huì)用自己的思路解決現(xiàn)實(shí)中的實(shí)際問(wèn)題,雖然一開(kāi)始也走了一些彎路不過(guò)在同學(xué)和老師的點(diǎn)撥下完成了該程序,這次課程設(shè)計(jì)中遇到了很多問(wèn)題,一開(kāi)始準(zhǔn)備用二維數(shù)組存放的可考慮到同一個(gè)學(xué)校同一個(gè)項(xiàng)目有好幾個(gè)人參加,就不能用二維數(shù)組了,如果每個(gè)學(xué)校都申請(qǐng)一個(gè)二維數(shù)組也非常不方便,還是用順序表方便也不浪費(fèi)空間,在這次課程設(shè)計(jì)的過(guò)程中雖然
33、很多次都參照了課本及資料,不過(guò)這使我更加熟悉了順序表以及結(jié)構(gòu)體的定義及實(shí)現(xiàn),調(diào)試過(guò)程中也遇到了一些問(wèn)題也都是自己獨(dú)立思考完成的,還有一個(gè)體會(huì)是,遇到不會(huì)的地方可以參考課本也可以去圖書(shū)館或網(wǎng)上查資料,當(dāng)然主要思路有了也就簡(jiǎn)單點(diǎn)了,一開(kāi)始思路不是很清楚就開(kāi)始在敲程序了,浪費(fèi)了很多時(shí)間,在老師的指導(dǎo)下,把自己的思路理清楚了再來(lái)敲程序果真是事半功倍,這真是個(gè)很好的收獲。</p><p><b> 3、性能分析
34、</b></p><p> 在排序時(shí)用到了直接插入排序,從算法描述中可以看到,在搜索插入位置時(shí),遇到關(guān)鍵字相等的元素就停止比較和移動(dòng)元素,可以確定該算法是穩(wěn)定的排序算法。從空間角度上看,它只需要一個(gè)元素的輔助空間r[0]。從時(shí)間角度上看,主要時(shí)間耗費(fèi)在關(guān)鍵字的比較和移動(dòng)元素上。n為順序表表長(zhǎng),平均時(shí)間復(fù)雜度為O(n2)最壞時(shí)間復(fù)雜度為O(n2)輔助存儲(chǔ)空間r[0]。</p><p
35、> 類似的編程問(wèn)題,在設(shè)計(jì)中還遇到了很多。最后在老師的指導(dǎo)下,和班級(jí)幾個(gè)同學(xué)的幫助下,終于解決,較為完善的完成了任務(wù)。</p><p> 回顧這次課程設(shè)計(jì),使我感慨頗多。的確,從理論到實(shí)踐,在整整一星期的日子里,學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,從而提高自己的實(shí)際動(dòng)手編程能力和獨(dú)立思考的能力。
36、</p><p><b> 八、參考文獻(xiàn)</b></p><p> 【1】嚴(yán)蔚敏,吳偉民。數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)。清華大學(xué)出版社,2011.</p><p><b> 代碼</b></p><p> #include <stdio.h> </p><p&
37、gt; #include <stdlib.h> </p><p> #include <string.h> </p><p> #include <io.h> </p><p> #include <conio.h> /*屏幕操作函數(shù)*/ </p><p
38、> #define MAX 50 </p><p> #define NULL 0 </p><p> typedef struct node1{ </p><p> int school; /*學(xué)校編號(hào)*/ </p><p> int record; /*項(xiàng)目成績(jī)*/
39、 </p><p> struct node1 *next; /*鏈域*/ </p><p> }Schools; </p><p> typedef struct { </p><p> int item; /*項(xiàng)目編號(hào)*/ </p>
40、<p> Schools *firstschool; /*鏈域指向鏈表中第一個(gè)結(jié)點(diǎn)*/ </p><p> }ITEM; </p><p> typedef struct { </p><p> int z; /* 項(xiàng)目總數(shù) */ </p><p>
41、; ITEM a[MAX]; </p><p> }ALLitems; </p><p> typedef struct node2 { </p><p> int item; /*該學(xué)校獲獎(jiǎng)的項(xiàng)目*/ </p><p> int record; /*項(xiàng)目成績(jī)
42、*/ </p><p> struct node2 *next; /*鏈域*/ </p><p> }Items; </p><p> typedef struct { </p><p> int school; /*學(xué)校編號(hào)*/ </p
43、><p> int score; /*學(xué)??偡?/ </p><p> int boys; /*男團(tuán)體總分*/ </p><p> int girls; /*女團(tuán)體總分*/ </p><p> Items *firstitem; /*鏈域指向鏈表中第一個(gè)獲獎(jiǎng)項(xiàng)目的結(jié)點(diǎn)*/ &
44、lt;/p><p> }SCHNode; </p><p> typedef struct { </p><p> int n; /* 學(xué)??倲?shù) */ </p><p> SCHNode b[MAX]; </p><p> }ALLNode;
45、 </p><p> ALLitems *g1; </p><p> ALLNode *g2; </p><p> void funct1(ALLitems *g1,ALLNode *g2) </p><p><b> { </b>&
46、lt;/p><p> Schools *p1; </p><p> Items *p2; </p><p> int i,j,k,m,w,h,x; </p><p> p1=(Schools *)malloc(sizeof(Schools)); &l
47、t;/p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> if(!p1||!p2) </p><p> exit(1); </p>
48、<p> printf("\n ******輸入各個(gè)項(xiàng)目信息 ****** \n\n"); </p><p> printf(" 輸入男子項(xiàng)目總數(shù)m:"); </p><p>
49、; scanf("%d",&m); </p><p> if(m<0||m>20) </p><p> { printf(" 輸入有誤,m是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p><p> scanf("%d&quo
50、t;,&m); </p><p><b> } </b></p><p> printf(" 輸入女子項(xiàng)目總數(shù)w:"); </p><p> scanf("%d",&w); </p>
51、<p> if(w<0||w>20) </p><p> { printf(" 輸入有誤,w是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p><p> scanf("%d",&w); </p><p><b> }
52、 </b></p><p> printf(" 輸入?yún)⒓舆\(yùn)動(dòng)會(huì)的學(xué)??倲?shù)n:"); </p><p> scanf("%d",&g2->n); </p><p> if(g2->n<0||g2->n>20)
53、 </p><p> { printf(" 輸入有誤,n是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p><p> scanf("%d",&g2->n); </p><p><b> } </b></p>
54、<p> g1->z=m+w; </p><p> printf(" 則項(xiàng)目編號(hào)為男子1-%d,女子%d-%d",m,m+1,g1->z); </p><p> printf("\n\n ****記錄運(yùn)動(dòng)會(huì)成績(jī)****"); </p>
55、<p> printf("\n\n (輸入0標(biāo)志結(jié)束)\n"); </p><p> for(k=1;k<=g1->z;k++) </p><p> { g1->a[k].item=k; </p><p> g1
56、->a[k].firstschool=NULL; </p><p><b> } </b></p><p> for(k=1;k<=g2->n;k++) </p><p> { g2->b[k].school=k; </p><p> g2-&g
57、t;b[k].firstitem=0; </p><p> g2->b[k].score=0; </p><p> g2->b[k].boys=0; </p><p> g2->b[k].girls=0; </p><p> }
58、 </p><p> g2->b[0].score=0; </p><p> g2->b[0].boys=0; </p><p> g2->b[0].girls=0; </p><p> while(i!=0) </p><p> { pr
59、intf("\n 項(xiàng)目:"); </p><p> scanf("%d",&i); </p><p> if(i!=0) </p><p> { printf(" 1.
60、前三名 2.前五名\n"); </p><p> printf(" 請(qǐng)選擇:"); </p><p> scanf("%d",&j); </p><p> if(j!=1&&j!
61、=2) </p><p> { printf(" 輸入有誤,請(qǐng)重新選擇:"); </p><p> scanf("%d",&j); </p><p><b> } </b>&l
62、t;/p><p> if(j==1) </p><p> { h=3; </p><p> do{ printf(" 第%d名:學(xué)校(學(xué)校編號(hào)為數(shù)字)",h); </p><p> scanf(&quo
63、t;%d",&x); </p><p> p1=(Schools *)malloc(sizeof(Schools)); </p><p> p1->school=x; </p><p> p2=(Items *)malloc(sizeof(Items)); &l
64、t;/p><p> p2->item=i; </p><p> if(h==3) p2->record=p1->record=2; </p><p> if(h==2) p2->record=p1->record=3; </p>
65、<p> if(h==1) p2->record=p1->record=5; </p><p> p1->next=g1->a[i].firstschool; </p><p> g1->a[i].firstschool=p1; </p>
66、;<p> p2->next=g2->b[x].firstitem; </p><p> g2->b[x].firstitem=p2; </p><p> g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總分 */
67、 </p><p><b> if(i<=m) </b></p><p> g2->b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ </p><p><b> else </b>&l
68、t;/p><p> g2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ </p><p> h--; </p><p> }while(x!=0&&h!=0); </p>&
69、lt;p> } </p><p> if(j==2) </p><p> { h=5; </p><p> do{ printf(" 第%d名:學(xué)校(學(xué)校編號(hào)為數(shù)字)",h); </p>
70、<p> scanf("%d",&x); </p><p> p1=(Schools *)malloc(sizeof(Schools)); </p><p> p1->school=x; </p><p> p2=(
71、Items *)malloc(sizeof(Items)); </p><p> p2->item=i; </p><p> if(h==5) p2->record=p1->record=1; </p><p> if(h==4) p2->r
72、ecord=p1->record=2; </p><p> if(h==3) p2->record=p1->record=3; </p><p> if(h==2) p2->record=p1->record=5; </p><p>
73、if(h==1) p2->record=p1->record=7; </p><p> p1->next=g1->a[i].firstschool; </p><p> g1->a[i].firstschool=p1; </p><p> p2->next=g
74、2->b[x].firstitem; </p><p> g2->b[x].firstitem=p2; </p><p> g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總分 */ </p>
75、;<p><b> if(i<=m) </b></p><p> g2->b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ </p><p><b> else </b></p><p> g
76、2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ </p><p> h--; </p><p> }while(x!=0&&h!=0); </p><p> } <
77、;/p><p> } </p><p><b> } </b></p><p><b> } </b></p><p> void save() </p><p>
78、 { FILE *fp1,*fp2; </p><p> fp1=(FILE *)malloc(sizeof(FILE)); </p><p> fp2=(FILE *)malloc(sizeof(FILE)); </p><p> if((fp1=fopen("sports1","wb"))==NULL)
79、 </p><p> { printf("cannot open file.\n"); </p><p> return; </p><p><b> } </b></p><p> if(fwrite(g1,sizeof(ALLitems),1,f
80、p1)!=1) </p><p> printf("file write error.\n"); </p><p> fclose(fp1); </p><p> if((fp2=fopen("sports2","wb"))==NULL) </p>
81、<p> { printf("cannot open file.\n"); </p><p> return; </p><p><b> } </b></p><p> if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) <
82、;/p><p> printf("file write error.\n"); </p><p> fclose(fp2); </p><p><b> } </b></p><p> void funct2(ALLNode *g2) /* 輸出各學(xué)??偡?*
83、/ </p><p> { int k; </p><p> printf("\n\n ****** 輸出各學(xué)??偡?******\n"); </p><p> printf(" 學(xué)校編號(hào)\t 總分 \n
84、"); </p><p> for(k=1;k<=g2->n;k++) </p><p> printf(" 學(xué)校%d\t\t\t %d分\n",k,g2->b[k].score); </p><p> printf("\n&
85、quot;); </p><p> system("pause"); </p><p> printf(" 按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b>
86、; } </b></p><p> void funct3(ALLNode *g2) /* 按學(xué)校編號(hào)排序輸出 */ </p><p><b> { </b></p><p> int k; </p><p> Items *
87、p2; </p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> printf("\n\n ****** 按學(xué)校編號(hào)排序輸出 ******\n"); </p><p> printf(" 學(xué)
88、校編號(hào)\t\t\t獲獎(jiǎng)情況 \n"); </p><p> for(k=1;k<=g2->n;k++) </p><p> { printf("\t\t\t\t學(xué)校%d\t",k); </p><p> p2=g2->b[k].firstitem; </p&
89、gt;<p> while(p2!=NULL) </p><p> { printf("項(xiàng)目%d:得%d分 ",p2->item,p2->record); </p><p> p2=p2->next; </p><p><b> }
90、</b></p><p> printf("\n"); </p><p><b> } </b></p><p> printf("\n"); </p><p> system("pause"); </p
91、><p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); </p><p> } </p><p> void funct4(ALLNode *g2) /* 按學(xué)校總分排序輸出 */
92、</p><p> { int i,j,k; </p><p> Items *p2; </p><p> printf("\n\n ****** 按學(xué)??偡峙判蜉敵?******\n"); </p><p> printf(" 學(xué)校編號(hào)\t總分
93、 \n"); </p><p> for(i=2;i<=g2->n;i++) </p><p><b> { </b></p><p> p2=g2->b[1].firstitem; </p><p> while(p2!=NULL)
94、 </p><p><b> { </b></p><p> p2=p2->next; </p><p><b> } </b></p><p> printf("\n"); </p>&l
95、t;p> g2->b[0].score=g2->b[i].score; </p><p> g2->b[0].boys=g2->b[i].boys; </p><p> g2->b[0].girls=g2->b[i].girls; </p><p> g2->b[0].
96、school=g2->b[i].school; </p><p> j=i-1; </p><p> while(g2->b[0].score<g2->b[j].score&&j>0) </p><p> { g2->b[j+1].score=g2->b[j].
97、score; </p><p> g2->b[j+1].boys=g2->b[j].boys; </p><p> g2->b[j+1].girls=g2->b[j].girls; </p><p> g2->b[j+1].school=g2->b[j].school;
98、 </p><p> j--; </p><p><b> } </b></p><p> g2->b[j+1].score=g2->b[0].score; </p><p> g2->b[j+1].boys=g2->b[0].bo
99、ys; </p><p> g2->b[j+1].girls=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].school; </p><p><b> } </b></p><p>
100、 for(k=1;k<=g2->n;k++) </p><p> printf("學(xué)校 %d \t\t%d分\n",g2->b[k].school,g2->b[k].score); </p><p> system("pause"); </p><p> printf(&quo
101、t;按任意鍵返回主菜單......"); </p><p> getchar(); </p><p> } </p><p> void funct5(ALLNode *g2) /* 按男團(tuán)體總分排序輸出 */ </p><p> { i
102、nt i,j,k; </p><p> Items *p2; </p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> printf("\n\n ****** 按男團(tuán)體總分排序輸出 ******\n"); </p><
103、;p> printf("學(xué)校編號(hào)\t\t男團(tuán)體總分 \n"); </p><p> for(i=2;i<=g2->n;i++) </p><p> { </p>
104、<p> p2=g2->b[1].firstitem; </p><p> while(p2!=NULL) </p><p><b> { </b></p><p> p2=p2->next; </p><p><b> }
105、 </b></p><p> printf("\n"); </p><p> g2->b[0].score=g2->b[i].score; </p>&
106、lt;p> g2->b[0].boys=g2->b[i].boys; </p><p> g2->b[0].girls=g2->b[i].girls; </p><p> g2->b[0].school=g2->b[i].school; </p><p> j=i-1;
107、 </p><p> while(g2->b[0].boys<g2->b[j].boys&&j>0) </p><p> { g2->b[j+1].score=g2->b[j].score; </p><p> g2->b[j+1].boys=g2->b[j
108、].boys; </p><p> g2->b[j+1].girls=g2->b[j].girls; </p><p> g2->b[j+1].school=g2->b[j].school; </p><p><b> j--; </b></p&g
109、t;<p><b> } </b></p><p> g2->b[j+1].score=g2->b[0].score; </p><p> g2->b[j+1].boys=g2->b[0].boys; </p><p> g2->b[j+1].girl
110、s=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].school; </p><p><b> } </b></p><p> for(k=1;k<=g2->n;k++) </p><p&
111、gt; printf("學(xué)校 %d \t\t%d分\n",g2->b[k].school,g2->b[k].boys); </p><p> system("pause"); // 暫停等待 </p><p> printf("按任意鍵
112、返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p> void funct6(ALLNode *g2) /* 按女團(tuán)體總分排序輸出 */ </p><p
113、> { int i,j,k; </p><p> Items *p2; </p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> printf("\n\n ****** 按女團(tuán)體總分排序輸出 ******\n"); </p&
114、gt;<p> printf("學(xué)校編號(hào)\t\t女團(tuán)體總分 \n"); </p><p> for(i=2;i<=g2->n;i++) </p><p><b> { </b></p><p> p2=g2->b[1].firstitem; &
115、lt;/p><p> while(p2!=NULL) </p><p> { </p><p> p2=p2->next; </p><p><b> } </b></p><p> printf("\n"
116、); </p><p> g2->b[0].score=g2->b[i].score; </p><p> g2->b[0].boys=g2->b[i].boys; </p><p> g2->b[0].girls=g2->b[i].girls; </p>&
117、lt;p> g2->b[0].school=g2->b[i].school; </p><p> j=i-1; </p><p> while(g2->b[0].girls<g2->b[j].girls&&j>0) </p><p> { g2->b[j
118、+1].score=g2->b[j].score; </p><p> g2->b[j+1].boys=g2->b[j].boys; </p><p> g2->b[j+1].girls=g2->b[j].girls; </p><p> g2->b[j+1].schoo
119、l=g2->b[j].school; </p><p> j--; </p><p><b> } </b></p><p> g2->b[j+1].score=g2->b[0].score; </p><p> g2->b[j+
120、1].boys=g2->b[0].boys; </p><p> g2->b[j+1].girls=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].school; </p><p><b> } </b&g
121、t;</p><p> for(k=1;k<=g2->n;k++) </p><p> printf("學(xué)校 %d\t\t%d分\n",g2->b[k].school,g2->b[k].girls); </p><p> system("pause"); </p>
122、;<p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); } </p><p> void funct7(ALLNode *g2) /* 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 */ </p><p> { int i,j
123、; </p><p> Items *p2; </p><p> printf("\n ****** 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 ******\n"); </p><p> printf(" 輸入要查詢的學(xué)校編號(hào):"
124、;); </p><p> scanf("%d",&i); </p><p> printf(" 輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&j);
125、 </p><p> p2=g2->b[i].firstitem; </p><p> while(p2!=NULL) </p><p> { if(p2->item==j) </p><p> printf(" 學(xué)校編號(hào):%d\
126、t項(xiàng)目%d:得%d分\n",i,p2->item,p2->record); </p><p> p2=p2->next; </p><p><b> } </b></p><p> printf("\n"); </p><p>
127、 system("pause"); </p><p> printf(" 按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p>
128、<p> void funct8(ALLitems *g1) /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 */ </p><p> { int i; </p><p> Schools *p1; </p><p> printf("\n*** 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 ***\n&q
129、uot;); </p><p> printf("輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&i); </p><p> printf("項(xiàng)目編號(hào)\t\t\t取得名次的學(xué)校\n"); </p><p>
130、; printf("%d\t",i); </p><p> p1=g1->a[i].firstschool; </p><p> while(p1!=NULL) </p><p> { printf(" 學(xué)校%d:得%d分 ",p1->school,p1->recor
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
評(píng)論
0/150
提交評(píng)論