運動會管理系統課程設計報告_第1頁
運動會管理系統課程設計報告_第2頁
運動會管理系統課程設計報告_第3頁
運動會管理系統課程設計報告_第4頁
運動會管理系統課程設計報告_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上目 錄一 課程設計目的.1二 課程設計任務和內容 .1三 系統設計方案 .2 3.1系統詳細描述.2 3.2功能模塊劃分.2四 系統實現與測試.44.1主菜單實現.54.2查詢模塊實現.74.3顯示數據模塊實現.124.4文件輸出模塊.164.5顯示排名模塊.17五 程序調試及錯誤.19六 參考文獻.20七 附錄.20一、課程設計的目的1) 學習綜合運用C高級語言課程和其他先修課程的知識,提高分析和解決實際問題的的能力,進一步鞏固、加深和拓寬所學的知識;進一步加強結構化程序設計的思想,加深對高級語言基本語言要素和控制結構的理解。2) 全面系統的學習面向對象程序設計的基

2、本概念、基本語法和編程方法;獨立完成有一定工作量的程序設計任務,同時強調好的程序設計風格。3) 掌握程序設計中的常用算法和C語言的編程技巧和上機調試程序的方法。4) 在參與一系列子項目的實踐過程中,提高如何綜合運用所學知識解決實際問題的能力,以及獲得相關項目管理和團隊合作等眾多方面的具體經驗。二、課程設計任務和內容按照如下要求,運用C+語言,編寫一套可用的較為完善的校際運動會管理系統軟件(兩人分模塊合作)要求:初始化輸入:學??倲导懊郑\動員總數及運動員基本信息,運動會項目(為方便測試暫定為男女分別為4項,以項目一,項目二,項目三,項目四代表)各項目名次取法有以下幾種:取前五名:第一名 7分

3、,第二名 5分,第三名 3分,第四名2分,第五名 1分;取前三名:第一名 5分,第二名 3分,第三名 2分;用戶自定義。功能要求: (1)由程序提醒用戶填寫比賽接結果,輸入各項目參賽運動員運動員信息; (2)信息錄入完畢后由系統為運動員、各個學校進行排名; (3)所有信息記錄完畢后,用戶可以查詢各個學校的比賽成成績和排名,運動員的比 賽成績和排名; (4)最后還能對比賽信息輸出。注:我與網絡工程班黃科榮同學合作,共同完成本次有關于校際運動會管理系統的程序設計。我負責完成查詢模塊、數據顯示模塊、文件輸出模塊的實現和顯示排名模塊。3、 系統設計方案3.1系統詳細描述 隨著中國教育改革的不斷深入以及

4、大學生的普及,大學里每年都會舉辦運動會,一方面是為了鼓勵大學生積極參加體育運動,另一方面也是培養(yǎng)國家體育人才。在各個學校之間的比賽時,需要對運動會的信息進行整理,它涉及到的數據量之大,用單純的手寫記錄已經不能滿足用戶的需求,利用運動會管理系統及時了解各個環(huán)節(jié)中信息的變更,有利于提高管理的效率。 本項目作為c+課程設計課程的訓練項目提出,目的是為了提高同學們系統的開發(fā),則提高大家的實踐能力。所以開發(fā)一個符合自身運動會實際情況的工作平臺是十分必要的。系統使用對象定為由太原科技大學,太原理工大學,山西大學,中北大學聯合舉辦的校際運動會。系統需要建立兩個結構體學校和運動員。學校應該包含學校名,學校代碼

5、,學校總分和學校排名等信息;運動員則要包含姓名,性別,學校,比賽成績,比賽名次和比賽成績等信息。系統就是要實現學校和運動員基本信息的輸入和輸出,還有查詢,最后再生成報表。3.2功能模塊劃分 根據題目的要求及系統功能可以將系統分為學校信息錄入,學生信息錄入,成績錄入,查詢,顯示數據,輸出文件,顯示排名七個模塊。各個模塊基本介紹如下:學校信息錄入模塊:輸入學??倲担瑢W校名字,代碼,成績,排名等信息進行初始化。學生信息錄入模塊:輸入學生總數,對運動員姓名,性別,學校,成績,排名,得分等信息進行計算。成績錄入模塊:錄入運動員比賽成績由系統對運動員進行排名和積分。查詢模塊:用戶可以選擇運動員,學校,項

