《校运动会管理系统(共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()中被反复调用四、 调试与测试 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_Modify_the_players_info