c語(yǔ)言課程設(shè)計(jì)----運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p>  課程名稱(chēng) C語(yǔ)言綜合訓(xùn)練 </p><p>  教 學(xué) 部 工學(xué)一部 </p><p>  專(zhuān) 業(yè) 網(wǎng)絡(luò)工程 </p><p>  班 級(jí) <

2、/p><p>  學(xué) 號(hào) </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p><b>  2011年9月</b></p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)

3、</b></p><p>  課程設(shè)計(jì)題目 運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì) </p><p>  課程設(shè)計(jì)時(shí)間: 2011 年 8 月 29 日至 2011 年 9月 15 日</p><p>  課程設(shè)計(jì)的內(nèi)容及要求:</p><p><b> ?。ㄒ唬┲饕獌?nèi)容</

4、b></p><p>  設(shè)計(jì)一個(gè)運(yùn)動(dòng)會(huì)成績(jī)管理程序,主要實(shí)現(xiàn)以下功能:</p><p>  檢錄功能,登錄參賽運(yùn)動(dòng)員的信息;</p><p>  記錄成績(jī)功能,每項(xiàng)比賽結(jié)束后記錄參賽運(yùn)動(dòng)員的成績(jī);</p><p>  針對(duì)不同比賽對(duì)運(yùn)動(dòng)員的成績(jī)排名次;</p><p>  可對(duì)運(yùn)動(dòng)員的信息和成績(jī)進(jìn)行修改、刪除、

5、查詢(xún)操作。</p><p><b>  (二)基本要求</b></p><p>  系統(tǒng)采用C程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn);</p><p>  獨(dú)立完成系統(tǒng)的設(shè)計(jì)、編碼和調(diào)試,通過(guò)指導(dǎo)教師當(dāng)場(chǎng)驗(yàn)收;</p><p>  交出完整的課程設(shè)計(jì)報(bào)告。</p><p><b>  三)主要參考書(shū)</

6、b></p><p>  譚浩強(qiáng).C程序設(shè)計(jì)(第三版). 北京:清華大學(xué)出版社,2005.7</p><p>  高濤,陸麗娜.C語(yǔ)言程序設(shè)計(jì).西安西安交通大學(xué)出版社,2007.2</p><p><b>  (四)評(píng)語(yǔ)</b></p><p><b> ?。ㄎ澹┏煽?jī)</b></p>

7、;<p>  指導(dǎo)教師 史俊 2011 年 7 月 2 日</p><p>  負(fù)責(zé)教師 年 月 日</p><p>  運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)</p><p><b>  目錄</b></p><p>&l

8、t;b>  摘要1</b></p><p><b>  1.緒論1</b></p><p><b>  2.系統(tǒng)分析1</b></p><p><b>  2.1功能需求1</b></p><p><b>  2.2數(shù)據(jù)需求2</b&

9、gt;</p><p><b>  2.3性能需求2</b></p><p><b>  3.總體設(shè)計(jì)2</b></p><p>  3.1功能模塊設(shè)計(jì)2</p><p>  3.2系統(tǒng)設(shè)計(jì)方案3</p><p><b>  4.詳細(xì)設(shè)計(jì)4</b&g

10、t;</p><p>  4.1錄入信息模塊4</p><p>  4.2查詢(xún)信息模塊5</p><p>  4.3修改信息模塊7</p><p>  4.4刪除信息模塊8</p><p>  4.5成績(jī)排名模塊9</p><p>  5.調(diào)試和測(cè)試11</p><

11、;p><b>  5.1測(cè)試11</b></p><p><b>  5.2調(diào)試11</b></p><p><b>  6.結(jié)論12</b></p><p><b>  結(jié)束語(yǔ)12</b></p><p><b>  參考文獻(xiàn)1

12、2</b></p><p>  附錄1—用戶(hù)手冊(cè)13</p><p>  附錄2—源程序17</p><p><b>  摘要</b></p><p>  運(yùn)動(dòng)會(huì)是一個(gè)全民健身的活動(dòng),在運(yùn)動(dòng)會(huì)里可以提高人們的身體素質(zhì),培養(yǎng)人們的素養(yǎng)。在參加運(yùn)動(dòng)會(huì)的過(guò)程中我們可以看到激情和友情的碰撞,人們用自己的實(shí)力來(lái)贏得

13、第一。開(kāi)發(fā)本系統(tǒng)是為了更方便,在運(yùn)動(dòng)會(huì)中做比賽數(shù)據(jù)的記錄,方便記錄比賽成績(jī)。</p><p>  本系統(tǒng)使用C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言。實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)會(huì)的結(jié)果提示以及對(duì)成績(jī)的儲(chǔ)存和對(duì)成績(jī)的排名。</p><p>  本文從分析課題的題目背景、題目意義、題目要求等出發(fā),分別從需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試等各個(gè)方面詳細(xì)介紹了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,最后對(duì)系統(tǒng)的完成情況進(jìn)行了總結(jié)。</p>

