運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)(附源程序)_第1頁
運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)(附源程序)_第2頁
運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)(附源程序)_第3頁
運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)(附源程序)_第4頁
運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)(附源程序)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、*實踐教學(xué)* 蘭州理工大學(xué)計算機與通信學(xué)院2012年春季學(xué)期 C程序設(shè)計 課程設(shè)計題 目:運動會分?jǐn)?shù)統(tǒng)計系統(tǒng) 專業(yè)班級:計算機科學(xué)與技術(shù)(2)班姓 名: 學(xué) 號: 指導(dǎo)教師: 成 績:_前言本設(shè)計要求學(xué)生以運動會分?jǐn)?shù)統(tǒng)計業(yè)務(wù)為背景,設(shè)計、開發(fā)一套“運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)”軟件。通過該題目的設(shè)計過程,可以培養(yǎng)我們的結(jié)構(gòu)化程序設(shè)計思想,加深對高級語言基本語言要素和控制結(jié)構(gòu)的理解,針對c語言中的重點和難點內(nèi)容進行訓(xùn)練,獨立完成有一定工作量的程序設(shè)計任務(wù),同時強調(diào)好的程序設(shè)計風(fēng)格。得到軟件工程的綜合訓(xùn)練,提高解決實際問題的能力。在本次任務(wù)的準(zhǔn)備起初,我們小組搜集了大量的參考文獻,例如 C/C+程序設(shè)計教程

2、(第二版),王連相,中國鐵道出版社,2011 C語言程序設(shè)計,譚浩強,清華大學(xué)出版社,1999等等,還上網(wǎng)進行了相關(guān)資料的查閱。在課設(shè)期間,多次前往指導(dǎo)老師處讓老師進行專業(yè)的指點,在進行程序測試的時候,我們小組分工明確,對每一個小段程序都進行了不下三次的測試,從而保證了在程序最后成型時編譯、運行的可能性。在課設(shè)的最后,我們對程序進行了反復(fù)的測試,調(diào)整,編寫課程報告書,進行最后的檢查,力求做到精益求精。本次課設(shè)在廖老師的帶領(lǐng)下進行的,在本次程序編寫起初,我們就遇到了很多棘手的問題。例如,如何講課本上的C語言語句轉(zhuǎn)換成一個實際的可用程序,等等。雖然遇到了問題,但是最后在廖成斌老師的細(xì)心指導(dǎo)下以及全

3、體組員的共同努力下,還是完成了此次的課設(shè)任務(wù)。在本次課程設(shè)計之中,我學(xué)到了很多東西。發(fā)現(xiàn)了一個人的力量是微不足道的,團隊的意識在我腦海中逐漸的根深蒂固。而在學(xué)習(xí)的過程中,我充分的感受到了指路人的重要性,如果沒有廖成斌老師的耐心指導(dǎo),那么完成此次課程則變成了一個難上加難的任務(wù)。對于專業(yè)的學(xué)習(xí),我感到C語言的基礎(chǔ)性以及它的重要性,在平時的生活中應(yīng)該多加練習(xí),使得C語言的這種思想能在我們腦海里根深蒂固。對于本專業(yè)的了解也越來越多,當(dāng)我逐漸走進它的時候,我發(fā)現(xiàn)它的博大精深,使我對于它的喜愛越來越深。在此要特別感謝廖成斌老師的耐心指導(dǎo)。摘要運動員分?jǐn)?shù)統(tǒng)計系統(tǒng)是一個工作單位不可缺少的管理工具,它管理的數(shù)據(jù)

4、對于運動會的成功舉辦來說至關(guān)重要,所以運動員分?jǐn)?shù)統(tǒng)計系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。通過運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)為需要管理大量的運動員信息和學(xué)校信息的部門提供人員登記,人員瀏覽,人員查詢等功能,方便管理者按照各種分類來劃分,查找,提高管理效率,其開發(fā)內(nèi)容主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。隨著計算機技術(shù)的不斷提高,計算機作為知識經(jīng)濟時代的產(chǎn)物,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各個行業(yè)和領(lǐng)域并發(fā)揮著越來越重要的作用,成為人們工作和生活中不可缺少的一部分。關(guān)鍵詞: 運動會 分?jǐn)?shù) 統(tǒng)計 目錄1.需求分析:(1)問題分析根據(jù)研究分析,該系統(tǒng)所應(yīng)包含

