運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)_第1頁(yè)
運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)_第2頁(yè)
運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)_第3頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編 號(hào):B04931082學(xué) 號(hào):7教學(xué)院課程名稱題目專業(yè)班級(jí)姓名同組人員指導(dǎo)教師課程設(shè)計(jì)計(jì)算機(jī)學(xué)院高級(jí)語(yǔ)言程序設(shè)計(jì)H運(yùn)動(dòng)會(huì)比賽計(jì)分系統(tǒng)軟件工程(一)班包先躍石奇、呂鵬飛、立陽(yáng)祁文青2013 年 06 月 29 日課程設(shè)計(jì)任務(wù)書20122013 學(xué)年第2學(xué)期學(xué)生:包先躍專業(yè)班級(jí):12軟件工程指導(dǎo)教師:祁文青、課程設(shè)計(jì)題目:運(yùn)動(dòng)會(huì)比賽計(jì)分系統(tǒng)工作部門: 計(jì)算機(jī)學(xué)院名次取法有如下幾種:取前 第五名得分1 ;取前3名:5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2 , 第一名得分5,第二名得分3,第三名得分2 ;、課程設(shè)計(jì)容:初始化輸入:N-參賽學(xué)??倲?shù),M-男子競(jìng)賽項(xiàng)目數(shù), W-女

2、子競(jìng)賽項(xiàng)目數(shù)各項(xiàng)目功能要求:(1 )系統(tǒng)以菜單方式工作(2 )由程序提醒用戶填寫比賽結(jié)果,輸入各項(xiàng)目獲獎(jiǎng)運(yùn)動(dòng)員信息。(3 )所有信息記錄完畢后,用戶可以查詢各個(gè)學(xué)校的比賽成績(jī)(4 )查看參賽學(xué)校信息和比賽項(xiàng)目信息等。三、進(jìn)度安排1 分析問(wèn)題,給出數(shù)學(xué)模型,選擇數(shù)據(jù)結(jié)構(gòu)。2 設(shè)計(jì)算法,給出算法描述。3 給出源程序清單。4. 編輯、編譯、調(diào)試源程序。5. 撰寫課程設(shè)計(jì)報(bào)告。四、基本要求1. 界面友好,函數(shù)功能要?jiǎng)澐趾谩?. 總體設(shè)計(jì)應(yīng)畫一流程圖。3. 程序要加必要的注釋。4. 要提供程序測(cè)試方案。5. 程序一定要經(jīng)得起測(cè)試,要能運(yùn)行起來(lái),不能運(yùn)行的程序是沒(méi)有價(jià)值的。目錄目錄 2一 概述 . 3二

3、總體方案設(shè)計(jì) . 4三 詳細(xì)設(shè)計(jì) 55.1.1 提出問(wèn)題 85.1.2 解決問(wèn)題 95.1.3 提出問(wèn)題 95.1.4 分析問(wèn)題 95.1.5 解決問(wèn)題 95.1.6 提出問(wèn)題 95.1.7 分析問(wèn)題 95.1.8 解決問(wèn)題 95.2 算法的效率及改進(jìn)設(shè)想 9四 程序的調(diào)試與運(yùn)行結(jié)果分析 11(一) 用戶手冊(cè) 11(二)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題和處理方式 15五 課程設(shè)計(jì)總結(jié) . 16附錄:(源程序) . 17參 考 文 獻(xiàn) 27概述1. 課程設(shè)計(jì)的目的 1理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。 2培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。3培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事、有錯(cuò)必改,用

4、實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題 等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。4掌握從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn) 題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。2. 課程設(shè)計(jì)的要求1)可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);2)能統(tǒng)計(jì)各學(xué)??偡?,3)可以按學(xué)校編號(hào)或名稱、學(xué)??偡?、男女團(tuán)體總分排序輸出;4)可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況; 可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕?學(xué)校。5)數(shù)據(jù)存入文件并能隨時(shí)查詢6)規(guī)定:輸入數(shù)據(jù)形式和圍:可以輸入學(xué)校的名稱,運(yùn)動(dòng)項(xiàng)目的名稱 輸出形式:有合理的提示,各學(xué)校分?jǐn)?shù)為整形 界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提