14、;<p>  關(guān)鍵詞:C語(yǔ)言;運(yùn)動(dòng)會(huì);信息管理 </p><p><b>  1.緒論</b></p><p>  運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)的開(kāi)發(fā)是為了方便記錄比賽成績(jī),運(yùn)動(dòng)員的狀況和成績(jī),對(duì)比賽成績(jī)進(jìn)行排名。這個(gè)系統(tǒng)以快捷,簡(jiǎn)便為原則,更加方便了對(duì)運(yùn)動(dòng)會(huì)成績(jī)的記錄。運(yùn)動(dòng)會(huì)是很早以前就有的一項(xiàng)組織性活動(dòng),它的存在使人們的身體得到了鍛煉。運(yùn)動(dòng)會(huì)是一項(xiàng)必不可少

15、的活動(dòng),所以開(kāi)發(fā)這個(gè)系統(tǒng)可以使運(yùn)動(dòng)會(huì)成績(jī)的記錄變的更加方便。</p><p>  設(shè)計(jì)一個(gè)運(yùn)動(dòng)會(huì)成績(jī)管理程序,主要實(shí)現(xiàn)以下功能:</p><p>  1、檢錄功能,登錄參賽運(yùn)動(dòng)員的信息;</p><p>  2、記錄成績(jī)功能,每項(xiàng)比賽結(jié)束后記錄參賽運(yùn)動(dòng)員的成績(jī);</p><p>  3、針對(duì)不同比賽對(duì)運(yùn)動(dòng)員的成績(jī)排名次;</p>

16、<p>  4、可對(duì)運(yùn)動(dòng)員的信息和成績(jī)進(jìn)行修改、刪除、查詢(xún)操作。</p><p><b>  2.系統(tǒng)分析</b></p><p><b>  2.1功能需求</b></p><p>  本系統(tǒng)要求對(duì)運(yùn)動(dòng)員的信息進(jìn)行登錄修改,記錄,查詢(xún),要求可以對(duì)運(yùn)動(dòng)員的成績(jī)進(jìn)行單項(xiàng)排名。主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)運(yùn)動(dòng)員數(shù)據(jù)的錄入

17、以及其后的運(yùn)行數(shù)據(jù)的追加功能,實(shí)現(xiàn)的功能是按照號(hào)碼對(duì)運(yùn)動(dòng)員的數(shù)據(jù)記錄進(jìn)行修改、記錄、查詢(xún)、刪除,按照題目的具體要求實(shí)現(xiàn)的是某項(xiàng)成績(jī)的遞減排序以及名次顯示。 </p><p><b>  2.2數(shù)據(jù)需求</b></p><p>  在這些函數(shù)當(dāng)中,添加運(yùn)動(dòng)員數(shù)據(jù)函數(shù)例如運(yùn)動(dòng)員序號(hào)、運(yùn)動(dòng)員名稱(chēng)、百米賽跑成績(jī)、三級(jí)跳成績(jī)和撐桿跳成績(jī)。 </p><p&g

18、t;<b>  2.3性能需求</b></p><p>  本系統(tǒng)的性能需求:要求運(yùn)行穩(wěn)定、數(shù)據(jù)可靠、輸出準(zhǔn)確、響應(yīng)速度快、可安全運(yùn)行、能很好的保存、刪除、修改??梢约皶r(shí)保存存儲(chǔ)刪除數(shù)據(jù),可對(duì)成績(jī)進(jìn)行排名,顯示即時(shí)成績(jī)</p><p><b>  3.總體設(shè)計(jì)</b></p><p><b>  3.1功能模塊設(shè)

19、計(jì)</b></p><p>  經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為5個(gè)模塊,每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,添加運(yùn)動(dòng)員數(shù)據(jù)函數(shù),刪除數(shù)據(jù)函數(shù),某項(xiàng)成績(jī)排序函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而更改數(shù)據(jù)函數(shù)和顯示函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對(duì)其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。錄入信息模塊是錄入運(yùn)動(dòng)員信息、查詢(xún)信息模塊是查詢(xún)運(yùn)動(dòng)員信息的、

