版權(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> 課 程數(shù)據(jù)結(jié)構(gòu)</p><p> 題 目運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)</p><p> 姓 名</p><p> 學(xué) 號(hào)</p><p> 專業(yè)班級(jí)</p><p> 指導(dǎo)教師</p><p> 完成日期
2、2012年12月25日</p><p><b> 1、緒言</b></p><p> 21世紀(jì)是個(gè)信息化的時(shí)代,現(xiàn)代計(jì)算機(jī)技術(shù)的發(fā)展,為各行各業(yè)的發(fā)展創(chuàng)造了一個(gè)全新的時(shí)代背景——人們的生活、工作等已經(jīng)越來(lái)越離不開(kāi)計(jì)算機(jī)科學(xué)的運(yùn)用,體育作為個(gè)人、家庭、社會(huì)的一個(gè)主要實(shí)踐領(lǐng)域,大大小小的運(yùn)動(dòng)會(huì)也在各大中院校中展開(kāi),自從計(jì)算機(jī)科學(xué)涉及運(yùn)動(dòng)領(lǐng)域后,人們對(duì)運(yùn)動(dòng)會(huì)的管理也從人
3、工的向自動(dòng)化轉(zhuǎn)變。運(yùn)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)解決運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)的問(wèn)題,編寫一個(gè)程序來(lái)完成運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng). 本程序設(shè)計(jì)中,可以輸入?yún)⒓舆\(yùn)動(dòng)會(huì)的學(xué)校編號(hào)及項(xiàng)目編號(hào);根據(jù)具體情況選擇輸入?yún)⒓禹?xiàng)目的男女類別和取成績(jī)名次類別;最后選擇輸入名次;實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì),排序輸出,學(xué)院及項(xiàng)目查詢等功能。</p><p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是為數(shù)據(jù)結(jié)構(gòu)課程獨(dú)立開(kāi)設(shè)的實(shí)踐性教學(xué)環(huán)節(jié)。課程設(shè)計(jì)的目的是要求學(xué)生達(dá)到熟練掌握C語(yǔ)言的基本知識(shí)和技能;
4、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;提高程序設(shè)計(jì)和調(diào)試能力。學(xué)生通過(guò)上機(jī)實(shí)習(xí),驗(yàn)證自己設(shè)計(jì)的算法的正確性。學(xué)會(huì)有效利用基本調(diào)試方法,迅速找出程序代碼中的錯(cuò)誤并且修改;培養(yǎng)算法分析能力,分析所設(shè)計(jì)算法的時(shí)間復(fù)雜度和空間復(fù)雜度,進(jìn)一步提高程序設(shè)計(jì)水平;初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能。</p><p><b> 2、需求分析</b
5、></p><p><b> 2.1 功能需求 </b></p><p> 本系統(tǒng)主要是運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)方案設(shè)計(jì)。任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比賽分成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;哪些取前五
6、名或前三名由學(xué)生自己設(shè)定。(m<=20,n<=20)</p><p> 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)方案適合采用結(jié)構(gòu)體數(shù)組,為了實(shí)現(xiàn)系統(tǒng)功能,主要應(yīng)實(shí)現(xiàn)以下幾部分:比賽成績(jī)輸入、比賽成績(jī)輸出、查詢比賽成績(jī)和調(diào)用統(tǒng)計(jì)結(jié)果。 </p><p><b> 2.2數(shù)據(jù)需求</b></p><p> 需要輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名
7、次。</p><p><b> 2.3 性能需求</b></p><p> 本程序在運(yùn)行期間,為了避免在運(yùn)行大量數(shù)據(jù)時(shí)不會(huì)出錯(cuò),并且能夠在很短的時(shí)間內(nèi)將運(yùn)行結(jié)果穩(wěn)定輸出,就需要系統(tǒng)達(dá)到安全性能好,可靠性高,穩(wěn)定性強(qiáng),處理數(shù)據(jù)迅速等特點(diǎn)。</p><p><b> 3、系統(tǒng)設(shè)計(jì)</b></p><p
8、><b> 3.1系統(tǒng)設(shè)計(jì)方案</b></p><p> 本方案要求結(jié)構(gòu)體數(shù)組、讀寫文件。還能把信息直接輸入存儲(chǔ)到文件中,讀取文件中信息,從而得到結(jié)果。</p><p><b> (1) 菜單設(shè)計(jì)</b></p><p> 分為主函數(shù)菜單、比賽成績(jī)輸出菜單、查詢分?jǐn)?shù)統(tǒng)計(jì)結(jié)果菜單、查詢方式子菜單。</p&
9、gt;<p> (2) 數(shù)據(jù)保存方式</p><p> 建立文件,數(shù)據(jù)保存在文件中。運(yùn)動(dòng)運(yùn)分?jǐn)?shù)統(tǒng)計(jì)程序</p><p><b> (3) 數(shù)據(jù)類型</b></p><p><b> 采用結(jié)構(gòu)體類型。</b></p><p><b> (4) 存儲(chǔ)結(jié)構(gòu)</b&g
10、t;</p><p> 采用結(jié)構(gòu)體類型數(shù)組存儲(chǔ)結(jié)構(gòu)存儲(chǔ)。</p><p><b> (5) 算法設(shè)計(jì)</b></p><p> 輸入比賽結(jié)果模塊中運(yùn)用了冒泡算法將輸入的數(shù)據(jù)排序。</p><p><b> 3.2數(shù)據(jù)結(jié)構(gòu)定義</b></p><p><b>
11、 建立結(jié)構(gòu)體如下:</b></p><p> typedef struct</p><p><b> { </b></p><p> int itemnum; //項(xiàng)目編號(hào)</p><p> int top; //取名次的數(shù)目</p><p> int range[
12、5]; //名次</p><p> int mark[5]; //分?jǐn)?shù)</p><p> }itemnode; //定義項(xiàng)目結(jié)點(diǎn)的類型</p><p> typedef struct</p><p><b> {</b></p><p> int schoolnum; //學(xué)校
13、編號(hào)</p><p> int score; //學(xué)校總分</p><p> int mscore; //男團(tuán)體總分</p><p> int wscore; //女團(tuán)體總分</p><p> itemnode c[m+w]; //項(xiàng)目數(shù)組</p><p> }headnode;//定義頭結(jié)
14、點(diǎn)類型</p><p><b> 3.3功能模塊設(shè)計(jì)</b></p><p> 根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行要求中的功能。該系統(tǒng)分為比賽成績(jī)輸入、比賽成績(jī)輸出、查詢比賽成績(jī)和調(diào)用統(tǒng)計(jì)結(jié)果。比賽成績(jī)輸出模塊有四個(gè)子模塊,分別是:按學(xué)校編號(hào)輸出模塊、按學(xué)校總分輸出模塊、安南員總分輸出模塊和按女團(tuán)總分輸出模塊;查詢比賽成績(jī)模塊分為按學(xué)校編號(hào)查詢模塊和
15、按項(xiàng)目編號(hào)查詢兩個(gè)子模塊。</p><p><b> 比賽成績(jī)輸入模塊</b></p><p> 比賽成績(jī)輸入模塊分為:創(chuàng)建信息部分,該部分需輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名次;算法部分,得到排序結(jié)果。</p><p> 此模塊定義變量i, j, k, s ;先初始化儲(chǔ)存分?jǐn)?shù)的數(shù)組各元素,for循環(huán)實(shí)現(xiàn)各學(xué)校信息的輸入,包括
16、學(xué)校編號(hào)、項(xiàng)目編號(hào)、取前3名or前5名、獲得幾個(gè)名次,使用switch語(yǔ)句實(shí)現(xiàn)對(duì)輸入的各個(gè)名次賦予對(duì)應(yīng)的分?jǐn)?shù)。</p><p><b> 比賽成績(jī)輸出模塊</b></p><p> 實(shí)現(xiàn)按要求輸出相應(yīng)的數(shù)據(jù)。有以下輸出選項(xiàng):按學(xué)校編號(hào)輸出、按學(xué)??偡州敵?、按男團(tuán)總分輸出、按女團(tuán)總分輸出。</p><p> 模塊定義了int choice,
17、i,j,k;int remember[n];int sign變量,do…while包括switch語(yǔ)句,選擇輸出按學(xué)校編號(hào)輸出、按學(xué)校總分輸出、按男團(tuán)總分輸出、按女團(tuán)總分輸出相應(yīng)的數(shù)據(jù)。for循環(huán)實(shí)現(xiàn)輸出各個(gè)方式輸出的每個(gè)數(shù)據(jù)。</p><p><b> 查詢比賽成績(jī)模塊</b></p><p> 查詢比賽成績(jī)模塊包括:按學(xué)校編號(hào)查詢,按項(xiàng)目編號(hào)查詢。</p
18、><p> 此模塊定義了int choice; int i,j,k,s; switch(choice)實(shí)現(xiàn)查詢的兩種方式的選擇,當(dāng)i>n時(shí)輸出錯(cuò)誤:這個(gè)學(xué)校沒(méi)有參加此次運(yùn)動(dòng)會(huì)! 否則,輸入項(xiàng)目編號(hào),如果j > m+w || j==0,輸出此次運(yùn)動(dòng)會(huì)沒(méi)有這個(gè)項(xiàng)目。否則,使用for循環(huán)輸出相關(guān)數(shù)據(jù),從而實(shí)現(xiàn)查詢功能。</p><p> 功能模塊圖如圖1所示。 </p
19、><p><b> 圖1功能模塊圖</b></p><p> 4、系統(tǒng)的實(shí)現(xiàn)與調(diào)試</p><p><b> 4.1 系統(tǒng)實(shí)現(xiàn)</b></p><p> 建立數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng)的編碼開(kāi)發(fā)、系統(tǒng)的運(yùn)行。</p><p> 1:主菜單界面,首先運(yùn)行文件運(yùn)動(dòng)會(huì)統(tǒng)計(jì)分?jǐn)?shù)。<
20、/p><p><b> 2:輸入信息:</b></p><p> 程序首先賦初值,定義學(xué)校的個(gè)數(shù)為2,男生項(xiàng)目為1,女生項(xiàng)目為1。</p><p> 3:查詢信息(例如按編號(hào)查詢)</p><p><b> 4.2 調(diào)試</b></p><p> 調(diào)試過(guò)程主要是運(yùn)行編制
21、好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中遇到的主要問(wèn)題、原因和解決方法如下面介紹。</p><p> 調(diào)試過(guò)程中出現(xiàn)的問(wèn)題和處理方式:</p><p> ?。?)程序出現(xiàn)語(yǔ)法錯(cuò)誤</p><p> 發(fā)現(xiàn)是輸入名次信息的地方忘帶地址符&。 添加取地址符。</p><p> printf(&quo
22、t;*****名次:");</p><p> scanf("%d",&h[i].c[j].range[s]);</p><p> ?。?)在輸出模塊不能將全部的學(xué)校信息輸出,屬于算法編寫錯(cuò)誤,正確的程序應(yīng)該為:if(h[remember[i]].mscore<h[j].mscore)</p><p> k=rememb
23、er[i];</p><p> remember[i]=remember[j];</p><p> remember[j]=k;</p><p> ?。?)在調(diào)用文件時(shí)出現(xiàn)問(wèn)題,后來(lái)一步步調(diào)試,最終可以運(yùn)行。</p><p><b> 5、小結(jié)</b></p><p><b>
24、5.1 系統(tǒng)的功能</b></p><p> 1.比賽成績(jī)輸入模塊</p><p> 比賽成績(jī)輸入模塊分為:創(chuàng)建信息部分,該部分需輸入學(xué)校編號(hào),項(xiàng)目編號(hào),取得的名次,以及哪些名次;算法部分,得到排序結(jié)果。 </p><p> 2.比賽成績(jī)輸出模塊</p><p> 將以輸入的數(shù)據(jù)按照輸出比賽菜單的選擇輸出相應(yīng)的數(shù)據(jù)。<
25、;/p><p> 3.查詢比賽成績(jī)模塊</p><p> 按照查詢比賽結(jié)果菜單和其查詢方式子菜單查詢需要的數(shù)據(jù)。</p><p><b> 4.調(diào)用統(tǒng)計(jì)結(jié)果</b></p><p> 將輸入的各學(xué)校運(yùn)動(dòng)會(huì)成績(jī)排序輸出。</p><p> 5.2 系統(tǒng)及開(kāi)發(fā)過(guò)程的特點(diǎn)</p>&
26、lt;p> 輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形</p><p> 界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(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> 5.3 存在的問(wèn)題與改進(jìn)方向</p><p> 功
27、能上有對(duì)分?jǐn)?shù)信息的輸入、輸出、查詢、調(diào)用等簡(jiǎn)單的功能。</p><p> 缺點(diǎn)是:輸入大量的信息時(shí)比較麻煩,但由于對(duì)知識(shí)掌握不熟練,所以做的不是很好,下次努力改進(jìn);在輸入信息的時(shí)候都是按數(shù)字輸入,沒(méi)能實(shí)現(xiàn)用學(xué)校和運(yùn)動(dòng)員的名字輸入,這點(diǎn)做的不是很好,下次改進(jìn);指針的概念復(fù)雜,使用較靈活,但容易出錯(cuò);對(duì)文件的使用掌握不熟練,編寫時(shí)比較困難,在打開(kāi)文件時(shí)出現(xiàn)問(wèn)題雖然不影響運(yùn)行結(jié)果但不知如何解決。</p>
28、<p><b> 5.4 自我體會(huì)</b></p><p> 1.自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。今后我必需扎實(shí)基礎(chǔ)理論、認(rèn)真思考,一步一個(gè)腳印的走下去,才可以達(dá)到我們預(yù)期的彼岸!</p><p> ?、惨粋€(gè)復(fù)雜的程序需要函數(shù)調(diào)用、結(jié)構(gòu)體、數(shù)
29、組、指針、文件等的綜合運(yùn)用,各個(gè)部分間緊密聯(lián)系。同時(shí),他們的使用使程序更加靈活、簡(jiǎn)潔、方便。單純掌握課本上的知識(shí)是不夠的,還需課外的閱讀。</p><p> ?、持豢總€(gè)人的努力是不夠的,小組成員之間的合作、明確的分工可使工作完成得更快。</p><p> 附錄1:程序源代碼 </p><p> #include<stdio.h></p>
30、<p> #include<math.h></p><p> #include <conio.h></p><p> #include <process.h></p><p> #define n 3 //學(xué)校數(shù)目 </p><p> #define m 2
31、 //男子項(xiàng)目數(shù)目 </p><p> #define w 2 //女子項(xiàng)目數(shù)目</p><p> #define null 0</p><p> typedef struct</p><p><b> { </b></p><p> int itemn
32、um; //項(xiàng)目編號(hào)</p><p> int top; //取名次的數(shù)目</p><p> int range[5]; //名次</p><p> int mark[5]; //分?jǐn)?shù)</p><p> }itemnode; //定義項(xiàng)目結(jié)點(diǎn)的類型&
33、lt;/p><p> typedef struct</p><p><b> {</b></p><p> int schoolnum; //學(xué)校編號(hào)</p><p> int score; //學(xué)??偡?lt;/p><p> int mscore;
34、 //男團(tuán)體總分</p><p> int wscore; //女團(tuán)體總分</p><p> itemnode c[m+w]; //項(xiàng)目數(shù)組</p><p> }headnode; //定義頭結(jié)點(diǎn)類型</p><p> headnode h[n]; //定義一個(gè)頭結(jié)點(diǎn)數(shù)組
35、</p><p> void inputinformation() //輸入信息,建立系統(tǒng)</p><p><b> {</b></p><p> int i,j,k,s;</p><p> for(i=0;i<n;i++)</p><p><b> { </b&
36、gt;</p><p> h[i].score=0;</p><p> h[i].mscore=0;</p><p> h[i].wscore=0;</p><p> } //初始化頭結(jié)點(diǎn)</p><p> for(i=0;
37、i<n;i++)</p><p><b> { </b></p><p> printf("*****學(xué)校編號(hào):");</p><p> scanf("%d",&h[i].schoolnum); //輸入頭結(jié)點(diǎn)信息</p><p>
38、 for(j=0;j<m+w;j++)</p><p><b> { </b></p><p> printf("*****項(xiàng)目編號(hào):");</p><p> scanf("%d",&h[i].c[j].itemnum);</p><p> printf(&
39、quot;*****取前3名or前5名:");</p><p> scanf("%d",&h[i].c[j].top);</p><p> printf("*****獲得幾個(gè)名次:");</p><p> scanf("%d",&k);
40、 //輸入項(xiàng)目信息</p><p> for(s=0;s<5;s++)</p><p> h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分?jǐn)?shù)</p><p> for(s=0;s<k;s++)</p><p><b> { </b>
41、;</p><p> printf("*****名次:");</p><p> scanf("%d",&h[i].c[j].range[s]); //輸入所獲名次信息</p><p> if(h[i].c[j].top==3)</p><p> switch(h[i].c[j].
42、range[s])</p><p><b> {</b></p><p> case 0: h[i].c[j].mark[s]=0; break;</p><p> case 1: h[i].c[j].mark[s]=5; break;</p><p> case 2: h[i].c[j].mark[s]=3;
43、break;</p><p> case 3: h[i].c[j].mark[s]=2; break;</p><p><b> }</b></p><p><b> else</b></p><p> switch(h[i].c[j].range[s])</p><p&
44、gt;<b> {</b></p><p> case 0: h[i].c[j].mark[s]=0; break;</p><p> case 1: h[i].c[j].mark[s]=7; break;</p><p> case 2: h[i].c[j].mark[s]=5; break;</p><p>
45、 case 3: h[i].c[j].mark[s]=3; break;</p><p> case 4: h[i].c[j].mark[s]=2; break;</p><p> case 5: h[i].c[j].mark[s]=1; break;</p><p><b> }</b></p><p> h
46、[i].score=h[i].score+h[i].c[j].mark[s];</p><p> //按取前三名還是取前五名分別記分</p><p> if(j<=m-1)</p><p> h[i].mscore=h[i].mscore+h[i].c[j].mark[s];</p><p> //是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去
47、</p><p><b> else</b></p><p> h[i].wscore=h[i].wscore+h[i].c[j].mark[s];</p><p> //是女子項(xiàng)目則記到女子項(xiàng)目里面去</p><p><b> }</b></p><p> pri
48、ntf("\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void output() //輸出函數(shù)</p><p><
49、;b> { </b></p><p> int choice,i,j,k;</p><p> int remember[n];</p><p><b> int sign;</b></p><p><b> do</b></p><p><b
50、> {</b></p><p> printf("*******************1.按學(xué)校編號(hào)輸出.*******************\n");</p><p> printf("*******************2.按學(xué)??偡州敵?*******************\n");</p><
51、;p> printf("*******************3.按男團(tuán)總分輸出.*******************\n");</p><p> printf("*******************4.按女團(tuán)總分輸出.*******************\n");</p><p> printf("\n\n*******
52、************ 請(qǐng)選擇編號(hào)*************************\n\n:");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> { </b></p><p><b
53、> case 1:</b></p><p> for(i=0;i<n;i++)</p><p><b> { </b></p><p> printf("\n\n*****學(xué)校編號(hào):%d\n",h[i].schoolnum);</p><p> printf(&quo
54、t;*****學(xué)??偡?%d\n" ,h[i].score);</p><p> printf("*****男團(tuán)總分:%d\n",h[i].mscore);</p><p> printf("*****女團(tuán)總分: %d\n\n\n",h[i].wscore);</p><p> }
55、 //按編號(hào)順序輸出</p><p><b> break;</b></p><p> case 2: </p><p> for(i=0;i<n;i++)</p><p> remember[i]=i;</p><p> f
56、or(i=0;i<n;i++)</p><p><b> { </b></p><p> for(j=i+1;j<n;j++)</p><p> if(h[remember[i]].score<h[j].score)</p><p> k=remember[i];</p><
57、p> remember[i]=remember[j];</p><p> remember[j]=k;</p><p> } // 用冒泡排序方法,用輔助數(shù)組記住頭結(jié)點(diǎn)下標(biāo)</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p
58、><p> printf("\n\n*****學(xué)校編號(hào):%d\n",h[remember[i]].schoolnum); </p><p> printf("*****學(xué)校總分:%d\n" ,h[remember[i]].score);</p><
59、p> printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);</p><p> printf("*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p><p> //按所記下標(biāo)順序輸出</p><p> }
60、 //按學(xué)??偡州敵?lt;/p><p> break; </p><p> case 3: </p><p> for(i=0;i<n;i++)</p><p> remember[i]=i;</p><p> for(i=0;
61、i<n;i++)</p><p><b> { </b></p><p> for(j=i+1;j<n;j++)</p><p> if(h[remember[i]].mscore<h[j].mscore)</p><p> k=remember[i];</p><p>
62、 remember[i]=remember[j];</p><p> remember[j]=k;</p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> printf
63、("\n\n*****學(xué)校編號(hào):%d\n",h[remember[i]].schoolnum);</p><p> printf("*****學(xué)??偡?%d\n" ,h[remember[i]].score);</p><p> printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);&l
64、t;/p><p> printf("*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p><p> } //按男團(tuán)總分輸出</p><p><b> break;</b></p><p&
65、gt; case 4: </p><p> for(i=0;i<n;i++)</p><p> remember[i]=i;</p><p> for(i=0;i<n;i++)</p><p><b> { </b></p><p> for(j=i+1;j&l
66、t;n;j++)</p><p> if(h[remember[i]].wscore<h[j].wscore)</p><p> k=remember[i];</p><p> remember[i]=remember[j];</p><p> remember[j]=k;</p><p><b&g
67、t; }</b></p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> printf("\n\n*****學(xué)校編號(hào):%d\n",h[remember[i]].schoolnum);</p><p> printf(&qu
68、ot;*****學(xué)??偡?%d\n" ,h[remember[i]].score);</p><p> printf("*****男團(tuán)總分:%d\n",h[remember[i]].mscore);</p><p> printf("*****女團(tuán)總分: %d\n\n\n",h[remember[i]].wscore);</p&g
69、t;<p><b> }</b></p><p> break; //按女團(tuán)總分輸出</p><p><b> }</b></p><p> printf("請(qǐng)選擇 2 繼續(xù),0 跳出\n");</p>
70、<p> scanf("%d",&sign);</p><p> }while(sign==2); //循環(huán)執(zhí)行輸出語(yǔ)句</p><p><b> }</b></p><p> void inquiry()
71、 //查詢函數(shù)</p><p><b> {</b></p><p> int choice;</p><p> int i,j,k,s;</p><p> printf("\n*****1:按學(xué)校編號(hào)查詢\n");</p>
72、<p> printf("\n*****2:按項(xiàng)目編號(hào)查詢\n");</p><p> printf("\n\n*****請(qǐng)選擇查詢方式:"); //提供兩種查詢方式</p><p> scanf("%d",&choice);</p><p> s
73、witch(choice)</p><p><b> { </b></p><p><b> case 1:</b></p><p><b> do</b></p><p><b> { </b></p><p> pr
74、intf("要查詢的學(xué)校編號(hào):");</p><p> scanf("%d",&i);</p><p><b> if(i>n)</b></p><p> printf("錯(cuò)誤:這個(gè)學(xué)校沒(méi)有參加此次運(yùn)動(dòng)會(huì)!\n\n\n");</p><p>
75、<b> else</b></p><p><b> {</b></p><p> printf("要查詢的項(xiàng)目編號(hào):");</p><p> scanf("%d",&j);</p><p> if(j>m+w||j==0)</p
76、><p> printf("此次運(yùn)動(dòng)會(huì)沒(méi)有這個(gè)項(xiàng)目\n\n\n");</p><p> //學(xué)校編號(hào)超出范圍,則輸出警告</p><p><b> else</b></p><p><b> {</b></p><p> printf("這
77、個(gè)項(xiàng)目取前 %d名,該學(xué)校的成績(jī)?nèi)缦?\n", h[0].c[j-1].top);</p><p> for(k=0;k<5;k++)</p><p> if(h[i-1].c[j-1].range[k]!=0)</p><p> printf("名次:%d\n",h[i-1].c[j-1].range[k]);</p
78、><p> //輸出要查詢學(xué)校項(xiàng)目的成績(jī)</p><p><b> }</b></p><p><b> }</b></p><p> printf("請(qǐng)選擇 2 繼續(xù) , 0 跳出\n");</p><p> scanf("%d"
79、;,&s);</p><p> printf("\n\n\n");</p><p> }while(s==2); //循環(huán)執(zhí)行輸出語(yǔ)句</p><p> break; </p><p><b> case 2:&l
80、t;/b></p><p><b> do</b></p><p><b> { </b></p><p> printf("要查詢的項(xiàng)目編號(hào):");</p><p> scanf("%d",&s);</p><p&g
81、t; if(s>m+w||s==0)</p><p> printf("此次運(yùn)動(dòng)會(huì)不包括這個(gè)項(xiàng)目.\n\n\n"); //項(xiàng)目編號(hào)超出范圍則輸出警告</p><p><b> else</b></p><p><b> {</b></p
82、><p> printf("該項(xiàng)目取前 %d名,取得名次的學(xué)校\n",h[0].c[s-1].top);</p><p> for(i=0; i<n;i++)</p><p> for(j=0;j<5;j++)</p><p> if(h[i].c[s-1].range[j]!=0)</p>
83、<p> printf("學(xué)校編號(hào):%d,名次:%d\n",h[i].schoolnum,h[i].c[s-1].range[j]);</p><p> } //輸出該項(xiàng)目取得名次學(xué)校的成績(jī)</p><p> printf("\n\n\n繼續(xù) 2,跳出 0\n");&l
84、t;/p><p> scanf("%d",&i);</p><p> printf("\n\n\n");</p><p> }while(i==2);</p><p><b> break;</b></p><p><b> }<
85、;/b></p><p><b> }</b></p><p> void writedata() //把數(shù)據(jù)存儲(chǔ)在文件中</p><p><b> { </b></p><p> FILE *report;</
86、p><p><b> int i; </b></p><p> if((report=fopen("sportsdata.txt","w"))==null)</p><p><b> {</b></p><p> printf("不能打開(kāi)文件\n
87、");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> fwrite(&h[i],sizeof(headnode),1,report);</p>
88、<p> fclose(report);</p><p> } //按頭結(jié)點(diǎn)塊寫入 </p><p> void readdata() //讀出文件中數(shù)據(jù)的函數(shù)</p><p>&l
89、t;b> { </b></p><p> FILE *report;</p><p> int i,j,k,s;</p><p> if((report=fopen("sportsdata.txt","r"))==null)</p><p><b> {</b
90、></p><p> printf("file can not be opened\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p>&
91、lt;p><b> { </b></p><p> printf("******學(xué)校編號(hào):");</p><p> fread(&k,sizeof(int),1,report);</p><p> printf("%d\n",k);</p><p> p
92、rintf("******學(xué)??偡?");</p><p> fread(&k,sizeof(int),1,report);</p><p> printf("%d\n",k);</p><p> printf("******男團(tuán)總分:");</p><p> fre
93、ad(&k,sizeof(int),1,report);</p><p> printf("%d\n",k);</p><p> printf("******女團(tuán)總分:");</p><p> fread(&k,sizeof(int),1,report);</p><p> pr
94、intf("%d\n",k);</p><p> printf("\n\n\n");</p><p><b> getch();</b></p><p> for(j=0;j<m+w;j++)</p><p><b> {</b></p&g
95、t;<p> printf("******項(xiàng)目編號(hào):");</p><p> fread(&k,sizeof(int),1,report);</p><p> printf("%d\n",k);</p><p> printf("******所取名次數(shù)量:");</p&g
96、t;<p> fread(&k,sizeof(int),1,report);</p><p> printf("%d\n",k);</p><p> for(s=0;s<5;s++)</p><p><b> { </b></p><p> fread(&
97、k,sizeof(int),1,report);</p><p><b> if(k!=0)</b></p><p> printf("******名次:"),</p><p> printf("%d\n",k);</p><p><b> }</b>
98、</p><p> for(s=0;s<5;s++)</p><p><b> { </b></p><p> fread(&k,sizeof(int),1,report);</p><p><b> if(k!=0)</b></p><p> pri
99、ntf("******分?jǐn)?shù):"),</p><p> printf("%d\n",k);</p><p><b> }</b></p><p><b> }</b></p><p> printf("\n\n\n");</p&
100、gt;<p><b> getch();</b></p><p><b> } </b></p><p> fclose(report); //關(guān)閉文件</p><p> } //按照讀一
101、個(gè)數(shù)據(jù)就輸出一個(gè)數(shù)據(jù)的方式顯示數(shù)據(jù)內(nèi)容</p><p> void main()</p><p><b> { </b></p><p> int choice;</p><p> printf("======================歡迎使用======================\n&q
102、uot;); </p><p> printf("\n\n*****************運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)********************\n");</p><p> printf("\n\n*************編程員:朱茜 史雯 劉金玉****************\n");</p><p>
103、; printf("\n\n********************1.輸入信息*************************\n");</p><p> printf("********************2.輸出信息*************************\n");</p><p> printf("******
104、**************3.查詢信息*************************\n");</p><p> printf("********************4.調(diào)用信息*************************\n");</p><p> printf("********************5.退出系統(tǒng)******
105、*******************\n\n\n");</p><p> printf("================================================\n\n");</p><p> printf("********請(qǐng)選擇要實(shí)現(xiàn)步驟的編號(hào):\n\n");</p><p>
106、scanf("%d",&choice);</p><p> switch(choice)</p><p><b> { </b></p><p><b> case 1: </b></p><p> inputinformation();writedata();r
107、eaddata();main();</p><p><b> case 2: </b></p><p> output();main();</p><p><b> case 3: </b></p><p> inquiry();main();</p><p><
108、;b> case 4: </b></p><p> readdata();main();</p><p><b> case 5: </b></p><p><b> exit(0);</b></p><p><b> default: </b>&l
溫馨提示
- 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ì)系統(tǒng)課程設(shè)計(jì)
- 運(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ì)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 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ì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(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ì)系統(tǒng)設(shè)計(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)課程設(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ì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
評(píng)論
0/150
提交評(píng)論