5、示,可以完成相關(guān)的功能 要求。存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動(dòng)會(huì)的相關(guān)數(shù)據(jù)要存儲(chǔ) 在數(shù)據(jù)文件中。 (數(shù)據(jù)文件的數(shù)據(jù)讀寫方法等相關(guān)容在 c 語(yǔ)言程序設(shè)計(jì)的書上,請(qǐng)自學(xué) 解決)請(qǐng)?jiān)谧詈蟮纳辖毁Y料中指明你用到的存儲(chǔ)結(jié)構(gòu); 測(cè)試數(shù)據(jù):要求使用 1 、全部合法數(shù)據(jù); 2 、整體非法數(shù)據(jù); 3 、局部非法數(shù)據(jù)。進(jìn)行程 序測(cè)試,以保證程序的穩(wěn)定。測(cè)試數(shù)據(jù)及測(cè)試結(jié)果請(qǐng)?jiān)谏辖坏馁Y料中寫明 ;二總體方案設(shè)計(jì)(1) 運(yùn)動(dòng)項(xiàng)目定義:typedef struct Sport / 運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu)char n ame20; / 運(yùn)動(dòng)項(xiàng)目名稱int isboy; 0為女項(xiàng)目,1為男項(xiàng)目int is3;

6、0為取前五名,1為取前五名int number; / 項(xiàng)目編號(hào)(2 )主要算法的設(shè)計(jì)思想:本程序主要是使用鏈表來(lái)實(shí)現(xiàn)操作。一個(gè)運(yùn)動(dòng)會(huì)包括運(yùn)動(dòng)項(xiàng)目和參加運(yùn)動(dòng)會(huì)的成員。因此構(gòu)造兩個(gè)鏈表Department,Sport。根據(jù)輸入的不同選擇不同的功能,有輸入運(yùn)動(dòng)項(xiàng)目,按總分排序,按男團(tuán)體總分排序,按女團(tuán)體總分排序,按項(xiàng)目標(biāo)號(hào)查詢,退出。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過(guò)文件操作來(lái)實(shí)現(xiàn)數(shù)據(jù)的寫和讀。每次添加 新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對(duì)于總分的排序使用了冒泡排序。為了使整個(gè)程序 看起來(lái)更加友好,又添加了程序啟動(dòng)畫面。在此次課程設(shè)計(jì)小組中我所承當(dāng)?shù)墓ぷ魇牵簩?duì)總程序的結(jié)構(gòu)體的定義,

7、界面菜單的建立以及void funct6(ALLNode*g2)和按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況的子函數(shù)程序編寫。void funct7(ALLNode *g2)是按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況;voidfun ct6(ALLNode *g2):按女團(tuán)體總分排序輸出。(各部分解決問(wèn)題詳見(jiàn)詳細(xì)設(shè)計(jì)中遇到的較重要問(wèn)題的回顧)三詳細(xì)設(shè)計(jì)3、 1程序流程圖1)設(shè)計(jì)運(yùn)動(dòng)會(huì)的學(xué)校編號(hào)或名稱、項(xiàng)目成績(jī)、男女團(tuán)體總分的數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)圖(2)查詢團(tuán)體總分程序設(shè)計(jì)圖成績(jī)査詢亠(3)總流程圖:(4 )算法分析:其中/* 學(xué)校 */school 類為:class school:public athlete publ

8、ic:int count; /* 學(xué)校獲獎(jiǎng)數(shù) */int serial; /* 學(xué)校編號(hào) */int menscore; /* 男選手總分 */int womenscore; /* 女選手總分 */int totalscore; /*總分 */athlete athMaxSize; /* 獲獎(jiǎng)運(yùn)動(dòng)員信息數(shù)組,包括分?jǐn)?shù),名次,項(xiàng)目 */ school *prev;/前指針school *next;/ 后指針; 其中部分主要的函數(shù): 添加操作 add(school* &head) 查詢操作 checkFunc(school *head,int &n) 文件保存 save(school *head)

