校运动会管理系统(共52页)

上传人:94****0 文档编号:56927743 上传时间:2022-02-22 格式:DOCX 页数:53 大小:205.29KB
收藏 版权申诉 举报 下载
校运动会管理系统(共52页)_第1页
第1页 / 共53页
校运动会管理系统(共52页)_第2页
第2页 / 共53页
校运动会管理系统(共52页)_第3页
第3页 / 共53页
资源描述:

《校运动会管理系统(共52页)》由会员分享,可在线阅读,更多相关《校运动会管理系统(共52页)(53页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上C语言课程设计 学 校 运 动 会 管理系统 专业:网络工程 班级:网133 报告人:王先海 刘随心 葛 翔 指导老师:陶陶 报告日期:2014年12月13号一、 需求分析1、 问题描述: 建立运动员信息系统,包括运动员、裁判员以及运动信息的成绩管理,运动员信息为编号、姓名、身份信息(教师、学生)、参加的比赛项目等;裁判员信息为编号、姓名、身份信息(教师、学生)、裁判的项目;运动会信息包含各个比赛项目的信息、时间安排、裁判信息、比赛成绩等。2、功能要求:(1)各种运动信息需要利用文件的形式进行存储。(2)输入功能:可以从键盘或文件中一次性输入多条信息;(3)输出功能:

2、可将运动员、裁判员、以及比赛信息打印输出或显示;(4)查找功能:根据运动员、裁判员等查找出所需要的比赛信息;(5)增加、删除、修改功能:完成运动员信息的多种更新;(6)统计功能:完成各类比赛信息的统计功能,例如某项比赛的名词排名,各个运动员的积分成绩统计等。二、 总体设计1、 将学校运动会管理系统系统进行模块化分析学校运动会管理系统 统计功能查找功能增加删除修改功能输出功能输入功能 输出全部比赛项目输出单项比赛信息比赛信息模块按姓名删除运动员信息搜索姓名修改运动员信息搜索号码修改运动员信息按姓名查找运动员信息按号码查找运动员信息增加运动员信息输出全部运动员信息学生功能模块按姓名查询裁判员信息裁

3、判员功能模块输出全部裁判员信息学校运动会管理系统三、 详细设计本程序包含除main函数外包含20个函数:menu()、menu2()、reads(struct athletes athN) 、reads1(struct referee refN)、reads2(struct All_the_events sportN) 、save(struct athletes athN,int n)、 show_athletes()、how_referee()、add()、According_to_the_number_to_find_players_information ()、According_to_

4、the_name_to_find_players_information ()、According_to_the_number_to_Modify_the_players_information ()、According_to_the_name_to_Modify_the_players_information ()、According_to_the_name_to_delete_the_players_information ()、According_to_the_name_to_find_referee_information ()、show_all_events () 、Output_o

5、n_a_single_information ()、 sort()、keep() 、sheep()。此外还定义了三个结构体类型:struct athletes、struct referee、struct All_the_events。函数名功能入口出口调用关系menu()输出菜单选项该函数无形参printf()输出信息,无返回值在main()中被反复调用menu2()输出输出单项比赛信息菜单选项该函数无形参printf()输出信息,无返回值在main()中被反复调用reads(struct athletes athN)读取运动员文件中的内容形参结构体struct athletes athNre

6、turn i在需要运动员数据时被调用reads1(struct referee refN)读取裁判员取文件中的内容形参结构体struct referee refNreturn i在需要裁判员数据时被调用reads2(struct All_the_events sportN)读取全部比赛项目文件中的内容形参结构体struct All_the_events sportNreturn i在需要全部比赛项目数据时被调用save(struct athletes athN,int n)运动员信息改变后更新文件形参结构体struct athletes athN ,int n将运动员信息存入文件,无返回值在文

7、件需要被保存时调用show_athletes()输出全部运动员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用add()增加运动员信息 该函数无形参printf()输出信息,无返回值在main()中被反复调用According_to_the_number_to_find_players_information ()按号码查找运动员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用According_to_the_name_to_find_players_information ()按姓名查找运动员信息该函数无形参printf()输出信息,无

8、返回值在main()中被反复调用According_to_the_number_to_Modify_the_players_information ()搜索号码修改运动员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用According_to_the_name_to_Modify_the_players_information ()搜索姓名修改运动员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用According_to_the_name_to_delete_the_players_information ()按姓名删除该运动员信息该函数

9、无形参在main()中被反复调用show_referee()输出全部裁判员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用According_to_the_name_to_find_referee_information ()按姓名查找裁判员信息该函数无形参printf()输出信息,无返回值在main()中被反复调用show_all_events ()输出输出全部比赛项目该函数无形参printf()输出信息,无返回值在main()中被反复调用Output_on_a_single_information ()输出单项比赛信息该函数无形参printf()输出信息,无返回

10、值在main()中被反复调用sort()按百米赛跑成绩排名该函数无形参printf()输出信息,无返回值在main()中被反复调用keep()按三级跳成绩排名该函数无形参printf()输出信息,无返回值在main()中被反复调用sheep()按撑杆跳成绩排名该函数无形参printf()输出信息,无返回值在main()中被反复调用4、 调试与测试 1、测试目的:测试出每个调用函数存在的数据调用错误,在分步调试的过程中检查出所用语句的错误,在检查程序的过程中尽量做出一定的更改,已达到让程序更加简洁的目的。2、测试方法:对每一个调用的函数进行分步调试,之后再运行成功后根据运行结果对源程序做出相应的

11、更改。3、测试错误:a. 搜索号码修改运动员信息时,发现文件被删除 b. 按三级跳成绩排名时,发现有数据被后面的数据覆盖 c.等等 4、解决措施:a.我还没找到方法耶。b.将结构体 struct All_the_events中的 char place10改成char place20五、测试结果1、 输出菜单2、 增加运动员信息3、输出全部运动员信息4、按号码查找运动员信息5、按姓名查找运动员信息6、输出全部裁判员信息 7、按姓名查询裁判员信息8、输出全部比赛项目9、输出单项比赛信息6、用户手册:进入输出菜单选项界面-一般最开选择操作2,先增加运动员信息-再根据用户需求选择操作-最后选择操作13

12、,退出系统。7、附录(源代码)#include #include #include /#include #define N 20 struct athletes char num20; char name10;char Identity_information 10;float baimi; float sanjitiao; float chenggantiao; ; struct referee char num20;char name10;char Identity_information 10;char baimi10; char sanjitiao10; char chengganti

13、ao10; ;struct All_the_eventschar sport_name10;char time20;char referee10;char place20;void menu(); /输出菜单选项 void menu2() ;/输出输出单项比赛信息菜单选项int reads(struct athletes athN);/ 读取运动员文件中的内容 int reads1(struct referee refN); / 读裁判员取文件中的内容int reads2(struct All_the_events sportN); / 读取全部比赛项目文件中的内容void save(stru

14、ct athletes athN,int n); / 运动员信息改变后更新文件 void show_athletes(); / 输出全部运动员信息void show_referee(); / 输出全部裁判员信息void add();/增加运动员信息 void According_to_the_number_to_find_players_information (); /按号码查找运动员信息 void According_to_the_name_to_find_players_information (); /按姓名查找运动员信息 void According_to_the_number_to

15、_Modify_the_players_information (); /搜索号码修改运动员信息void According_to_the_name_to_Modify_the_players_information (); /搜索号码姓名修改运动员信息void According_to_the_name_to_delete_the_players_information (); /按姓名删除该运动员信息 void According_to_the_name_to_find_referee_information (); /按姓名查找裁判员信息 void show_all_events ()

16、;/ 输出输出全部比赛项目void Output_on_a_single_information ();/输出单项比赛信息void sort(); / 按百米赛跑成绩排名void keep() ;/ 按三级跳成绩排名void sheep(); / 按撑杆跳成绩排名void main() int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n);switch(n) case 1: show_athletes();break; case 2: add();break; case 3: According_to_the_

