

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計</b></p><p><b> 校</b></p><p><b> 際</b></p><p><b> 運</b></p><p><b> 動</b></p>
2、<p><b> 會</b></p><p><b> 管</b></p><p><b> 理</b></p><p><b> 系</b></p><p><b> 統(tǒng)</b></p><
3、p> C語言程序設(shè)計報告書</p><p> 一、C 語言程序設(shè)計的目的</p><p> 鞏固已學(xué)習(xí)的內(nèi)容,復(fù)習(xí)程序設(shè)計和上機調(diào)試的基本方法方法。通過學(xué)習(xí)一個綜合程序的設(shè)計與編寫,使學(xué)生能夠在較短的時間內(nèi)掌握綜合程序設(shè)計的基本步驟和方法。通過學(xué)習(xí)課本上的習(xí)題,舉一反三,學(xué)會構(gòu)建程序的柜架以及部分常用的算法代碼的收發(fā)室。在加強的基礎(chǔ)上,動手兩個程序的完整設(shè)計與編寫。</p
4、><p><b> 課程設(shè)計報告正文</b></p><p><b> ?。ㄒ唬㈩}目</b></p><p> ?。?)信息初始化,輸入:</p><p> N-參賽學(xué)??倲?shù),M-男子競賽項目數(shù),W-女子競賽項目數(shù);</p><p> 各項目名次取法有以下幾種:</
5、p><p> 《1》取前5名:第1名得分 7,第2名得分 5,第3名得分 3,第4名得分 2,第5名得分 1.</p><p> 《2》取前3名:第1名得分 5,第2名得分 3,第3名得分 2.</p><p> 《3》用戶自定義:各名次權(quán)值由用戶指定。</p><p> (2)提醒用戶填寫比賽結(jié)果,輸入各項目獲獎運動員的信息。</
6、p><p> ?。?)所有信息記錄完畢后,用戶可以查詢各個學(xué)校的比賽成績,生成團體總分報表,查看參賽學(xué)校信息和比賽項目信息等。</p><p><b> [提示]</b></p><p> ?。?)總體設(shè)計:系統(tǒng)設(shè)計為信息輸入模塊、比賽結(jié)果錄入模塊和查詢模塊三個模塊。</p><p> ?。?)數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體數(shù)組,包括
7、學(xué)校、項目、運動員三個結(jié)構(gòu)體。比如學(xué)校結(jié)構(gòu)體成員包括學(xué)校校名、競賽項目、得分項目結(jié)構(gòu)體成員包括項目名、權(quán)值。</p><p> ?。ǘ╊}目的總體要求是要建立三個模塊:信息輸入模塊、比賽結(jié)果錄入模塊以及查詢模塊。</p><p> 在建立完之后,要求該程序能夠在用戶將各種必要的信息記錄之后,用戶可以查詢所有學(xué)校的比賽成績,而且也可以生成團體總分表,查看參賽學(xué)校信息和比賽項目信息等一切錄入
8、的信息,為此,要示編程人員能通過一些具體的程序?qū)⒁陨系墓δ芗右詫崿F(xiàn)。</p><p> 在建立三個模塊的大前提下,我們將采用結(jié)構(gòu)體,循環(huán)體,指針和各種函數(shù)來實現(xiàn)這種功能,在數(shù)據(jù)結(jié)構(gòu)體中,要采用結(jié)構(gòu)體數(shù)組,其中包括學(xué)校、項目、運動員三個結(jié)構(gòu)體。學(xué)校結(jié)構(gòu)體成員包括學(xué)校校名、競賽項目、得分項目結(jié)構(gòu)體成員包括項目名、權(quán)值。</p><p> ?。?)在此程序中,包括幾個頭文件:mainfile.
9、h; dos.h; conio.h; momery.h; 接下來,定義全局變量,其中包括“參賽學(xué)校項目數(shù)N;男子項目數(shù)M;女子項目數(shù)W;參賽學(xué)校g_school;競賽項目g_sport; 各名次鏈表指針ptrHead,ptrThis,ptrNew;</p><p> 總體設(shè)計:系統(tǒng)設(shè)計為信息輸入模塊、比賽結(jié)果錄入模塊和查詢模塊三個模塊。</p><p> ?。?)各種結(jié)構(gòu)的分析:<
10、/p><p> 靜態(tài)存儲方式:它是指在程序運行期間由系統(tǒng)分配固定的存儲空間的方式,全局變量全部存放在靜態(tài)存儲區(qū)中,在程序開始執(zhí)行時給全局變量分配存儲區(qū),程序執(zhí)行完畢就釋放,在程序執(zhí)行過程中它們占據(jù)固定的存儲單元,而不是動態(tài)地進行分配和釋放。</p><p> 用static聲明局部變量:使用該變量可以使局部變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,這即為靜態(tài)局部變量的特點。</p&g
11、t;<p> 靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。如在定義局部變量時不賦初值的話,則對靜態(tài)局部不說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對</p><p> 字符變量)。而對自動變量來說,如果不賦初值
12、則它的值是一個不確定的值。雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。</p><p> Malloc函數(shù)的作用是在內(nèi)存的動態(tài)存儲區(qū)中分配一個長度為size的連續(xù)空間。此函數(shù)的值是一個指向分配域起始地址的指針,如果此函數(shù)未能成功地執(zhí)行,則返回空指針。</p><p> 鏈表是動態(tài)地進行存儲分配的一種結(jié)構(gòu),所謂建立動態(tài)鏈表是指在程序執(zhí)行過程中從無到有地建立一個鏈表
13、,即一個一個地開辟結(jié)點和輸入各結(jié)點數(shù)據(jù),并建立起前后相鏈的關(guān)系。</p><p> 循環(huán)結(jié)構(gòu)是結(jié)構(gòu)程序設(shè)計的基本結(jié)構(gòu)之一,它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元。通常用while、do…while語句實現(xiàn)循環(huán),最常用的是for語句的循環(huán),奪循環(huán)中還有循環(huán)的嵌套,它是指一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)。用語句來實現(xiàn)從循環(huán)體內(nèi)跳出來,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句,但break語句不
14、能用于循環(huán)語句和swich語句之外的任何其他語句中。另外一種就是continue語句,它的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定。</p><p> Swich語句是多分支選擇語句,它后面括號內(nèi)的“表達式”,ANSI標(biāo)準允許它為任何類型。當(dāng)表達式的值與一個case后面的常量表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達
15、式的值匹配的,就執(zhí)行default后面的語句,每一個case的常量表達式的值必須都不相同;否則就會出現(xiàn)相互矛盾的現(xiàn)象。各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果,執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行。“case常量表達式”只是起語句標(biāo)號作用,并不是在該處進行條件判斷。在執(zhí)行swich語句時,根據(jù)swich后面表達式的值找到匹配的入口標(biāo)號,就從此標(biāo)號開始執(zhí)行下去,不再進行判斷。</p>
16、<p><b> 程序流程圖</b></p><p> 項目名次的取法及每一名次的分值</p><p> ****************************MENU1*******************************</p><p><b> ******</b></p>
17、<p> 1.enter!!!</p><p> 2.record!!!</p><p> 3.search!!!</p><p> *******************************************************************************</p><p> choi
18、ce your number:( )</p><p><b> 二、課程設(shè)計體會</b></p><p> 在此次的C語言的課程設(shè)計中,從一開始到最后的結(jié)束自己的課程設(shè)計報告,我不僅學(xué)到了許多專業(yè)知識,更重要的是我學(xué)會了如何在拿到一個題目時進行簡單的程序分析,并編譯出一些相對簡單的程序,當(dāng)然了,對自己編譯出的不對的程序,我也能進行一些分析,并對其進行完善。在此次的
19、學(xué)習(xí)過程中,同伴教給了我們很多的東西,從一開始的不懂VC++這種軟件,到最后的我們可以進行較熟練的應(yīng)用它,也許在這過程中,我們無論是誰都遇到了一些小的困難,但是在我們的共同努力下,我們最終還是克服了它,單從這一點來說,我們就學(xué)到了許多的東西,比如teamwork,同學(xué)之間的相互幫助與配合,都證明了這一點,我相信這是我此次學(xué)習(xí)C語言程序的最大收獲。</p><p> 在我的程序設(shè)計的過程中,遇到了很大有難題,特別
20、是在剛拿到我的題目時,頭腦中根本沒有頭緒,更不要說去編譯程序了,當(dāng)時真的很擔(dān)心是否可以完成老師布置的任務(wù),但慢慢的在學(xué)習(xí)的過程中,我開始懂得了一些編譯的方法,就嘗試著去編譯一些程序,結(jié)果還是很好,最后我編出了我題目的程序,但是在程序的運行過程中,又遇到了新的難題,那就是我所編的程序中有太多的錯誤,根本無法進行運行,沒辦法,只好硬著頭皮修改,不過還好,在同伴的幫助下,我最終將我的程序成功地進行了運行,在我自己的程序運行時,心中有一種說不出
21、的高興,是的,我們這幾天的努力總是沒有白費。</p><p><b> 附錄:程序源代碼</b></p><p> ll/*include some head files*/ </p><p> #include "mainfile.h" </p><p> #include
22、 "dos.h" </p><p> #include "conio.h" </p><p> #include "memory.h" </p><p> /*global variant define*/ </p><p> int
23、 N, /*參賽學(xué)校數(shù)*/ </p><p> M, /*男子項目數(shù)*/ </p><p> W; /*女子項目數(shù)*/ </p><p> static School g_sc
24、hool; /*參賽學(xué)校*/ </p><p> static Sport g_sport; /*競賽項目*/ </p><p> pPosition ptrHead,ptrThis,ptrNew; /*名次鏈表指針*/ </p>&l
25、t;p> /************************************************************************/ </p><p> /* 主程序入口 */ </p><p> /***************
26、*********************************************************/ </p><p> void main() </p><p><b> { </b></p><p> char ch; </p><p> Bool err=_FALSE;
27、</p><p> memset(&g_school,0,sizeof(School)); </p><p> memset(&g_sport,0,sizeof(Sport)); </p><p> printf("\n======================================================
28、====="); </p><p> printf("\n***********************************************************"); </p><p> printf("\n*
29、*"); </p><p> printf("\n* 歡迎進入校際運動會信息管理系統(tǒng) *"); </p><p> printf("\n* *"); </p&
30、gt;<p> printf("\n***********************************************************"); </p><p> printf("\n==========================================================="); </p>
31、<p> printf("\n\n\n\n按“Q”鍵退出運行,\n其它任意鍵繼續(xù)..."); </p><p> ch=toupper(getch()); </p><p> if (ch=='Q') { </p><p> exit(0); </p><p><b
32、> } </b></p><p> /*設(shè)置參賽學(xué)校信息*/ </p><p> if (SetSchoolInfo(&N)) { </p><p> GetSchoolInfo(); </p><p><b> } </b></p><p>
33、;<b> else </b></p><p><b> { </b></p><p> printf("發(fā)生錯誤,程序?qū)⑼顺?quot;); </p><p> return; </p><p><b> } </b&g
34、t;</p><p> printf("\n\n按任意健繼續(xù)..."); </p><p> getch(); </p><p> system("cls"); </p><p> /*設(shè)置競賽項目信息*/ </p><p> err=SetSportI
35、nfo(); </p><p> /*打印競賽項目信息*/ </p><p> GetSportInfo(); </p><p> /*填寫競賽結(jié)果信息*/ </p><p> SetPosition For All Sports(); </p><p> system("cl
36、s"); </p><p> /*主菜單*/ </p><p> while (1) { </p><p> printf("\n**************************************************"); </p><p> printf("\n*
37、 *"); </p><p> printf("\n* 鍵入'q'退出程序 *"); </p><p> printf("\n* 鍵入&
38、#39;s'查詢學(xué)校成績 *"); </p><p> printf("\n* 鍵入'r'生成報表 *"); </p><p> printf("\n* 鍵入'i'查看參賽學(xué)校
39、 *"); </p><p> printf("\n* 鍵入'p'查看競賽項目 *"); </p><p> printf("\n* 鍵入'c'刷新屏幕 *");
40、</p><p> printf("\n* *"); </p><p> printf("\n**************************************************"); </p><p>
41、 printf("\n請輸入您的選擇:"); </p><p> ch=toupper(getch()); </p><p> printf("\n"); </p><p> system("cls"); </p><p> switch(ch) &l
42、t;/p><p><b> { </b></p><p> case 'Q': </p><p> exit(0); </p><p><b> break; </b></p><p> case 'R
43、9;: /*生成報表*/ </p><p> GetReport(); </p><p><b> break; </b></p><p> case 'S': /*打印成績*/ </p>
44、<p> GetScoreBySchool(); </p><p><b> break; </b></p><p> case 'I': </p><p> GetSchoolInfo(); </p><p><b> break; </b>
45、</p><p> case 'P': </p><p> GetSportInfo(); </p><p><b> break; </b></p><p> case 'C': </p><p> system("cls&qu
46、ot;); </p><p><b> break; </b></p><p> default: </p><p> printf("\n請鍵入一個正確的選擇"); </p><p> } </p><p>
47、<b> } </b></p><p> return; </p><p><b> } </b></p><p> /************************************************************************/ </p><
48、p> /* 設(shè)置競賽項目總數(shù) */ </p><p> /************************************************************************/ </p><p> Bool SetFMSportTotalN
49、um(int* pnTotalNmOfFMSprt,int type/*0:男子;1:女子*/) </p><p><b> { </b></p><p> if (pnTotalNmOfFMSprt==NULL) { </p><p> return _FALSE; </p><p><b&
50、gt; } </b></p><p> system("cls"); </p><p> printf("\n------- ------- -------- ----"); </p><p> if (type==0) {/*男子*/ </p><p> pr
51、intf("\n請輸入男子競賽項目總數(shù):"); </p><p> scanf("%d",pnTotalNmOfFMSprt); </p><p> if (*pnTotalNmOfFMSprt<=0||*pnTotalNmOfFMSprt>MAX_M) { </p><p> printf(&q
52、uot;\n學(xué)??倲?shù)必須大于0小于%d",MAX_M); </p><p> return _FALSE; </p><p><b> } </b></p><p><b> else </b></p><p> return _TRUE; </p>
53、<p><b> } </b></p><p> else{/*女子*/ </p><p> printf("\n請輸入女子競賽項目總數(shù):"); </p><p> scanf("%d",pnTotalNmOfFMSprt); </p><p>
54、; if (*pnTotalNmOfFMSprt<=0||*pnTotalNmOfFMSprt>MAX_W) { </p><p> printf("\n學(xué)??倲?shù)必須大于0小于%d",MAX_W); </p><p> return _FALSE; </p><p><b> } </b>
55、</p><p><b> else </b></p><p> return _TRUE; </p><p><b> } </b></p><p><b> } </b></p><p> /*************
56、***********************************************************/ </p><p> /* 設(shè)置某項目名次的取法及每一名次的分值 */ </p><p> /***************************************************
57、*********************/ </p><p> Bool SetScoreType(int n/*項目編號-1*/) </p><p><b> { </b></p><p> char ch; </p><p> Bool ret=_FALSE; </p>&
58、lt;p> Bool err=_FALSE; </p><p> int totalPrv,i,power; </p><p><b> do { </b></p><p> system("cls"); </p><p> printf("\n請選擇編號為%
59、d的競賽項目取名次類型\n(0: 取前5名; 1: 取前3名; 2: 用戶自定義):",n+1); </p><p> ch=toupper(getch()); </p><p> printf("\n"); </p><p> switch(ch) { </p><p> case
60、 '0':/*取前5名*/ </p><p> g_sport.sportInfoArray[n].scrTyp=_FIVE; </p><p> g_sport.sportInfoArray[n].scrInfo.total=5; </p><p> if ((g_sport.sportInfoArray[n].scrInfo.p
61、ower=(int*)malloc(sizeof(int)*5))==NULL) { </p><p> printf("\n memory err"); </p><p> return _FALSE; </p><p><b> } </b></p><p> g_spor
62、t.sportInfoArray[n].scrInfo.power[0]=7; </p><p> g_sport.sportInfoArray[n].scrInfo.power[1]=5; </p><p> g_sport.sportInfoArray[n].scrInfo.power[2]=3; </p><p> g_sport.sport
63、InfoArray[n].scrInfo.power[3]=2; </p><p> g_sport.sportInfoArray[n].scrInfo.power[4]=1; </p><p> ret=_TRUE; </p><p><b> break; </b></p><p> case
64、 '1':/*取前3名*/ </p><p> g_sport.sportInfoArray[n].scrTyp=_THREE; </p><p> g_sport.sportInfoArray[n].scrInfo.total=3; </p><p> if ((g_sport.sportInfoArray[n].scrInfo.
65、power=(int*)malloc(sizeof(int)*3))==NULL) { </p><p> printf("\n memory err"); </p><p> return _FALSE; </p><p><b> } </b></p><p> g_spo
66、rt.sportInfoArray[n].scrInfo.power[0]=5; </p><p> g_sport.sportInfoArray[n].scrInfo.power[1]=3; </p><p> g_sport.sportInfoArray[n].scrInfo.power[2]=2; </p><p> ret=_TRUE;
67、 </p><p><b> break; </b></p><p> case '2':/*用戶自定義類型*/ </p><p> g_sport.sportInfoArray[n].scrTyp=_CUSTOM; </p><p><b> do { </b&g
68、t;</p><p> printf("\n請輸入本項目取前多少名:"); </p><p> scanf("%d",&totalPrv); </p><p> if (totalPrv<=0) { </p><p> printf("\n輸入有誤。只能大于0
69、"); </p><p><b> } </b></p><p><b> else </b></p><p> err=_TRUE; </p><p> } while(err==_FALSE); </p>&l
70、t;p> g_sport.sportInfoArray[n].scrInfo.total=totalPrv; </p><p> if ((g_sport.sportInfoArray[n].scrInfo.power=(int*)malloc(sizeof(int)*totalPrv))==NULL) { </p><p> printf("\n memor
71、y err"); </p><p> return _FALSE; </p><p><b> } </b></p><p> for(i=0;i<totalPrv;i++); ("*pnTotalNmOfSch<=0||*pnTotalNmOfSch");</p>&l
72、t;p> if scanf("%d",pnTotalNmOfSch); </p><p> printf("\n請輸入?yún)⒓舆\動會的學(xué)校總數(shù):?");-------?);------------- -----------);</p><p> printf("\n---------",system("cls&q
73、uot;); </p><p> { (ret="=_FALSE") while } _FALSE;</p><p> return (pnTotalNmOfSch="=NULL") ret="_TRUE";</p><p> Bool pnTotalNmOfSch)SetSchoolTotalNum
74、</p><p> (int* ************************************************************************ * </p><p> 設(shè)置學(xué)??倲?shù) _TRUE; SetScoreType(i); ; </p><p> g_sport.sportInfoArray[i].sportName[M
75、AXLENGTH-1]="\0" scanf("%s",g_sport.sportInfoArray[i].sportName);</p><p> printf("\n請輸入編號為%d的競賽項目名稱:",i+1);</p><p> *項目名稱* g_sport.sportInfoArray[i].sprtTyp="
76、;_MAN;"</p><p> else{ (i+1<="M)" *項目類型:男子或女子項目* g_sport.sportInfoArray[i].sportNum="i+1;/*項目編號*/" </p><p> for(i="0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotal
77、NmOfMSprt;i++)" *女子項目總數(shù)* g_sport.nTotalNmOfFSprt="W;"</p><p> while(err="=_FALSE);" )err="_FALSE;</p><p> " do *男子項目總數(shù)* g_sport.nTotalNmOfMSprt="M;"
78、; i="0;</p><p> " int SetSportInfo() 設(shè)置競賽項目信息 ret; while(ret="=_FALSE);"</p><p> printf("\n錯誤的選擇!"); *錯誤的輸入* default: break; </p><p> g_sport.sportI
79、nfoArray[n].scrInfo.power[i]="power;" </p><p> else printf("\n輸入有誤。只能大于0"); (power<="0)" </p><p> scanf("%d",&power); </p><p> prin
80、tf("\n請輸入該項目第%d名的分值:",i+1);>MAX_N) { </p><p> printf("\n學(xué)??倲?shù)必須大于0小于%d\n",MAX_N); </p><p> printf("\n\n按任意健繼續(xù)"); </p><p> getch(); </p&
81、gt;<p> ret=_FALSE; </p><p><b> } </b></p><p><b> else </b></p><p> ret=_TRUE; </p><p><b> } </b></p>&
82、lt;p> return _TRUE; </p><p><b> } </b></p><p> /************************************************************************/ </p><p> /* 填充參賽學(xué)校信息
83、 */ </p><p> /************************************************************************/ </p><p> Bool SetSchoolInfo(int* pnTotalNmOfSch) </p>
84、<p><b> { </b></p><p> int i=0; </p><p> if (!SetSchoolTotalNum(pnTotalNmOfSch)) { </p><p> printf("\nerr!"); </p><p> return _
85、FALSE; </p><p><b> } </b></p><p><b> else{ </b></p><p> g_school.nTotalNmOfSch=*pnTotalNmOfSch; </p><p> for(i=0;i<G_SCHOOL.
86、NTOTALNMOFSCH;i++) if printf(?\n--------- { while } return Bool ************************************************************************ * _TRUE; ; for(i="0;i<g_school.nTotalNmOfSch;i++)" err="_FALSE;&q
87、uot; i="0;" int else (ptrThis- ptrThis="ptrHead;" ptrHead="ptrThis=ptrNew;" (ptrHead="=(pPosition)NULL)" ptrNew="(pPosition)malloc(LEN);" printf(?\n填寫項目%d的比賽結(jié)果?,sportNum+
88、1); ------?); --------- ------------ ) *項目編號-1* sportNum SetPositionForOneSport(int void *為某個競賽項目設(shè)定比賽結(jié)果信息 校名:%s?,g</p><p><b> { </b></p><p> ptrThis=ptrThis->ptrNext; </p
89、><p><b> } </b></p><p> ptrThis->ptrNext=ptrNew; </p><p> ptrThis=ptrNew; </p><p><b> } </b></p><p> /*項目編號*/ </p
90、><p> ptrThis->sportNum=sportNum+1; </p><p> printf("\n輸入獲得第%d名的學(xué)生信息",i+1); </p><p><b> /*姓名*/ </b></p><p> printf("\n姓名:");
91、 </p><p> scanf("%s",ptrThis->name); </p><p> /*學(xué)校編號*///檢查編號合法性 </p><p><b> do { </b></p><p> printf("\n學(xué)校編號:"); </p&g
92、t;<p> scanf("%d",&ptrThis->schoolNum); </p><p> if (ptrThis->schoolNum<=0||ptrThis->schoolNum>g_school.nTotalNmOfSch) { </p><p> printf(&
93、quot;\n學(xué)校編號必須大于0小于等于%d",g_school.nTotalNmOfSch); </p><p> err=_FALSE; </p><p><b> } </b></p><p><b> else </b></p><p><b>
94、{ </b></p><p> err=_TRUE; </p><p> } </p><p> } while(err==_FALSE); </p><p><b> /*名次*/ </b></p><p> ptrThis->
95、;score=i+1; </p><p> ptrThis->ptrNext=(pPosition)NULL; </p><p><b> } </b></p><p><b> } </b></p><p> /*************************
96、***********************************************/ </p><p> /* 填充所有競賽項目結(jié)果信息 */ </p><p> /*********************************************************
97、***************/ </p><p> void SetPositionForAllSports() </p><p><b> { </b></p><p> int i=0; </p><p> for(i=0;i<G_SPORT.NTOTALNMOFFSPRT+G_SPO
98、RT.NTOTALNMOFMSPRT;I++) if system(?cls?); { } return ************************************************************************ * for(i="0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)" i="0;&quo
99、t; int break; ) sportNum void (schnum scanf(?%d?,&schnum); printf(?\n請輸入您想查詢的學(xué)校編號:?); return; printf(?\n沒有學(xué)校參加比賽?); (g_school.nTotalNmOfSch<="0)" *學(xué)校編號* schnum; GetScoreBySchool() 按學(xué)校打印成績 g_sport.sportIn
100、foArray[i].scrInfo.power[score-1]; (int)-1; (i="=g_sport.nTot</p><p><b> { </b></p><p> printf("\n學(xué)校編號必須大于0小于等于%d",g_school.nTotalNmOfSch); </p><p>
101、 return; </p><p><b> } </b></p><p> if(ptrHead==(pPosition)NULL) </p><p><b> { </b></p><p> printf("\n沒有比賽結(jié)果"); </p&
102、gt;<p> return; </p><p><b> } </b></p><p> ptrThis=ptrHead; </p><p> printf("\n學(xué)校編號:%d 校名:%s",schnum,g_school.schInfoArray[schnum-1].schoolNa
103、me); </p><p> printf("\n\n 項目號 項目名稱 名次 姓名 得分"); </p><p> printf("\n ---------- --------------- ---- ---------------- ----"); </p>
104、<p><b> do { </b></p><p> if (ptrThis->schoolNum==schnum) </p><p><b> { </b></p><p> printf("\n%5d",ptrThis->sportNum);/*項目號
105、*/ </p><p> printf("%20s",GetSportName(ptrThis->sportNum));/*項目名稱*/ </p><p> printf("%5d",ptrThis->score);/*名次*/ </p><p> printf("%20s",
106、ptrThis->name);/*姓名*/ </p><p> printf("%5d",GetPower(ptrThis->sportNum,ptrThis->score)); </p><p><b> } </b></p><p> ptrThis=ptrThis->ptrNe
107、xt; </p><p> } while(ptrThis!=(pPosition)NULL); </p><p><b> } </b></p><p> /************************************************************************/ </p&g
108、t;<p> /* 生成報表 */ </p><p> /************************************************************************/ </p><p> void GetR
109、eport() </p><p><b> { </b></p><p> int i,j,manTotal=0,womTotal=0,Total=0;/*男子團體總分,女子團體總分,團體總分*/ </p><p> if(ptrHead==(pPosition)NULL) </p><p><
110、;b> { </b></p><p> printf("\n沒有比賽結(jié)果"); </p><p> return; </p><p><b> } </b></p><p> ptrThis=ptrHead; </p><p&g
111、t; printf("\n團體總分報表:"); </p><p> printf("\n\n學(xué)校編號 學(xué)校校名 男子團體總分 女子團體總分 團體總分"); </p><p> printf("\n--------- ---------------- -------------
112、 ----------- -----------"); </p><p> for(i=0;i<G_SCHOOL.NTOTALNMOFSCH;i++) { do ptrThis="ptrHead;" if(ptrThis- manTotal="0;womTotal=0;Total=0;">schoolNum==g_school.schInf
113、oArray[i].SchoolNum)/*同一學(xué)校*/ </p><p><b> { </b></p><p> for(j=0;j<G_SPORT.NTOTALNMOFFSPRT+G_SPORT.NTOTALNMOFMSPRT;J++) if { (ptrThis->sportNum==g_sport.sportInfoArray[j].
114、sportNum) {/*某一競賽項目*/ </p><p> if (g_sport.sportInfoArray[j].sprtTyp==_MAN) { </p><p> manTotal+=g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1]; </p><p><b&
115、gt; } </b></p><p><b> else{ </b></p><p> womTotal+=g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1]; </p><p> } <
116、/p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> ptrThis=ptrThis->ptrNext; </p><p>
117、; } while(ptrThis!=(pPosition)NULL); </p><p> Total+=manTotal+womTotal; </p><p> printf("\n%5d",g_school.schInfoArray[i].SchoolNum); </p><p> printf("%20s
118、",g_school.schInfoArray[i].schoolName); </p><p> printf("%10d",manTotal); </p><p> printf("%15d",womTotal); </p><p> printf("%15d\n",Tota
119、l); </p><p><b> } </b></p><p><b> } </b></p><p> /************************************************************************/ </p><p
120、> /* 打印競賽項目信息 */ </p><p> /************************************************************************/ </p><p> void GetSportInfo()
121、</p><p><b> { </b></p><p> int i,j; </p><p> system("cls"); </p><p> printf("\n您輸入的比賽項目信息如下:"); </p><p> print
122、f("\n----- -------- ------- -------"); </p><p> for(i=0;i<G_SPORT.NTOTALNMOFFSPRT+G_SPORT.NTOTALNMOFMSPRT;I++) if { } ************************************************************************
123、* for(i="0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)" do i="0,j;" int (ptrThis- ptrThis="ptrHead;" void return; printf(?\n第%d個結(jié)點:?,n++); printf(?\n沒有比賽結(jié)果?); if(ptrHead="
124、=(pPosition)NULL)" n="0;" GetList() 打印名次鏈表信息 getch(); printf(?\n按任意鍵繼續(xù)?); 得分:%d?,j+1,g_sport.sportInfoArray[i].scrInfo.power[j]); 第%d名 printf(?\n for(j="0;j<g_sport.sportInfoA</p><p>&
125、lt;b> break; </b></p><p><b> } </b></p><p><b> } </b></p><p> if (i==g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt) { </p><
126、p> return; </p><p><b> } </b></p><p> printf("\n 項目編號:%d",ptrThis->sportNum); </p><p> for(j=0;j<G_SPORT.SPORTINFOARRAY[I].SCRINFO.TOTAL;J+
127、+) { } ptrThis="ptrThis-" 分值%d?,j+1,g_sport.sportInfoArray[i].scrInfo.power[j]); printf(?\n名次:%d>ptrNext; </p><p> } while(ptrThis!=(pPosition)NULL); </p><p><b> } &
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計報告—校際運動會管理系統(tǒng)
- c語言課程設(shè)計--校際運動會管理系統(tǒng)
- c語言課程設(shè)計---校際運動會管理系統(tǒng)
- 課程設(shè)計報告-校際運動會管理系統(tǒng)
- 課程設(shè)計報告--- 校際運動會管理系統(tǒng)
- c語言課程程序設(shè)計——校際運動會管理系統(tǒng)
- c語言課程設(shè)計報告--校際運動會
- 校際運動會管理系統(tǒng)
- 運動會管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計——校級運動會管理系統(tǒng)
- c++課程設(shè)計--學(xué)校運動會管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--校運會管理系統(tǒng)
- c語言課程設(shè)計--運動會分數(shù)統(tǒng)計系統(tǒng)
- 校運動會管理系統(tǒng)報告c語言含完整代碼)資料
- c語言課程設(shè)計運動會分數(shù)統(tǒng)計系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計----學(xué)校運動會管理系統(tǒng)
- 課程設(shè)計--學(xué)校田徑運動會管理系統(tǒng)實現(xiàn)與設(shè)計
- 開題報告_運動會管理系統(tǒng)
- c語言課程設(shè)計----運動會成績管理程序設(shè)計
- c語言課程設(shè)計報告(宿舍管理系統(tǒng))
評論
0/150
提交評論