9、 總分快速排序 tquicksort(vector& v, int first, int last) 總分基數(shù)排序 tbaseSort(vector& v, int d)2. 關(guān)鍵算法添加項(xiàng)目號(hào)for ( i = 1 ; i serial = 要添加的編號(hào) )(first-athfirst-count).item =要添加的項(xiàng)目號(hào) ;(first-athfirst-count).range =i (名次) First 指向的學(xué)校的項(xiàng)目加一;更新總分break; first = first-next;5)遇到的較重要問(wèn)題的回顧5.1.1 提出問(wèn)題所有輸入輸出容只能在一屏顯示,學(xué)過(guò) c語(yǔ)言,很知道

10、” n ”是換行,” f ”是換 屏的,可是在這里就是無(wú)法實(shí)現(xiàn)。5.1.2 解決問(wèn)題輸入 clrscr();5.1.3 提出問(wèn)題 設(shè)置選項(xiàng),供用戶輸入選擇時(shí),當(dāng)按任意鍵時(shí)都會(huì)跳入下一步操作,或者直接退出 系統(tǒng)。5.1.4 分析問(wèn)題在供用戶選擇時(shí),提供了幾個(gè)選項(xiàng),就寫幾個(gè) case 語(yǔ)句,但是當(dāng)用戶輸入的并不 是這幾個(gè)數(shù)字時(shí),系統(tǒng)就不能做出正確判斷。5.1.5 解決問(wèn)題修改 case 語(yǔ)句,添加 default 語(yǔ)句提示出錯(cuò),要求重新輸入;default : clrscr();/* 清屏 */printf( 輸入錯(cuò)誤,請(qǐng)重新選擇 );5.1.6 提出問(wèn)題當(dāng)同一項(xiàng)目中有同一學(xué)校的兩個(gè)人時(shí),便不能正

11、確輸出或者輸出相同人名。5.1.7 分析問(wèn)題 由于同時(shí)有兩個(gè)相同學(xué)校編號(hào)的人存在,系統(tǒng)在輸出時(shí),不能確定那個(gè)是正確的, 或者用后來(lái)的覆蓋以前的。5.1.8 解決問(wèn)題用 for 函數(shù)實(shí)現(xiàn)從開始到結(jié)尾的遍歷。5.2 算法的效率及改進(jìn)設(shè)想 算法的效率:總的來(lái)講,嚴(yán)重引響執(zhí)行速度的便是查找,查找任意一個(gè)數(shù)據(jù),便要 將其所在的結(jié)構(gòu)從頭至尾遍歷一次,耗費(fèi)大量的時(shí)間。改進(jìn)設(shè)想:因大部分顯示均是以學(xué)校為單位,所以將以由有關(guān)人的各種信息為集合 的結(jié)構(gòu)改為以由有關(guān)學(xué)校的各種信息為集合的結(jié)構(gòu)。在這次上機(jī)過(guò)程中遇到過(guò)一些問(wèn)題,但經(jīng)過(guò)我們不懈努力,解決了部分,還有的現(xiàn) 在不能解決,留著我們?nèi)蘸笏伎己徒鉀Q。比如說(shuō)在運(yùn)用數(shù)

12、據(jù)結(jié)構(gòu)排序的時(shí)候, 方法的選擇上, 總是想用時(shí)間復(fù)雜度小的算法,但結(jié)果出了問(wèn)題,最后還是用了我們熟悉的選擇法排序。結(jié)構(gòu)體的運(yùn)用上感覺(jué)不是很熟悉,遇到結(jié)構(gòu)體的時(shí)候很陌生,這是以后必須要加強(qiáng) 的。在我們的這個(gè)程序中用了兩個(gè)結(jié)構(gòu)體:struct nodeint num;struct node *f22;我們同樣遇到了一些還不能很好解決的問(wèn)題, 在輸出的時(shí)候不能得到我們想要的效 果,在按學(xué)校編號(hào)排序查詢輸出的時(shí)候, 發(fā)生了重疊在做了幾次修改之后都能使之滿意, 這有待學(xué)習(xí)和修改。在編寫之前,做整體的規(guī)劃很重要,這才能讓我們的效率更高和合作得更好。四程序的調(diào)試與運(yùn)行結(jié)果分析(一)用戶手冊(cè)1本程序可以在 V