6、目三種查詢方式。顯示數據模塊:顯示學校信息,運動員信息和得分規(guī)則。輸出文件模塊:將文件存儲。顯示排名模塊:顯示學校排名和運動員排名。注:我主要負責查詢,顯示數據,輸出文件,顯示排名四個模塊的相關內容,黃科榮同學負責編寫學校信息錄入,學生信息錄入,成績錄入三個模塊的相關內容,最后的整體代碼由兩個人組合完成。 校際運動會管理系統 輸出文件 顯示數據 信息查詢 顯示排名 運動員成績錄入 學生信息錄入 學校信息錄入運動員排名學校信息運動員信息得分規(guī)則學校排名學校查詢項目查詢學生查詢 圖3.1校際運動會管理系統功能模塊圖以下輸入項均為鍵盤輸入:得分規(guī)則選擇 int a(1、2、3)選擇主菜單選項 int

7、 n(1、2、3、4、5、6、7、8)學校個數 int XN學校校名 string mingzi 學校代號 string daihao 學生數量 int SN學生姓名 string xingming 學生性別 bool xingbie參賽項目 bool xiangmu4成績 float chengji選擇查詢方式 int a(1、2、3、4)選擇顯示的信息 int l(1、2、3、4)選擇現實的排名 int a(1、2、3)學校名次 int mingci4;學校校名 string mingzi學生姓名 string xingming 學生性別 bool xingbie參賽項目 bool xia

8、ngmu4成績 float chengji單項得分 int defen4總分 int zongfen四、系統實現與測試4.1主菜單模塊實現開 始顯示主菜單輸入選擇是否合理圖提示錯誤信息 YN是否為1是否為3NNN是否為2是否為4YYY Y N調用輸入函數調用顯示函數調用查找函數調用排序函數 是否為5是否為7是否為6NN Y調用顯示函數 Y Y調用顯示函數調用顯示函數 N 結束4.1主菜單流程圖void menu()/菜單 int w1,n;system(cls);couttt-endltt*welcome to load*endltt-endlttendltt 歡迎使用校運動會計分系統 end

9、ltt endltt endltt endltt 1.學校信息錄入 endltt 2.學生信息錄入 endltt 3.成績錄入 endltt 4.查詢 endltt 5.顯示數據 endltt 6.輸出文件 endltt 7.顯示排名 endltt 8.退出 endltt endltt endltt endltt 制作人 endltt endltt endlttendl;docout請輸入你想操作的代號(1-8):n;if(n8)w1=1;cout您的輸入有誤,請重新輸入!endl;else w1=0;while(w1=1);switch(n)case 1:xuexiaoluru();case

10、 2:xueshengluru();case 3:chengjiluru();case 4:chaxun();case 5:xianshi();case 6:wenjian();case 7:paimingxianshi();主菜單運行結果如圖4.2 圖4.2主菜單界面4.2查詢模塊實現 開始 輸出提示信息 N是否為4 Y輸入數字a 是否為 2是否為 3 NN是否為1 NYY Y調用學校查詢函數調用項目查詢函數調用學生查詢函數 結束 圖4.3查詢模塊流程圖void chaxun() /查詢void xscx();void xmcx();void xxcx();int a;docout選擇查詢方