20、修改信息模塊可以對(duì)運(yùn)動(dòng)員信息進(jìn)行修改、刪除模塊可對(duì)運(yùn)動(dòng)員信息進(jìn)進(jìn)行刪除、成績(jī)排名是對(duì)運(yùn)動(dòng)員的成績(jī)進(jìn)行排名,功能模塊見(jiàn)圖1所示。</p><p><b>  圖1 功能模塊圖</b></p><p><b>  3.2系統(tǒng)設(shè)計(jì)方案</b></p><p>  本系統(tǒng)中用到了結(jié)構(gòu)體數(shù)組和數(shù)據(jù)的存儲(chǔ)。該結(jié)構(gòu)體數(shù)組中包含字符串,系

21、統(tǒng)的設(shè)計(jì)方案如下:</p><p><b>  (1)數(shù)據(jù)結(jié)構(gòu)</b></p><p>  struct student</p><p>  {char num[20];//運(yùn)動(dòng)員號(hào)碼</p><p>  char name[10];//運(yùn)動(dòng)員名字</p><p>  float baimi;//

22、百米賽跑成績(jī)</p><p>  float sanjitiao;//三級(jí)跳成績(jī)</p><p>  float chenggantiao;//撐桿跳成績(jī)</p><p><b>  };</b></p><p><b> ?。?)菜單</b></p><p>  設(shè)計(jì)一個(gè)總

23、菜單,0、查詢(xún)運(yùn)動(dòng)員數(shù)據(jù);1、添加運(yùn)動(dòng)員數(shù)據(jù);2、顯示運(yùn)動(dòng)員數(shù)據(jù);3、刪除運(yùn)動(dòng)員數(shù)據(jù);4、修改運(yùn)動(dòng)員數(shù)據(jù);5、百米成績(jī)排序;6、三級(jí)跳成績(jī)排序;7撐桿跳成績(jī)排序;8、退出;基本功能的實(shí)現(xiàn)都將體現(xiàn)在這幾個(gè)菜單選項(xiàng)中。</p><p><b>  (3) 函數(shù)</b></p><p><b>  定義了12個(gè)函數(shù)</b></p><

24、;p>  void menu();</p><p>  int reads(struct student stu[N]);//讀取運(yùn)動(dòng)員信息</p><p>  void save(struct student stu[N],int n);//儲(chǔ)存運(yùn)動(dòng)員信息</p><p>  void search();//查詢(xún)運(yùn)動(dòng)員信息</p><p&

25、gt;  void add();//添加運(yùn)動(dòng)員信息</p><p>  void del();//刪除運(yùn)動(dòng)員信息</p><p>  void sort();// 按百米賽跑成績(jī)查詢(xún)</p><p>  void keep();//按三級(jí)跳成績(jī)查詢(xún)</p><p>  void sheep();//按撐桿跳成績(jī)查詢(xún)</p>&l

26、t;p>  void query();//退出程序</p><p>  void show();//顯示運(yùn)動(dòng)員信息</p><p>  void change();//更改運(yùn)動(dòng)員信息</p><p><b>  4.詳細(xì)設(shè)計(jì)</b></p><p><b>  4.1錄入信息模塊</b><

27、;/p><p><b>  1. 添加數(shù)據(jù)函數(shù)</b></p><p>  添加數(shù)據(jù)分為兩種情況,其一是在運(yùn)動(dòng)員文件(student.txt)不存在的情況下,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的運(yùn)動(dòng)員信息寫(xiě)入該文件當(dāng)中;其二是在運(yùn)動(dòng)員文件(student.txt)已經(jīng)存在的情況下,此時(shí)文件以追加的方式打開(kāi),這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。</p>&

28、lt;p><b>  圖2錄入信息流程圖</b></p><p><b>  4.2查詢(xún)信息模塊</b></p><p>  查詢(xún)文件是在以存的運(yùn)動(dòng)員信息中進(jìn)行查詢(xún),可對(duì)運(yùn)動(dòng)員信息進(jìn)行查詢(xún)顯示運(yùn)動(dòng)員信息。通過(guò)錄入運(yùn)動(dòng)員號(hào)碼num ,與stu[i].num做比較,結(jié)果相同進(jìn)行m++,m=reads(stu);來(lái)提取文件中的數(shù)據(jù)</p&g

29、t;<p><b>  圖3查詢(xún)信息流程圖</b></p><p><b>  4.3修改信息模塊</b></p><p>  修改信息是對(duì)運(yùn)動(dòng)員信息進(jìn)行修改,通過(guò)輸入number與stu[i].num比較,如果相同進(jìn)行 n=reads(stu)來(lái)提取信息在對(duì)信息進(jìn)行修改。</p><p><b>

30、  圖4修改信息流程圖</b></p><p><b>  4.4刪除信息模塊</b></p><p>  該函數(shù)的核心內(nèi)容是刪除算法以及最終對(duì)源文件的更新。該函數(shù)執(zhí)行時(shí),首先調(diào)用reads函數(shù)將文件中的運(yùn)動(dòng)員信息讀入數(shù)組當(dāng)中,并由用戶(hù)輸入待刪除運(yùn)動(dòng)員的號(hào)碼,而后按照該號(hào)碼進(jìn)行查找,如果文件中存在該運(yùn)動(dòng)員的數(shù)據(jù),則采用刪除算法刪除,否則輸出運(yùn)動(dòng)員信息不存在

31、的提示信息。對(duì)運(yùn)動(dòng)員信息的具體刪除算法是在結(jié)構(gòu)體數(shù)組中實(shí)現(xiàn)的,當(dāng)運(yùn)動(dòng)員的信息被找到后,位于數(shù)組中該學(xué)生后面的運(yùn)動(dòng)員記錄依次向前移動(dòng)一個(gè)元素的位置,這些操作完成后,要?jiǎng)h除運(yùn)動(dòng)員信息就被后面的數(shù)組元素覆蓋掉了,也就實(shí)現(xiàn)了刪除。</p><p><b>  圖5刪除信息流程圖</b></p><p><b>  4.5成績(jī)排名模塊</b></p&

