《c語(yǔ)言綜合訓(xùn)練課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)》_第1頁(yè)
《c語(yǔ)言綜合訓(xùn)練課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)》_第2頁(yè)
《c語(yǔ)言綜合訓(xùn)練課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)》_第3頁(yè)
《c語(yǔ)言綜合訓(xùn)練課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)》_第4頁(yè)
《c語(yǔ)言綜合訓(xùn)練課程設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)》_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、沈航北方科技學(xué)院沈航北方科技學(xué)院 課程設(shè)計(jì)說(shuō)明書課程設(shè)計(jì)說(shuō)明書 課程名稱課程名稱 C C 語(yǔ)言綜合訓(xùn)練語(yǔ)言綜合訓(xùn)練 教教 學(xué)學(xué) 部部 工學(xué)一部工學(xué)一部 專專 業(yè)業(yè) 網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程 班班 級(jí)級(jí) B041111B041111 學(xué)學(xué) 號(hào)號(hào) 學(xué)生姓名學(xué)生姓名 指導(dǎo)教師指導(dǎo)教師 20112011 年年 9 9 月月 沈航北方科技學(xué)院沈航北方科技學(xué)院 課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書 教教 學(xué)學(xué) 部部 工學(xué)一部工學(xué)一部 專業(yè)專業(yè) 網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程 課程設(shè)計(jì)題目課程設(shè)計(jì)題目 運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì) 班級(jí)班級(jí) B041111 學(xué)號(hào)學(xué)號(hào) 姓名姓名 課程設(shè)計(jì)時(shí)間課程設(shè)計(jì)時(shí)間: : 201120

2、11 年年 8 8 月月 2929 日至日至 20112011 年年 9 9 月月 1515 日日 課程設(shè)計(jì)的內(nèi)容及要求:課程設(shè)計(jì)的內(nèi)容及要求: (一)主要內(nèi)容(一)主要內(nèi)容 設(shè)計(jì)一個(gè)運(yùn)動(dòng)會(huì)成績(jī)管理程序,主要實(shí)現(xiàn)以下功能: 1、檢錄功能,登錄參賽運(yùn)動(dòng)員的信息; 2、記錄成績(jī)功能,每項(xiàng)比賽結(jié)束后記錄參賽運(yùn)動(dòng)員的成績(jī); 3、針對(duì)不同比賽對(duì)運(yùn)動(dòng)員的成績(jī)排名次; 4、可對(duì)運(yùn)動(dòng)員的信息和成績(jī)進(jìn)行修改、刪除、查詢操作。 (二)基本要求(二)基本要求 1、系統(tǒng)采用 C 程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn); 2、獨(dú)立完成系統(tǒng)的設(shè)計(jì)、編碼和調(diào)試,通過指導(dǎo)教師當(dāng)場(chǎng)驗(yàn)收; 3、交出完整的課程設(shè)計(jì)報(bào)告。 三)主要參考書三)主要參考書

3、1 譚浩強(qiáng).C 程序設(shè)計(jì)(第三版). 北京:清華大學(xué)出版社,2005.7 2 高濤,陸麗娜.C 語(yǔ)言程序設(shè)計(jì).西安西安交通大學(xué)出版社,2007.2 (四)評(píng)語(yǔ)(四)評(píng)語(yǔ) (五)成績(jī)(五)成績(jī) 指導(dǎo)教師指導(dǎo)教師 史俊史俊 20112011 年年 7 7 月月 2 2 日日 負(fù)責(zé)教師負(fù)責(zé)教師 年年 月月 日日 運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì) 于碩 目錄 摘要.1 1.緒論.1 2.系統(tǒng)分析.1 2.1 功能需求.1 2.2 數(shù)據(jù)需求.2 2.3 性能需求.2 3.總體設(shè)計(jì).2 3.1 功能模塊設(shè)計(jì).2 3.2 系統(tǒng)設(shè)計(jì)方案.3 4詳細(xì)設(shè)計(jì).4 4.1 錄入信息模塊.4 4.2 查詢信息模塊 .5 4.3

