C語言程序設(shè)計運動會成績統(tǒng)計系統(tǒng)1_第1頁
C語言程序設(shè)計運動會成績統(tǒng)計系統(tǒng)1_第2頁
C語言程序設(shè)計運動會成績統(tǒng)計系統(tǒng)1_第3頁
C語言程序設(shè)計運動會成績統(tǒng)計系統(tǒng)1_第4頁
C語言程序設(shè)計運動會成績統(tǒng)計系統(tǒng)1_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、課 程 設(shè) 計 報 告課程名稱c 語言程序設(shè)計課題名稱運動員分?jǐn)?shù)統(tǒng)計系統(tǒng)專業(yè)班級學(xué)號姓名指導(dǎo)教師王穎2015 年1 月 9 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱c 語言程序設(shè)計課題運動員分?jǐn)?shù)統(tǒng)計系統(tǒng)專業(yè)班級學(xué)生姓名學(xué)號指導(dǎo)老師王穎審批任務(wù)書下達日期 2015年 12 月 29 日任 務(wù) 完 成 日 期2016年 1 月 9 日設(shè) 計 內(nèi) 容 與 設(shè) 計 要 求1. 課程設(shè)計目的:全面熟悉、掌握 c語言基本知識, 增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng), 熟悉編制和調(diào)試程序的技巧, 掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力, 培養(yǎng)使用計算機解決實際問

2、題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為后繼課程(數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫和匯編語言等課程)的實驗以及課程設(shè)計打下較扎實的基礎(chǔ)。2. 課題題目班級成績管理系統(tǒng)班級檔案管理系統(tǒng)飛機訂票系統(tǒng)猜數(shù)字游戲電子英漢詞典設(shè)計心算搶答系統(tǒng)運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)小學(xué)生心算 cai 系統(tǒng)3. 設(shè)計要求:掌握結(jié)構(gòu)化程序設(shè)計的主體思想, 以自頂向下逐步求精的方法編制程序解決一些實際的中型問題,為將來開發(fā)軟件積累一些典型的案例處理經(jīng)驗。具體要求如下: 設(shè)計課題題目:每位同學(xué)根據(jù)自己學(xué)號除以8 所得的余數(shù)加一選擇相應(yīng)題號的課題。換題者不記成績。根據(jù)自己對應(yīng)的課題完成以下主要工作:完成系統(tǒng)需求分析:包括系統(tǒng)設(shè)計目的與意義

3、;系統(tǒng)功能需求;輸入輸出的要求。完成系統(tǒng)概要設(shè)計:程序由哪些模塊組成以及模塊之間的層次結(jié)構(gòu)、各模塊的調(diào)用關(guān)系; 每個模塊的功能; 課題涉及的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu); 即要存儲什么數(shù)據(jù), 這些數(shù)據(jù)是什么樣的結(jié)構(gòu), 它們之間有什么關(guān)系等。 完成系統(tǒng)詳細(xì)設(shè)計: 包括采用 c語言定義相關(guān)的數(shù)據(jù)類型; 寫出各模塊的類 c碼算法;畫出函數(shù)的調(diào)用關(guān)系圖。調(diào)試分析以及設(shè)計體會:測試數(shù)據(jù):準(zhǔn)備典型的測試數(shù)據(jù)和測試方案, 包括正確的輸入及輸出結(jié)果和含有錯誤的輸入及輸出結(jié)果;程序調(diào)試中遇到的問題以及解決問題的方法;課程設(shè)計過程經(jīng)驗教訓(xùn)、心得體會。關(guān)鍵源程序(帶注釋)按規(guī)定格式完成課程設(shè)計報告,將其打印稿(a4 紙)上

4、交給老師存檔。目錄1 需求分析 . 1 2 系統(tǒng)總框圖和功能模塊說明. . 22.1 系統(tǒng)總框圖 . 22.2 功能模塊說明 . . 23 系統(tǒng)設(shè)計 . 33.1 主要結(jié)構(gòu)體 . 33.2 主要功能函數(shù) . 33.3 關(guān)鍵函數(shù)的流程圖 . . 44 系統(tǒng)調(diào)試 . 4 5 總結(jié) . 7 6 源程序清單 . 91 1 需求分析1 問題描述運動會分?jǐn)?shù)統(tǒng)計參加運動會有 n 個學(xué)校,學(xué)校編號為1n。比賽分成 m個男子項目,和 w個女子項目。項目編號為男子1m ,女子 m+1 m+w 。不同的項目取前五名或前三名積分;取前五名的積分分別為: 7、5、3、2、1,前三名的積分分別為:5、3、2;哪些項目取前