32、gt;<p>  對(duì)于某項(xiàng)的排序采用的排序算法是冒泡法排序,整個(gè)排序過(guò)程在結(jié)構(gòu)體數(shù)組stu中實(shí)現(xiàn),由于排序算法涉及到兩個(gè)數(shù)組元素的信息交換,因此還需要定義一個(gè)中間變量來(lái)協(xié)助。排序函數(shù)使運(yùn)動(dòng)員數(shù)據(jù)的排列順序發(fā)生了變化,因此也需要對(duì)源文件進(jìn)行更新。此外,對(duì)于運(yùn)動(dòng)員排序后名次的確定,僅在結(jié)果輸出時(shí)予以顯示,并未將名次信息寫(xiě)入源文件。具體的程序段如下(由于各項(xiàng)成績(jī)排序函數(shù)相同,所以只給出百米賽跑排名程序):</p>

33、<p><b>  圖6成績(jī)排名流程圖</b></p><p><b>  5.調(diào)試和測(cè)試</b></p><p><b>  5.1測(cè)試</b></p><p>  測(cè)試是在完成某一部分功能和全部功能后,根據(jù)功能和性能的需求,看看系統(tǒng)有沒(méi)有實(shí)現(xiàn)要求中的功能,是否達(dá)到性能要求。系統(tǒng)測(cè)試是軟件

34、生存期中的一個(gè)重要階段,系統(tǒng)質(zhì)量保證的關(guān)鍵步驟從用戶(hù)的角度來(lái)看,普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以系統(tǒng)測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程”?;蛘哒f(shuō),系統(tǒng)測(cè)試應(yīng)該根據(jù)程序開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。過(guò)度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試后期,即使找到了錯(cuò)誤,然而付出了過(guò)高的代價(jià)。</p>

35、<p><b>  測(cè)試數(shù)據(jù)過(guò)程如下。</b></p><p>  當(dāng)運(yùn)動(dòng)員成績(jī)管理系統(tǒng)進(jìn)行對(duì)運(yùn)動(dòng)員數(shù)據(jù)的添加數(shù)據(jù) 號(hào)碼 1 姓名 zhanglinlin 百米賽跑 10 三級(jí)跳 9 撐桿跳 4.5 號(hào)碼 2 姓名 yushuo 百米賽跑 9.8 三級(jí)跳 7 撐桿跳 4。顯示信息即顯示添加的數(shù)據(jù) ,修改數(shù)據(jù),查詢(xún)數(shù)據(jù),現(xiàn)在測(cè)試系統(tǒng)是否能夠正確顯示錄入的所有運(yùn)動(dòng)員信息,當(dāng)系統(tǒng)中

36、已存入一定的運(yùn)動(dòng)員信息當(dāng)執(zhí)行瀏覽功能時(shí),系統(tǒng)會(huì)將運(yùn)動(dòng)員信息全部列出,當(dāng)系統(tǒng)未存入任何信息是顯示無(wú)運(yùn)動(dòng)員信息 。</p><p>  測(cè)試成功,顯示正確,完成測(cè)試。</p><p><b>  5.2調(diào)試 </b></p><p>  調(diào)試是程序編寫(xiě)中的一個(gè)重要環(huán)節(jié),也是最復(fù)雜,對(duì)程序編寫(xiě)者來(lái)說(shuō)是一項(xiàng)艱巨的任務(wù)。調(diào)試的任務(wù)就是及時(shí)改正測(cè)試過(guò)程中發(fā)

