版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中 國 地 質(zhì) 大 學(xué)本科生課程論文封面課程名稱 C語言課程設(shè)計 教師姓名 邵老師 本科生姓名 趙鴻 本科生學(xué)號 本科生專業(yè) 應(yīng)用化學(xué) 所在院系 材化學(xué)院 類別: C.本科生 日期: 2010 年 7 月 5 日 課程設(shè)計評語對課程論文的評語:平時成績:課程論文成績:總 成 績:評閱人簽名:注:1、無評閱人簽名成績無效;2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;3、如有平時成績,必須在上面評分表中標(biāo)出,并計算入總成績。目 錄課程設(shè)計評語2目 錄31課程論文題目42程序設(shè)計思路43功能模塊圖54數(shù)據(jù)結(jié)構(gòu)設(shè)計55算法設(shè)計66程序代碼137程序運行結(jié)果228編程中遇到的困難及解決方法259總結(jié)心得
2、及良好建議2610致謝26課程論文題目1校際運動會管理系統(tǒng)一、題目要求(1)信息初始化 輸入:N參賽學(xué)校總數(shù),M男子競賽項目數(shù), W女子競賽項目數(shù); 各項目名次取法有如下幾種:取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用戶自定義:各名次權(quán)值由用戶指定。(2)提醒用戶填寫比賽結(jié)果,輸入各項目獲獎運動員信息。(3)所有信息記錄完畢后,用戶可以查詢各個學(xué)校的比賽成績,生成團體總分報表,察看參賽學(xué)校信息和比賽項目信息等。2程序設(shè)計思路根據(jù)題目要求應(yīng)提供鍵盤式菜單實現(xiàn)功能選擇,還應(yīng)提供信息的輸入操作,由于在程序中
3、提供查詢功能所以應(yīng)有顯示、查找等操作。根據(jù)上面的需求分析,可以將這個系統(tǒng)的設(shè)計分為1、信息輸入模塊 2、比賽結(jié)果錄入模塊 3、查詢模塊。具體校際運動會管理系統(tǒng)分為 信息的輸入、結(jié)果的輸入、學(xué)校各個項目的得分的查尋、總體報表的生成。3功能模塊圖(每個功能模塊都標(biāo)注函數(shù)名稱,如右圖)Saveathele ()保存運動員信息Saveschool ()保存學(xué)校信息InformationSaveprogram ()保存項目信息Savescore() 比賽結(jié)果錄入Main Ttzf () 查詢團體總分Search ( )Csxx ()查詢參賽學(xué)校信息Bsxm ()查詢團體總分Exi t(0)4數(shù)據(jù)結(jié)構(gòu)設(shè)計
4、 數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體的形式,包括學(xué)校、項目、運動員三個結(jié)構(gòu)體。比如學(xué)校結(jié)構(gòu)體成員包括學(xué)校校名、競賽項目、得分;項目結(jié)構(gòu)體成員包括項目名、權(quán)值。struct athlete/定義運動員信息char univ5;char name8;char prog15; char mingci5;int score;atSIZE;struct xuexiao/定義學(xué)校信息char univ5;char prog15;int num_athlete;xxN;struct program/定義項目信息char prog5;int quming; char ath15;char ath25;char univ15;
5、char univ25;proWM;struct zongfen /定義學(xué)校得分信息char univ5;char prog15;char prog25;char prog35;int score1;int score2;int score3;int total_score;zfN;5算法設(shè)計1.主函數(shù)一般設(shè)計的較為簡潔,只提供輸入、功能處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。另外菜單部分也可以寫成函數(shù)。顯示一系列功能選項輸入,判斷是否是4根據(jù)的值調(diào)用各功能模塊函數(shù)圖主函數(shù)流程圖 Y程序void main()menu(); void menu()int n,w1;do puts
6、(tt*_ Welcome to load sports system! _*n); puts(tt*MENU*n); puts(tt* 1.Enter the information *n); puts(tt* 2.Score 比賽結(jié)果錄入 *n); puts(tt* 3.Search *n); puts(tt* 4.Exit *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w1=1; getchar(); else w1=0; while (w1=1); switch(n) case 1
7、:Information();break; /輸入信息 case 2:savescore();break;/比賽結(jié)果錄入 case 3:Search();break;/查詢模塊 case 4:exit(0); 2. 各功能模塊設(shè)計(1) 信息輸入模塊一是參賽學(xué)校信息,二是參賽運動員信息,三是比賽項目信息,分別輸入并保存信息輸入讀入、顯示參賽學(xué)校讀入、顯示運動員讀入比賽項目圖信息輸入模塊流程圖 void Information() int n,w ; do puts(nnn); puts(tt*_ Welcome to load 信息錄入 system! _*n); puts(tt*MENU*n
8、); puts(tt* 1.saveathlete *n); puts(tt* 2.saveschool *n); puts(tt* 3.saveprogram() *n); puts(tt* 4.back *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存運動員信息子函數(shù) case 2 : saveschool(); break;/
9、保存學(xué)校信息子函數(shù) case 3 : saveprogram();break;/保存項目比賽信息子函數(shù) case 4 : exit(0); (2) 結(jié)果錄入模塊錄入運動員比賽得分圖4比賽結(jié)果錄入模塊流程圖分析計算各學(xué)??偡?(3)查詢信息模塊分析查詢信息模塊提供按不同方式查詢各種信息機返回功能,其中各功能模塊用菜單方式選擇。菜單部分也可寫成函數(shù)。查詢信息模塊查詢學(xué)校查詢運動員查詢項目返回主菜單圖6查詢信息模塊流程圖定義結(jié)構(gòu)體指針UNI*next輸入學(xué)校名字判斷輸入名字與結(jié)構(gòu)體中學(xué)校名是否相同指針變量值向下一組數(shù)據(jù)調(diào)用輸出函數(shù)圖8 查詢學(xué)校名流程圖 6程序代碼/ 楊雪.cpp : Defines
10、 the entry point for the console application./#include#include#include#include#define SIZE 9#define N 3 #define WM 3void bsxm();void csxx();void Information();void main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void ttzf()
11、;int i;FILE *fp1,*fp2,*fp3,*fp4;struct athlete/定義運動員信息char univ5;char name8;char prog15; char mingci5;int score;atSIZE;struct xuexiao/定義學(xué)校信息char univ5;char prog15;int num_athlete;xxN;struct program/定義項目信息char prog5;int quming; char ath15;char ath25;char univ15;char univ25;proWM;struct zongfen /定義學(xué)校得
12、分信息char univ5;char prog15;char prog25;char prog35;int score1;int score2;int score3;int total_score;zfN;void Information() int n,w ; do puts(nnn); puts(tt*_ Welcome to load 信息錄入 system! _*n); puts(tt*MENU*n); puts(tt* 1.saveathlete *n); puts(tt* 2.saveschool *n); puts(tt* 3.saveprogram() *n); puts(tt
13、* 4.back *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存運動員信息子函數(shù) case 2 : saveschool(); break;/保存學(xué)校信息子函數(shù) case 3 : saveprogram();break;/保存項目比賽信息子函數(shù) case 4 : exit(0); void saveathlete()/保存運動員信
14、息子函數(shù) printf(n請輸入各項目獲獎運動員的信息:);for(i=0;iSIZE;i+) printf(n請輸入第%d個運動員的信息:n,i+1);printf(姓名:); scanf(%s,); printf(學(xué)校:); scanf(%s,ati.univ); printf(參賽項目:); scanf(%s,g);printf(名次:);scanf(%s,ati.mingci); printf(得分:); scanf(%d,&ati.score);fp1=fopen(ath,w);for(i=0;iSIZE;i+)if(fwrite(&ati,sizeof
15、(struct athlete),1,fp1)!=1)printf(File write error!n);fclose(fp1);fp1=fopen(ath,r); printf(n現(xiàn)在各運動員的信息如下:nn); printf(姓名 學(xué)校 項目 名次 得分n);for(i=0;iSIZE;i+)fread(&ati,sizeof(struct athlete),1,fp1); printf(%-10s%-10s%-18s%-10s%dn,,ati.univ,g,ati.mingci,ati.score);fclose(fp1);printf_back();vo
16、id saveschool()/保存學(xué)校信息子函數(shù)printf(n請輸入各參賽學(xué)校的信息:);for(i=0;iN;i+)printf(n請輸入第%d個學(xué)校的信息:n,i+1);printf(學(xué)校:);scanf(%s,xxi.univ);printf(參賽的項目:);scanf(%s,g);printf(參賽者數(shù):);scanf(%d,&xxi.num_athlete);fp3=fopen(xxiao,w);for(i=0;iN;i+)if(fwrite(&xxi,sizeof(struct xuexiao),1,fp3)!=1)printf(File write error!
17、n);fclose(fp3); printf_back();void saveprogram()/保存項目比賽信息子函數(shù)printf(n請輸入關(guān)于比賽項目的信息:);for(i=0;iWM;i+)printf(n請輸入第%d項比賽的信息:n,i+1);printf(項目:);scanf(%s,g);printf(取分情況:);scanf(%d,&proi.quming);printf(參賽者1:);scanf(%s,proi.ath1);printf(所屬學(xué)校:);scanf(%s,proi.univ1);printf(參賽者2:);scanf(%s,proi.ath2);pr
18、intf(所屬學(xué)校:);scanf(%s,proi.univ2); fp4=fopen(pr,w);for(i=0;iN;i+)if(fwrite(&proi,sizeof(struct program),1,fp4)!=1)printf(File write error!n);fclose(fp4); printf_back();void savescore()/保存學(xué)校得分情況子函數(shù)printf(N-參賽學(xué)??倲?shù),M-男子競賽項目數(shù),W-女子競賽項目數(shù)。n);printf(W.100-女子一百米比賽,M.100-男子一百米,M.200-男子兩百米。n);printf(n各項名次得分權(quán)值如下
19、:n);printf(取前三名:第一名5分 第二名3分 第三名2分n);printf(n請輸入各學(xué)校的得分情況:); for(i=0;iN;i+)printf(n請輸入第%d個學(xué)校的得分情況:n,i+1);printf(學(xué)校:);scanf(%s,zfi.univ); printf(參賽項目1:);scanf(%s,g1);printf(得分:);scanf(%d,&zfi.score1);printf(參賽項目2:);scanf(%s,g2);printf(得分:);scanf(%d,&zfi.score2);printf(參賽項目3:);scanf(%s,zfi
20、.prog3);printf(得分:);scanf(%d,&zfi.score3);zfi.total_score=zfi.score1+zfi.score2+zfi.score3; fp2=fopen(zfen,w);for(i=0;iN;i+)if(fwrite(&zfi,sizeof(struct zongfen),1,fp2)!=1)printf(File write error!n);fclose(fp2); printf_back();void Search()int n,w2;do puts(tt*_ Welcome to load search system! _*n); pu
21、ts(tt*MENU*n); puts(tt* 1.search ttzf *n);/查看團體總分 puts(tt* 2.search csxx *n);/查看參賽學(xué)校信息! puts(tt* 3.search bsxm *n);/查看比賽項目信息! puts(tt* 4.Exit *n);/退出 puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w2=1; getchar(); else w2=0; while (w2=1); switch(n) case 1:ttzf();break; case 2
22、: csxx();break; case 3:bsxm();break; case 4: exit(0);break; default: printf(未進(jìn)行任何操作!); void ttzf()/查看學(xué)校團體總分子函數(shù)fp2=fopen(zfen,r); printf(n各學(xué)校的團體總分情況如下:nn); printf(學(xué)校 參賽項目 總分n);for(i=0;iN;i+)fread(&zfi,sizeof(struct zongfen),1,fp2); printf(%-8s%s,%s,%-12s%-12dn,zfi.univ,g1,g2,g3,z
23、fi.total_score);fclose(fp2);printf_back();void csxx()/查看參賽學(xué)校信息子函數(shù) fp3=fopen(xxiao,r); printf(n各參賽學(xué)校的情況如下:nn); printf(學(xué)校 參賽項目 參賽者數(shù)n);for(i=0;iN;i+)fread(&xxi,sizeof(struct xuexiao),1,fp3); printf(%-8s%-20s%-12dn,xxi.univ,g,xxi.num_athlete);fclose(fp3); printf_back();void bsxm()/查看比賽項目子函數(shù) fp4=f
24、open(pr,r); printf(n各比賽項目的信息如下:nn); printf(項目 取分情況 參賽者1 所屬學(xué)校 參賽者2 所屬學(xué)校n);for(i=0;iN;i+)fread(&proi,sizeof(struct program),1,fp4); printf(%-12s%-10d%-10s%-12s%-10s%-12sn,g,proi.quming,proi.ath1,proi.univ1,proi.ath2,proi.univ2);fclose(fp4);printf_back();void main()menu(); void menu()int n,w1;d
25、o puts(tt*_ Welcome to load sports system! _*n); puts(tt*MENU*n); puts(tt* 1.Enter the information *n); puts(tt* 2.Score 比賽結(jié)果錄入 *n); puts(tt* 3.Search *n); puts(tt* 4.Exit *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) w1=1; getchar(); else w1=0; while (w1=1); switch(n)
26、case 1:Information();break; /輸入信息 case 2:savescore();break;/比賽結(jié)果錄入 case 3:Search();break;/查詢模塊 case 4:exit(0); 7程序運行結(jié)果【() 主菜單函數(shù)() 信息錄入模塊() 查詢子菜單() 按學(xué)校名字查詢信息(5) 按項目查詢項目信息() 查詢團體總分8編程中遇到的困難及解決方法在學(xué)習(xí)C語言時,最初使用的是Microsoft visual 6+計算機編程軟件,但我們是使用C+Sourse File 編一個.c程序。而老師則要求我們使用工程的MFC AppWizad exe 編程。這是c+里的
27、知識。盡管當(dāng)時聽老師講c+與C語言有許多共同之處,但我們還是無從下手。后來老師把程序發(fā)該我們,讓我們用.C的編程就好多了。在編程的過程中,經(jīng)常會在語句結(jié)束時少“;”或者把中文輸入的引號輸入文件,很難發(fā)現(xiàn)錯誤所在。在編程題時也出現(xiàn)了一些編譯中的問題。例如,在開始未加頭文件#include導(dǎo)致有許多未定義的errors;在輸入字符串時用到“%S”,使功能無法輸出。由于原來題目要求較少,題目較簡單,在編譯時,我先按照題目要求將它編寫好,之后又給它添加了很多功能。在幫同學(xué)修改程序的過程中,也遇到過一個問題。在頭文件后定義了子函數(shù),可是之后忘了編寫子函數(shù),在糾錯時,有的是不會發(fā)現(xiàn)錯誤的,但是連接過程中就會報告
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵政系統(tǒng)司務(wù)公開制度
- 云南移動ai面試題目及答案
- 網(wǎng)絡(luò)安全防護措施及應(yīng)急處理方法
- 超聲科預(yù)約制度
- 診所醫(yī)療安全制度
- 設(shè)備的維護制度和質(zhì)量檢查制度
- 規(guī)模以上工業(yè)統(tǒng)計報表制度
- 2025年西咸新區(qū)學(xué)校教師筆試及答案
- 2025年國際酒店筆試題庫及答案
- 2025年幼教教編筆試及答案
- (一模)2025~2026學(xué)年佛山市高三教學(xué)質(zhì)量檢測(一)政治試卷(含答案)
- 食材采購配送投標(biāo)方案(技術(shù)方案)
- 車輛駕駛?cè)私逃嘤?xùn)制度
- 中國話語體系構(gòu)建的全球傳播效果課題申報書
- 2026年會計高級職稱考試試題及答案
- 2026廣東東莞市厚街鎮(zhèn)第一次招聘編外聘用人員12人考試備考試題及答案解析
- 2026年智能燃?xì)鈭缶黜椖繝I銷方案
- 中科宇航招聘筆試題庫2026
- 醫(yī)院物資采購流程及管理規(guī)范手冊
- 2026年低空管控系統(tǒng)項目投資計劃書
- 預(yù)制空心板梁架設(shè)專項施工方案
評論
0/150
提交評論