5、五名或前三名由使用者設(shè)定。 (m=20,n=20 )2. 基本要求 1) 可以輸入各個項目的前三名或前五名的成績; 2) 能統(tǒng)計各學(xué)??偡?; 3) 可以按學(xué)校編號、學(xué)??偡?、男女團體總分排序輸出; 4) 可以按學(xué)校編號查詢學(xué)校某個項目的情況;5) 可以按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。3. 測試數(shù)據(jù)1)首先進入成績錄入界面,先輸入?yún)①悓W(xué)校數(shù),再輸入男子組數(shù)和女子組數(shù);2)然后進入總目錄;3)輸入 :1 輸入成績;4)輸入: 2 統(tǒng)計各??偡?;5)輸入: 3 統(tǒng)計各校項目得分;6)輸入: 4 按學(xué)??偡峙判蜉敵觯?)輸入: 5 按男團體總分排序輸出;8)輸入: 6 按女團體總分排序輸出;9)

6、輸入: 7 按學(xué)校編號查詢學(xué)校某個項目的成績;10)輸入: 8 按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校;11)輸入: 0 退出;2 2 系統(tǒng)總框圖和功能模塊說明2.1 系統(tǒng)總框圖2.2 功能模塊說明1)輸入 :1 輸入成績; 輸入某一項目的成績2)輸入: 2 統(tǒng)計各??偡郑?統(tǒng)計各校所有項目總分之和3)輸入: 3 統(tǒng)計各校項目得分; 輸出各校各項目得分3 4)輸入: 4 按學(xué)校總分排序輸出; 按照總分從大到小排序5)輸入: 5 按男團體總分排序輸出; 僅按照男子團體總分從大到小排序6)輸入: 6 按女團體總分排序輸出; 僅按照女子團體總分從大到小排序7)輸入: 7 按學(xué)校編號查詢學(xué)校某個項目的

7、成績; 輸入學(xué)校編號及項目編號可查詢該校的該項目成績8)輸入: 8 按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校; 輸入項目編號可查詢該項目獲得名次的學(xué)校9)輸入: 0 退出; 退出系統(tǒng) 3 系統(tǒng)設(shè)計3.1 主要結(jié)構(gòu)體菜單號 choo 學(xué)校:num 項目:ab 男團、de 女團、ke3.2 主要功能函數(shù)void exit0() void input() void each() void biaohao() void zongfen() void nanzong() void nvzong() void xuexiao() void xiangmu() void main() 4 3.3 關(guān)鍵函數(shù)的流

8、程圖 4 系統(tǒng)調(diào)試開始界面,分別輸入3、7、3. 輸入 1 后顯示void exit0()void input()void each() void biaohao() void zongfen() void nanzong() void nvzong() void xuexiao() void xiangmu()void main() 5 輸入 2 后顯示輸入 3 后顯示輸入 4 后顯示輸入 5 后顯示6 輸入 6 后顯示輸入 7 后顯示輸入 8 后顯示7 輸入 9 退出5 總結(jié)課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具

9、體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新月異,計算機編程已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域,在生活著可以說是無處不在。課程設(shè)計馬上接近尾聲,一周的c 語言程序設(shè)計讓我感觸頗深,詞不能達意。畢竟學(xué)了一學(xué)期的 c 語言,不管怎么樣,還是要面對課程設(shè)計。一開始聽到要做課程設(shè)計,其實我的內(nèi)心是抵觸的,因為,根本沒有想到自己專業(yè)的基本課程會涉及到c語言的課程設(shè)計,但是上課聽老師生動的講課,又喚起了我陰郁的心情,我們的c語言老師講課生動有趣,給我感覺是個很負(fù)責(zé)人的老師,我們班三個女生都在是老師特別負(fù)責(zé),很喜歡這個老師,這讓我對大學(xué)老師的看法改觀。回顧起此次 c語言課程設(shè)計,至今我仍然感慨頗多。比如說:

10、有時遇到一個錯誤怎么找也找不到原因所在,找了老半天卻是程序位置都搞不清,有時一個功能不知道怎么實現(xiàn),照這個,找那個。花了六個小時編的程序,到頭來卻很多錯誤,無法運行,而且不知道怎么改。再說上機,這一周是我過的最充實的一周,雖然剛剛開始有一點緊張,不知所措,但是通過同學(xué)和朋友的鼓勵,我慢慢的把自己的態(tài)度放端正了。有一個朋友和我說過,干不好一件你認(rèn)為困難的事情,那么簡單的事情你也干不好,因為,從頭到尾,你的態(tài)度就沒有擺正。所以,我決定,要想過完這一次課程設(shè)計,就必須要端正態(tài)度。于是,我上機的時候就盡量控制自己不玩手機,不神游,不和別人講笑話。幾天下來,我覺得自己對c語言的了解有了一定的提升。8 課