37、現(xiàn)的錯(cuò)誤。具體地說(shuō),調(diào)試過(guò)程由兩個(gè)步驟組成,它是從程序中存在錯(cuò)誤的某種跡象開(kāi)始的。首先是確定錯(cuò)誤的準(zhǔn)確位置,也就是找出是哪個(gè)模塊或哪個(gè)語(yǔ)句引起的錯(cuò)誤。然后仔細(xì)研究推斷代碼以確定問(wèn)題的原因,并設(shè)法改正。</p><p>  調(diào)試過(guò)程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問(wèn)題所在。本系統(tǒng)調(diào)試過(guò)程中遇到問(wèn)題、原因和解決方法如下面介紹:</p><p>  (1)程序運(yùn)行

38、不順利</p><p>  在程序運(yùn)行的過(guò)程中出現(xiàn)死循環(huán)、不運(yùn)行和提前結(jié)束。原因是程序中出現(xiàn)了邏輯錯(cuò)誤,進(jìn)入查詢(xún)頁(yè)面后,查詢(xún)的時(shí)候顯示的是邏輯錯(cuò)誤。沒(méi)有寫(xiě)讀取文件的函數(shù)m=reads(stu);所以讀取不了存儲(chǔ)的文件</p><p>  (2)無(wú)法將排完序的數(shù)據(jù)寫(xiě)入到文本文件stu_list.txt中去</p><p>  原因是讀寫(xiě)文件的方式不對(duì)。</p&g

39、t;<p><b>  6.結(jié)論</b></p><p>  經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),制作我的運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)完成了,但只能說(shuō)是粗略的完成。雖然說(shuō)還存在一寫(xiě)不足的地方,但基本實(shí)現(xiàn)了任務(wù)說(shuō)上得所有要求,發(fā)現(xiàn)錯(cuò)誤并及時(shí)修改,她能夠統(tǒng)計(jì)學(xué)生的比賽成績(jī)和通過(guò)成績(jī)進(jìn)行排名,我設(shè)計(jì)的成績(jī)還存在一定的不足,一開(kāi)始是沒(méi)有查詢(xún)功能的 ,經(jīng)過(guò)我不斷地努力把程序進(jìn)行了完善,讓它變的更加實(shí)用。</

40、p><p><b>  結(jié)束語(yǔ)</b></p><p>  經(jīng)過(guò)兩個(gè)星期的思考,設(shè)計(jì),編程,我真的感到這不是一件簡(jiǎn)單容易的事情。C語(yǔ)言綜合訓(xùn)練考察的并不僅僅是我們的基礎(chǔ)知識(shí),還有思維上得活躍性,創(chuàng)新性,以及我們的動(dòng)手能力。讓我了解到要想又好又快地完成一個(gè)程序,必須要有堅(jiān)實(shí)的基礎(chǔ)和認(rèn)真的編寫(xiě)過(guò)程。在寫(xiě)本程序的過(guò)程中我對(duì)文件中數(shù)據(jù)的排序有了深刻的認(rèn)識(shí),并且學(xué)會(huì)指針的選擇排序,

41、但是不會(huì)將文件中的某一個(gè)數(shù)據(jù)刪除。</p><p><b>  參考文獻(xiàn)</b></p><p>  [5]譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社 2005 </p><p><b>  附錄1—用戶(hù)手冊(cè)</b></p><p>  點(diǎn)擊運(yùn)行,顯示主菜單,按菜單內(nèi)容選擇功能如圖7所示。</p

42、><p><b>  圖7 開(kāi)始界面</b></p><p>  上面的開(kāi)始界面出現(xiàn)后,輸入數(shù)字0進(jìn)入運(yùn)動(dòng)員信息查詢(xún)界面如圖8所示</p><p><b>  圖8查詢(xún)功能</b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入要添加的運(yùn)動(dòng)員數(shù)量如圖9所示</p><p&

43、gt;<b>  圖9輸入運(yùn)動(dòng)員數(shù)量</b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入姓名,如圖10所示</p><p>  圖10輸入運(yùn)動(dòng)員信息</p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,顯示功能輸入2顯示運(yùn)動(dòng)員信息如圖11所示</p><p><b>  圖11顯示功能<

44、/b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,刪除功能輸入3刪除運(yùn)動(dòng)員信息如圖12所示</p><p><b>  圖12刪除功能</b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,修改功能輸入4修改運(yùn)動(dòng)員信信。如圖13所示</p><p><b>  圖13修改功能</

45、b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序百米排序輸入5百米成績(jī)排序,如圖14所示</p><p><b>  圖14百米成績(jī)排名</b></p><p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入6三級(jí)跳成績(jī)排序,如圖15所示</p><p>  圖15三級(jí)跳成績(jī)排名</p><