5、的信息如下:運動員信息:學(xué)校名稱,運動員姓名,運動員性別,運動員編號,運動項目編號,項目名稱,運動員得分。(2)該系統(tǒng)功能如下:1.各種基本數(shù)據(jù)的錄入。如:運動員基本信息錄入。2.各種基本數(shù)據(jù)的修改。即:各種基本數(shù)據(jù)的刪除和增加。例如將張三的信息從運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)中刪除,從運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)錄入表中增加李四的信息。3.基于各種數(shù)據(jù)的查詢。例如輸入張三編號,查詢張三的學(xué)校、姓名、性別、運動員編號、項目編號、項目名稱、分?jǐn)?shù)。(3)運行要求能不受限制的錄入運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)。界面友好,操作方便。容錯性強,例如數(shù)據(jù)導(dǎo)出時,如果文件不存在需要提示用戶。2.總體設(shè)計根據(jù)運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)問題的分析和設(shè)計

6、要求,可以將該系統(tǒng)可以分為三個模塊:信息錄入模塊、信息修改模塊、信息查詢模塊、退出模塊,其系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。(1)信息錄入模塊實現(xiàn)信息的輸入、存檔。(2)信息修改模塊,實現(xiàn)信息的增加和刪除。(3)信息查詢實現(xiàn)信息的查詢。(4)退出模塊實現(xiàn)退出系統(tǒng)。運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)信息錄入模塊信息修改模塊信息查詢模塊退出模塊圖1. 運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)功能模塊圖3. 詳細(xì)設(shè)計3.1主控模塊設(shè)計控制整個程序的運行,通過主函數(shù)模塊分別調(diào)用各個模塊,實現(xiàn)各項功能,流程如圖2所示。輸入YY輸入學(xué)校及運動員信息輸入各運動員名次成績Y繼續(xù)輸入N成績查詢Case2Case1查詢各運動員成績輸出查詢運動員成績繼續(xù)YN結(jié)

7、束退出圖2.主模塊流程圖如圖2所示主函數(shù)的執(zhí)行過程是:先進入菜單頁面,即調(diào)用菜單子函數(shù),在菜單子函數(shù)中選擇子函數(shù)相對應(yīng)的序號進入,在子函數(shù)中又調(diào)用各功能模塊,執(zhí)行完后退出。3.2錄入模塊:輸入1開始輸入學(xué)校名稱運動員姓名運動員性別運動員編號項目編號項目名稱項目得分結(jié) 束圖3.輸入函數(shù)流程圖 如圖3所示輸入函數(shù)的流程圖:選擇1進入,然后輸入學(xué)校名稱,運動員姓名,運動員性別,運動員編號,項目編號,項目名稱,輸入N或n跳出回到主菜單。其間用到while循環(huán)語句。3.3修改模塊:進入修改信息模塊選擇修改方式返回上一級刪除信息增加運動員信息 結(jié) 束 圖4.修改函數(shù)流程圖如圖4所示修改函數(shù)流程圖:選擇2進

8、入修改信息模塊,共有3種修改方式,選擇相對應(yīng)的序號進行,然后修改信息。3.4查詢模塊:輸入3進入查詢系統(tǒng) 返回上一級按運動員編號查詢 輸入錯誤 此運動員沒有參加此次運動會 輸入正確 輸出正確的信息 退出圖5.查詢函數(shù)流程圖 注釋:成績查詢?yōu)檫\動員編號查詢方式,用swith(choice)選擇。4 主要函數(shù)功能描述4.1選擇函數(shù)int choice函數(shù)原型:int choice,i,j,k功能描述:通過choice來選擇需要以何種方式來查詢、輸出,若有,則輸出所屬的子菜單。若無,則輸出“請鍵入一個正確的選擇”。5 測試與調(diào)試(1)首先運行文件運動會統(tǒng)計分?jǐn)?shù)系統(tǒng) (2) 輸入信息:程序首先賦初值,