11、式:endl 1 按姓名查詢:endl 2 按項目查詢:endl 3 按學校查詢:endl 4 退出endla;switch(a)case 1:xscx();break;case 2:xmcx();break;case 3:xxcx();break;case 4:break;while(a4);system(pause);menu();void xscx()int i,sb=0;string x;coutx;for(i=0;iSN;i+)if(xsi.xingming=x)sb+;cout姓名xsi.xingming 學校;for(int k=0;k+)if(xsi.xue=xxk.daiha

12、o)coutsetw(15)xxk.mingzi;break;cout 性別;if(xsi.xingbie)coutsetw(4)男;elsecoutsetw(4)女;cout 號碼xsi.haomaendl;if(sb=0)cout沒找到該名字的學生endl;void xmcx()int i,sb=0;int j;coutj;for(i=0;iSN;i+)if(xsi.xiangmuj-1)sb+;cout姓名xsi.xingming 學校;for(int k=0;k+)if(xsi.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;cout 性別;if

13、(xsi.xingbie)coutsetw(4)男;elsecoutsetw(4)女;cout 號碼xsi.haomaendl;if(sb=0)cout未找該項目的學生endl;void xxcx()int i,sb=0;cout學校信息為:endlsetw(15)學校名稱 學校代號endl;for(i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaoendl;string l;coutl;for(i=0;iSN;i+)if(xsi.xue=l)sb+;cout姓名xsi.xingming 學校l 性別;if(xsi.xingbie)coutsetw(6)男

14、;elsecoutsetw(6)女;cout 號碼xsi.haoma;if(sb=0)cout沒找到該學校的學生endl;查詢模塊測試分為姓名查詢如圖4.4,項目查詢如圖4.5,學校查詢如圖4.6: 圖4.4姓名查詢界面當選擇數字1時界面如圖4.4,輸出學生姓名,學校,性別,號碼. 圖4.5項目查詢界面當選擇數字2時界面如圖4.5,輸出參加要查詢項目的運動員姓名,學校,性別,號碼. 圖4.6學校查詢界面當選擇數字3時界面如圖4.6,輸出代表要查詢學校參賽的運動員姓名,學校,性別,號碼.4.3顯示模塊查詢 開始N是否為4 輸出提示信息 Y 輸入lN是否為3是否為2 N N 是否為1 YY調用顯示

15、得分規(guī)則函數調用顯示運動員信息函數 Y調用顯示學校信息 函數 結束圖4.7顯示模塊流程圖void xianshi()/顯示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;do cout顯示所有學校信息輸入1endl顯示所有學生信息輸入2endl顯示得分規(guī)則輸入3endl退出輸入4endll;switch(l)case 1:xsxxxx();break;case 2:xsxsxx();break;case 3:xsdfgz();break;while(l4&l1); system(pause);menu();void xsxxxx()co

16、ut學校信息為:endlsetw(15)學校名稱 學校代號setw(8)學校得分setw(8)學校排名endl;for(int i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaosetw(8)xxi.chengjisetw(8)xxi.mingciendl;void xsxsxx()coutsetw(6)姓名setw(15)學校setw(6)性別setw(12)項目1 成績setw(12)項目2 成績setw(12)項目3 成績setw(12)項目4 成績endl;for(int j=0;jSN;j+)coutsetw(6)xsj.xingming;for

17、(int k=0;k+)if(xsj.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;if(xsj.xingbie)coutsetw(6)男;elsecoutsetw(6)女;for(int x=0;x4;x+)coutsetw(6)xsj.xiangmuxsetw(6)xsj.chengjix;coutendl;coutsetw(18)項目1得分 排名setw(18)項目2得分 排名setw(18)項目3得分 排名setw(18)項目4得分 排名setw(7)總分endl;for(j=0;jSN;j+)for(int x=0;x4;x+)coutset

18、w(9)xsj.defenxsetw(9)xsj.mingcixsetw(7);coutxsj.zongfenendl;void xsdfgz()for(int z=0;z+)if(dfz!=0)cout第z+1名得dfz分endl;continue;elsecout其后所有人得分為0endl;break;顯示模塊測試分為學校顯示如圖4.8,所有學生顯示如圖4.9和得分顯示如圖4.10 圖4.8學校信息顯示界面圖4.8選擇1時參賽學校的名稱,代號,得分和排名的顯示. 圖4.9學生信息顯示界面圖4.9為選擇2時所有參賽學生學校,性別,參賽項目,成績,得分和排名的信息顯示. 圖4.10得分規(guī)則顯示

19、界面圖4.10為選擇號碼3時比賽采用的積分規(guī)則的顯示.4.4輸出文件模塊void wenjian() /輸出到文件fstream s1(輸出文件.txt,ios:out);if(!s1)cout打開失敗!;s1 學校名字 學校代碼 學校名次 學??偡謓;for (int i=0;iXN;i+)s1xxi.mingzi xxi.daihao xxi.mingci int(xxi.chengji)n;s1nn 姓名 學校代碼 性別 號碼 項目1 成績 名次 項目2 成績 名次 項目3 成績 名次 項目4 成績 名次 總分n;for(i=0;iSN;i+)s1xsi.xingming xsi.xue

20、 xsi.xingbie xsi.haoma xsi.xiangmu0 xsi.chengji0 xsi.mingci0 xsi.xiangmu1 xsi.chengji1 xsi.mingci1 xsi.xiangmu2 xsi.chengji2 xsi.mingci2 xsi.xiangmu3 xsi.chengji3 xsi.mingci3 xsi.zongfenn;s1.close();cout輸出成功!endl;system(pause); menu(); 圖4.11輸出文件4.5顯示排名 開始輸出提示信息N輸入aN是否為3是否為2是否為1NYYY調用運動員排名函數調用學校排名函數

21、結束圖4.12排名模塊流程圖void paimingxianshi() /顯示排名void xxpm();void ydypm();cout請選擇:endl 1 學校排名endl 2 運動員總分排名endl 3 退出endla;switch(a)case 1:xxpm();break;case 2:ydypm();break;case 3:break;system(pause);menu();void xxpm()string dd50;for(int i=0;iXN;i+)ddxxi.mingci-1=xxi.mingzi;for(i=0;iXN;i+)cout第i+1名為setw(6)dd

22、iendl;void ydypm()string dd200,te;int ss200,mp,p,q;for(int i=0;iSN;i+)ddi=xsi.xingming;ssi=xsi.zongfen;for(p=0;pSN;p+)for(q=p+1;qSN-1;q+)if(sspssq)te=ddq;ddq=ddp;ddp=te;mp=ssq;ssq=ssp;ssp=mp;for(i=0;iSN;i+)cout第i+1名為setw(6)ddiendl;顯示排名測試分為學校排名如圖4.13,運動員排名如圖4.13 圖4.13學校排名界面 圖4.14運動員排名界面 五、調試錯誤及解決方法 在

23、調試過程中遇到了各種各樣的錯誤,但總結起來也就是馬虎造成的,現列舉一二。如在調用函數時出現函數未聲明的錯誤,只要在函數的開頭進行聲明就行了;還有如“D:測試.cpp(579) : error C2018: unknown character 0xa3”,此類型錯誤主要是在輸入字符時使用的是中文輸入,只要改成英文輸入就行了;注意“”使用要完整等等。不過在我編寫程序時遇到的最大的困難還是在輸入文件模塊,因為對這個知識點掌握不好,后來經過查閱資料終于弄清楚了。六、參考文獻1譚浩強.C+程序設計.清華大學出版社. 20112鄭莉.C+程序設計(第三版).清華大學出版社. 20053錢能.C+程序設計教

24、程.清華大學出版社. 20044武俊亮.visual c+課程設計與系統開發(fā)案例.清華出版社5黃維通.Visual C+程序設計教程.清華大學出版社. 2005 七、附錄源代碼#include#include#include#includeusing namespace std;int df100=0;struct xuexiaostring mingzi;/學校名字string daihao;/學校代號int mingci;/學校名次float chengji;/學校成績xx20;struct xueshengstring xue;/學校string xingming;/姓名int haom

25、a;/運動員號碼bool xiangmu4;/項目bool xingbie;/性別float chengji4;/成績int mingci4;/名次int defen4;/單項得分int zongfen;/總分xs100;int XN;/學校個數int SN;/學生總數void xuexiaoluru();void xueshengluru();void chengjiluru();void chaxun();void xianshi();void wenjian();void paimingxianshi();void paiming(int a,bool b);void menu()/菜單

26、 int w1,n;system(cls);couttt-endltt*welcome to load*endltt-endlttendltt 歡迎使用校運動會計分系統 endltt endltt endltt endltt 1.學校信息錄入 endltt 2.學生信息錄入 endltt 3.成績錄入 endltt 4.查詢 endltt 5.顯示數據 endltt 6.輸出文件 endltt 7.顯示排名 endltt 8.退出 endltt endltt endltt endltt 制作人 endltt endltt endlttendl;docout請輸入你想操作的代號(1-8):n;i

27、f(n8)w1=1;cout您的輸入有誤,請重新輸入!endl;else w1=0;while(w1=1);switch(n)case 1:xuexiaoluru();case 2:xueshengluru();case 3:chengjiluru();case 4:chaxun();case 5:xianshi();case 6:wenjian();case 7:paimingxianshi();void xuexiaoluru()/學校信息錄入coutXN;for(int i=0;iXN;i+)cout請輸入第i+1xxi.mingzi;cout請輸入第i+1xxi.daihao;xxi.

28、chengji=xxi.mingci=0;cout學校信息為:endlsetw(15)學校名稱 學校代號endl;for(i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaoendl;system(pause);menu();void xueshengluru()/學生信息錄入coutSN;int k;for(int i=0;iSN;i+)cout請輸入第i+1個學生的信息:endlsetw(15)學校名稱 學校代號endl;for(int j=0;jXN;j+)coutsetw(15)xxj.mingzi xxj.daihaoendl;coutxsi.xu

29、e;coutxsi.xingming;coutxsi.xingbie;for(k=0;k4;k+)xsi.chengjik=xsi.defenk=xsi.mingcik=0;xsi.xiangmuk=0;xsi.haoma=i+1;menu();void xianshi()/顯示所有信息 void xsxxxx();void xsxsxx();void xsdfgz();int l;do cout顯示所有學校信息輸入1endl顯示所有學生信息輸入2endl顯示得分規(guī)則輸入3endl退出輸入4endll;switch(l)case 1:xsxxxx();break;case 2:xsxsxx()

30、;break;case 3:xsdfgz();break;while(l4&l1); system(pause);menu();void xsxxxx()cout學校信息為:endlsetw(15)學校名稱 學校代號setw(8)學校得分setw(8)學校排名endl;for(int i=0;iXN;i+)coutsetw(15)xxi.mingzi xxi.daihaosetw(8)xxi.chengjisetw(8)xxi.mingciendl;void xsxsxx()coutsetw(6)姓名setw(15)學校setw(6)性別setw(12)項目1 成績setw(12)項目2 成績

31、setw(12)項目3 成績setw(12)項目4 成績endl;for(int j=0;jSN;j+)coutsetw(6)xsj.xingming;for(int k=0;k+)if(xsj.xue=xxk.daihao)coutsetw(15)xxk.mingzi;break;if(xsj.xingbie)coutsetw(6)男;elsecoutsetw(6)女;for(int x=0;x4;x+)coutsetw(6)xsj.xiangmuxsetw(6)xsj.chengjix;coutendl;coutsetw(18)項目1得分 排名setw(18)項目2得分 排名setw(18

32、)項目3得分 排名setw(18)項目4得分 排名setw(7)總分endl;for(j=0;jSN;j+)for(int x=0;x4;x+)coutsetw(9)xsj.defenxsetw(9)xsj.mingcixsetw(7);coutxsj.zongfenendl;void xsdfgz()for(int z=0;z+)if(dfz!=0)cout第z+1名得dfz分endl;continue;elsecout其后所有人得分為0endl;break;void jisuangeren() /計算個人總分for(int i=0;iSN;i+)xsi.zongfen=xsi.defen0+xsi.defen1+xsi.defen2+xsi.defen3;void jisuanxuexiao()

溫馨提示

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

評論

0/150

提交評論