4、修改信息模塊.7 4.4 刪除信息模塊.8 4.5 成績(jī)排名模塊.9 5調(diào)試和測(cè)試.11 5.1 測(cè)試.11 5.2 調(diào)試.11 6.結(jié)論.12 結(jié)束語(yǔ).12 參考文獻(xiàn).12 附錄 1用戶手冊(cè).13 附錄 2源程序.17 摘要摘要 運(yùn)動(dòng)會(huì)是一個(gè)全民健身的活動(dòng),在運(yùn)動(dòng)會(huì)里可以提高人們的身體素質(zhì),培養(yǎng)人們的素 養(yǎng)。在參加運(yùn)動(dòng)會(huì)的過程中我們可以看到激情和友情的碰撞,人們用自己的實(shí)力來(lái)贏得 第一。開發(fā)本系統(tǒng)是為了更方便,在運(yùn)動(dòng)會(huì)中做比賽數(shù)據(jù)的記錄,方便記錄比賽成績(jī)。 本系統(tǒng)使用 C 語(yǔ)言作為開發(fā)語(yǔ)言。實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)會(huì)的結(jié)果提示以及對(duì)成績(jī)的儲(chǔ)存和對(duì) 成績(jī)的排名。 本文從分析課題的題目背景、題目意義、題目要

5、求等出發(fā),分別從需求分析、總體設(shè) 計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試等各個(gè)方面詳細(xì)介紹了系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程,最后對(duì)系統(tǒng)的完成 情況進(jìn)行了總結(jié)。 關(guān)鍵詞:C 語(yǔ)言;運(yùn)動(dòng)會(huì);信息管理 1.1.緒論緒論 運(yùn)動(dòng)會(huì)成績(jī)管理程序設(shè)計(jì)的開發(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)必不可少的活動(dòng),所以開發(fā)這個(gè)系統(tǒng)可以使運(yùn)動(dòng)會(huì)成績(jī)的記錄變的更加方便。 設(shè)計(jì)一個(gè)運(yùn)動(dòng)會(huì)成績(jī)管理程序,主要實(shí)現(xiàn)以下功能: 1、檢錄功能,登錄參賽運(yùn)動(dòng)員的信息; 2、記錄成績(jī)功能,每項(xiàng)

6、比賽結(jié)束后記錄參賽運(yùn)動(dòng)員的成績(jī); 3、針對(duì)不同比賽對(duì)運(yùn)動(dòng)員的成績(jī)排名次; 4、可對(duì)運(yùn)動(dòng)員的信息和成績(jī)進(jìn)行修改、刪除、查詢操作。 2.2.系統(tǒng)分析系統(tǒng)分析 2.12.1 功能需求功能需求 本系統(tǒng)要求對(duì)運(yùn)動(dòng)員的信息進(jìn)行登錄修改,記錄,查詢,要求可以對(duì)運(yùn)動(dòng)員的成績(jī) 進(jìn)行單項(xiàng)排名。主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)運(yùn)動(dòng)員數(shù)據(jù)的錄入以及其后的運(yùn)行數(shù)據(jù)的追加 功能,實(shí)現(xiàn)的功能是按照號(hào)碼對(duì)運(yùn)動(dòng)員的數(shù)據(jù)記錄進(jìn)行修改、記錄、查詢、刪除,按照 題目的具體要求實(shí)現(xiàn)的是某項(xiàng)成績(jī)的遞減排序以及名次顯示。 2.2 數(shù)據(jù)需求數(shù)據(jù)需求 在這些函數(shù)當(dāng)中,添加運(yùn)動(dòng)員數(shù)據(jù)函數(shù)例如運(yùn)動(dòng)員序號(hào)、運(yùn)動(dòng)員名稱、百米賽跑成 績(jī)、三級(jí)跳成績(jī)和撐桿跳成績(jī)。

