學生運動會成績管理系統_第1頁
學生運動會成績管理系統_第2頁
學生運動會成績管理系統_第3頁
學生運動會成績管理系統_第4頁
學生運動會成績管理系統_第5頁
免費預覽已結束,剩余26頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄一、系統開發的背景1二、系統分析與設計1(1) 系統功能要求1(2) 系統模塊結構設計1(1) 統計各系別總分:VOIDFUNCT()4(2) 按系別編號排序:VOIDFUNCT()5(3) 按系別總分排序:VOIDFUNCT()6(4) 按男團體總分排序:VOIDFUNCT()7(5) 按女團體總分排序:VOIDFUNCT()8(6) 按系別編號查詢某個項目情況:VOIDFUNCT()10(7) 按項目編號查詢取得名次的系別:VOIDFUNCT()11(8) 退出系統:VOIDFUNCT()13四、系統測試13(1) 測試VOIDHUANYINGN)函數,VOIDINPUR)函數13(2

2、) 測試VOIDMULQ函數14(3) 測試VOIDFUNC1()函數14(4) 測試VOIDFUNC2()函數15(5) 測試VOIDFUNCT3()函數15(6) 測試VOIDFUNC4()函數15(7) 測試VOIDFUNC5()函數16(8) 測試VOIDFUNC6()函數16(9) 測試VOIDFUNC7()函數16(十)測試VOIDFUNC0()函數16五、總結17六、附件(代碼)181/27學生運動會成績管理系統一、系統開發的背景為了學校方便管理學生運動會成績,查詢各系總分、各項目排名、以及各系獲獎情況,因此我們用所學的知識設計了一個學生運動會管理系統,以此方便學校對運動會情況的