9、輸入1得到進入輸入信息模塊。調(diào)試結(jié)果:輸入了一系列基本信息(3)修改信息:輸入2進入信息修改模塊:調(diào)試結(jié)果:出現(xiàn)增加運動員信息和刪除信息兩個選項。輸入1進入增加運動員信息模塊:輸入2進入刪除信息模塊:(4)查詢信息:輸入3進入信息查詢模塊: 調(diào)試結(jié)果:出現(xiàn)按運動員編號查詢選項。按運動員編號查詢:輸入錯誤信息時給出提示:調(diào)試結(jié)果:錯誤,此運動員沒有參加此次運動會。 個人設(shè)計小結(jié)與心得體會 通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)C程序設(shè)計方面的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗不足。實踐出真

10、知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。過而能改,善莫大焉。在課程設(shè)計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功、收獲喜悅,也永遠(yuǎn)不可能得到社會及他人對你的認(rèn)可!致謝首先感謝我的指導(dǎo)老師廖成斌老師

11、,他在我的課程設(shè)計過程中提出了指導(dǎo)性的方案和架構(gòu),并指引我閱讀相關(guān)的資料和書籍,使我在不熟悉的領(lǐng)域中仍能迅速掌握新的技術(shù)。還要感謝我的C語言老師王連相老師在以往的基礎(chǔ)課學(xué)習(xí)中為我打下良好的基礎(chǔ),這是我這次課程設(shè)計能夠順利完成的前提。最后,我要感謝我的同學(xué)。感謝他們在設(shè)計完成后對程序的測試以及在設(shè)計過程中的幫助,沒有他們,也許就難以發(fā)現(xiàn)一些潛在的錯誤,在此一并表示感謝。設(shè)計(論文)的主要參考文獻1 C/C+程序設(shè)計教程(第二版),王連相,中國鐵道出版社,20112 C語言程序設(shè)計,譚浩強,清華大學(xué)出版社,19993 C程序設(shè)計題解與上機指導(dǎo),譚浩強,清華大學(xué)出版社,19994 C/C+程序設(shè)計上

12、機指導(dǎo)與測試(第二版),王連相,中國鐵道出版社,20115 C語言函數(shù)手冊,機械工業(yè)出版社,19996 C語言的實際應(yīng)用,安徽科學(xué)技術(shù)出版社,2000附錄:源程序#include <stdio.h>#include <math.h>#include <conio.h>#include <dos.h>#include <string.h>#include <stdlib.h>#define N 20/#define NULL 0void design1(),design2(),design3();void add_sport

13、er(),delete_sporter();void search_sporter();float search_sporterschool();int n=0,i=0;float t;char ch;struct sporter char sporterschool20; char sportername20; char sportersex4; int sporternumber; char sportname20; int sportnumber; float score;sporterN;void main() int choice; FILE *fp; fp=fopen("

14、sport.txt","w");system("cls");printf("n"); printf("= 歡 迎 使 用 =n"); printf("nn*O*a*運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)*a*O*n"); printf("nn*1.錄入信息*n"); printf("*2.修改信息*n"); printf("*3.查詢信息*n"); printf("*4.退出系統(tǒng)*nnn"); printf("=nn

15、"); printf("*請選擇要實現(xiàn)步驟的編號:nn"); scanf("%d",&choice); switch(choice) case 1: /錄入信息 design1(); break; case 2:/修改信息 design2(); break; case 3: /查詢信息design3(); break; case 4:/退出系統(tǒng)printf("謝謝使用本系統(tǒng)on"); break; default: printf("n請鍵入一個正確的選擇"); fclose(fp);void de

