




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C程序設計實習報告 校際運動會管理系統一、題目要求(1)信息初始化 輸入:N參賽學校總數,M男子競賽項目數, W女子競賽項目數; 各項目名次取法有如下幾種:錯誤!未找到引用源。 取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1; 取前3名:第一名得分5,第二名得分3,第三名得分2; 用戶自定義:各名次權值由用戶指定。(2)提醒用戶填寫比賽結果,輸入各項目獲獎運動員信息。(3)所有信息記錄完畢后,用戶可以查詢各個學校的比賽成績,生成團體總分報表,察看參賽學校信息和比賽項目信息等。二.總體設計分析整個系統,根據以上的需求分析及題目要求,可將整個系統的設計分為以下五個
2、模塊:信息輸入、錄入比賽結果、查詢信息、退出.Saveathele ()保存運動員信息1 總的模塊圖 Saveschool ()保存學校信息InformationSaveprogram ()保存項目信息Savescore() 比賽結果錄入Main Ttzf () 查詢團體總分Csxx ()查詢參賽學校信息Search ( )Bsxm ()查詢團體總分Exi t(0)圖1 整體模塊圖 三、 詳細設計 主函數主函數一般設計的較為簡潔,只提供輸入、功能處理和輸出部分的函數調用。其中各功能模塊用菜單方式選擇。另外菜單部分也可以寫成函數。流程圖顯示一系列功能選項輸入,判斷是否是4根據的值調用各功能模塊函
3、數圖主函數流程圖 Y程序void main()menu(); void menu()int n,w1;do puts("tt*_ Welcome to load sports system! _*n"); puts("tt*MENU*n"); puts("tt* 1.Enter the information *n"); puts("tt* 2.Score 比賽結果錄入 *n"); puts("tt* 3.Search *n"); puts("tt* 4.Exit *n");
4、 puts("tt*n"); printf("Choice your number(1-4): bb"); scanf("%d",&n); if (n<1|n>4) w1=1; getchar(); else w1=0; while (w1=1); switch(n) case 1:Information();break; /輸入信息 case 2:savescore();break;/比賽結果錄入 case 3:Search();break;/查詢模塊 case 4:exit(0); 2. 各功能模塊設計(1)
5、信息輸入模塊一是參賽學校信息,二是參賽運動員信息,三是比賽項目信息,分別輸入并保存信息輸入讀入、顯示參賽學校讀入、顯示運動員讀入比賽項目圖信息輸入模塊流程圖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"); pu
6、ts("tt* 3.saveprogram() *n"); puts("tt* 4.back *n"); puts("tt*n"); printf("Choic your number(1-4): bb"); scanf("%d",&n); if (n<1|n>4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存運動員信息子函數 case 2 : savesc
7、hool(); break;/保存學校信息子函數 case 3 : saveprogram();break;/保存項目比賽信息子函數 case 4 : exit(0); (2) 結果錄入模塊錄入運動員比賽得分圖4比賽結果錄入模塊流程圖分析計算各學校總分(3)查詢信息模塊分析查詢信息模塊提供按不同方式查詢各種信息機返回功能,其中各功能模塊用菜單方式選擇。菜單部分也可寫成函數。查詢信息模塊查詢學校查詢運動員查詢項目返回主菜單圖6查詢信息模塊流程圖定義結構體指針UNI*next輸入學校名字判斷輸入名字與結構體中學校名是否相同指針變量值向下一組數據調用輸出函數圖8 查詢學校名流程圖 結果各模塊界面圖如
8、圖:() 主菜單函數() 信息錄入模塊() 查詢子菜單() 按學校名字查詢信息(5) 按項目查詢項目信息() 查詢團體總分程序代碼:#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#define SIZE 9#define N 3#define WM 3void bsxm();void csxx();void Information();int main();void menu();void printf_back();void saveathlete()
9、;void saveprogram();void saveschool();void savescore();void Search();void ttzf();int i;FILE *fp1,*fp2,*fp3,*fp4;struct athlete/定義運動員信息char univ5;char name8;char prog15; char mingci5;int score;atSIZE;struct xuexiao/定義學校信息char univ5;char prog15;int num_athlete;xxN;struct program/定義項目信息char prog5;int q
10、uming; char ath15;char ath25;char univ15;char univ25;proWM;struct zongfen /定義學校得分信息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*_ 歡迎進入信息錄入系統 _*n"); puts("tt*菜單*n"
11、;); puts("tt* 1.運動員 *n"); puts("tt* 2.學校 *n"); puts("tt* 3.項目信息 *n"); puts("tt* 4.返回 *n"); puts("tt*n"); printf("請選擇(1-4): bb"); scanf("%d",&n); if (n<1|n>4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : savea
12、thlete(); break;/ 保存運動員信息子函數 case 2 : saveschool(); break;/保存學校信息子函數 case 3 : saveprogram();break;/保存項目比賽信息子函數 case 4 : exit(0); void saveathlete()/保存運動員信息子函數 printf("n請輸入各項目獲獎運動員的信息:");for(i=0;i<SIZE;i+) printf("n請輸入第%d個運動員的信息:n",i+1);printf("姓名:"); scanf("%s&q
13、uot;,); printf("學校:"); 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;
14、i<SIZE;i+)if(fwrite(&ati,sizeof(struct athlete),1,fp1)!=1)printf("File write error!n");fclose(fp1);fp1=fopen("運動員","r"); printf("n現在各運動員的信息如下:nn"); printf("姓名 學校 項目 名次 得分n");for(i=0;i<SIZE;i+)fread(&ati,sizeof(struct athlete),1,fp1); pr
15、intf("%-10s%-10s%-18s%-10s%dn",,ati.univ,g,ati.mingci,ati.score);fclose(fp1);printf_back();void saveschool()/保存學校信息子函數printf("n請輸入各參賽學校的信息:");for(i=0;i<N;i+)printf("n請輸入第%d個學校的信息:n",i+1);printf("學校:");scanf("%s",xxi.univ);printf(&qu
16、ot;參賽的項目:");scanf("%s",g);printf("參賽者數:");scanf("%d",&xxi.num_athlete);fp3=fopen("學校","w");for(i=0;i<N;i+)if(fwrite(&xxi,sizeof(struct xuexiao),1,fp3)!=1)printf("File write error!n");fclose(fp3); printf_back();void sa
17、veprogram()/保存項目比賽信息子函數printf("n請輸入關于比賽項目的信息:");for(i=0;i<WM;i+)printf("n請輸入第%d項比賽的信息:n",i+1);printf("項目:");scanf("%s",g);printf("取分情況:");scanf("%d",&proi.quming);printf("參賽者1:");scanf("%s",proi.ath1);prin
18、tf("所屬學校:");scanf("%s",proi.univ1);printf("參賽者2:");scanf("%s",proi.ath2);printf("所屬學校:");scanf("%s",proi.univ2); fp4=fopen("pr","w");for(i=0;i<N;i+)if(fwrite(&proi,sizeof(struct program),1,fp4)!=1)printf("Fil
19、e write error!n");fclose(fp4); printf_back();void savescore()/保存學校得分情況子函數printf("N-參賽學校總數,M-男子競賽項目數,W-女子競賽項目數。n");printf("W.100-女子一百米比賽,M.100-男子一百米,M.200-男子兩百米。n");printf("n各項名次得分權值如下:n");printf("取前三名:第一名5分 第二名3分 第三名2分n");printf("n請輸入各學校的得分情況:")
20、; for(i=0;i<N;i+)printf("n請輸入第%d個學校的得分情況:n",i+1);printf("學校:");scanf("%s",zfi.univ);printf("參賽項目1:");scanf("%s",g1);printf("得分:");scanf("%d",&zfi.score1);printf("參賽項目2:");scanf("%s",g2);pri
21、ntf("得分:");scanf("%d",&zfi.score2);printf("參賽項目3:");scanf("%s",g3);printf("得分:");scanf("%d",&zfi.score3);zfi.total_score=zfi.score1+zfi.score2+zfi.score3; fp2=fopen("zfen","w");for(i=0;i<N;i+)if(fwrite(
22、&zfi,sizeof(struct zongfen),1,fp2)!=1)printf("File write error!n");fclose(fp2); printf_back();void Search()int n,w2;do puts("tt*_ 歡迎進入搜索系統! _*n"); puts("tt*菜單*n"); puts("tt* 1.查看團體總分 *n");/查看團體總分 puts("tt* 2.查看參賽學校信息 *n");/查看參賽學校信息! puts("tt
23、* 3.查看比賽項目信息 *n");/查看比賽項目信息! puts("tt* 4.退出 *n");/退出 puts("tt*n"); printf("請選擇(1-4): bb"); scanf("%d",&n); if (n<1|n>4) w2=1; getchar(); else w2=0; while (w2=1); switch(n) case 1:ttzf();break; case 2: csxx();break; case 3:bsxm();break; case 4: e
24、xit(0);break; default: printf("未進行任何操作!"); void ttzf()/查看學校團體總分子函數fp2=fopen("總分","r"); printf("n各學校的團體總分情況如下:nn"); printf("學校 參賽項目 總分n");for(i=0;i<N;i+)fread(&zfi,sizeof(struct zongfen),1,fp2); printf("%-8s%s,%s,%-12s%-12dn",zfi.univ
25、,g1,g2,g3,zfi.total_score);fclose(fp2);printf_back();void csxx()/查看參賽學校信息子函數 fp3=fopen("xxiao","r"); printf("n各參賽學校的情況如下:nn"); printf("學校 參賽項目 參賽者數n");for(i=0;i<N;i+)fread(&xxi,sizeof(struct xuexiao),1,fp3); printf("%-8s%-20s%-12dn",xxi.univ,g,xxi.num_athlete);fclose(fp3); printf_back();void bsxm()/查看比賽項目子函數 fp4=fopen("pr","r"); printf("n各比賽項目的信息如下:nn"); printf("項目 取分情況 參賽者1 所屬學校 參賽者2 所屬學校n");for(i=0;i<N;i+)fread
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《百度網絡推廣》課件
- 《癌癥的生物學基礎》課件
- 《GBT39447-2020國際貿易業務數據規范貨運代理》(2025版)深度解析
- 物資管理信息化建設
- 《聯想電腦企業文化》課件
- 護理教育與臨床實踐的密切結合試題及答案
- 中級會計考試溫故知新與試題及答案
- 《項目展示競演盛宴》課件
- 企業知識產權管理貫標實施指南
- 壓瘡的康復課件
- 不同直徑和標鋼筋植筋拉拔試驗設計值
- 2023年中考物理復習方法技巧及備考策略指導(教學交流課件)
- 公開課《太空一日》一等獎課件
- 肩難產的處理PPT
- GB/T 18656-2002工業系統、裝置與設備以及工業產品系統內端子的標識
- GB 29449-2012輪胎單位產品能源消耗限額
- 文獻閱讀技巧課件
- 一年級數學下冊-應用題專項練習
- 2021人教版新教材高中英語必修三全冊課文翻譯(中英文Word)
- 研究生入學體檢表
- 工控培訓教程、手冊合集倍福plc從入門到精通
評論
0/150
提交評論