3、了解及查詢。二、系統分析與設計(1) 系統功能要求該系統可以實現:1)可以輸入各個項目的前三名的成績;2)能統計各系別總分;3)可以按系別編號、系別總分、男女團體總分排序輸出;4)可以按系別編號查詢某系某個項目的情況;5)可以按項目編號查詢取得前三名的系別。(2) 系統模塊結構設計概要設計:1結構體運動項目(項目編號;名次;;系別(系別編號;項目;團體總分;男團體總分;女團體總分;;2主程序(main)包括登陸歡迎程序,分數錄入程序,查詢程序,退出程序通過對系統功能的分析,學生運動會成績管理系統功能如圖1所示。1/27圖1學生運動會成績管理系統功能圖通過上圖的功能分析,把整個系統劃分為8個模塊

4、:1、統計各系別總分,該模塊主要實現:統計各系別運動會成績總分,借助函數voidfunct1()來實現;2、按系別編號排序,該模塊主要實現:按照各系別編號從小到大進行排序,借助函數voidfunct2()來實現;3、按系別總分排序,該模塊主要實現:按照各個系別運動會成績總分從大到小進行排序,借助函數voidfunct3()來實現;4、按男團體總分排序,該模塊主要實現:按照各系別男團體獲得的總分從大到小進行排序,借助函數voidfunct4()來實現;5、按女團體總分排序,該模塊主要實現:按照各系別女團體獲得的總分從大到小進行排序,借助函數voidfunct5()來實現;2/276、按系別編號查

5、詢某個項目情況,該模塊主要實現:根據系別編號查詢該系別在某個項目中所獲得的成績,借助函數voidfunct6()來實現;7、按項目編號查詢取得名次的系別,該模塊主要實現:根據項目編號查詢取得該項目前三名的系別,借助函數voidfunct7()來實現;8、退出系統,該模塊主要實現:學生運動會成績管理系統的安全退出,借助函數voidfunct0()來實現;3/27三、系統的設計與實現(一)統計各系別總分:voidfunct1()分析:根據各系所獲獎項的級別,按照每個一等獎加5分,每個二等獎加3分,每個三等獎加2分,統計出各系所獲得的總分。流程圖如圖2所示。圖2:voidfunct1()流程圖該模塊

6、的具體代碼如下所示voidfunct1()/統計各系別總分inti,q;printf(*統計各系別總分*n");printf("*系別編號*tt*總分*n");for(i=0;i<N;i+)printf("t%dttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&

7、amp;q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();elseprintf("輸入錯誤(只能是。或1),請重新輸入:");4/27(二)按系別編號排序:voidfunct2()分析:為了使用戶更好的查詢各系之間的比賽成績情況,將其按照系別編號進行排序。流程圖如圖3所示。開始depi.departmentnum>depi+1.departmentnumdep1=depi;depi=depi+1;圖3:voidfunct2()流程圖該模塊的具體代碼如下所示。voidfunct2()/按系別編號排序structdepar

8、tmentdep1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.departmentnum>depi+1.departmentnum)dep1=depi;depi=depi+1;depi+1=dep1;)printf("*按系別編號排序*n");printf("*系別編號*tt*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n

9、");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");5/27scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");(三)按系別總分排序:voidfunct3()4所示。分析:為了使用戶更好的查詢各系之間的比賽成績排名情況,將其按照所獲成績總分進行排序。流程圖如圖(開始)depi.

10、total<depi+1.totaldep1=depi;depi=depi+1;depi+1=dep1;/輸出按總分排7/序后的系別/(結束)圖4:voidfunct3()流程圖該模塊的具體代碼如下所示voidfunct3()/按系別總分排序(structdepartmentdep1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.total<depi+1.total)(dep1=depi;depi=depi+1;depi+1=dep1;6/27printf(*按系別總分排序*n");printf(&q

11、uot;*系別編號*tt*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();elseprintf(&quo

12、t;輸入錯誤(只能是0或1),請重新輸入:");(四)按男團體總分排序:voidfunct4()分析:根據各系男團體項目所獲得的總分進行排序并按所獲得的圖5:voidfunct4()流程圖該模塊的具體代碼如下所示按男團體總分排序voidfunct4()/structdepartmentdep1;inti,j,q;7/27for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.boytotal<depi+1.boytotal)(dep1=depi;depi=depi+1;depi+1=dep1;printf("*printf(

13、"*系別編號*tt按男團體總分排序*n");*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.boytotal);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)x

14、unhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");(五)按女團體總分排序:voidfunct5()分析:根據各系女團體項目所獲得的總分進行排序并按所獲得的總分從大到小輸出。流程圖如圖6所示。8/27開始圖6:voidfunct5()流程圖該模塊的具體代碼如下所示。voidfunct5()/(structdepartmentdepl;inti,j,q;按女團體總分排序for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.girltotal<depi+1.girltotal)(dep1=d

15、epi;depi=depi+1;depi+1=dep1;printf("printf("*系別編號*tt按女團體總分排序*n");*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.girltotal);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d"

16、;,&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是。或1),請重新輸入:");9/27(6) 按系別編號查詢某個項目情況:voidfunct6()分析:首先輸入所要查詢的系別編號以及項目編號,最后輸出該系別在該項目中所獲得的名次。流程圖如圖7所示。輸入所要查詢的系別編號輸入所要查詢的項目編號利用循環查找該系在該項目中獲得的名次輸入該系在該項目中所獲得的名次voidfunct6()/按系別編號查詢系別某個項目情況inti,n,m,q;printf("*按系別編

17、號查詢系別某個項目情況圖7:voidfunct6()流程圖該模塊的具體代碼如下所示printf("*請輸入所要查詢的系別編號:");scanf("%d",&n);while(n!=1&&n!=2)if(n!=1&&n!=2)printf("輸入錯誤,系別編號只能是0或1,請重新輸入");)printf("*請輸入所要查詢的項目編號:");scanf("%d",&m);for(i=0;i<N;i+)if(n=depi.departmentnum

18、)10/27%dn",n,m);printf("系別編號:%d項目編號if(depi.matm.rank0=1)printf("第一名(獲得)");if(depi.matm.rank1=1)printf("第二名(獲得)");if(depi.matm.rank2=1)printf("第三名(獲得)");elseprintf("本系該項目未進入前三名");printf("n");printf("n");printf("*0:退出;1:返回目錄;2:

19、返回上一級。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");(7) 按項目編號查詢取得名次的系別:voidfunct7()分析:首先輸入所要查詢的項目編號,通過查找后,輸出獲得該項目前三名的系別。流程圖如圖8所示。11/27利用循環查找在該項目中所獲得前三名的系別該模塊的具體代碼如下所示。voidfunct7()/按項目編號查詢取得

20、名次的系別(inti,t,q;printf("*按項目編號查詢取得名次的系別*n”);printf("*請輸入所要查詢的項目編號:");scanf("%d",&t);printf("項目編號:%dn",t);for(i=0;i<N;i+)(if(depi.matt-1.rank0=1)printf("獲得第一名的系別編號是:%dn",depi.departmentnum);if(depi.matt-1.rank1=1)printf("獲得第二名的系別編號是:%dn",de

21、pi.departmentnum);if(depi.matt-1.rank2=1)printf("獲得第三名的系別編號是:%dn",depi.departmentnum);printf("n");printf("n");printf("*0:退出;1:返回目錄;2:返回上一級。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();12/27else(prin

22、tf("輸入錯誤(只能是0或1),請重新輸入:");)(八)退出系統:voidfunct0()分析:當用戶輸入退出指令時,則輸出結束語。流程圖如圖9所示圖9:voidfunct0()流程圖該模塊的具體代碼如下所示。voidfunct0()/退出系統printf("ntt*謝謝使用!*n");exit(0);)四、系統測試(一)測試voidhuanyingni()函數,voidinput()函數13/27圖10:測試voidhuanyingni()函數,voidinput()函數(二)測試voidmulu()函數況情別項的出出善H詢KM息查MM別匚存總總號

23、號一,系瑞后編各團0目一2£系男京a二一一Ni234Ln白70請選擇輸入a一"序號;圖11:測試voidmulu()函數(三)測試voidfunct1()函數14/27擇別選系少號統別*總分*X1(MM0:退出;1:退回目錄,*請選掛一:圖12:測試voidfunct1()函數(四)測試voidfunct2()函數圖13:測試voidfunct2()函數(五)測試voidfunct3()函數圖14:測試voidfunct3()函數a:退出孑i=返回目錄-i青選j拳(六)測試voidfunct4()函數色一7)序號-4YrMMMM-MMMXMXI總分f*43MG25圖15:測

24、試voidfunct4()函數15/27(七)測試voidfunct5()函數請選擇C崛入值一?星號5寅M4ItX44亶宜團件1總飛分出*系別編號*總分*Z*0;退出1;返回目錄中*請選擇:圖16:測試voidfunct5()函數(八)測試voidfunct6()函數圖17:測試voidfunct6()函數(九)測試voidfunct7()函數二.X*7J另系-7得:0-取號人詢編4編的112233日事暮g;號號號w號號.扁扁瑞扁扁系系系系一酸:名名名膏名一一駕覃編第第第第第弟-f*0:退出;is返回目錄?圖18:測試voidfunct7()函數(十)測試voidfunct0()函數請選擇f輛

25、人3序號:0謝謝便用!X苒Pressarivkeytocontinue圖19:測試voidfunct0()函數16/27五、總結學生運動會成績管理系統完成了:1)可以輸入各個項目的前三名的成績;2)能統計各系別總分;3)可以按系別編號、系別總分、男女團體總分排序輸出;4)可以按系別編號查詢某系某個項目的情況;5)可以按項目編號查詢取得前三名的系別。系統有以下不足:1、設計程序時為了使程序簡單化,問題考慮的有些不全面;2、由于結構體使用不太熟,所以結構體不能初始化不知道,導致運動會管理系統設計耗費不必要的時間;3、在編寫程序時,有的函數調用功能太片面化,使得一些功能都不能實現;4、在程序運行階段

