版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)簡(jiǎn)單管理程序
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)簡(jiǎn)單管理程序
- c語(yǔ)言課程程序設(shè)計(jì)——校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
- c++編程課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)查詢(xún)系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)程序設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)
- c課程設(shè)計(jì)報(bào)告-- c語(yǔ)言程序設(shè)計(jì)
- 《c語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))源程序
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告—宿舍管理系統(tǒng)
- 《c++語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 《c語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)推箱子
- 《程序設(shè)計(jì)語(yǔ)言(c++)》課程設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)(論文)-迷宮
- 《c語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)指導(dǎo)手冊(cè)()
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--校際運(yùn)動(dòng)會(huì)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論