13、C+5.0和VC+6.0 的環(huán)境下運(yùn)行。2在vc中創(chuàng)建一個(gè)工程,將源程序復(fù)制到.cpp中,編譯就可以。如下: 運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)1.主菜單窗R 匸: Dt CliKEMT 勺JJfD SB晝逼UG 4jLDamiSIKATOJt桌簡(jiǎn)血ieburX, 1 * exe.IsIkI_L_|._I運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)a情K 件 目學(xué) 文 項(xiàng)的 存 出出某名 并出出 入出 12345671-92.則項(xiàng)目搞號(hào)為男子-X3 2s nzu=校 數(shù)教 總總的 目目會(huì) 項(xiàng)項(xiàng)渤 子孑訴5 思女加叫 入人參罕 .s =輸 入 各 個(gè) 項(xiàng) 目 成 績(jī) 并 存 儲(chǔ) 文 件ffC S JiDVTSrSTRA TOR_ |fi|

14、1 Deliijg I.亡宴底*當(dāng)電動(dòng)=-1 卞拳柚編導(dǎo)為13.統(tǒng)計(jì)各學(xué)??偡?.按學(xué)校編號(hào)排序輸出5.按學(xué)校總分排序輸出6.按男團(tuán)體總分排序輸出OCjrjjm團(tuán)生總分排序輸出*7.按女團(tuán)體總分排序輸出學(xué)校編號(hào)按女團(tuán)體總分排序輸出WHWI 女團(tuán)體總樂(lè)z30303e3eJe24&46464fa168.按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況9.按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校(二)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題和處理方式為了使系統(tǒng)具有一點(diǎn)的容錯(cuò)性,當(dāng)輸入錯(cuò)誤信息時(shí)應(yīng)給出相應(yīng)提示以正確輸入數(shù)據(jù),如:printf(要查詢的項(xiàng)目編號(hào):);sea nf(%d,&s); if(sm+w|s=O)printf(此次運(yùn)動(dòng)會(huì)不包括這個(gè)

15、項(xiàng)目.nnn);想在每次查詢結(jié)束想返回主菜單進(jìn)行其它項(xiàng)時(shí),應(yīng)在main()函數(shù)中調(diào)用其它函數(shù)時(shí)再調(diào)用main()函數(shù),如:switch(choice)case 1:in puti nformatio n();writedata();readdata();mai n();case 2:output();ma in();case 3:in quiry();mai n();case 4:readdata();ma in();程序出現(xiàn)語(yǔ)法錯(cuò)誤,發(fā)現(xiàn)是輸入名次信息的地方忘帶地址符&,或是程序不完整,只寫了一個(gè)大括號(hào)。如:prin tf(* 名次:);scan f(%d,&hi.cj.ra nges)五課

16、程設(shè)計(jì)總結(jié)經(jīng)過(guò)幾個(gè)星期的奮戰(zhàn),終于完成了課程設(shè)計(jì),感覺(jué)又進(jìn)一步了解了這門課程,各個(gè)知識(shí)點(diǎn) 都加強(qiáng)了我似乎突然找到了方向,認(rèn)真的學(xué)習(xí)這門課?;仡欉@次課程設(shè)計(jì),使我感慨頗多。的確,從理論到實(shí)踐,在整整兩星期的日子里,學(xué)到很多 很多的的東西,同時(shí)不僅可以鞏固學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通 過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,從而提高自己的實(shí)際動(dòng)手編程能力和獨(dú) 立思考的能力。運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng),比較復(fù)雜,經(jīng)過(guò)很長(zhǎng)時(shí)間的書寫,總算嘗到了勝利的“滋味”在細(xì)節(jié)的認(rèn)識(shí)上,我們?cè)陂_發(fā)程序的時(shí)候,在之前就要知道自己想要的效果,然后把需要實(shí)現(xiàn) 的功能在紙上列出來(lái),然后比如要用幾

17、個(gè)函數(shù)來(lái)實(shí)現(xiàn)幾個(gè)功能,整體需要幾個(gè)模塊來(lái)搭建,這些工 作都是要在未動(dòng)工之前就得做好的準(zhǔn)備工作,編程要的是有整體的思想加細(xì)心。這次的課程設(shè)計(jì)收 獲頗多,最大的認(rèn)識(shí)到了要想高效設(shè)計(jì)出想要的東西不僅要熟悉的掌握所學(xué)知識(shí),還要學(xué)會(huì)充分利 用現(xiàn)有資源。在這之前,總以為自己編程方面還很差,現(xiàn)在才覺(jué)得,只要努力了,就會(huì)有收獲,就 會(huì)得到回報(bào)。附錄:(源程序)(一)。運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng)#include #include #include #include /#include /* 屏幕操作函數(shù) */#define MAX 50/#define NULL 0typedef struct node1int schoo