7、 2.3 性能需求性能需求 本系統(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ī) 3.3.總體設(shè)計(jì)總體設(shè)計(jì) 3.13.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì) 經(jīng)過對(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)

8、動(dòng)員信息、查詢信息模塊是查詢運(yùn)動(dòng)員信息的、修 改信息模塊可以對(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)行排名,功能模塊見圖 1 所示。 圖圖 1 1 功能模塊圖功能模塊圖 3.2 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案 本系統(tǒng)中用到了結(jié)構(gòu)體數(shù)組和數(shù)據(jù)的存儲(chǔ)。該結(jié)構(gòu)體數(shù)組中包含字符串,系統(tǒng)的設(shè)計(jì) 方案如下: (1)數(shù)據(jù)結(jié)構(gòu) struct student char num20;/運(yùn)動(dòng)員號(hào)碼 char name10;/運(yùn)動(dòng)員名字 float baimi;/百米賽跑成績(jī) float sanjitiao;/三級(jí)跳成績(jī) float chenggantiao;/撐桿跳成績(jī) ; (

9、2)菜單 設(shè)計(jì)一個(gè)總菜單,0、查詢運(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)中。 (3) 函數(shù) 定義了 12 個(gè)函數(shù) void menu(); int reads(struct student stuN);/讀取運(yùn)動(dòng)員信息 void save(struct student stuN,int n);/儲(chǔ)存運(yùn)動(dòng)員信息 void search();/查詢運(yùn)動(dòng)員信息 void add();/添加運(yùn)動(dòng)員信息 void del();/刪除運(yùn)動(dòng)員信息

10、 void sort();/ 按百米賽跑成績(jī)查詢 void keep();/按三級(jí)跳成績(jī)查詢 void sheep();/按撐桿跳成績(jī)查詢 void query();/退出程序 void show();/顯示運(yùn)動(dòng)員信息 void change();/更改運(yùn)動(dòng)員信息 4 4詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4.14.1 錄入信息模塊錄入信息模塊 1. 添加數(shù)據(jù)函數(shù) 添加數(shù)據(jù)分為兩種情況,其一是在運(yùn)動(dòng)員文件(student.txt)不存在的情況下,首 先由程序創(chuàng)建一個(gè)新文件,并將錄入的運(yùn)動(dòng)員信息寫入該文件當(dāng)中;其二是在運(yùn)動(dòng)員文 件(student.txt)已經(jīng)存在的情況下,此時(shí)文件以追加的方式打開,這樣才可以保證

11、以 前已經(jīng)存在的數(shù)據(jù)不丟失。 開始 Fp=fopen(“c:student.txt”a ”)=NULL FILE*fp;int n,I; struct student stu; Fp=fopen(“c:student.txt”,”w ”)=NULL “文件打開失??!n” 輸入要添加 運(yùn)動(dòng)員數(shù)量 i=1 Scanf(”%s%s”,stu.num, ); Scanf(“%f%f%f”, Fprintf(fp,”%s%s%f%f%fn”,stu.n um,,stu.baimi,stu.sanjitiao ,stu.chenggantiao); i+ i=n fclos

12、e(fp); 結(jié)束 Y Y Y N N N 圖圖 2 2 錄入信息流程圖錄入信息流程圖 4.2 查查詢?cè)冃判畔⑾⒛DK塊 查詢文件是在以存的運(yùn)動(dòng)員信息中進(jìn)行查詢,可對(duì)運(yùn)動(dòng)員信息進(jìn)行查詢顯示運(yùn)動(dòng)員信 息。通過錄入運(yùn)動(dòng)員號(hào)碼 num ,與 stui.num 做比較,結(jié)果相同進(jìn)行 m+,m=reads(stu);來(lái)提取文件中的數(shù)據(jù) 開始 Inti=0.m;charnum20; structstudent stuN;m=reads(stu); Scanf(“%s”,num ); i=0 im Strcmp(stui,num,n um=0) 輸出信息 結(jié)束 i+ Y Y N N 圖圖 3 3 查詢信息流