17、number_to_find_players_information ();break; case 4: According_to_the_name_to_find_players_information ();break; case 5: According_to_the_number_to_Modify_the_players_information ();break; case 6: According_to_the_name_to_Modify_the_players_information ();break; case 7: According_to_the_name_to_dele

18、te_the_players_information ();break; case 9: show_referee();break;case 10:According_to_the_name_to_find_referee_information ();break;case 11:show_all_events () ;break;case 12:Output_on_a_single_information ();break;case 13: exit(0);default: printf(输入错误,请输入列表中存在的序号!n ); void menu() /输出菜单选项 printf( *

19、n); printf( *运动会管理系统* n); printf( * n); printf( 【1】输出全部运动员信息 n); printf( n);printf( 【2】增加运动员信息 n); printf( n); printf( 【3】按号码查找运动员信息 n); printf( n); printf( 【4】按姓名查找运动员信息 n); printf( n);printf( 【5】搜索号码修改运动员信息 n);printf( n);printf( 【6】搜索姓名修改运动员信息 n);printf( n);printf( 【7】按姓名删除运动员信息 n);printf( n);prin

20、tf( 【8】运动员积分排名 n);printf( n);printf( 【9】输出全部裁判员信息 n);printf( n);printf( 【10】按姓名查询裁判员信息 n);printf( n);printf( 【11】输出全部比赛项目 n);printf( n);printf( 【12】输出单项比赛信息 n);printf( n);printf( 【13】退出系统 n);printf( n);void menu2() /输出输出单项比赛信息菜单选项 printf( * n); printf( * 单项比赛信息 *n); printf( * n); printf( 【1】百米赛跑 n);