18、l;/* 學(xué)校編號(hào) */int record;/* 項(xiàng)目成績(jī) */struct node1 *next;/* 鏈域 */Schools;typedef struct int item; /* 項(xiàng)目編號(hào) */Schools *firstschool; /* 鏈域指向鏈表中第一個(gè)結(jié)點(diǎn) */ ITEM;typedef struct int z; /* 項(xiàng)目總數(shù) */ ITEM aMAX;ALLitems;typedef struct node2 int item; /* 該學(xué)校獲獎(jiǎng)的項(xiàng)目 */int record; /* 項(xiàng)目成績(jī) */struct node2 *next; /* 鏈域 */Item

19、s;typedef struct int school; /* 學(xué)校編號(hào) */int score; /* 學(xué)??偡?*/int boys; /* 男團(tuán)體總分 */int girls; /* 女團(tuán)體總分 */Items *firstitem; /* 鏈域指向鏈表中第一個(gè)獲獎(jiǎng)項(xiàng)目的結(jié)點(diǎn) */ SCHNode;typedef struct int n; /* 學(xué)??倲?shù) */SCHNode bMAX;ALLNode;ALLitems *g1;ALLNode *g2;void funct1(ALLitems *g1,ALLNode *g2) Schools *p1;Items *p2;int i,j,k

20、,m,w,h,x;p1=(Schools *)malloc(sizeof(Schools);p2=(Items *)malloc(sizeof(Items);if(!p1|!p2)exit(1);printf(n * 輸 入 各 個(gè) 項(xiàng) 目 信 息 * nn);printf( 輸入男子項(xiàng)目總數(shù) m:);scanf(%d,&m);if(m20) printf( 輸入有誤 ,m 是 20 以的整數(shù) , 請(qǐng)重新輸入 :); scanf(%d,&m);printf( 輸入女子項(xiàng)目總數(shù) w:);scanf(%d,&w);if(w20) printf( 輸入有誤 ,w 是 20 以的整數(shù) , 請(qǐng)重新輸入

21、:); scanf(%d,&w);printf( 輸入?yún)⒓舆\(yùn)動(dòng)會(huì)的學(xué)??倲?shù) n:);scanf(%d,&g2-n);if(g2-nn20) printf( 輸入有誤 ,n 是 20 以的整數(shù) , 請(qǐng)重新輸入 :); scanf(%d,&g2-n);g1-z=m+w;printf( 則項(xiàng)目編號(hào)為男子 1-%d, 女子 %d-%d,m,m+1,g1-z);printf(nn * 記錄運(yùn)動(dòng)會(huì)成績(jī) *);printf(nn(輸入 0 標(biāo)志結(jié)束 )n);for(k=1;kz;k+) g1-ak.item=k;g1-ak.firstschool=NULL;for(k=1;kn;k+) g2-bk.scho

