学校运动会管理系统.docx

上传人:doc321 文档编号:12884402 上传时间:2021-12-06 格式:DOCX 页数:35 大小:412.65KB
返回 下载 相关 举报
学校运动会管理系统.docx_第1页
第1页 / 共35页
学校运动会管理系统.docx_第2页
第2页 / 共35页
学校运动会管理系统.docx_第3页
第3页 / 共35页
学校运动会管理系统.docx_第4页
第4页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学校运动会管理系统.docx》由会员分享,可在线阅读,更多相关《学校运动会管理系统.docx(35页珍藏版)》请在三一文库上搜索。

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

2、(3)输出功能:可将运动员、裁判员、以及比赛信息打印输出或显示;(4)查找功能:根据运动员、裁判员等查找出所需要地比赛信息;(5)增加、删除、修改功能:完成运动员信息地多种更新;( 6)统计功能:完成各类比赛信息地统计功能,例如某项比赛地名词排名,各个运动员地积分成绩统计等 .二、1、总体设计将学校运动会管理系统系统进行模块化分析学校运动会管理系统输输查增加统入出找删除计功功功修改功能能能功能能三、详细设计学校运动会管理系统本程序包含除 main 函数外包含20 个函数: menu() 、menu2()、reads(struct athletesathN) 、 reads1(struct re

3、feree 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_the_name_to_find_players_information ()、According_to_the_number_to_Modify_the_players_inform

4、ation ()、输按输增按按搜搜按输输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_on_a_single information ()、 sort() 、 keep() 、shee

5、p().裁询运员找找修修除比比此外还定义了三个结构体类型:struct athletes、 struct referee、struct All_the_events.赛判裁动信运运改改运赛员判功能员息动动运运动工信函数名入口出口调用关系信员信员员动动员程息menu()输出菜单选项该函数无形参printf()输出信在 main ()中息信息信信员员信息,无返回值被反复调用menu2()输出输出单项该函数无形参printf()输出信在 main ()中比赛信息菜单息,无返回值被反复调用选项reads(struct读取运动员文形参结构体return i在需要运动员athletes athN)件中地内

6、容struct athletes数据时被调用athNreads1(struct读取裁判员取形参结构体return i在需要裁判员referee refN)文件中地内容struct referee数据时被调用refNreads2(structAll_the_eventssportN)save(structathletesathN,int n)show_athletes()add()According_to_t he_number_to_ find_players_inf ormation ()According_to_t he_name_to_fi nd_players_info rmation

7、 ()According_to_t he_number_to_ Modify_the_pla yers_informatio n ()According_to_t he_name_to_M odify_the_playe rs_information()读取全部比赛工程文件中地内容运动员信息改变后更新文件输出全部运动员信息增加运动员信息按号码查找运动员信息按姓名查找运动员信息搜索号码修改运动员信息搜索姓名修改运动员信息形参结构体return i在需要全部比struct赛工程数据时All_the_events被调用sportN形参结构体将运动员信息在文件需要被struct athletes存入文

8、件,无保存时调用athN,int n返回值该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用该函数无形参printf() 输出信在 main ()中息,无返回值被反复调用According_to_t he_name_to_d elete_the_playe r

9、s_information ()show_referee()According_to_t he_name_to_fi nd_referee_info rmation ()show_all_event s ()Output_on_a_si ngle_information ()sort()keep()sheep()按姓名删除该该函数无形参在 main ()中运动员信息被反复调用输出全部裁判该函数无形参printf() 输出信在 main ()中员信息息,无返回值被反复调用按姓名查找裁该函数无形参printf() 输出信在 main ()中判员信息息,无返回值被反复调用输出输出全部该函数无形参pr

10、intf() 输出信在 main ()中比赛工程息,无返回值被反复调用输出单项比赛该函数无形参printf() 输出信在 main ()中信息息,无返回值被反复调用按百 M 赛跑成该函数无形参printf() 输出信在 main ()中绩排名息,无返回值被反复调用按三级跳成绩该函数无形参printf() 输出信在 main ()中排名息,无返回值被反复调用按撑杆跳成绩该函数无形参printf() 输出信在 main ()中排名息,无返回值被反复调用四、调试与测试1 、测试目地:测试出每个调用函数存在地数据调用错误,在分步调试地过程中检查出所用语句地错误,在检查程序地过程中尽量做出一定地更改,已

11、达到让程序更加简洁地目地.2、测试方法:对每一个调用地函数进行分步调试,之后再运行成功后根据运行结果对源程序做出相应地更改.3、测试错误: a. 搜索号码修改运动员信息时,发现文件被删除b. 按三级跳成绩排名时,发现有数据被后面地数据覆盖c. 等等4、解决措施: a. 我还没找到方法耶.b. 将结构体 structAll_the_events中地 char place10改成 char place20五、测试结果1、 输出菜单2、增加运动员信息3、输出全部运动员信息4、按号码查找运动员信息5、按姓名查找运动员信息6、输出全部裁判员信息7、按姓名查询裁判员信息8、输出全部比赛工程9、输出单项比赛

12、信息6、用户手册:进入输出菜单选项界面 -> 一般最开选择操作 2,先增加运动员信息 -> 再根据用户需求选择操作 -> 最后选择操作 13,退出系统 .7、附录(源代码)#include<stdio.h>#include<stdlib.h>#include <string.h>/#include<conio.h>#define N 20struct athleteschar num20。char name10。char Identity_information 10。float baimi 。float sanjitiao 。

13、float chenggantiao。 。struct refereechar num20。char name10。char Identity_information 10。char baimi10。char sanjitiao10。char chenggantiao10。 。struct All_the_eventschar sport_name10。char time20。char referee10。char place20。 。void menu() 。 / 输出菜单选项void menu2()。/ 输出输出单项比赛信息菜单选项int reads(struct athletes ath

14、N)。 / 读取运动员文件中地内容int reads1(struct referee refN)。 / 读裁判员取文件中地内容int reads2(struct All_the_events sportN)。 / 读取全部比赛工程文件中地内容void save(struct athletes athN,int n)。 / 运动员信息改变后更新文件void show_athletes()。 / 输出全部运动员信息void show_referee()。 / 输出全部裁判员信息void add() 。 / 增加运动员信息void According_to_the_number_to_find_pl

15、ayers_information ()。 / 按号码查找运动员信息void According_to_the_name_to_find_players_information ()。 / 按姓名查找运动员信息void According_to_the_number_to_Modify_the_players_information ()。 / 搜索号码修改运动员信息void According_to_the_name_to_Modify_the_players_information ()。 / 搜索号码姓名修改运动员信息void According_to_the_name_to_delet

16、e_the_players_information ()。 / 按姓名删除该运动员信息void According_to_the_name_to_find_referee_information ()。 / 按姓名查找裁判员信息void show_all_events () 。 / 输出输出全部比赛工程void Output_on_a_single_information ()。/ 输出单项比赛信息void sort() 。 /按百 M 赛跑成绩排名void keep()。 / 按三级跳成绩排名void sheep() 。 /按撑杆跳成绩排名void main()int n 。while(1)

17、menu() 。printf("n请输入您要选择地操作序号,按回车键确认:") 。scanf("%d",&n)。switch(n)case 1: show_athletes()。break 。case 2: add() 。break 。case 3: According_to_the_number_to_find_players_information ()。break 。case 4: According_to_the_name_to_find_players_information ()。 break 。case 5: According_t

18、o_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_delete_the_players_information ()。break 。case 9: show_referee()。 break 。case 10:According_to_the_name_to_find_referee_information ()。 b

19、reak 。case 11:show_all_events ()。break 。case 12:Output_on_a_single_information ()。 break 。case 13: exit(0)。default:printf(" 输入错误,请输入列表中存在地序号!n ") 。void menu() /输出菜单选项printf("* *n") 。printf(" * 运动会管理系统 * n") 。printf("* *n") 。printf("【 1】输出全部运动员信息 n")

20、。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&

21、quot;) 。printf(" n") 。printf("【 7】按姓名删除运动员信息 n") 。printf(" n") 。printf("【 8】运动员积分排名 n")。printf(" n") 。printf("【 9】输出全部裁判员信息 n") 。printf(" n") 。printf("【10】按姓名查询裁判员信息 n") 。printf(" n") 。printf("【11】输出全部比赛工程

22、 n") 。printf(" n") 。printf("【12】输出单项比赛信息 n") 。printf(" n") 。printf("【13】退出系统 n") 。printf("n") 。void menu2() /输出输出单项比赛信息菜单选项printf("* *n") 。printf(" * 单项比赛信息 * n") 。printf("* *n") 。printf("【 1】百 M 赛跑 n") 。p

23、rintf(" 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 。程序设计 athletes.txt","r")=NULL)print