21、 printf( n);printf( 【2】三级跳 n); printf( n); printf( 【3】撑杆跳 n); printf( n); printf( 【4】退出系统 n);printf( n);int reads(struct athletes athN) / 读取运动员文件中的内容FILE *fp;int i=0;if(fp=fopen(f:程序设计athletes.txt,r)=NULL) printf(文件打开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %f %f %fn,athi.num,a

22、thi.name,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao); fclose(fp); return i; int reads1(struct referee refN) / 读取裁判员取文件中的内容FILE *fp;int i=0;if(fp=fopen(f:程序设计referee.txt,r)=NULL) printf(文件打开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %s %sn,refi.num

23、,refi.name,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao); fclose(fp); return i; int reads2(struct All_the_events sportN) / 读取全部比赛项目文件中的内容FILE *fp;int i=0;if(fp=fopen(f:程序设计All_the_events.txt,r)=NULL) printf(文件打开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %

24、sn,sporti.sport_name,sporti.time,sporti.referee,sporti.place); fclose(fp); return i; void save(struct athletes athN,int n) / 运动员信息改变后更新文件 FILE *fp; int i=0; if(fp=fopen(f:程序设计athletes.txt,w)=NULL) printf(文件打开失败!n);return ; else for(i=0;in;i+) printf(%s %s %s %f %f %fn,athi.num,athi.name,athi.Identit

25、y_information,athi.baimi,athi.sanjitiao,athi.chenggantiao); fclose(fp); void show_athletes() / 输出全部运动员信息 struct athletes athN; int i,n; n=reads(ath); printf(*所有的学生信息如下*nn); printf( 序号 号码 姓名 身份 百米赛跑(s) 三级跳(m) 撑杆跳(m) n); printf(*n); for(i=0;in;i+) printf(n%3d%12s%8s%8s%10.1f%12.1f%12.1fn,i+1,athi.num,

26、athi.name,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao); getch(); void add()/增加运动员信息 FILE *fp; int n,i; struct athletes ath; if(fp=fopen(f:程序设计athletes.txt,a)=NULL) /如果文件已经存在,可以追加学生信息 if(fp=fopen(f:程序设计athletes.txt,w)=NULL) / 文件不存在时,创建新文件,输入学生信息 printf(文件打开失败!n); return; pri