22、ol=k; g2-bk.firstitem=0; g2-bk.score=0; g2-bk.boys=0; g2-bk.girls=0; g2-b0.score=0; g2-b0.boys=0; g2-b0.girls=0;while(i!=0) printf(n 項(xiàng)目 :); scanf(%d,&i);if(i!=0) printf( 1. 前三名 2. 前五名 n); printf( 請(qǐng)選擇 :); scanf(%d,&j);if(j!=1&j!=2) printf( 輸入有誤 , 請(qǐng)重新選擇 :); scanf(%d,&j);if(j=1) h=3;do printf(”第d名:學(xué)校(學(xué)

23、校編號(hào)為數(shù)字),h);scanf(%d,&x);p1=(Schools *)malloc(sizeof(Schools); p1-school=x;p2=(Items *)malloc(sizeof(Items);p2-item=i;if(h=3) p2-record=p1-record=2;if(h=2) p2-record=p1-record=3;if(h=1) p2-record=p1-record=5;p1-next=g1-ai.firstschool;g1-ai.firstschool=p1;p2-next=g2-bx.firstitem;g2-bx.firstitem=p2;/*

24、累計(jì)總分 */* 累計(jì)男團(tuán)體總分 */* 累計(jì)女團(tuán)體總分 */g2-bx.score=g2-bx.score+p2-record;if(ibx.boys=g2-bx.boys+p2-record;else g2-bx.girls=g2-bx.girls+p2-record;h-;while(x!=0&h!=0);if(j=2) h=5;do printf(”第d名:學(xué)校(學(xué)校編號(hào)為數(shù)字),h);scanf(%d,&x);p1=(Schools *)malloc(sizeof(Schools);p1-school=x;p2=(Items *)malloc(sizeof(Items);p2-ite

25、m=i;if(h=5) p2-record=p1-record=1;if(h=4) p2-record=p1-record=2;if(h=3) p2-record=p1-record=3;if(h=2) p2-record=p1-record=5;if(h=1) p2-record=p1-record=7;p1-next=g1-ai.firstschool;g1-ai.firstschool=p1;p2-next=g2-bx.firstitem;/* 累計(jì)總分 */* 累計(jì)男團(tuán)體總分 */* 累計(jì)女團(tuán)體總分 */g2-bx.firstitem=p2;g2-bx.score=g2-bx.scor

26、e+p2-record;if(ibx.boys=g2-bx.boys+p2-record; else g2-bx.girls=g2-bx.girls+p2-record;h-;while(x!=0&h!=0); void save() FILE *fp1,*fp2;fp1=(FILE *)malloc(sizeof(FILE);fp2=(FILE *)malloc(sizeof(FILE);if(fp1=fopen(sports1,wb)=NULL) printf(cannot open file.n);return;if(fwrite(g1,sizeof(ALLitems),1,fp1)!=

27、1)printf(file write error.n);fclose(fp1);if(fp2=fopen(sports2,wb)=NULL) printf(cannot open file.n); return;if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1)printf(file write error.n);fclose(fp2);void funct2(ALLNode *g2) int k; printf(nn printf( for(k=1;kn;k+) printf( printf(n); system(pause);printf( getchar()

28、;void funct3(ALLNode *g2)int k; Items *p2;p2=(Items *)malloc(sizeof(Items); printf(nn printf( scanf(%d,&k);for(k=1;kn;k+) printf(tttttt%dt,k);p2=g2-bk.firstitem; while(p2!=NULL) printf( 項(xiàng)目 %d: 得 %d p2=p2-next; printf(n); printf(n); system(pause);printf( 按任意鍵返回主菜單 );getchar();void funct4(ALLNode *g2)

29、 int i,j,k; Items *p2;printf(nn/* 輸出各學(xué)校總分 */* 輸出各學(xué)??偡?*n);學(xué)校編號(hào) t 總分 n);%dttt %dn,k,g2-bk.score);按任意鍵返回主菜單 );/* 按學(xué)校編號(hào)排序輸出 */* 按學(xué)校編號(hào)排序輸出 *n); 學(xué)校編號(hào) ttt 獲獎(jiǎng)情況 n);分 ,p2-item,p2-record);/* 按學(xué)??偡峙判蜉敵?*/* 按學(xué)校總分排序輸出 *n);n);printf( 學(xué)校編號(hào) tt 總分scanf(%d,&k);/printf( 輸入要查詢的項(xiàng)目編號(hào) :);for(i=2;in;i+) printf(%dt,k);p2=g

30、2-bk.firstitem;while(p2!=NULL) printf(%d tt%dn,g2-bk.school,g2-bk.score); p2=p2-next;printf(n);g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls;g2-b0.school=g2-bi.school;j=i-1; while(g2-b0.scorebj.score&j0) g2-bj+1.score=g2-bj.score;g2-bj+1.boys=g2-bj.boys;g2-bj+1.girls=g2-bj.

31、girls;g2-bj+1.school=g2-bj.school;j-;g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys;g2-bj+1.girls=g2-b0.girls;g2-bj+1.school=g2-b0.school;for(k=1;kn;k+)printf(%d tt%dn,g2-bk.school,g2-bk.score);system(pause);printf( 按任意鍵返回主菜單 );getchar();void funct5(ALLNode *g2) /* 按男團(tuán)體總分排序輸出 */ int i,j,k;Items

32、*p2;p2=(Items *)malloc(sizeof(Items);printf(nn * 按男團(tuán)體總分排序輸出 *n); printf( 學(xué)校編號(hào) tt 男團(tuán)體總分 n);scanf(%d,&k);/printf( 輸入要查詢的學(xué)校編號(hào) :);for(i=2;in;i+)printf(%dt,k);p2=g2-bk.firstitem;while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.boys);p2=p2-next;printf(n);g2-b0.score=g2-bi.score;g2-b0.boys=g2-bi.boys;g2-

33、b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1;while(g2-b0.boysbj.boys&j0) g2-bj+1.score=g2-bj.score;g2-bj+1.boys=g2-bj.boys;g2-bj+1.girls=g2-bj.girls;g2-bj+1.school=g2-bj.school;j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school;fo

34、r(k=1;kn;k+)printf(%dtt %dn,g2-bk.school,g2-bk.boys);system(pause); / 暫停等待 printf( 按任意鍵返回主菜單 );getchar();void funct6(ALLNode *g2)/* 按女團(tuán)體總分排序輸出 */ int i,j,k;Items *p2;p2=(Items *)malloc(sizeof(Items);printf(nn * 按女團(tuán)體總分排序輸出 *n); printf( 學(xué)校編號(hào) tt 女團(tuán)體總分 n);scanf(%d,&k);/ printf( 輸入要查詢的項(xiàng)目編號(hào) :);for(i=2;in;

35、i+)printf(%dt,k);p2=g2-bk.firstitem;while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.girls);p2=p2-next;printf(n);g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1;while(g2-b0.girlsbj.girls&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boy

36、s; g2-bj+1.girls=g2-bj.girls; g2-bj+1.school=g2-bj.school;j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school;for(k=1;kn;k+)printf(%dtt %dn,g2-bk.school,g2-bk.girls); system(pause);printf( 按任意鍵返回主菜單 );getchar();void funct7(ALLNode *g2) /* 按學(xué)

37、校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 */ int i,j;Items *p2;printf(n * 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 *n);printf(輸入要查詢的學(xué)校編號(hào) :);scanf(%d,&i);printf(輸入要查詢的項(xiàng)目編號(hào) :);scanf(%d,&j);p2=g2-bi.firstitem;while(p2!=NULL) if(p2-item=j)printf( 學(xué) 校 編 號(hào) :%dt 項(xiàng) 目 %d: 得 %d 分 n,i,p2-item,p2-record);p2=p2-next;printf(n);system(pause);printf( 按任意鍵返回主菜單 );getc

38、har(); void funct8(ALLitems *g1) /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 */ int i;Schools *p1;printf(n* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 *n);printf( 輸入要查詢的項(xiàng)目編號(hào) :);scanf(%d,&i);printf( 項(xiàng)目編號(hào) ttt 取得名次的學(xué)校 n);printf(%dt,i);p1=g1-ai.firstschool;while(p1!=NULL) printf( 學(xué)校 %d: 得 %d 分 ,p1-school,p1-record); p1=p1-next;printf(nn);system(pause);prin

39、tf( 按任意鍵返回主菜單 );getchar();void main() int t;g2=(ALLNode*)malloc(sizeof(ALLNode);g1=(ALLitems*)malloc(sizeof(ALLitems); if(!g2|!g1)exit(1);/textcolor(WHITE);/textbackground(BLUE);/clrscr();system(cls);for(;)printf(tt運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)n);printf(tt* * * * * * * * * * * * * * * * * * * * * *n);printf(tt*1. 輸入各個(gè)項(xiàng)目成績(jī)并存儲(chǔ)文件*tn);printf(tt*2. 統(tǒng)計(jì)各學(xué)??偡?tn);printf(tt*3. 按學(xué)校編號(hào)排序輸出*tn);printf(tt*4. 按學(xué)校總分排序輸出*tn);printf(tt*5. 按男團(tuán)體總分排序輸出*tn);printf(tt*6. 按女團(tuán)體總分排序輸出*tn);printf(tt*7. 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況*tn);printf(tt*8. 按項(xiàng)目編號(hào)查詢

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論