46、;p>  輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序輸入7撐桿跳成績(jī)排序,如圖16所示</p><p>  圖16撐桿跳成績(jī)排名</p><p><b>  附錄2—源程序</b></p><p>  主要模塊的源代碼清單:#include<stdio.h></p><p>  #include<strin

47、g.h></p><p>  #include<stdlib.h></p><p>  #include"conio.h"</p><p>  #define N 20</p><p>  struct student</p><p>  {char num[20];</p&

48、gt;<p>  char name[10];</p><p>  float baimi;</p><p>  float sanjitiao;</p><p>  float chenggantiao;</p><p><b>  };</b></p><p>  void me

49、nu();</p><p>  int reads(struct student stu[N]);</p><p>  void save(struct student stu[N],int n);</p><p>  void search();</p><p>  void add();</p><p>  voi

50、d del();</p><p>  void sort(); </p><p>  void keep();</p><p>  void sheep();</p><p>  void query();</p><p>  void show();</p><p>  void change

51、();</p><p>  int reads(struct student stu[N]) // 讀取運(yùn)動(dòng)員文件中的內(nèi)容</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i=0;</b>&l

52、t;/p><p>  if((fp=fopen("c:\\student.txt","r"))==NULL)</p><p><b>  { </b></p><p>  printf("文件打開(kāi)失敗!\n");</p><p><b>  return

53、0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for(i=0;!feof(fp);i++)</p><p>  fscanf(f

54、p,"%s %s %f %f %f\n",stu[i].num,stu[i].name,&stu[i].baimi,&stu[i].sanjitiao,&stu[i].chenggantiao);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>&l

55、t;b>  return i;</b></p><p><b>  }</b></p><p>  void save(struct student stu[N],int n) // 運(yùn)動(dòng)員信息改變后更新文件</p><p><b>  {</b></p><p><b>

56、;  FILE *fp;</b></p><p><b>  int i=0;</b></p><p>  if((fp=fopen("c:\\student.txt","w"))==NULL)</p><p><b>  { </b></p><p&

57、gt;  printf("文件打開(kāi)失?。n");</p><p><b>  return ;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b><

58、;/p><p>  for(i=0;i<n;i++)</p><p>  fprintf(fp,"%s %s %f %f %f\n",stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggantiao);</p><p><b>  }</b>&

59、lt;/p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void search()//查詢(xún)運(yùn)動(dòng)員信息</p><p><b>  {</b></p><p>  int i=0,m;</p><p>  

60、char num[20];</p><p>  struct student stu[N];</p><p>  m=reads(stu);</p><p>  printf("請(qǐng)輸入運(yùn)動(dòng)員號(hào)碼:");</p><p>  scanf("%s",num);</p><p>  p

61、rintf("號(hào)碼\t姓名\t百米賽跑\t三級(jí)跳\t撐桿跳\t\n");</p><p>  for(i=0; i<m; i++)</p><p><b>  {</b></p><p>  if(strcmp(stu[i].num,num)==0)</p><p><b>  {&l

62、t;/b></p><p>  printf("\n%12s%11s%11.2f%12.2f%11.2f\n",stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggantiao);</p><p><b>  m++;</b></p><p&g

63、t;<b>  }</b></p><p><b>  }</b></p><p>  printf("----------------\n");</p><p><b>  }</b></p><p>  void add()/*添加運(yùn)動(dòng)員信息*/<

