1、C语言课设之校级运动会管理系统C程序设计实习报告 校际运动会管理系统一、题目要求(1)信息初始化 输入:N参赛学校总数,M男子竞赛项目数, W女子竞赛项目数; 各项目名次取法有如下几种:取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1; 取前3名:第一名得分5,第二名得分3,第三名得分2; 用户自定义:各名次权值由用户指定。(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。二.总体设计分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为
2、以下五个模块:信息输入、录入比赛结果、查询信息、退出.1总的模块图 三、详细设计1主函数主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。流程图程序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.Sear
3、ch *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:Information();break; /输入信息 case 2:savescore();break;/比赛结果录入 case 3:Search();break;/查询模块 case 4:exit(0); 2. 各功能模块设计(1)信息输入模块一是参赛学校信息,二是参赛运动员信息
4、,三是比赛项目信息,分别输入并保存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* 4.back *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=
5、1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存运动员信息子函数 case 2 : saveschool(); break;/保存学校信息子函数 case 3 : saveprogram();break;/保存项目比赛信息子函数 case 4 : exit(0); (2)结果录入模块(3)查询信息模块分析查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。1结果各模块界面图如图:(1)主菜单函数(2)信息录入模块(3)查询子菜单(4)
6、按学校名字查询信息(5)按项目查询项目信息(5)查询团体总分程序代码:#include#include#include#include#define SIZE 9#define N 3#define WM 3void bsxm();void csxx();void Information();int main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void ttzf() ;int i;FILE
7、*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 quming; char ath15; char ath25; char univ15; char univ25;proWM;struct zongfen /定义
8、学校得分信息 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); puts(tt* 1.运动员 *n); puts(tt* 2.学校 *n); puts(tt* 3.项目信息 *n); puts(tt* 4.返回 *n); puts(tt*n); printf(请选择
9、(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar(); else w=0; while (w=1); switch(n) case 1 : saveathlete(); break;/ 保存运动员信息子函数 case 2 : saveschool(); break;/保存学校信息子函数 case 3 : saveprogram();break;/保存项目比赛信息子函数 case 4 : exit(0); void saveathlete() /保存运动员信息子函数 printf(n请输入各项目获奖运动员的信息:); for(i=0;iSIZE;i+)
10、printf(n请输入第%d个运动员的信息:n,i+1); printf(姓名:); scanf(%s,ati.name); printf(学校:); scanf(%s,ati.univ); printf(参赛项目:); scanf(%s,ati.prog); printf(名次:); scanf(%s,ati.mingci); printf(得分:); scanf(%d,&ati.score); fp1=fopen(ath,w); for(i=0;iSIZE;i+) if(fwrite(&ati,sizeof(struct athlete),1,fp1)!=1) printf(File wr
11、ite error!n); fclose(fp1); fp1=fopen(运动员,r); printf(n现在各运动员的信息如下:nn); printf(姓名 学校 项目 名次 得分n); for(i=0;iSIZE;i+) fread(&ati,sizeof(struct athlete),1,fp1); printf(%-10s%-10s%-18s%-10s%dn,ati.name,ati.univ,ati.prog,ati.mingci,ati.score); fclose(fp1); printf_back();void saveschool() /保存学校信息子函数 printf(n
12、请输入各参赛学校的信息:); for(i=0;iN;i+) printf(n请输入第%d个学校的信息:n,i+1); printf(学校:); scanf(%s,xxi.univ); printf(参赛的项目:); scanf(%s,xxi.prog); printf(参赛者数:); scanf(%d,&xxi.num_athlete); fp3=fopen(学校,w); for(i=0;iN;i+) if(fwrite(&xxi,sizeof(struct xuexiao),1,fp3)!=1) printf(File write error!n); fclose(fp3); printf_
13、back();void saveprogram() /保存项目比赛信息子函数 printf(n请输入关于比赛项目的信息:); for(i=0;iWM;i+) printf(n请输入第%d项比赛的信息:n,i+1); printf(项目:); scanf(%s,proi.prog); printf(取分情况:); scanf(%d,&proi.quming); printf(参赛者1:); scanf(%s,proi.ath1); printf(所属学校:); scanf(%s,proi.univ1); printf(参赛者2:); scanf(%s,proi.ath2); printf(所属学
14、校:); 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() /保存学校得分情况子函数 printf(N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。n); printf(W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。n); printf(n各项名次得分权值如
15、下:n); printf(取前三名:第一名5分 第二名3分 第三名2分n); printf(n请输入各学校的得分情况:); for(i=0;iN;i+) printf(n请输入第%d个学校的得分情况:n,i+1); printf(学校:); scanf(%s,zfi.univ); printf(参赛项目1:); scanf(%s,zfi.prog1); printf(得分:); scanf(%d,&zfi.score1); printf(参赛项目2:); scanf(%s,zfi.prog2); printf(得分:); scanf(%d,&zfi.score2); printf(参赛项目3:
16、); scanf(%s,zfi.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*_ 欢迎进入搜索系统! _*n);
17、puts(tt*菜单*n); 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 (n4) w2=1; getchar(); else w2=0; while (w2=1); switch(n) case 1: ttzf();break; case 2: csxx();break; case 3: bsx
18、m();break; case 4: exit(0);break; default: printf(未进行任何操作!); void ttzf() /查看学校团体总分子函数 fp2=fopen(总分,r); printf(n各学校的团体总分情况如下:nn); printf(学校 参赛项目 总分n); for(i=0;iN;i+) fread(&zfi,sizeof(struct zongfen),1,fp2); printf(%-8s%s,%s,%-12s%-12dn,zfi.univ,zfi.prog1,zfi.prog2,zfi.prog3,zfi.total_score); fclose(
19、fp2); printf_back();void csxx() /查看参赛学校信息子函数 fp3=fopen(xxiao,r); printf(n各参赛学校的情况如下:nn); printf(学校 参赛项目 参赛者数n); for(i=0;iN;i+) fread(&xxi,sizeof(struct xuexiao),1,fp3); printf(%-8s%-20s%-12dn,xxi.univ,xxi.prog,xxi.num_athlete); fclose(fp3); printf_back();void bsxm() /查看比赛项目子函数 fp4=fopen(pr,r); print
20、f(n各比赛项目的信息如下:nn); printf(项目 取分情况 参赛者1 所属学校 参赛者2 所属学校n); for(i=0;iN;i+) fread(&proi,sizeof(struct program),1,fp4); printf(%-12s%-10d%-10s%-12s%-10s%-12sn,proi.prog,proi.quming,proi.ath1,proi.univ1,proi.ath2,proi.univ2); fclose(fp4); printf_back();int main()menu();void menu()int n,w1;do puts(tt*_ 欢迎进
21、入运动会系统 _*n); puts(tt*菜单*n); 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 (n4) 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);/公共函数void printf_back() int w; printf(nnt成功!nn); printf(是否退出?nnt1).exit t2).menu bb); scanf(%d,&w); if(w=1) exit(0); else menu();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1