26、,沒有突出具體運算方法等而是只是顯示結果。通過本次課程設計,我掌握了程序設計的模塊化思路,并真正理解了函數調用的可使用性,也了解了結構體的使用方法及范圍;對C語言的看法有了一定的改觀,也消除了懼怕心理,也學會了設計程序時應該使其功能一個一個的逐步實現并測試正確性,而不是無條理的胡寫尤其是大程序更應該有清晰的條理;同時也理解了流程圖的重要意義。17/27六、附件(代碼)#include<stdio.h>#include<process.h># defineN3/系別個數# definebm5/男團體個數# definegm3/女團體個數voidxuanze();voidx

27、unhuan();structmatch/項目intmatchnum;intrank3;matbm+gm;structdepartment/系另1Jintdepartmentnum;structmatchmatbm+gm;inttotal;intboytotal;intgirltotal;depN;voidhuanyingni()/*開始界面,歡迎使用*/韓歷英printf("nn工學系2012級計算機科學與技術(網絡工程方向)班nnn");AaA*nn");printf(歡迎使用運動會分數統計系統nn");printf("t*AA人人AaaA

28、*nn");printf("t*Aaaaavoidinput()/輸入成績inti,j,k;for(i=0;i<N;i+)/初始化分數depi.total=0;depi.boytotal=0;depi.girltotal=0;for(k=0;k<bm+gm;k+)18/27depi.matk.rank0=0;depi.matk.rank1=0;depi.matk.rank2=0;depi.matk.matchnum=k+1;)printf("-輸入成績-n");printf("n");printf(|n");pr

29、intf("|1.系別編號為1-%d;項目編號為1-%d(1-%d為男子項目,%d-%d為女子項目).|n",N,bm+gm,bm,bm+1,bm+gm);printf("|2.成績只能是0'或'1'('0'表示沒獲得該項目的該名次,|n|'1'表示獲得了該項目的該名次.以Tab'鍵前進。)|n",N);printf(n");for(i=0;i<N;i+)printf("#請輸入系別編號:");scanf("%d",&depi.

30、departmentnum);while(depi.departmentnum<0|depi.departmentnum>N)if(depi.departmentnum<0|depi.departmentnum>N)printf("輸入錯誤(只能是1-%d)請重新輸入:",N);)printf("項目編號");for(k=0;k<bm+gm;k+)printf("%d",depi.matk.matchnum);printf("n");for(j=0;j<3;j+)printf(&

31、quot;第()名二j+1);for(k=0;k<bm+gm;k+)scanf("%d",&depi.matk.rankj);for(k=0;k<bm+gm;k+)dowhile(depi.matk.rankj!=0&&depi.matk.rankj!=1)if(depi.matk.rankj!=0&&depi.matk.rankj!=1)19/27=2);printf("輸入錯誤,請重新輸入,成績只能是'0'或1'n");)while(depi.matk.rankj!=0&am

32、p;&depi.matk.rankj!=1&&depi.matk.rankj!)voidtotaljisuan()inti,k,b;for(i=0;i<N;i+)for(k=0,b=0;k<bm+gm;k+)b=depi.matk.rank0*5+depi.matk.rank1*3+depi.matk.rank2*2;depi.total=depi.total+b;if(k<bm)depi.boytotal=depi.boytotal+b;if(k>=bm)depi.girltotal=depi.girltotal+b;voidmulu()pri