64、/p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int n,i;</b></p><p>  struct student stu;</p><p>  if((fp=fopen(&q

65、uot;c:\\student.txt","a"))==NULL) //如果文件已經(jīng)存在,可以追加學(xué)生信息</p><p><b>  {</b></p><p>  if((fp=fopen("c:\\student.txt","w"))==NULL) // 文件不存在時(shí),創(chuàng)建新文件,輸入學(xué)生信

66、息</p><p><b>  { </b></p><p>  printf("文件打開(kāi)失??!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>

67、  }</b></p><p>  printf("請(qǐng)輸入要添加的運(yùn)動(dòng)員數(shù)量,按回車(chē)鍵確認(rèn):"); </p><p>  scanf("%d",&n);</p><p>  for(i=1;i<=n;i++)</p><p><b>  { </b><

68、;/p><p>  printf("\n請(qǐng)輸入第%d個(gè)運(yùn)動(dòng)員的號(hào)碼、姓名,用空格分開(kāi),并按回車(chē)鍵確認(rèn):\n",i);</p><p>  scanf("%s%s",stu.num,stu.name);</p><p>  printf("\n請(qǐng)輸入第%d個(gè)運(yùn)動(dòng)員的百米賽跑、三級(jí)跳和撐桿跳三項(xiàng)成績(jī),用空格分開(kāi),并按回車(chē)鍵確

69、認(rèn):\n",i);</p><p>  scanf("%f%f%f",&stu.baimi,&stu.sanjitiao,&stu.chenggantiao);</p><p>  fprintf(fp,"%s %s %f %f %f\n",stu.num,stu.name,stu.baimi,stu.sanjiti

70、ao,stu.chenggantiao);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void show() // 運(yùn)動(dòng)員信息顯示函數(shù)</p><p><b>  

71、{</b></p><p>  struct student stu[N];</p><p><b>  int i,n;</b></p><p>  n=reads(stu);</p><p>  printf("*********************所有的學(xué)生信息如下************

72、**********\n\n");</p><p>  printf(" 序號(hào) 號(hào)碼 姓名 百米賽跑 三級(jí)跳 撐桿跳 \n");</p><p>  printf("*************************************************************\n&

73、quot;); </p><p>  for(i=0;i<n;i++)</p><p>  printf("\n%12s%11s%11.2f%12.2f%11.2f\n",stu[i].num,stu[i].name,stu[i].baimi,stu[i].sanjitiao,stu[i].chenggantiao);</p><p>&l

74、t;b>  getch();</b></p><p><b>  }</b></p><p>  void del() /*運(yùn)動(dòng)員信息刪除函數(shù)*/</p><p><b>  {</b></p><p>  struct student stu[N];</p>&l

75、t;p>  char number[20];</p><p>  int n,i,j;</p><p>  n=reads(stu);</p><p>  printf("\n請(qǐng)輸入要?jiǎng)h除信息運(yùn)動(dòng)員號(hào)碼,按回車(chē)鍵確認(rèn):");</p><p>  scanf("%s",number);</p&

76、gt;<p>  for(i=0;i<n;i++)</p><p>  if(strcmp(number,stu[i].num)==0) break;</p><p><b>  if(i>=n)</b></p><p><b>  {</b></p><p>  prin

77、tf("沒(méi)有找到該運(yùn)動(dòng)員信息!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

78、;<p>  for(j=i+1;j<n;j++)</p><p>  stu[j-1]=stu[j];</p><p><b>  }</b></p><p>  save(stu,n-1);</p><p>  printf("刪除成功!\n");</p><

79、;p><b>  }</b></p><p>  void change() //學(xué)生信息更改</p><p><b>  {</b></p><p>  struct student stu[N];</p><p><b>  int n,i;</b></p&g

80、t;<p>  char number[20];</p><p>  printf("\n請(qǐng)輸入要更改信息的學(xué)生學(xué)號(hào),按回車(chē)鍵確認(rèn):");</p><p>  scanf("%s",number);</p><p>  n=reads(stu);</p><p>  for(i=0;i&l

81、t;n;i++)</p><p>  if(strcmp(number,stu[i].num)==0)</p><p><b>  break;</b></p><p><b>  if(i>=n)</b></p><p><b>  {</b></p>&

82、lt;p>  printf("無(wú)此學(xué)生信息!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("\n請(qǐng)輸入更改后學(xué)生的號(hào)碼,姓名,百米賽跑、三級(jí)跳、撐桿跳三門(mén)成績(jī),按回車(chē)鍵確認(rèn):\n");<

83、;/p><p>  scanf("%s%s%f%f%f",stu[i].num,stu[i].name,&stu[i].baimi,&stu[i].sanjitiao,&stu[i].chenggantiao);</p><p>  save(stu,n);</p><p><b>  }</b><

84、/p><p>  void sort() // 按百米賽跑成績(jī)排名</p><p>  {struct student stu[N],temp;</p><p>  int i,j,n;</p><p>  n=reads(stu);</p><p>  for(i=0;i<n-1;i++)</p>

85、<p>  for(j=0;j<n-1;j++)</p><p><b>  {</b></p><p>  if(stu[j].baimi>stu[j+1].baimi)</p><p>  {temp=stu[j];</p><p>  stu[j]=stu[j+1];</p>&

86、lt;p>  stu[j+1]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  save(stu,n); j=1 ;</p><p>  printf("*********************百米賽跑成績(jī)排序結(jié)果如下

87、****************************\n\n");</p><p>  printf(" 名次 號(hào)碼 姓名 百米賽跑 成績(jī) \n");</p><p>  printf("*********************************************************

88、**************\n"); </p><p>  for(i=0;i<n;i++) // 輸出結(jié)果并排名</p><p><b>  { </b></p><p>  if(stu[i].baimi==stu[i+1].baimi)</p><p>  if(stu[i].baimi!=0)&

89、lt;/p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j,stu[i].num,stu[i].name,stu[i].baimi,stu[i].baimi);</p><p><b>  else</b></p><p>  printf("\n%3d%12s%11s\t\t

90、\t\t\n",j,stu[i].num,stu[i].name);</p><p><b>  else</b></p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j++,stu[i].num,stu[i].name,stu[i].baimi,stu[i].baimi);</p>

91、<p><b>  }</b></p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void keep() // 按三級(jí)跳成績(jī)排名</p><p>  {struct student stu[N],te

92、mp;</p><p>  int i,j,n;</p><p>  n=reads(stu);</p><p>  for(i=0;i<n-1;i++)</p><p>  for(j=0;j<n-1;j++)</p><p>  {if(stu[j].sanjitiao<stu[j+1].sanj

93、itiao){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}</p><p>  save(stu,n); j=1 ;</p><p>  printf("*********************三級(jí)跳成績(jī)排序結(jié)果如下****************************\n\n");</p><p>

94、;  printf(" 名次 號(hào)碼 姓名 三級(jí)跳 成績(jī) \n");</p><p>  printf("***********************************************************************\n"); </p><p>  for(i=0;i<

95、n;i++) // 輸出結(jié)果并排名</p><p><b>  { </b></p><p>  if(stu[i].sanjitiao==stu[i+1].sanjitiao)</p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j,stu[i].num,stu[i].name,s

96、tu[i].sanjitiao,stu[i].sanjitiao);</p><p><b>  else</b></p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j++,stu[i].num,stu[i].name,stu[i].sanjitiao,stu[i].sanjitiao);</p&g

97、t;<p><b>  }</b></p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void sheep() // 按三級(jí)跳成績(jī)排名</p><p>  {struct student stu[N

98、],temp;</p><p>  int i,j,n;</p><p>  n=reads(stu);</p><p>  for(i=0;i<n-1;i++)</p><p>  for(j=0;j<n-1;j++)</p><p>  {if(stu[j].chenggantiao<stu[j+

99、1].chenggantiao){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}</p><p>  save(stu,n); j=1 ;</p><p>  printf("*********************撐桿跳成績(jī)排序結(jié)果如下****************************\n\n");</p>

100、<p>  printf(" 名次 號(hào)碼 姓名 三級(jí)跳 成績(jī) \n");</p><p>  printf("***********************************************************************\n"); </p><p>  for

101、(i=0;i<n;i++) // 輸出結(jié)果并排名</p><p><b>  { </b></p><p>  if(stu[i].chenggantiao==stu[i+1].chenggantiao)</p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j,stu[i].n

102、um,stu[i].name,stu[i].chenggantiao,stu[i].chenggantiao);</p><p><b>  else</b></p><p>  printf("\n%3d%12s%11s%11.2f%11.2f\n",j++,stu[i].num,stu[i].name,stu[i].chenggantiao,s

103、tu[i].chenggantiao);</p><p><b>  }</b></p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void menu()</p><p><b>

104、  {</b></p><p>  printf("\n *********************** 運(yùn)動(dòng)員成績(jī)管理系統(tǒng)************************ ");</p><p>  printf("\n ********* 0 查詢(xún)運(yùn)動(dòng)員數(shù)據(jù) **

105、*******");</p><p>  printf("\n ********* 1 添加運(yùn)動(dòng)員數(shù)據(jù) *********");</p><p>  printf("\n ********* 2 顯示運(yùn)動(dòng)員數(shù)據(jù)

106、*********");</p><p>  printf("\n ********* 3 刪除運(yùn)動(dòng)員數(shù)據(jù) *********");</p><p>  printf("\n ********* 4 更改運(yùn)動(dòng)員數(shù)據(jù)

107、 *********");</p><p>  printf("\n ********* 5 百米成績(jī)排序 *********");</p><p>  printf("\n ********* 6 三級(jí)跳成績(jī)排序

108、 *********");</p><p>  printf("\n ********* 7 撐桿跳成績(jī)排序 *********");</p><p>  printf("\n ********* 8 退出

109、 *********");</p><p>  printf(" \n *******************************************************************");</p><p><b>  }</b></p><p>  void ma

110、in()</p><p>  { int n;</p><p><b>  while(1)</b></p><p><b>  { </b></p><p><b>  menu();</b></p><p>  printf("\n 請(qǐng)

111、輸入您要選擇的操作序號(hào),按回車(chē)鍵確認(rèn):");</p><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 0:search();break;&l

112、t;/p><p>  case 1: add();break;</p><p>  case 2: show();break;</p><p>  case 3: del();break;</p><p>  case 4: change();break;</p><p>  case 5: sort();break;&l

113、t;/p><p>  case 6: keep();break;</p><p>  case 7 :sheep();break;</p><p>  case 8: exit(0);</p><p>  default: printf("輸入錯(cuò)誤,請(qǐng)輸入列表中存在的序號(hào)!\n ");</p><p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論