11、設(shè)中遇到的開始動手操作,原來編程很有意思,有時遇到了一個錯誤怎么找也找不到原因所在,找了老半天結(jié)果卻是一個函數(shù)放錯了地方所致,有時一個功能不知道怎么實現(xiàn)找這個、找那個。有所編到最后一運行卻告訴我錯誤,那真的很讓人惱火。以前上課都是學(xué)一些最基本的東西,覺得很枯燥,而現(xiàn)在卻可以將以前學(xué)的東西編出有實際價值的東西,這樣自己非常的投入,其實什么事情只要自己用心了,就會有所感觸,有所收獲。真的覺得有味道,生活都變充實了。 c語言又是一種系統(tǒng)開發(fā)語言。這一個學(xué)期對c語言的接觸讓我明白了自己的不足之處,對書上內(nèi)容的理解不夠透徹。這一周的課程設(shè)計讓我們有機會上機調(diào)試,我才發(fā)現(xiàn)我們的程序存在這么多的漏洞和錯誤,

12、我一次一次的更改著自己的程序錯誤,每次改對了一個錯誤就特別開心,那時候我才發(fā)現(xiàn)原來自己解決一件事情,會得到這么多的自豪感。通過這次的課程設(shè)計,我受益匪淺。它讓我了解了細(xì)心的重要性,程序中若有一絲一點的錯誤就會影響整個程序,而使其不能運行。當(dāng)我第一次拿到課程設(shè)計的任務(wù)書的時候,我都非常的興奮,因為這是我們一次很好的鍛煉機會。我經(jīng)過一周的c語言課程設(shè)計,我不但實踐了課本的所學(xué)的知識,還親自制作了自己的小程序,感覺自己對c語言有了更深入的了解。在調(diào)試過程中,特別讓我印象深刻的是自己開始在程序調(diào)試的時候,開始并沒有并沒有看到預(yù)期的結(jié)果,最后我仔細(xì)檢查了源程序代碼,發(fā)現(xiàn)自己在申明函數(shù)的時候,出現(xiàn)了一個嚴(yán)

13、重的語法問題,導(dǎo)致我整個程序都不能運行。當(dāng)時自己的心里特別挫敗,為什么別人都能做好,自己就是做不好呢,我不比別人差啊,心里沒來由的感覺特別失敗,我開始放棄自己的先前做的工作,覺得自己是第一次做設(shè)計,第一次看到這么長的程序代碼,有理由放棄。想著自己很辛苦的寫了這么久,還是不想放棄,我開始慢慢去找我出的問題,我從頭到尾檢查了一面,終于發(fā)現(xiàn)了問題之所在,我的心情頓時高興起來,終于看到了希望!我小心翼翼的把程序編譯,調(diào)試,出來的結(jié)果就是我心里面所想的那樣子,我開心極了,那個時候我才知道,什么叫做皇天不負(fù)苦心人。成功往往是留給有準(zhǔn)備的人,上帝不會虧待任何人,也不會厚此薄彼,只要肯努力,那么大學(xué)也可以是個

14、提升自己的天堂,與善人為伍,如入芝蘭之室,久而不聞其香。不光身邊的人重要,環(huán)境也重要,在自己喜歡的地方學(xué)習(xí)知識也是一種別樣的享受。這次 c語言的課程設(shè)計讓我懂得了很多,大學(xué)其實根本不想我想象的那樣子,渾渾噩噩的過日子是沒有什么意義的, 大學(xué)的學(xué)分考試也不是那么容易就拿到就過的,c語言程序設(shè)計不僅僅教會了我們知識,還讓我懂得了學(xué)術(shù)的嚴(yán)謹(jǐn)性,嚴(yán)苛性,就拿我們c語9 言來說,容不得一點點差錯,哪怕是一個逗號,一個空格,都會導(dǎo)致你的程序無法運行或者完全崩潰。我想好好學(xué)習(xí) c語言的時候,卻不要學(xué)了,謝謝王穎老師! 6 源程序清單#include #include int a,b,c,d,i,j; str

15、uct node int num; ; struct node *f22; void exit0() file *fp; int k; alp:if(fp=fopen(e:sore.txt,w)=null) printf(creat errorn); printf( 1*try againn); printf( 2*tui chun); printf( 3*return menun); /回到主菜單 / alj: scanf(%d,&k); if(k=1) goto alp; else if(k=2) exit(0); else if(k=3) return; else printf(

16、 輸入錯誤,請重新輸入:); goto alj; printf(fp,nn); fprintf(fp, * 運動會分?jǐn)?shù)統(tǒng)計表*nnn); printf(fp, * 項目代號*); for(i=1;i=c+d;i+) printf(fp,%5d,i); printf(fp, ); printf(fp,n * 學(xué)校代號 *); 1 0for(i=1;i=a;i+) printf(fp,%10d ,i); for(b=1;bc+d|ab1) printf(n 此項目代號不存在,重新輸入: n); goto ale; 1 1 ae=0; for(i=0;i=a;i+) if(fiab.num!=0)