24、f(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %f %f %fn",athi.num,athi.name,athi.Identity_information,&athi.baimi,&athi.sanjitiao,&athi.chenggantiao)。fclose(fp)。return i 。int reads1(struct referee refN) /读取裁判员取文件中地内容FILE *fp 。int i=0 。程序设计

25、 referee.txt","r")=NULL)printf(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %s %s %sn",refi.num,refi.name,refi.Identity_information,refi.baimi,refi.sanjitiao,refi.chenggantiao)。fclose(fp)。return i 。int reads2(struct All_the_events sportN

26、) /读取全部比赛工程文件中地内容FILE *fp 。int i=0 。程序设计 All_the_events.txt","r")=NULL)printf(" 文件打开失败! n") 。return 0 。elsefor(i=0 。!feof(fp) 。 i+)fscanf(fp,"%s %s %s %sn",sporti.sport_name,sporti.time,sporti.referee,sp orti.place) 。fclose(fp) 。return i 。void save(struct athletes

27、athN,int n) /运动员信息改变后更新文件FILE *fp 。int i=0 。程序设计 athletes.txt","w")=NULL)printf(" 文件打开失败! n") 。return 。elsefor(i=0 。i<n 。 i+)printf("%s %s %s %f %f %fn",athi.num,athi.name,athi.Identity_information,athi.baimi,athi.sanjitiao,athi.chenggantiao)。fclose(fp) 。void sh