27、ntf(请输入要添加的运动员数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个运动员的号码、姓名、身份,用空格分开,并按回车键确认:n,i); scanf(%s%s%s,ath.num,ath.name,ath.Identity_information); printf(n请输入第%d个运动员的百米赛跑(单位:s)、三级跳(单位:m)和撑杆跳(单位:m)三项成绩,用空格分开,没参加的项目用0表示,并按回车键确认:n,i); scanf(%f%f%f,&ath.baimi,&ath.sanjitiao,&ath.chenggant

28、iao); fprintf(fp,%s %s %s %f %f %fn,ath.num,ath.name,ath.Identity_information,ath.baimi,ath.sanjitiao,ath.chenggantiao); fclose(fp); void According_to_the_number_to_find_players_information () /按号码查找运动员信息 struct athletes athN; int n,i; char number20; printf(n请输入要查找运动员的号码,按回车键确认:); scanf(%s,number);

29、n=reads(ath); for(i=0;i=n) printf(无此学生信息!); return; printf(n现输出该运动员的号码,姓名,身份,百米赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n);printf( 序号 号码 姓名 身份 百米赛跑 三级跳 撑杆跳 n); printf(*n); printf(n%3d%12s%11s%11s%11.2f%12.2f%11.2fn,i+1,athi.num,athi.name,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao); void Acco

30、rding_to_the_name_to_find_players_information () /按姓名查找运动员信息 struct athletes athN; int n,i; char name20; printf(n请输入要查找运动员的姓名,按回车键确认:); scanf(%s,name); n=reads(ath); for(i=0;i=n) printf(无此学生信息!); return; printf(n现输出该运动员的号码,姓名,身份,百米赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n);printf( 序号 号码 姓名 身份 百米赛跑 三级跳 撑杆跳 n); printf(

31、*n);printf(n%3d%12s%11s%11s%11.2f%12.2f%11.2fn,i+1,athi.num,athi.name,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao); void According_to_the_number_to_Modify_the_players_information () /搜索号码修改运动员信息 struct athletes athN; int n,i; char number20; printf(n请输入要更改信息的运动员号码,按回车键确认:);

32、scanf(%s,number); n=reads(ath); for(i=0;i=n) printf(无此运动员信息!); return; printf(n请输入更改后运动员的号码,姓名,身份,百米赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n); scanf(%s%s%s%f%f%f,athi.num,athi.name,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao);save(ath,n); void According_to_the_name_to_Modify_the_players_

33、information () /搜索姓名修改运动员信息 struct athletes athN; int n,i; char name20; printf(n请输入要更改信息的运动员姓名,按回车键确认:); scanf(%s,name); n=reads(ath); for(i=0;i=n) printf(无此运动员信息!); return; printf(n请输入更改后运动员的号码,姓名,身份,百米赛跑(单位:s)、三级跳(单位:m)和撑杆跳(单位:m)三项成绩,用空格分开,没参加的项目用0表示,并按回车键确认:n); scanf(%s%s%s%f%f%f,athi.num,athi.na

34、me,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao);save(ath,n); void According_to_the_name_to_delete_the_players_information () /按姓名删除该运动员信息 struct athletes athN; char name20;int n,i,j; n=reads(ath); printf(n请输入要删除信息运动员姓名,按回车键确认:); scanf(%s,name); for(i=0;i=n) printf(没有找到该运

35、动员信息!n); return; else for(j=i+1;jn;j+) athj-1=athj; save(ath,n-1); printf(删除成功!n); void show_referee() / 输出全部裁判员信息 struct referee refN; int i,n; n=reads1(ref); printf(*所有的裁判员信息如下*nn); printf( 序号 号码 姓名 身份 百米赛跑 三级跳 撑杆跳 n); printf(*n); for(i=0;in;i+) printf(n%3d%8s%8s%8s%10s%8s%8sn,i+1,refi.num,refi.na

36、me,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao); getch(); void According_to_the_name_to_find_referee_information () /按姓名查找裁判员信息 struct referee refN; int n,i; char name20; printf(n请输入要查找裁判员的姓名,按回车键确认:); scanf(%s,name); n=reads1(ref); for(i=0;i=n) printf(无此裁判员信息!); return; pr