17、ae=1; break; if(ae=1) al2: printf(n 此項目成績已被錄入過,是否要重新錄入:n); /此項目成績曾經(jīng)已被錄入過,是否要重新錄入(您輸入的項目代號可能有誤,強烈建議您查證后再錄入)/ printf( 1+ 是n);/ (若重新錄入,以前的該項目成績將被刪除)/ printf( 2+ 否n);/ 不要,待查證后再錄入/ scanf(%d,&af); if(af=2) printf( 已取消錄入 !n); return; else if(af=1) for(i=1;i=a;i+) if(fiab.num!=0) fi0.num=fi0.num-fiab.nu

18、m; if(ab=c) fic+d+1.num=fic+d+1.num-fiab.num; else fic+d+2.num=fic+d+2.num-fiab.num; fiab.num=0; else goto al2; al: printf(n 此項目是以前幾名為勝出者:n); / 選擇得分標(biāo)準(zhǔn) / printf( 3- 以前三名 n); printf( 5- 以前五名 n); scanf(%d,&ac); if(ac=3) 1 2 printf( 請按照第一、第二、第三的名次依次輸入獲勝學(xué)校代號:); af=5; for(i=0;ia|ae1) printf( %d 學(xué)校代號不存

19、在,重新輸入第 %d 名的學(xué)校代號 :,ae,g); goto alq; for(b=0;b5;b+) if(ae=getb) printf( 同一個學(xué)校不能在同一項目中有兩個名次,請重新輸入第 %d 名的學(xué)校代號:,g); goto alq; else getb=ae; fae0.num=fae0.num+af; faeab.num=af; if(ab3) af=af-2; else af-; g+; else if(ac=5) printf( 請按照第一、第二、第三、第四、第五的名次依次輸入獲勝學(xué)校代號:); af=7; for(i=0;ia|ae1) 1 3printf( %d 學(xué)校代號

20、不存在,重新輸入第 %d 名的學(xué)校代號:,ae,g); goto alw; for(b=0;b5;b+) if(ae=getb) printf( 同一個學(xué)校不能在同一項目中有兩個名次,請重新輸入第 %d 名的學(xué)校代號:,g); goto alw; else getb=ae; fae0.num=fae0.num+af; faeab.num=af; if(ab3) af=af-2; else af-; g+; else goto al; printf( 輸入完成 ! n); /*學(xué)校成績 */ void each() printf(n 學(xué)校代號 :團體總成績 n); for(i=1;i=a;i+)

21、 printf( %d : %dn,i,fi0.num); /*各項目成績 */ void biaohao() printf(n 項目代號: ); 1 4for(i=1;i9) printf( %d ,i); else printf(%5d ,i); printf(n 學(xué)校代號: n); for(i=1;i=a;i+) printf(%7d ,i); for(b=1;b9) printf(%6d,fib.num); else printf(%7d,fib.num); printf(n); /*按學(xué)校總分排序輸出*/ void zongfen() struct nod int ke; int n

22、um; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(n 學(xué)校代號 :團體總成績 n); for(i=1;i=a;i+) dei.ke=i; dei.num=fi0.num; for(i=1;i=a;i+) for(b=i;bdei.num) 1 5ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num; dei.num=ha; for(i=1;i=a;i+) printf( %d : %dn,dei.k

23、e,dei.num); /*按男子團隊總分排序*/ void nanzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(n 學(xué)校代號 :男子團體總成績n); for(i=1;i=a;i+) dei.ke=i; dei.num=fic+d+1.num; for(i=1;i=a;i+) for(b=i;bdei.num) ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num;

24、deb.num=dei.num; dei.num=ha; 1 6 for(i=1;i=a;i+) printf( %d : %dn,dei.ke,dei.num); /*按女子團隊總分排序*/ void nvzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(n 學(xué)校代號 :女子團體總成績n); for(i=1;i=a;i+) dei.ke=i; dei.num=fic+d+2.num; for(i=1;i=a;i+) for(b=i;bdei.num) ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num; dei.num=ha; for(i=1;ia|drc+d|dtc+d|ge1) printf( 沒有此項目代號,重新輸入: n); goto all; for(i=1;i=a;i+) if(fige.num=2) sedy=1; if(sedy=0) printf( 此項目沒有錄入成績n); return; for(i=1;i0;i-) fo

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論