




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題 目: 運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 院: 理學(xué)院 班 級: 統(tǒng)計(jì)12-1班 學(xué) 生 姓 名: 金志鵬 學(xué) 生 學(xué) 號: 2012027166 指 導(dǎo) 教 師: 張?zhí)l(fā) 2013 年 11 月 27 日課程設(shè)計(jì)任務(wù)書姓名金志鵬班級統(tǒng)計(jì)12-1班學(xué)號 07設(shè)計(jì)題目運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)理論要點(diǎn) 該系統(tǒng)實(shí)現(xiàn)了簡單的運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì),是一個(gè)面向?qū)ο蟮脑O(shè)計(jì),使用了結(jié)構(gòu)體,輸入文本讀取數(shù)據(jù)以及庫函數(shù)的調(diào)用來完成整個(gè)系統(tǒng)的設(shè)計(jì),是繁多的數(shù)據(jù)操作變得簡單。該系統(tǒng)為聯(lián)合運(yùn)動會提供服務(wù)減少了不必要的人力物力的浪費(fèi)。設(shè)計(jì)目標(biāo)1. 具有較高的可靠性和可用性; 2. 系統(tǒng)易于管理維護(hù);
2、3 使用方便,易學(xué)易用; 研究方法步驟1. 對運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)領(lǐng)域?qū)嶋H業(yè)務(wù)需求的調(diào)研。2. 認(rèn)證信息管理、密碼管理、對每個(gè)學(xué)校進(jìn)行總分統(tǒng)計(jì)、對各個(gè)信息進(jìn)行查詢、增加、刪除、修改并進(jìn)行排序。 3.實(shí)現(xiàn)文件讀取數(shù)據(jù)以及文件保存數(shù)據(jù)操作。 用戶信息完善、認(rèn)證信息的查看。預(yù)期結(jié)果 1.根據(jù)指定的輸入文件讀取數(shù)據(jù); 2.輸入文件數(shù)據(jù)格式和文件數(shù)目由學(xué)生自行設(shè)計(jì),主體體現(xiàn)學(xué)校名稱、項(xiàng)目編號、項(xiàng)目名稱、男子女子項(xiàng)目類別、前三或前五名積分; 3.根據(jù)輸入文件得到各學(xué)??偡?, 4.可以按學(xué)校編號或名稱、學(xué)??偡?、男女團(tuán)體總分排序; 5.可以按學(xué)校編號查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校
3、。 6.實(shí)現(xiàn)數(shù)據(jù)的增加、刪除、修改,并將相關(guān)數(shù)據(jù)進(jìn)行保存; 7.各操作結(jié)果能保存到文件,以便查詢。計(jì)劃與進(jìn)步的安排 1. 1-2日:查找資料 2. 3-4日:編寫代碼 3. 5-6日:程序測試目錄摘要I1 題目分析12概要設(shè)計(jì)13詳細(xì)設(shè)計(jì)24調(diào)試分析35用戶使用說明46測試結(jié)果67 結(jié)論體會108 參考文獻(xiàn)119 源程序11摘要針對運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)通過運(yùn)用結(jié)構(gòu)體、文件讀取以及數(shù)據(jù)保存、定義運(yùn)動會類、以及調(diào)用函數(shù)、運(yùn)用庫函數(shù)實(shí)現(xiàn)了指定的輸入文本讀取數(shù)據(jù);根據(jù)輸入文件得到各學(xué)校的總分;按學(xué)校編號、學(xué)??偡帧⒛信畧F(tuán)體總分排序;查詢功能按學(xué)校編號查詢某個(gè)項(xiàng)目的情況、按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)
4、校;實(shí)現(xiàn)了數(shù)據(jù)的增加、刪除、修改以及對數(shù)據(jù)的保存的功能。該系統(tǒng)的用戶主要是提供給管理、學(xué)校的。對于管理用戶提供了所有的操作,而對學(xué)校擁護(hù)只提供查詢和查看操作,這樣安全性能比較高,該系統(tǒng)是通過輸入文本讀取來獲取數(shù)據(jù),較少了輸入數(shù)據(jù)的繁雜通過運(yùn)用定義運(yùn)動會類,進(jìn)行對函數(shù)的定義,使整個(gè)代碼看起來清晰整潔,通過調(diào)用庫函數(shù),使代碼更簡潔。該系統(tǒng)為用戶提供了總分計(jì)算,排序方便,為學(xué)校用戶提供了查詢和查看的方便。關(guān)鍵詞:運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng);結(jié)構(gòu)體;排序;查詢1、題目分析該系統(tǒng)實(shí)現(xiàn)了簡單的運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì),是一個(gè)面向?qū)ο蟮脑O(shè)計(jì),使用了結(jié)構(gòu)體,輸入文本讀取數(shù)據(jù)以及庫函數(shù)的調(diào)用來完成整個(gè)系統(tǒng)的設(shè)計(jì),是繁多的數(shù)據(jù)操作
5、變得簡單。該系統(tǒng)為聯(lián)合運(yùn)動會提供服務(wù)減少了不必要的人力物力的浪費(fèi),通過寫一段程序?qū)崿F(xiàn)簡單運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)來實(shí)現(xiàn)幾個(gè)功能。該系統(tǒng)實(shí)現(xiàn)了以下幾個(gè)功能: (1)根據(jù)指定的輸入文件讀取數(shù)據(jù); (2)輸入文件數(shù)據(jù)格式和文件數(shù)目由學(xué)生自行設(shè)計(jì),主體體現(xiàn)學(xué)校名稱、項(xiàng)目編號、項(xiàng)目名稱、男子女子項(xiàng)目類別、前三或前五名積分; (3)根據(jù)輸入文件得到各學(xué)校總分, (4)可以按學(xué)校編號或名稱、學(xué)??偡?、男女團(tuán)體總分排序; (5)可以按學(xué)校編號查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。(6)實(shí)現(xiàn)數(shù)據(jù)的增加、刪除、修改,并將相關(guān)數(shù)據(jù)進(jìn)行保存;(7)各操作結(jié)果能保存到文件,以便查詢。通過這次
6、的課程設(shè)計(jì),可以加深對庫函數(shù),以及結(jié)構(gòu)體的了解,以及各個(gè)函數(shù)的功能以及實(shí)現(xiàn),更進(jìn)一步了解其原理。2、概要設(shè)計(jì) 本課程涉及主要采用了C+。C+語言是在C語言的基礎(chǔ)上發(fā)展起來的,不僅繼承了C語言的所有特點(diǎn),而且引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。C+改進(jìn)了程序涉及思路,將編程方式進(jìn)化到面向?qū)ο筮M(jìn)行程序設(shè)計(jì)這一新的思維過程。C+語言代表著對以往語言之精華的發(fā)展和提煉,既支持面向?qū)ο蟮某绦蛟O(shè)計(jì),也支持結(jié)構(gòu)化的程序設(shè)計(jì)。它修補(bǔ)了C語言中的一些漏洞,提供更好的類型檢查和編譯時(shí)的分析,提供了異常處理機(jī)制,簡化了程序的出錯(cuò)處理,利用throw、try和catch關(guān)鍵字,提高了程序的可靠性和可讀性。 函數(shù)重載允許相同
7、的函數(shù)名具有不同參數(shù)表,系統(tǒng)根據(jù)參數(shù)的個(gè)數(shù)和類型匹配相應(yīng)的函數(shù)。提供了模板機(jī)制。模板包括類模板和函數(shù)模板兩種,它們將數(shù)據(jù)類型作為參數(shù)。3、詳細(xì)設(shè)計(jì) 本系統(tǒng)采用的存儲結(jié)構(gòu)為結(jié)構(gòu)化設(shè)計(jì)理念,這是數(shù)據(jù)庫的最基本的設(shè)計(jì)要求,主要包括三個(gè)數(shù)據(jù)表:3.1項(xiàng)目數(shù)據(jù)表: 運(yùn)動會開始前必須詳細(xì)制定本次運(yùn)動會所需的參賽項(xiàng)目為接下來報(bào)名、場地的準(zhǔn)備提供依據(jù)。本數(shù)據(jù)表根據(jù)要求設(shè)計(jì)存儲每個(gè)項(xiàng)目的編號、名稱、要取的名次以及各個(gè)名次對應(yīng)的學(xué)校的編號,在初始輸入時(shí)僅輸入項(xiàng)目編號、名稱及要取的名次,而各名次對應(yīng)的學(xué)校編號將由系統(tǒng)自動統(tǒng)計(jì)。這也有利于以后項(xiàng)目情況的查詢。typedef structint itemnum; /項(xiàng)目
8、編號int top; /取名次的數(shù)目int range5; /名次int mark5; /分?jǐn)?shù)itemnode; /定義項(xiàng)目結(jié)點(diǎn)的類型3.2學(xué)校數(shù)據(jù)表: 本數(shù)據(jù)表儲存了各個(gè)參賽學(xué)校的總體情況,包括學(xué)校的編號、名稱、男子團(tuán)體總分、女子團(tuán)體總分和學(xué)校總分。其中學(xué)校編號和名稱是提前輸入的,而其他三項(xiàng)內(nèi)容將由系統(tǒng)進(jìn)行自動統(tǒng)計(jì)。typedef structint schoolnum; /學(xué)校編號int score; /學(xué)??偡謎nt mscore; /男團(tuán)體總分int wscore; /女團(tuán)體總分itemnode cm+w; /項(xiàng)目數(shù)組headnode;/定義頭結(jié)點(diǎn)類型3.3單項(xiàng)數(shù)據(jù)表: 本數(shù)據(jù)表是對各
9、個(gè)學(xué)校的報(bào)名情況及成績進(jìn)行匯總,為了操作方便,本數(shù)據(jù)表只包含了學(xué)校的編號、項(xiàng)目的編號以及其在比賽中的成績。typedef struct /*單項(xiàng)成績*/ int schoolnum; /*學(xué)校編號*/int itemnum; /* 項(xiàng)目編號*/ int xmch; /*項(xiàng)目成績*/danx; danx dxY; 這三個(gè)數(shù)據(jù)表之間由項(xiàng)目編號和學(xué)校編號進(jìn)行相關(guān)聯(lián)接,形成一個(gè)整體。4、調(diào)試問題4.1調(diào)試過程中出現(xiàn)的問題和處理方式: 為了使系統(tǒng)具有一點(diǎn)的容錯(cuò)性,當(dāng)輸入錯(cuò)誤信息時(shí)應(yīng)給出相應(yīng)提示以正確輸入數(shù)據(jù),如:printf("要查詢的項(xiàng)目編號:");scanf("%d&q
10、uot;,&s);if(s>m+w|s=0)printf("此次運(yùn)動會不包括這個(gè)項(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: inputinformation();writedata();readdata();main(); case 2: output();main(); case 3: inquiry();main(); case 4: readdata();main(); 程序出現(xiàn)語法錯(cuò)誤,發(fā)現(xiàn)是輸入名次信息的地方忘帶地址符
11、&,或是程序不完整,只寫了一個(gè)大括號。如: printf("*名次:");4.2 調(diào)試分析的過程: (1).函數(shù)調(diào)用。函數(shù)調(diào)用是語言中一塊十分重要部分,它可以把一個(gè)程序分成若干部分,然后進(jìn)行配置,所以這塊內(nèi)容對我們很重要。 (2).對結(jié)構(gòu)體的不熟練。剛開始對結(jié)構(gòu)體不太了解,使調(diào)試程序時(shí)費(fèi)了我不少的時(shí)間。結(jié)構(gòu)體的嵌套使我很費(fèi)力氣,通過長時(shí)間的運(yùn)用,終于可以得心應(yīng)手。結(jié)構(gòu)體在我的實(shí)習(xí)中站了很大的比重,我也很重視它。通過與線性表,循環(huán)等的有機(jī)搭配,我完成了實(shí)習(xí)任務(wù)。 (3).循環(huán)的問題。這是我很苦惱,大量的循環(huán)語句的應(yīng)用,分析。使我很頭疼,循環(huán)是計(jì)算機(jī)語言中很重要的部分,
12、什么程序也離不開循環(huán),這個(gè)問題的解決使我有了堅(jiān)實(shí)的基礎(chǔ)。對多層循環(huán)的應(yīng)用也有了深刻的理解。5、 用戶使用5.1主界面說明 當(dāng)運(yùn)行系統(tǒng)時(shí),首先進(jìn)入的是主界面,顯示了整個(gè)系統(tǒng)所提供的用戶選項(xiàng),在最后一行有提示讓您輸入你所要選擇的功能項(xiàng)。如下所示:5.2 顯示用戶選擇界面說明鍵入1后,選擇是管理用戶,進(jìn)入下面界面中:對于管理用戶來說是要密碼輸入的,密碼輸入后進(jìn)入下面管理用戶可以操作的功能界面中:如果在主界面中鍵入2,用戶選擇中你選擇學(xué)校用戶,將直接進(jìn)入學(xué)校用戶的功能操作界面。5.3 管理用戶信息界面說明 從管理用戶功能操作界面選擇第1個(gè)功能時(shí),則會出現(xiàn)下面的界面:根據(jù)數(shù)據(jù)說明書進(jìn)行數(shù)據(jù)的的輸入,輸入
13、你要修改的項(xiàng)目編號如:10001根據(jù)提示一次進(jìn)行下列修改操作: 按任意鍵回到管理用戶功能操作界面,再進(jìn)行其他的操作,如果按“0”,則退出系統(tǒng),操作數(shù)據(jù)將保存在文本item_info.txt中。選擇“2”進(jìn)行項(xiàng)目添加操作,進(jìn)入添加界面,根據(jù)提示一次進(jìn)行添加操作: 按任意鍵回到管理用戶功能操作界面,再進(jìn)行其他的操作,如果按“0”,則退出系統(tǒng),操作數(shù)據(jù)將保存在文本item_info.txt中。選擇“3”進(jìn)行項(xiàng)目刪除操作,進(jìn)入刪除界面,根據(jù)提示一次進(jìn)行刪除操作:按任意鍵回到管理用戶功能操作界面,再進(jìn)行其他的操作,如果按“0”,則退出系統(tǒng),操作數(shù)據(jù)將保存在文本item_info.txt中。選擇“4”進(jìn)行
14、查詢操作,進(jìn)入查詢界面,根據(jù)你的需要選擇,再根據(jù)提示一次進(jìn)行查詢操作: 選擇1,則是根據(jù)學(xué)校的編號來查詢學(xué)校某個(gè)項(xiàng)目的情況,根據(jù)提示完成查詢操作,出現(xiàn)如下界面: 如果選擇“2”則是根據(jù)項(xiàng)目編號來查詢獲得前三或前五的學(xué)校情況,根據(jù)提示完成本次查詢操作,出現(xiàn)界面如下: 按任意鍵回到管理用戶功能操作界面,再進(jìn)行其他的操作,如果按“0”,則退出系統(tǒng),操作數(shù)據(jù)將保存在文本item_info.txt中。選擇“5”進(jìn)行排序操作,進(jìn)入排序界面,根據(jù)你的需要選擇,再根據(jù)提示一次進(jìn)行排序操作:(下面的排序進(jìn)過數(shù)據(jù)的改變后進(jìn)行的排序) (1) 如果選擇“1”是根據(jù)學(xué)校編號排序,查看學(xué)??偡?,男女團(tuán)體總分: (2)
15、如果選擇的是“2”是根據(jù)學(xué)??偡峙判颍?(3)如果選擇的是“3”是根據(jù)男子團(tuán)體總分排序: (4)如果選擇的是“4”是根據(jù)女子團(tuán)體總分排序:5.4 學(xué)校用戶操作信息界面說明從主界面鍵入2選項(xiàng),則直接進(jìn)入學(xué)校用戶信息操作界面: 如果選擇“1”則進(jìn)行的是查詢操作,進(jìn)入查詢界面:選擇1,則是根據(jù)學(xué)校的編號來查詢學(xué)校某個(gè)項(xiàng)目的情況,根據(jù)提示完成查詢操作,出現(xiàn)如下界面: 如果選擇“2”則是根據(jù)項(xiàng)目編號來查詢獲得前三或前五的學(xué)校情況,根據(jù)提示完成本次查詢操作,出現(xiàn)界面如下:按任意鍵回到學(xué)校用戶功能操作界面,再進(jìn)行其他的操作,如果按“2”,則進(jìn)行查看操作,進(jìn)入下列查看排名操作界面: (1)如果選擇“1”是根據(jù)
16、學(xué)校編號排序,查看學(xué)校總分,男女團(tuán)體總分: (2)如果選擇的是“2”是根據(jù)學(xué)校總分排序: (3)如果選擇的是“3”是根據(jù)男子團(tuán)體總分排序: (4)如果選擇的是“4”是根據(jù)女子團(tuán)體總分排序:6、測試結(jié)果(1)首先運(yùn)行文件運(yùn)動會統(tǒng)計(jì)分?jǐn)?shù)系統(tǒng) 圖1 運(yùn)動會統(tǒng)計(jì)系統(tǒng)首頁面(2) 輸入信息: 程序首先賦初值,定義學(xué)校的個(gè)數(shù)為2,男生項(xiàng)目為1,女生項(xiàng)目為1。輸入1得到進(jìn)入輸入信息模塊。 圖2 輸入信息(3)輸出信息: 輸入2進(jìn)入輸出信息模塊,該模塊分四項(xiàng): 圖3 輸出模塊 圖4 按學(xué)校編號輸出 圖5 按學(xué)??偡州敵?圖6 按男團(tuán)總分輸出 圖7 按女團(tuán)總分輸出(4)查詢信息: 圖8 信息查詢模塊 圖9 按學(xué)
17、校編號查詢 圖10 按項(xiàng)目編號查詢 圖11 輸入錯(cuò)誤信息時(shí)給出提示 圖12 輸入2繼續(xù)查詢,輸入0返回主菜單7、結(jié)論經(jīng)過幾天的忙碌,最終把課程設(shè)計(jì)任務(wù)完成了。要做好一件事,只能一步一步的去做,不可能一下子就完成。本來以為簡單的幾個(gè)功能,要實(shí)現(xiàn)以為很容易,首先還構(gòu)思著,要用鏈表來做,覺得比較的容易,可是在真正實(shí)現(xiàn)起來才知道有些東西用鏈表實(shí)現(xiàn)有些困難,后面還是改用結(jié)構(gòu)體和庫函數(shù)寫比較容易實(shí)現(xiàn)、有些庫函數(shù)是我接觸比較少的,為了了解它們我還花了一些時(shí)間,在編寫的過程中還把題意理解錯(cuò)誤,讓自己困死在里面,最后還是和其他人一起討論進(jìn)一步深刻了解了題目的意思。在寫函數(shù)的時(shí)候,由于對map容器不是很熟悉,以致
18、定義的map類型的變量出錯(cuò),雖然程序中沒有錯(cuò)誤但是執(zhí)行的結(jié)果有錯(cuò)誤,經(jīng)過改正,自己對其進(jìn)一步的了解,是執(zhí)行結(jié)果正確。要做好一個(gè)系統(tǒng),一個(gè)嚴(yán)謹(jǐn)?shù)乃季S是不可以或缺的,每一個(gè)聯(lián)系都要考慮,每個(gè)細(xì)節(jié)都需要注意,每一種錯(cuò)誤都要會解決。只有把每一種問題都解決了,才能做出一個(gè)完善的系統(tǒng)出來。每做一個(gè)項(xiàng)目都會讓我學(xué)到很多的東西,這些東西是日常的學(xué)習(xí)中無法獲得的。本次課程設(shè)計(jì),使我對數(shù)據(jù)結(jié)構(gòu)線性表,棧的設(shè)計(jì)方法、步驟、思路、有一定的了解與認(rèn)識。它相當(dāng)于實(shí)際設(shè)計(jì)工作的模擬。在課程設(shè)計(jì)過程中,基本能按照規(guī)定的程序進(jìn)行,先針對表達(dá)式算法為背景,建立系統(tǒng)模型;收集、調(diào)查有關(guān)資料,其間與老師和同學(xué)進(jìn)行幾次討論、修改,再討
19、論、再修改,最后定案。通過此次課程設(shè)計(jì),我了解了編寫應(yīng)用軟件的一般步驟,獲得了很多寶貴的經(jīng)驗(yàn)。特別是怎么樣通過理論與實(shí)踐相結(jié)合,把書本上的內(nèi)容應(yīng)用到我們做的程序上去。怎樣使各個(gè)子模塊實(shí)施其的詳細(xì)功能,特別是各個(gè)子模塊之間的接口,一定要相當(dāng)清晰,達(dá)到相互協(xié)調(diào)的作用其次,我熟悉了數(shù)據(jù)結(jié)構(gòu)知識。學(xué)會了很多關(guān)于程序設(shè)計(jì)的經(jīng)驗(yàn)和技巧,明白了程序的使用性和通用性是程序生存周期長短的關(guān)鍵,學(xué)會了調(diào)試程序的一般方法。知道應(yīng)如何在困難重重中一步一步細(xì)心的發(fā)現(xiàn)問題,解決問題。本次課程設(shè)計(jì)檢驗(yàn)了我的實(shí)踐能力,感覺自己還有許多東西要學(xué)習(xí),并不僅限于課本上的知識,實(shí)踐才是真理,在學(xué)習(xí)中實(shí)踐,實(shí)踐中去學(xué)習(xí)。學(xué)習(xí)的路很長。
20、8、參考文獻(xiàn) 1譚浩強(qiáng).C程序設(shè)計(jì)(第三版). 北京: 清華大學(xué)出版社,20052嚴(yán)蔚敏著.吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版). 北京: 清華大學(xué)出版社,20073譚浩強(qiáng)著.C+程序設(shè)計(jì). 北京:清華大學(xué)出版社,2004.69、源代碼源代碼:#include<stdio.h>#include<math.h>#include <conio.h>#include <process.h>#define n 2/學(xué)校數(shù)目 #define m 1/男子項(xiàng)目數(shù)目 #define w 1/女子項(xiàng)目數(shù)目#define null 0typedef struct int
21、itemnum; /項(xiàng)目編號 int top; /取名次的數(shù)目 int range5; /名次 int mark5; /分?jǐn)?shù)itemnode; /定義項(xiàng)目結(jié)點(diǎn)的類型typedef structint schoolnum; /學(xué)校編號 int score; /學(xué)校總分 int mscore; /男團(tuán)體總分 int wscore; /女團(tuán)體總分 itemnode cm+w; /項(xiàng)目數(shù)組headnode;/定義頭結(jié)點(diǎn)類型headnode hn;/定義一個(gè)頭結(jié)點(diǎn)數(shù)組void inputinformation() /輸入信息,建立系統(tǒng)int i,j,k,s; for(i=0;i<n;i+) hi.
22、score=0; hi.mscore=0; hi.wscore=0; /初始化頭結(jié)點(diǎn) for(i=0;i<n;i+) printf("*學(xué)校編號:"); scanf("%d",&hi.schoolnum); /輸入頭結(jié)點(diǎn)信息 for(j=0;j<m+w;j+) printf("*項(xiàng)目編號:"); scanf("%d",&hi.cj.itemnum); printf("*取前3名or前5名:"); scanf("%d",&hi.cj.top)
23、; printf("*獲得幾個(gè)名次:"); scanf("%d",&k); /輸入項(xiàng)目信息 for(s=0;s<5;s+) hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分?jǐn)?shù) for(s=0;s<k;s+) printf("*名次:"); scanf("%d",&hi.cj.ranges); /輸入所獲名次信息 if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1:
24、 hi.cj.marks=5; break; case 2: hi.cj.marks=3; break; case 3: hi.cj.marks=2; break; else switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=7; break; case 2: hi.cj.marks=5; break; case 3: hi.cj.marks=3; break; case 4: hi.cj.marks=2; break; case 5: hi.cj.marks=1; break; hi.score=hi
25、.score+hi.cj.marks;/按取前三名還是取前五名分別記分 if(j<=m-1)hi.mscore=hi.mscore+hi.cj.marks;/是男子項(xiàng)目則記到男子分?jǐn)?shù)里面去 else hi.wscore=hi.wscore+hi.cj.marks;/是女子項(xiàng)目則記到女子項(xiàng)目里面去 printf("n"); void output() /輸出函數(shù) int choice,i,j,k;int remembern;int sign; do printf("*1.按學(xué)校編號輸出.*n"); printf("*2.按學(xué)??偡州敵?*n
26、"); printf("*3.按男團(tuán)總分輸出.*n"); printf("*4.按女團(tuán)總分輸出.*n"); printf("nn* 請選擇編號*nn:"); scanf("%d",&choice); switch(choice) case 1:for(i=0;i<n;i+) printf("nn*學(xué)校編號:%dn",hi.schoolnum); printf("*學(xué)??偡?%dn" ,hi.score); printf("*男團(tuán)總分:%dn&
27、quot;,hi.mscore); printf("*女團(tuán)總分: %dnnn",hi.wscore); /按編號順序輸出 break; case 2: for(i=0;i<n;i+)rememberi=i; for(i=0;i<n;i+) for(j=i+1;j<n;j+)if(hrememberi.score<hj.score) k=rememberi;rememberi=rememberj,rememberj=k; / 用冒泡排序方法,用輔助數(shù)組記住頭結(jié)點(diǎn)下標(biāo) for(i=0;i<n;i+) printf("nn*學(xué)校編號:%dn
28、",hrememberi.schoolnum); printf("*學(xué)校總分:%dn" ,hrememberi.score); printf("*男團(tuán)總分:%dn",hrememberi.mscore); printf("*女團(tuán)總分: %dnnn",hrememberi.wscore);/按所記下標(biāo)順序輸出 /按學(xué)??偡州敵?break; case 3: for(i=0;i<n;i+) rememberi=i; for(i=0;i<n;i+) for(j=i+1;j<n;j+)if(hrememberi.m
29、score<hj.mscore)k=rememberi;rememberi=rememberj;rememberj=k; for(i=0;i<n;i+) printf("nn*學(xué)校編號:%dn",hrememberi.schoolnum); printf("*學(xué)??偡?%dn" ,hrememberi.score); printf("*男團(tuán)總分:%dn",hrememberi.mscore); printf("*女團(tuán)總分: %dnnn",hrememberi.wscore); /按男團(tuán)總分輸出 brea
30、k; case 4: for(i=0;i<n;i+) rememberi=i; for(i=0;i<n;i+) for(j=i+1;j<n;j+) if(hrememberi.wscore<hj.wscore) k=rememberi;rememberi=rememberj;rememberj=k; for(i=0;i<n;i+) printf("nn*學(xué)校編號:%dn",hrememberi.schoolnum); printf("*學(xué)??偡?%dn" ,hrememberi.score); printf("*男
31、團(tuán)總分:%dn",hrememberi.mscore); printf("*女團(tuán)總分: %dnnn",hrememberi.wscore); break; /按女團(tuán)總分輸出 printf("請選擇 2 繼續(xù),0 跳出n"); scanf("%d",&sign);while(sign=2); /循環(huán)執(zhí)行輸出語句void inquiry() /查詢函數(shù)int choice;int i,j,k,s;printf("n*1:按學(xué)校編號查詢n");printf("n*2:按項(xiàng)目編號查詢n"
32、;);printf("nn*請選擇查詢方式:"); /提供兩種查詢方式 scanf("%d",&choice); switch(choice) case 1: do printf("要查詢的學(xué)校編號:");scanf("%d",&i);if(i>n)printf("錯(cuò)誤:這個(gè)學(xué)校沒有參加此次運(yùn)動會!nnn"); elseprintf("要查詢的項(xiàng)目編號:"); scanf("%d",&j); if(j>m+w|j=0)
33、printf("此次運(yùn)動會沒有這個(gè)項(xiàng)目nnn");/學(xué)校編號超出范圍,則輸出警告 else printf("這個(gè)項(xiàng)目取前 %d名,該學(xué)校的成績?nèi)缦?n", h0.cj-1.top); for(k=0;k<5;k+) if(hi-1.cj-1.rangek!=0) printf("名次:%dn",hi-1.cj-1.rangek);/輸出要查詢學(xué)校項(xiàng)目的成績 printf("請選擇 2 繼續(xù) , 0 跳出n");scanf("%d",&s);printf("nnn"
34、;);while(s=2); /循環(huán)執(zhí)行輸出語句 break; case 2: do printf("要查詢的項(xiàng)目編號:");scanf("%d",&s);if(s>m+w|s=0)printf("此次運(yùn)動會不包括這個(gè)項(xiàng)目.nnn");/項(xiàng)目編號超出范圍則輸出警告elseprintf("該項(xiàng)目取前 %d名,取得名次的學(xué)校n",h0.cs-1.top);for(i=0; i<n;i+) for(j=0;j<5;j+) if(hi.cs-1.rangej!=0) printf("學(xué)校
35、編號:%d,名次:%dn",hi.schoolnum,hi.cs-1.rangej); /輸出該項(xiàng)目取得名次學(xué)校的成績 printf("nnn繼續(xù) 2,跳出 0n");scanf("%d",&i);printf("nnn");while(i=2); break;void writedata() /把數(shù)據(jù)存儲在文件中 FILE *report; int i; if(report=fopen("sportsdata.txt","w")=null) printf("不能打開
36、文件n"); exit(1); for(i=0;i<n;i+)fwrite(&hi,sizeof(headnode),1,report); fclose(report); /按頭結(jié)點(diǎn)塊寫入 void readdata() /讀出文件中數(shù)據(jù)的函數(shù) FILE *report; int i,j,k,s; if(report=fopen("sportsdata.txt","r")=null) printf("file can not be openedn"); exit(1); for(i=0;i<n;i+) p
37、rintf("*學(xué)校編號:"); fread(&k,sizeof(int),1,report); printf("%dn",k); printf("*學(xué)??偡?"); fread(&k,sizeof(int),1,report); printf("%dn",k); printf("*男團(tuán)總分:"); fread(&k,sizeof(int),1,report); printf("%dn",k); printf("*女團(tuán)總分:"); fread(&k,si
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年業(yè)務(wù)工作總結(jié)范文(16篇)
- 《水滸傳》名著導(dǎo)讀課件7
- 2001年江蘇省無錫市中考數(shù)學(xué)真題【含答案、解析】
- 便秘用藥73課件
- 考研復(fù)習(xí)-風(fēng)景園林基礎(chǔ)考研試題【基礎(chǔ)題】附答案詳解
- 2024年山東華興機(jī)械集團(tuán)有限責(zé)任公司人員招聘筆試備考題庫及完整答案詳解
- 2025年黑龍江省五常市輔警招聘考試試題題庫含答案詳解(輕巧奪冠)
- 5.3標(biāo)定NaOH溶液的準(zhǔn)確濃度19課件
- 物理●福建卷丨2021年福建省普通高中學(xué)業(yè)水平選擇性考試物理試卷及答案
- 新解讀《DL 784-2001帶電更換330kV線路耐張單片絕緣子技術(shù)規(guī)程》新解讀
- 2025年全國統(tǒng)一高考數(shù)學(xué)試題全國二卷
- 門窗安裝考試題及答案
- 2025佛山市順德區(qū)輔警考試試卷真題
- 旅游度假區(qū)運(yùn)營管理方案
- T/CEMIA 026-2021濕電子化學(xué)品技術(shù)成熟度等級劃分及定義
- 浙江省金華市東陽市2025年七年級下學(xué)期期末數(shù)學(xué)試題及答案
- 2025-2030中國保鮮盒市場營銷策略及前景供需調(diào)查分析研究報(bào)告
- 珠江三角洲環(huán)境保護(hù)規(guī)劃綱要(2024-2025年)
- 林業(yè)法律法規(guī)試題及答案
- 江西省煙草專賣局(公司)筆試試題2024
- 期末復(fù)習(xí)題(試題)2024-2025學(xué)年六年級下冊數(shù)學(xué)人教版
評論
0/150
提交評論