16、sign1()/錄入信息 char ch; int i=0; FILE *fp; fp=fopen("sport.txt","w"); if(fp=fopen("sport.txt","w")=NULL) printf("File open failed!n"); return; fprintf(fp,"nn*O*a*運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)*a*O*n"); fprintf(fp,"%s%s%s%d%d%s%fn","學(xué)校名稱","

17、;運動員姓名","運動員性別","運動員編號","項目編號","項目名稱","項目得分"); fprintf(fp,"*n"); while(1) printf("n錄入運動員信息n"); printf("n請輸入學(xué)校名稱:"); scanf("%s",sporteri.sporterschool); printf("請輸入運動員姓名:"); scanf("%s",s

18、porteri.sportername); printf("n請輸入運動員性別:(男/女):"); scanf("%s",sporteri.sportersex); printf("n請輸入運動員編號:"); scanf("%d",&sporteri.sporternumber); printf("n請輸入項目編號:"); scanf("%d",&sporteri.sportnumber); printf("n請輸入項目名稱:"); sca

19、nf("%s",sporteri.sportname); printf("n請輸入項目得分:(7/5/3/2/1):"); scanf("%f",&sporteri.score); i+; n+; fprintf(fp,"%d%s%s%s%d%d%s%fn",n,sporteri.sporterschool,sporteri.sportername,sporteri.sportersex,sporteri.sporternumber, sporteri.sportnumber,sporteri.sportn

20、ame,sporteri.score); printf("ntt是否繼續(xù)錄入?(y/n):"); ch=getch(); if(ch='N'|ch='n')break; fclose(fp); main();void design2()/修改信息int n; printf("nn*1.增加運動員信息*n"); printf("*2.刪除信息*n"); printf("*3.返回上一級*n"); printf("*請選擇要實現(xiàn)步驟的編號:nn"); scanf(&q

21、uot;%d",&n); switch(n) case 1: /增加運動員信息 add_sporter(); break; case 2:/刪除信息 delete_sporter(); break; case 3:/返回上一級 main(); break; default: printf("n請鍵入一個正確的選擇"); void add_sporter()/增加運動員信息 char ch; FILE *fp;while(1) fp=fopen("sport.txt","a"); printf("n增加新運動

22、員信息n"); printf("n請輸入學(xué)校名稱:"); scanf("%s",sporter->sporterschool); printf("請輸入運動員姓名:"); scanf("%s",sporter->sportername); printf("n請輸入運動員性別:(男/女):"); scanf("%s",sporter->sportersex); printf("n請輸入運動員編號:"); scanf("%

23、d",&sporter->sporternumber); printf("n請輸入項目編號:"); scanf("%d",&sporter->sportnumber); printf("n請輸入項目名稱:"); scanf("%s",sporter->sportname); printf("n請輸入項目得分:(7/5/3/2/1):"); scanf("%f",&sporter->score); fprintf(fp,

24、"%s%s%s%d%d%s%fn",&sporteri.sporterschool,&sporteri.sportername,&sporteri.sportersex,&sporteri.sporternumber, &sporteri.sportnumber,&sporteri.sportname,&sporteri.score); printf("ntt是否繼續(xù)增加?(y/n):"); ch=getch(); if(ch='N'|ch='n')break; fc

25、lose(fp);return design2();void delete_sporter()/刪除信息 FILE *fp; int i=0,c; int k=0,h; fp=fopen("sport.txt","w"); printf("請輸入要刪除的運動員編號:"); scanf("%d",&c); for(i=0;i<N;i+) if(sporteri.sporternumber=c) k=1; h=i;break; if(k=1) fp=fopen("sport.txt",

26、"a"); for(i=0;i<h;i+)fprintf(fp,"%s%s%s%d%d%s%fn",sporteri.sporterschool,sporteri.sportername,sporteri.sportersex,sporteri.sporternumber, sporteri.sportnumber,sporteri.sportname,sporteri.score); for(i=h+1;i<N;i+) fprintf(fp,"%s%s%s%d%d%s%fn",sporteri.sporterschool

27、,sporteri.sportername,sporteri.sportersex,sporteri.sporternumber, sporteri.sportnumber,sporteri.sportname,sporteri.score); printf("刪除成功!"); else if(k=0) printf("沒有該運動員n"); printf("ntt是否繼續(xù)刪除?(y/n):"); ch=getch(); if(ch='Y'|ch='y') return delete_sporter(); else return design2(); fclose(fp);void design3()/查詢信息int m; printf("nn*

溫馨提示

  • 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

提交評論