28、ow_athletes() /输出全部运动员信息struct athletes athN。int i,n 。n=reads(ath)。printf("*所有地学生信息如下*nn")。printf("序号号码姓名身份百M 赛跑 (s)三级跳 (m)撑杆跳 (m) n") 。printf("*n")。for(i=0 。i<n 。 i+)printf("n%3d%12s%8s%8s%10.1f%12.1f%12.1fn",i+1,athi.num,athi.name,athi.Identity_informatio

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

30、加地运动员数量,按回车键确认:") 。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 个运动员地百M 赛跑 ( 单位 :s) 、三级跳 (单位 :m) 和撑杆跳( 单位 :m) 三项成绩,用空格分开,没参加地工程用0 表示,并按回车

31、键确认:n",i) 。scanf("%f%f%f",&ath.baimi,&ath.sanjitiao,&ath.chenggantiao)。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 () / 按号码

32、查找运动员信息struct athletes athN。int n,i 。char number20。printf("n请输入要查找运动员地号码,按回车键确认:") 。scanf("%s",number)。n=reads(ath)。for(i=0 。i<n 。 i+)if(strcmp(number,athi.num)=0)break 。if(i>=n)printf(" 无此学生信息 !") 。return 。printf("n现输出该运动员地号码,姓名,身份,百M 赛跑、三级跳、撑杆跳三门成绩,按回车键确认:n

33、") 。printf("序号号码姓名身份百M 赛跑三级跳撑杆跳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 According_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 。 i+)if(strcmp(name,athi.name)=0)break 。if(i>=n)printf(" 无此学生信息 !") 。return 。printf("n现输出该运动员地号码,姓名,身份,百M 赛跑、三级

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1