33、ntf("nn*系統目錄*n");/目錄printf("tt*n");printf("tt*1.統計各系別總分*tn");printf("tt*2.按系別編號排序輸出*tn");printf("tt*3.按系別總分排序輸出*tn");printf("tt*4.按男團體總分排序輸出*tn");printf("tt*5.按女團體總分排序輸出*tn");printf("tt*6.按系別編號查詢系別某個項目情況*tn");printf(&quo

34、t;tt*7.按項目編號查詢取得名次的系別*tn");printf("tt*0.退出*tn");printf("tt*n");voidfunct0()/退出系統20/27謝謝使用!*printf("ntt*exit(0);)voidfunct1()/統計各系別總分inti,q;printf(*統計各系別總分*n");printf("*系別編號*tttt*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,dep

35、i.total);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)if(q=0)funct0();if(q=1)xunhuan();else");printf("輸入錯誤(只能是0或1),請重新輸入:)voidfunct2()/按系別編號排序structdepartmentsch1;inti,j,q;for(j=0;j<N-

36、1;j+)for(i=0;i<N-j-1;i+)if(depi.departmentnum>depi+1.departmentnum)sch1=depi;depi=depi+1;depi+1=sch1;)printf("*按系別編號排序*n");printf("*系別編號*tttt*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");pr

37、intf("*0:退出;1:返回目錄。n");printf("*請選擇:");21/27scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");voidfunct3()/按系別總分排序(structdepartmentsch1;inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.total<depi

38、+1.total)(sch1=depi;depi=depi+1;depi+1=sch1;printf(*按系別總分排序*n");printf("*系別編號*tttt*總分*n");for(i=0;i<N;i+)printf("t%dtttt%dn",depi.departmentnum,depi.total);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("

39、;%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");voidfunct4()/按男團體總分排序(structdepartmentsch1;22/27inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.boytotal<depi+1.boytotal)(sch1=depi;depi=depi+1;depi+1=sch1;printf(*printf(&quo

40、t;*for(i=0;i<N;i+)按男團體總分排序*n");系別編號*tt*總分*n");printf("t%dtttt%dn",depi.departmentnum,depi.boytotal);printf("n");printf("n");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=1)(if(q=0)funct0();if(q=1)xunhu

41、an();else(printf("輸入錯誤(只能是0或1),請重新輸入:voidfunct5()/按女團體總分排序(structdepartmentsch1;");inti,j,q;for(j=0;j<N-1;j+)for(i=0;i<N-j-1;i+)if(depi.girltotal<depi+1.girltotal)sch1=depi;depi=depi+1;printf("depi+1=sch1;*按女團體總分排序*n");printf("*系別編號*tt*總分*n");for(i=0;i<N;i+)

42、printf("t%dtttt%dn",depi.departmentnum,depi.girltotal);printf("n");printf("n");23/27本系該項目未進入前三名1,請重新輸入");");項目編號:dn",n,m)");");");");printf("*0:退出;1:返回目錄。n");printf("*請選擇:");scanf("%d",&q);while(q=0|q=

43、1)(if(q=0)funct0();if(q=1)xunhuan();else(printf("輸入錯誤(只能是0或1),請重新輸入:");voidfunct6()/按系別編號查詢系別某個項目情況(inti,n,m,q;printf("*按系別編號查詢系別某個項目情況*n");printf("*請輸入所要查詢的系別編號:");scanf("%d",&n);while(n!=1&&n!=2)(if(n!=1&&n!=2)(printf("輸入錯誤,系別編號只能是printf("*請輸入所要查詢的項目編號scanf("%d",&m);for(i=0;i<N;i+)if(n=depi.departmentnum)(printf("系別編號:%dif(depi.matm.rank0=1)printf("第一名(獲得)if(depi.matm.rank1=1)printf(&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論