13、程圖查詢信息流程圖 4.3 修改信息模塊修改信息模塊 修改信息是對(duì)運(yùn)動(dòng)員信息進(jìn)行修改,通過輸入 number 與 stui.num 比較,如果相同 進(jìn)行 n=reads(stu)來(lái)提取信息在對(duì)信息進(jìn)行修改。 圖圖 4 4 修改信息流程圖修改信息流程圖 4.4 刪除信息模塊刪除信息模塊 該函數(shù)的核心內(nèi)容是刪除算法以及最終對(duì)源文件的更新。該函數(shù)執(zhí)行時(shí),首先調(diào) 用 reads 函數(shù)將文件中的運(yùn)動(dòng)員信息讀入數(shù)組當(dāng)中,并由用戶輸入待刪除運(yùn)動(dòng)員的號(hào)碼, 而后按照該號(hào)碼進(jìn)行查找,如果文件中存在該運(yùn)動(dòng)員的數(shù)據(jù),則采用刪除算法刪除,否 則輸出運(yùn)動(dòng)員信息不存在的提示信息。對(duì)運(yùn)動(dòng)員信息的具體刪除算法是在結(jié)構(gòu)體數(shù)組中

14、 實(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)了刪除。 開始 結(jié)束 Struct student stuN;char number20;int n,I,j; n=reads(stu); Scanf(“$s” ,number); i-0 i=n 沒有找到該 運(yùn)動(dòng)員信息 J=i+1 Stuj-1 stuj; Save(stu,n-1); J+Jn I+ N Y N Y N Y 圖圖 5 5 刪除信息流程圖刪除信息流程圖 4.5 成績(jī)排名模塊成績(jī)排名模塊 對(duì)于某項(xiàng)的排序采用的排序算

15、法是冒泡法排序,整個(gè)排序過程在結(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àng)成績(jī)排序函數(shù)相同,所以只給出百米賽跑排名程 序): 圖圖 6 6 成績(jī)排名流程圖成績(jī)排名流程圖 5調(diào)試和測(cè)試調(diào)試和測(cè)試 5.1 測(cè)試測(cè)試 測(cè)試是在完成某一部分功能和全部功能后,根據(jù)功能和性能的需求,看看系統(tǒng)有沒 有實(shí)現(xiàn)要求中的功能,是否達(dá)到性能要求。系統(tǒng)測(cè)試是軟件生存期中的一個(gè)

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

17、 百米賽跑 9.8 三級(jí)跳 7 撐桿跳 4。顯示信息即顯示添加的數(shù)據(jù) ,修改數(shù)據(jù),查詢數(shù)據(jù),現(xiàn)在測(cè)試系統(tǒng)是否能夠正確顯 示錄入的所有運(yùn)動(dòng)員信息,當(dāng)系統(tǒng)中已存入一定的運(yùn)動(dòng)員信息當(dāng)執(zhí)行瀏覽功能時(shí),系統(tǒng) 會(huì)將運(yùn)動(dòng)員信息全部列出,當(dāng)系統(tǒng)未存入任何信息是顯示無(wú)運(yùn)動(dòng)員信息 。 測(cè)試成功,顯示正確,完成測(cè)試。 5.2 調(diào)試調(diào)試 調(diào)試是程序編寫中的一個(gè)重要環(huán)節(jié),也是最復(fù)雜,對(duì)程序編寫者來(lái)說(shuō)是一項(xiàng)艱巨的任 務(wù)。調(diào)試的任務(wù)就是及時(shí)改正測(cè)試過程中發(fā)現(xiàn)的錯(cuò)誤。具體地說(shuō),調(diào)試過程由兩個(gè)步驟 組成,它是從程序中存在錯(cuò)誤的某種跡象開始的。首先是確定錯(cuò)誤的準(zhǔn)確位置,也就是 找出是哪個(gè)模塊或哪個(gè)語(yǔ)句引起的錯(cuò)誤。然后仔細(xì)研究推斷