37、intf(*现输出该裁判员信息如下*nn); printf( 序号 号码 姓名 身份 百米赛跑 三级跳 撑杆跳 n); printf(*n); printf(n%3d%8s%8s%8s%10s%8s%8sn,i+1,refi.num,refi.name,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao); void show_all_events () / 输出输出全部比赛项目 struct All_the_events sportN; int i,n; n=reads2(sport); printf(*

38、输出全部比赛项目*nn); printf( 序号 比赛项目 比赛时间 裁判员 比赛地点n); printf(*n); for(i=0;in;i+) printf(n%3d%12s%10s%11s%13sn,i+1,sporti.sport_name,sporti.time,sporti.referee,sporti.place); getch(); void Output_on_a_single_information ()/输出单项比赛信息int n; while(1) menu2(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n);switch(

39、n) case 1: sort();break; case 2: keep();break; case 3: sheep();break; case 4: exit(0);default: printf(输入错误,请输入列表中存在的序号!n ); void sort() / 按百米赛跑成绩排名struct athletes athN,temp; int i,j,n; n=reads(ath); for(i=0;in-1;i+) for(j=0;jathj+1.baimi)temp=athj;athj=athj+1;athj+1=temp;save(ath,n);j=1; printf(*百米赛

40、跑成绩排序结果如下*nn); printf( 名次 号码 姓名 身份 百米赛跑(s)n); printf(*n); for(i=0;in;i+) / 输出结果并排名 if(athi.baimi=athi+1.baimi) printf(n%3d%12s%11s%11s%11.2fn,j,athi.num,athi.name,athi.Identity_information,athi.baimi );else printf(n%3d%12s%11s%11s%11.2fn,j+,athi.num,athi.name,athi.Identity_information,athi.baimi );

41、getch(); void keep() / 按三级跳成绩排名struct athletes athN,temp; int i,j,n; n=reads(ath); for(i=0;in-1;i+) for(j=0;jn-1;j+) if(athj.sanjitiaoathj+1.sanjitiao)temp=athj;athj=athj+1;athj+1=temp; save(ath,n); j=1; printf(*三级跳成绩排序结果如下*nn); printf( 名次 号码 姓名 身份 三级跳(m)n); printf(*n); for(i=0;in;i+) / 输出结果并排名 if(a

42、thi.sanjitiao=athi+1.sanjitiao) printf(n%3d%12s%11s%11s%11.2fn,j,athi.num,athi.name,athi.Identity_information,athi.sanjitiao );else printf(n%3d%12s%11s%11s%11.2fn,j+,athi.num,athi.name,athi.Identity_information,athi.sanjitiao ); getch(); void sheep() / 按撑杆跳成绩排名struct athletes athN,temp; int i,j,n; n

43、=reads(ath); for(i=0;in-1;i+) for(j=0;jn-1;j+) if(athj.chenggantiaoathj+1.chenggantiao)temp=athj;athj=athj+1;athj+1=temp; save(ath,n);j=1; printf(*撑杆跳成绩排序结果如下*nn); printf( 名次 号码 姓名 身份 撑杆跳(m)n); printf(*n); for(i=0;in;i+) / 输出结果并排名 if(athi.chenggantiao=athi+1.chenggantiao) printf(n%3d%12s%11s%11s%11.2fn,j,athi.num,athi.name,athi.Identity_information,athi.chenggantiao );else printf(n%3d%12s%11s%11s%11.2fn,j+,athi.num,athi.name,athi.Identity_information,athi.chenggantiao ); getch(); 专心-专注-专业

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!