版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、. . . . 摘要運動會管理系統(tǒng)是典型的信息管理系統(tǒng),該系統(tǒng)屬簡易類型,可以完成運動會管理中的基本操作,包括數(shù)據(jù)信息的錄入、數(shù)據(jù)的修改、數(shù)據(jù)的刪除和數(shù)據(jù)的顯示。本文中的系統(tǒng)程序合理,簡單易懂。同時,對系統(tǒng)的開發(fā)原理,系統(tǒng)的功能特點和設(shè)計方案進(jìn)行了介紹。通過流程圖和截圖說明了系統(tǒng)的運行情況,接著又進(jìn)行數(shù)據(jù)測試,得到結(jié)果進(jìn)行分析,得出本系統(tǒng)的優(yōu)點和不足。根據(jù)更高的需求,可以在這簡易系統(tǒng)的原理下,可以進(jìn)一步增加數(shù)據(jù),提高實用性。關(guān)鍵詞:運動會;管理系統(tǒng);c語言25 / 28AbstractGames management system is typical of information manag
2、ement systems, we made this system is a simple type, you can complete the games management the basic operations, including data entry, data modification, data deletion and data display. This article first to use VC+6.0 to write programming tools, the program reasonable, simple and understandable. At
3、 the same time, principles of system development, system characteristics and design features were introduced. Provides flow diagrams and screenshots illustrate the operation of the system; data went on to have a test, analyze results and concluded that the strengths and weaknesses of the system. Acc
4、ording to the higher demand, can in principle with this simple system, data can be further increased, improving usability.Keywords: sports competition;management system ;c language目 錄1概述11.1設(shè)計題目與要求11.2系統(tǒng)功能需求分析12總體設(shè)計32.1系統(tǒng)功能模塊圖33詳細(xì)設(shè)計43.1工作流程圖43.1.1 添加運動員數(shù)據(jù)函數(shù)43.1.2顯示運動員數(shù)據(jù)函數(shù)63.1.3刪除運動員數(shù)據(jù)函數(shù)73.1.4更改運動員數(shù)據(jù)
5、函數(shù)84調(diào)試分析104.1測試數(shù)據(jù)與其結(jié)果分析104.2源程序135總結(jié)23參考文獻(xiàn)24致251概述本運動會管理系統(tǒng)是典型的信息管理系統(tǒng),我們所做的該系統(tǒng)屬簡易類型,可以完成運動會管理中的基本操作,可以幫助裁判員記錄和分析運動員的成績以與排名情況,有效的減少裁判員的工作壓力,還可以減少不必要的錯誤出現(xiàn)。1.1設(shè)計題目與要求1.運動會成績管理系統(tǒng)的界面為漢字界面,輸出輸入均用漢字,并有操作提示,讓用戶如何操作;2.添加運動員數(shù)據(jù):錄入運動員信息,錄入?yún)①愡\動員數(shù)量、編號、等;3.錄入成績:錄入運動員各項目的成績;4.查詢所有運動員信息:并可自定義規(guī)則進(jìn)行排序;5. 刪除運動員數(shù)據(jù):可刪除各個運動
6、員的信息;6. 修改運動員數(shù)據(jù):可以修改運動員的數(shù)據(jù)。1.2系統(tǒng)功能需求分析對程序設(shè)計題目的分析可知,整個程序的設(shè)計實現(xiàn)大致分為十一個模塊,每一個模塊對應(yīng)一個函數(shù)。在這些函數(shù)當(dāng)中,添加運動員數(shù)據(jù)函數(shù),刪除數(shù)據(jù)函數(shù),修改數(shù)據(jù)函數(shù)和顯示數(shù)據(jù)函數(shù)是嚴(yán)格按照題目的要求,而按某項成績排序函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對其它函數(shù)的實現(xiàn)起輔助作用,主函數(shù)與菜單函數(shù)控制程序的整體運行。1.添加運動員數(shù)據(jù)函數(shù) :主要實現(xiàn)程序最初運行時運動員數(shù)據(jù)的錄入以與其后的運行中運動員數(shù)據(jù)的追加功能;2. 刪除運動員數(shù)據(jù)函數(shù):實現(xiàn)的功能是按照對運動員的數(shù)據(jù)記錄進(jìn)行刪除;3.排序函數(shù) :按照題目的具體要現(xiàn)的是某項
7、成績的遞減排序以與名次顯示,其中總成績一樣者名次一樣;4. 更改數(shù)據(jù)函數(shù):可以實現(xiàn)對運動員的各項信息進(jìn)行修改;5. 顯示函數(shù):實現(xiàn)的是顯示目前所有的有效運動員記錄信息。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。每一個運動員記錄都包含、,以與百米賽跑、鉛球、跳高和跳遠(yuǎn)四門成績,在程序當(dāng)中,將運動員記錄類型定義為結(jié)構(gòu)體類型,添加以與追加的運動員信息直接寫入E盤的student.txt文件中,其它函數(shù)每次對運動員記錄的訪問,其數(shù)據(jù)來源都是student.txt文件,這樣做不但可以保證運動員數(shù)據(jù)的一致性,而且可以對運動員數(shù)據(jù)進(jìn)行永久
8、保存,保證每次運行程序都可以采用原來的數(shù)據(jù)。2總體設(shè)計2.1系統(tǒng)功能模塊圖:運動會成績管理系統(tǒng)主要由四部分管理模塊組成,分別是添加模塊、顯示模塊、刪除模塊和更改模塊,圖示如下:運動會成績管理系統(tǒng)添加運動員數(shù)據(jù)顯示運動員數(shù)據(jù)刪除運動員數(shù)據(jù)更改運動員數(shù)據(jù)圖2.1系統(tǒng)功能模塊圖3詳細(xì)設(shè)計3.1工作流程圖顯示一系列功能選項輸入n,判斷n是否是1-9根據(jù)n的值調(diào)用各模塊函數(shù)本程序主要由11個自定義函數(shù)和一個主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來實現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,添加運動員數(shù)據(jù)函數(shù)、刪除數(shù)據(jù)函數(shù)、更改數(shù)據(jù)函數(shù)、顯示數(shù)據(jù)函數(shù)是程序中較為核心的部分,此外還可以對運動員的成績進(jìn)行排序
9、。下面分別進(jìn)行說明。 N Y 圖3.1主函數(shù)數(shù)據(jù)工作流程圖Y 輸入n判斷n添加數(shù)據(jù)函數(shù)開始選擇其他操作N3.1.1添加運動員數(shù)據(jù)函數(shù)圖3.1添加數(shù)據(jù)流程圖具體程序段如下: FILE *fp; int n,i; struct student stu; if(fp=fopen(e:student.txt,a)=NULL) /如果文件已經(jīng)存在,可以追加學(xué)生信息 if(fp=fopen(e:student.txt,w)=NULL) / 文件不存在時,創(chuàng)建新文件,輸入學(xué)生信息 printf(文件打開失敗!n); return; printf(請輸入要添加的運動員數(shù)量,按回車鍵確認(rèn):); scanf(%d
10、,&n); for(i=1;i=n;i+) printf(n請輸入第%d個運動員的、,用空格分開,并按回車鍵確認(rèn):n,i); scanf(%s%s,stu.num,); printf(n請輸入第%d個運動員的百米賽跑、鉛球、跳高和跳遠(yuǎn)四項成績,用空格分開,并按回車鍵確認(rèn):n,i); scanf(%f%f%f%f,&stu.baimi,&stu.qianqiu,&stu.tiaogao,&stu.tiaoyuan);fprintf(fp,%s %s %f %f %f %fn,stu.num,,stu.baimi,stu.qianqiu,stu.tiaogao,st
11、u.tiaoyuan); fclose(fp);輸入n 判斷n顯示運動員數(shù)據(jù)開始選擇其他操作N3.1.2顯示運動員數(shù)據(jù)函數(shù) Y圖3.2顯示數(shù)據(jù)流程圖shhhkjjjjkkjshufvhbvjxvfjiioszjioziokfjdskdfjvkkdkliuliuchengDDSCDCKJHKKJCKDCNMNMKKLIUCHENGTU具體程序段如下:struct student stuN;int i,n;n=reads(stu);printf(*所有的學(xué)生信息如下*nn);printf( 序號 百米賽跑 鉛球 跳高 跳遠(yuǎn) n);printf(*n); for(i=0;in;i+)printf(n
12、%3d%12s%11s%11.2f%12.2f%11.2f%11.2fn,i+1,stui.num,,stui.baimi,stui.qianqiu,stui.tiaogao,stui.tiaoyuan);getch();3.1.3刪除運動員數(shù)據(jù)函數(shù)輸入n判斷n刪除運動員數(shù)據(jù)開始選擇其他操作NY圖3.3刪除數(shù)據(jù)流程圖具體程序段如下:struct student stuN;char number20;int n,i,j;n=reads(stu);printf(n請輸入要刪除信息運動員,按回車鍵確認(rèn):);scanf(%s,number);for(i=0;i=n)printf(沒有
13、找到該運動員信息!n);return;elsefor(j=i+1;jn;j+)stuj-1=stuj;save(stu,n-1);printf(刪除成功!n);3.1.4 更改運動員數(shù)據(jù)函數(shù)輸入n判斷n更改運動員數(shù)據(jù)開始選擇其他操作YN 圖3.4更改數(shù)據(jù)流程圖具體程序段如下: struct student stuN; int n,i; char number20; printf(n請輸入要更改信息的學(xué)生學(xué)號,按回車鍵確認(rèn):); scanf(%s,number); n=reads(stu); for(i=0;i=n) printf(無此學(xué)生信息!); return; printf(n請輸入更改后
14、學(xué)生的,百米賽跑、鉛球、跳高、跳遠(yuǎn)四門成績,按回車鍵確認(rèn):n);scanf(%s%s%f%f%f%f,stui.num,,&stui.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); save(stu,n);4調(diào)試分析4.1測試數(shù)據(jù)與結(jié)果分析圖4.1主菜單函數(shù)界面圖4.2數(shù)據(jù)錄入 圖4.3 數(shù)據(jù)顯示 圖4.4 數(shù)據(jù)更改圖4.5 數(shù)據(jù)排序按照測試結(jié)果初步分析可見,當(dāng)n值的輸入符合預(yù)先設(shè)定在19之間時,將會執(zhí)行相對應(yīng)的函數(shù)模塊;當(dāng)n值不在這個圍時程序?qū)霈F(xiàn)錯誤提示,主界面將會再次彈出,用戶需重新輸入??偟膩碚f,本程序基本符合設(shè)
15、計要求,可以實現(xiàn)設(shè)計要求的各項操作。本系統(tǒng)操作比較簡單,提示清晰。但是本系統(tǒng)還是存在一些不足,如界面比較簡單等,具有一定的局限性。4.2源程序:#include#include#includeconio.h#define N 20struct studentchar num20; char name10; float baimi; float qianqiu; float tiaogao; float tiaoyuan;void menu();int reads(struct student stuN);void save(struct student stuN,int n);void add
16、();void del();void sort(); void kdie();void keep();void sheep();void query();void show();void change();void main() int n; while(1) menu();printf(n 請輸入您要選擇的操作序號,按回車鍵確認(rèn):); scanf(%d,&n); switch(n) case 1: add();break; case 2: show();break; case 3: del();break; case 4: change();break; case 5: sort();bre
17、ak; case 6:kdie();break; case 7: keep();break; case 8 :sheep();break; case 9: exit(0); default: printf(輸入錯誤,請輸入列表中存在的序號!n ); void menu() printf(n * 運動員成績管理系統(tǒng)*); printf(n * 1 添加運動員數(shù)據(jù) *); printf(n * 2 顯示運動員數(shù)據(jù) *); printf(n * 3 刪除運動員數(shù)據(jù) *); printf(n * 4 更改運動員數(shù)據(jù) *); printf(n * 5 百米成績排序 *); printf(n * 6 鉛球
18、成績排序 *); printf(n * 7 跳高成績排序 *); printf(n * 8 跳遠(yuǎn)成績排序 *); printf(n * 9 退出 *); printf(n*);int reads(struct student stuN) / 讀取運動員文件中的容 FILE *fp; int i=0; if(fp=fopen(e:student.txt,r)=NULL) printf(文件打開失敗!n); return 0; elsefor(i=0;!feof(fp);i+)scanf(fp,%s %s %f %f %f %fn,stui.num,,&stui.baimi,&s
19、tui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); fclose(fp); return i;void save(struct student stuN,int n) / 運動員信息改變后更新文件 FILE *fp; int i=0;if(fp=fopen(e:student.txt,w)=NULL) printf(文件打開失??!n); return ; elsefor(i=0;in;i+) fprintf(fp,%s %s %f %f %f %fn,stui.num,,stui.baimi,&stui.qianqiu,stui.tiaoga
20、o,stui.tiaoyuan); fclose(fp);void add()/*添加運動員信息*/ FILE *fp; int n,i; struct student stu; if(fp=fopen(e:student.txt,a)=NULL) /如果文件已經(jīng)存在,可以追加學(xué)生信息 if(fp=fopen(e:student.txt,w)=NULL) / 文件不存在時,創(chuàng)建新文件,輸入學(xué)生信息 printf(文件打開失?。); return; printf(請輸入要添加的運動員數(shù)量,按回車鍵確認(rèn):); scanf(%d,&n);for(i=1;i=n;i+) printf(n請輸入第%d
21、個運動員的、,用空格分開,并按回車鍵確認(rèn):n,i); scanf(%s%s,stu.num,); printf(n請輸入第%d個運動員的百米賽跑、鉛球、跳高和跳遠(yuǎn)四項成績,用空格分開,并按回車鍵確認(rèn):n,i); scanf(%f%f%f%f,&stu.baimi,&stu.qianqiu,&stu.tiaogao,&stu.tiaoyuan); fprintf(fp,%s %s %f %f %f %fn,stu.num,,stu.baimi,stu.qianqiu,stu.tiaogao,stu.tiaoyuan); fclose(fp);void show()
22、 / 運動員信息顯示函數(shù) struct student stuN; int i,n;n=reads(stu);printf(*所有的學(xué)生信息如下*nn);printf( 序號 百米賽跑 鉛球 跳高 跳遠(yuǎn) n);printf(*n); for(i=0;in;i+)printf(n%3d%12s%11s%11.2f%12.2f%11.2f%11.2fn,i+1,stui.num,,stui.baimi,stui.qianqiu,stui.tiaogao,stui.tiaoyuan); getch();void del() /*運動員信息刪除函數(shù)*/ struct student
23、stuN; char number20; int n,i,j; n=reads(stu); printf(n請輸入要刪除信息運動員,按回車鍵確認(rèn):); scanf(%s,number); for(i=0;i=n) printf(沒有找到該運動員信息!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請輸入要更改信息的學(xué)生學(xué)號,按回車鍵確認(rèn):);
24、 scanf(%s,number); n=reads(stu); for(i=0;i=n) printf(無此學(xué)生信息!); return; printf(n請輸入更改后學(xué)生的,百米賽跑、鉛球、跳高、跳遠(yuǎn)四門成績,按回車鍵確認(rèn):n);scanf(%s%s%f%f%f%f,stui.num,,&stui.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); save(stu,n);void sort() / 按百米賽跑成績排名struct student stuN,temp;int i,j,n;n=reads(stu);for(i
25、=0;in-1;i+)for(j=0;jn-1;j+)if(stuj.baimistuj+1.baimi)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ; printf(*百米賽跑成績排序結(jié)果如下*nn);printf( 名次 百米賽跑 成績 n);printf(*n); for(i=0;in;i+) / 輸出結(jié)果并排名 if(stui.baimi=stui+1.baimi)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,,stui.baimi,stui.b
26、aimi);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.baimi,stui.baimi); getch();void kdie() / 按鉛球成績排名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.qianqiustuj+1.qianqiu)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*
27、鉛球成績排序結(jié)果如下*nn); printf( 名次 鉛球 成績 n);printf(*n); for(i=0;in;i+) / 輸出結(jié)果并排名 if(stui.baimi=stui+1.qianqiu)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,,stui.qianqiu,stui.qianqiu); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.qianqiu,stui.qianqiu); getch
28、();void keep() / 按跳高成績排名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.tiaogaostuj+1.tiaogao)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*跳高成績排序結(jié)果如下*nn); printf( 名次 跳高 成績 n);printf(*n); for(i=0;in;i+) / 輸出結(jié)果并排名 if(stui.tiaogao=stui+1.tiaogao)pr
29、intf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,,stui.tiaogao,stui.tiaogao); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.tiaogao,stui.tiaogao); getch();void sheep() / 跳遠(yuǎn)成績遠(yuǎn)排名struct student stuN,temp;int i,j,n;n=reads(stu);for(i=0;in-1;i+)for(j=0;jn-1;j+
30、)if(stuj.tiaoyuanstuj+1.tiaoyuan)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*跳遠(yuǎn)成績排序結(jié)果如下*nn);printf( 名次 跳遠(yuǎn) 成績 n);printf(*n); for(i=0;in;i+) / 輸出結(jié)果并排名 if(stui.tiaoyuan=stui+1.tiaoyuan)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,,stui.tiaoyuan,stui.tiaoyuan);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.tiaoyuan,stui.tiaoyuan);getc
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共振音叉課件教學(xué)課件
- 電商物流解決方案
- 糖尿病的自我監(jiān)測與管理
- 無人駕駛汽車的發(fā)展前景
- 食管癌晚期治療進(jìn)展
- 糖尿病治療儀使用
- 初中化學(xué)常見氣體的制取專題教案
- 角膜病病人的護(hù)理
- 海上日出說課稿第課時
- 重癥急性胰腺炎手術(shù)治療
- 小學(xué)二年級上冊語文部編版課件 紙船和風(fēng)箏(生字講解)
- GB 18580-2001室內(nèi)裝飾裝修材料人造板及其制品中甲醛釋放限量
- 紅色消防安全知識宣傳培訓(xùn)課件PPT模板
- 果蔬機(jī)械冷藏課件2
- 拼音復(fù)習(xí)-拼音轉(zhuǎn)盤課件
- 項目進(jìn)度管理培訓(xùn)(-)課件
- 醫(yī)院合同管理辦法
- 2023年度小區(qū)業(yè)主大會會議召開工作方案
- 高考語文 如何讀懂詩歌 課件(32張PPT)
- 中壓交聯(lián)電纜電纜正、負(fù)和零序計算
- 3C戰(zhàn)略三角模型
評論
0/150
提交評論