18、代碼以確定問題的原因,并 設(shè)法改正。 調(diào)試過程主要是運(yùn)行編制好的程序,然后遇到錯(cuò)誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問 題所在。本系統(tǒng)調(diào)試過程中遇到問題、原因和解決方法如下面介紹: (1)程序運(yùn)行不順利 在程序運(yùn)行的過程中出現(xiàn)死循環(huán)、不運(yùn)行和提前結(jié)束。原因是程序中出現(xiàn)了邏輯錯(cuò)誤, 進(jìn)入查詢頁(yè)面后,查詢的時(shí)候顯示的是邏輯錯(cuò)誤。沒有寫讀取文件的函數(shù) m=reads(stu); 所以讀取不了存儲(chǔ)的文件 (2)無(wú)法將排完序的數(shù)據(jù)寫入到文本文件 stu_list.txt 中去 原因是讀寫文件的方式不對(duì)。 6.結(jié)論結(jié)論 經(jīng)過一段時(shí)間的學(xué)習(xí),制作我的運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)完成了,但只能說(shuō)是粗略的完成。 雖然說(shuō)還存在一

19、寫不足的地方,但基本實(shí)現(xiàn)了任務(wù)說(shuō)上得所有要求,發(fā)現(xiàn)錯(cuò)誤并及時(shí)修 改,她能夠統(tǒng)計(jì)學(xué)生的比賽成績(jī)和通過成績(jī)進(jìn)行排名,我設(shè)計(jì)的成績(jī)還存在一定的不足, 一開始是沒有查詢功能的 ,經(jīng)過我不斷地努力把程序進(jìn)行了完善,讓它變的更加實(shí)用。 結(jié)束語(yǔ)結(jié)束語(yǔ) 經(jīng)過兩個(gè)星期的思考,設(shè)計(jì),編程,我真的感到這不是一件簡(jiǎn)單容易的事情。C 語(yǔ)言 綜合訓(xùn)練考察的并不僅僅是我們的基礎(chǔ)知識(shí),還有思維上得活躍性,創(chuàng)新性,以及我們 的動(dòng)手能力。讓我了解到要想又好又快地完成一個(gè)程序,必須要有堅(jiān)實(shí)的基礎(chǔ)和認(rèn)真的 編寫過程。在寫本程序的過程中我對(duì)文件中數(shù)據(jù)的排序有了深刻的認(rèn)識(shí),并且學(xué)會(huì)指針 的選擇排序,但是不會(huì)將文件中的某一個(gè)數(shù)據(jù)刪除。 參

20、考文獻(xiàn)參考文獻(xiàn) 5譚浩強(qiáng).C 程序設(shè)計(jì).北京:清華大學(xué)出版社 2005 附錄附錄 1 1用戶手冊(cè)用戶手冊(cè) 點(diǎn)擊運(yùn)行,顯示主菜單,按菜單內(nèi)容選擇功能如圖 7 所示。 圖圖 7 7 開始界面開始界面 上面的開始界面出現(xiàn)后,輸入數(shù)字 0 進(jìn)入運(yùn)動(dòng)員信息查詢界面如圖 8 所示 圖圖 8 8 查詢功能查詢功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入要添加的運(yùn)動(dòng)員數(shù)量如圖 9 所示 圖圖 9 9 輸入運(yùn)動(dòng)員數(shù)量輸入運(yùn)動(dòng)員數(shù)量 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入姓名,如圖 10 所示 圖圖 10 輸入運(yùn)動(dòng)員信息輸入運(yùn)動(dòng)員信息 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,顯示功能輸入 2 顯示運(yùn)動(dòng)員信息如圖 11

21、所示 圖圖 1111 顯示功能顯示功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,刪除功能輸入 3 刪除運(yùn)動(dòng)員信息如圖 12 所示 圖圖 1212 刪除功能刪除功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,修改功能輸入 4 修改運(yùn)動(dòng)員信信。如圖 13 所示 圖圖 1313 修改功能修改功能 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序百米排序輸入 5 百米成績(jī)排序,如圖 14 所示 圖圖 1414 百米成績(jī)排名百米成績(jī)排名 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序,輸入 6 三級(jí)跳成績(jī)排序,如圖 15 所示 圖圖 1515 三級(jí)跳成績(jī)排名三級(jí)跳成績(jī)排名 輸入菜單對(duì)應(yīng)的數(shù)字,進(jìn)入相應(yīng)程序輸入 7 撐桿跳成績(jī)排序,如圖 16 所示

22、 圖圖 1616 撐桿跳成績(jī)排名撐桿跳成績(jī)排名 附錄附錄 2源程序源程序 主要模塊的源代碼清單:#include #include #include #includeconio.h #define N 20 struct student char num20; char name10; float baimi; float sanjitiao; float chenggantiao; ; void menu(); int reads(struct student stuN); void save(struct student stuN,int n); void search(); void a

23、dd(); void del(); void sort(); void keep(); void sheep(); void query(); void show(); void change(); int reads(struct student stuN) / 讀取運(yùn)動(dòng)員文件中的內(nèi)容 FILE *fp; int i=0; if(fp=fopen(c:student.txt,r)=NULL) printf(文件打開失??!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %f %f %fn,stui.num,,

24、fclose(fp); return i; void save(struct student stuN,int n) / 運(yùn)動(dòng)員信息改變后更新文件 FILE *fp; int i=0; if(fp=fopen(c:student.txt,w)=NULL) printf(文件打開失??!n); return ; else for(i=0;in;i+) fprintf(fp,%s %s %f %f %fn,stui.num,,stui.baimi,stui.sanjitiao,stui.chenggantia o); fclose(fp); void search()/查詢運(yùn)動(dòng)員信

25、息 int i=0,m; char num20; struct student stuN; m=reads(stu); printf(請(qǐng)輸入運(yùn)動(dòng)員號(hào)碼:); scanf(%s,num); printf(號(hào)碼t 姓名t 百米賽跑t 三級(jí)跳t 撐桿跳tn); for(i=0; im; i+) if(strcmp(stui.num,num)=0) printf(n%12s%11s%11.2f%12.2f%11.2fn,stui.num,,stui.baimi,s tui.sanjitiao,stui.chenggantiao); m+; printf(-n); void add()

26、/*添加運(yùn)動(dòng)員信息*/ FILE *fp; int n,i; struct student stu; if(fp=fopen(c:student.txt,a)=NULL) /如果文件已經(jīng)存在,可以追 加學(xué)生信息 if(fp=fopen(c:student.txt,w)=NULL) / 文件不存在時(shí),創(chuàng)建新 文件,輸入學(xué)生信息 printf(文件打開失敗!n); return; printf(請(qǐng)輸入要添加的運(yùn)動(dòng)員數(shù)量,按回車鍵確認(rèn):); scanf(%d, for(i=1;i=n;i+) printf(n 請(qǐng)輸入第%d 個(gè)運(yùn)動(dòng)員的號(hào)碼、姓名,用空格分開,并按回車鍵確 認(rèn):n,i); scanf(

27、%s%s,stu.num,); printf(n 請(qǐng)輸入第%d 個(gè)運(yùn)動(dòng)員的百米賽跑、三級(jí)跳和撐桿跳三項(xiàng)成績(jī),用空格分開, 并按回車鍵確認(rèn):n,i); scanf(%f%f%f, fprintf(fp,%s %s %f %f %fn,stu.num,,stu.baimi,stu.sanjitiao,stu.chenggantiao); fclose(fp); void show() / 運(yùn)動(dòng)員信息顯示函數(shù) struct student stuN; int i,n; n=reads(stu); printf(*所有的學(xué)生信息如下 *nn); printf( 序號(hào) 號(hào)

28、碼 姓名 百米賽跑 三級(jí)跳 撐桿跳 n); printf(*n); for(i=0;in;i+) printf(n%12s%11s%11.2f%12.2f%11.2fn,stui.num,,stui.baimi,s tui.sanjitiao,stui.chenggantiao); getch(); void del() /*運(yùn)動(dòng)員信息刪除函數(shù)*/ struct student stuN; char number20; int n,i,j; n=reads(stu); printf(n 請(qǐng)輸入要?jiǎng)h除信息運(yùn)動(dòng)員號(hào)碼,按回車鍵確認(rèn):); scanf(%s,number); for

29、(i=0;i=n) printf(沒有找到該運(yùn)動(dòng)員信息!n); return; else for(j=i+1;jn;j+) stuj-1=stuj; save(stu,n-1); printf(刪除成功!n); void change() /學(xué)生信息更改 struct student stuN; int n,i; char number20; printf(n 請(qǐng)輸入要更改信息的學(xué)生學(xué)號(hào),按回車鍵確認(rèn):); scanf(%s,number); n=reads(stu); for(i=0;i=n) printf(無(wú)此學(xué)生信息!); return; printf(n 請(qǐng)輸入更改后學(xué)生的號(hào)碼,姓名,

30、百米賽跑、三級(jí)跳、撐桿跳三門成績(jī), 按回車鍵確認(rèn):n); scanf(%s%s%f%f%f,stui.num,, save(stu,n); void sort() / 按百米賽跑成績(jī)排名 struct student stuN,temp; int i,j,n; n=reads(stu); for(i=0;in-1;i+) for(j=0;jstuj+1.baimi) temp=stuj; stuj=stuj+1; stuj+1=temp; save(stu,n); j=1 ; printf(*百米賽跑成績(jī)排序結(jié)果如下 *nn); printf( 名次 號(hào)碼 姓名 百米賽跑 成

31、績(jī) n); printf(* *n); for(i=0;in;i+) / 輸出結(jié)果并排名 if(stui.baimi=stui+1.baimi) if(stui.baimi!=0) printf(n%3d%12s%11s%11.2f%11.2fn,j,stui.num,,stui.baimi,s tui.baimi); else printf(n%3d%12s%11sttttn,j,stui.num,); else printf(n%3d%12s%11s%11.2f%11.2fn,j+,stui.num,,stui.baimi, stui.

32、baimi); getch(); void keep() / 按三級(jí)跳成績(jī)排名 struct student stuN,temp; int i,j,n; n=reads(stu); for(i=0;in-1;i+) for(j=0;jn-1;j+) if(stuj.sanjitiaostuj+1.sanjitiao)temp=stuj;stuj=stuj+1;stuj+1= temp; save(stu,n); j=1 ; printf(*三級(jí)跳成績(jī)排序結(jié)果如下 *nn); printf( 名次 號(hào)碼 姓名 三級(jí)跳 成績(jī) n); printf(* *n); for(i=0;in;i+) / 輸

33、出結(jié)果并排名 if(stui.sanjitiao=stui+1.sanjitiao) printf(n%3d%12s%11s%11.2f%11.2fn,j,stui.num,,stui.sanjitia o,stui.sanjitiao); else printf(n%3d%12s%11s%11.2f%11.2fn,j+,stui.num,,stui.sanjit iao,stui.sanjitiao); getch(); void sheep() / 按三級(jí)跳成績(jī)排名 struct student stuN,temp; int i,j,n; n=reads(s

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論