校运动会管理系统.docx

上传人:b****6 文档编号:6617119 上传时间:2023-01-08 格式:DOCX 页数:24 大小:85.02KB
下载 相关 举报
校运动会管理系统.docx_第1页
第1页 / 共24页
校运动会管理系统.docx_第2页
第2页 / 共24页
校运动会管理系统.docx_第3页
第3页 / 共24页
校运动会管理系统.docx_第4页
第4页 / 共24页
校运动会管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

校运动会管理系统.docx

《校运动会管理系统.docx》由会员分享,可在线阅读,更多相关《校运动会管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

校运动会管理系统.docx

校运动会管理系统

C

学校运动会

管理系统

专业:

网络工程

班级:

网133

报告人:

王先海139074347

刘随心139074338

葛翔139074332

指导老师:

陶陶

报告日期:

2014年12月13号

一、需求分析

1、问题描述:

建立运动员信息系统,包括运动员、裁判员以及运动信息的成绩管理,运动员信息为编号、姓名、身份信息(教师、学生)、参加的比赛项目等;裁判员信息为编号、姓名、身份信息(教师、学生)、裁判的项目;运动会信息包含各个比赛项目的信息、时间安排、裁判信息、比赛成绩等。

2、功能要求:

(1)各种运动信息需要利用文件的形式进行存储.

(2)输入功能:

可以从键盘或文件中一次性输入多条信息;

(3)输出功能:

可将运动员、裁判员、以及比赛信息打印输出或显示;

(4)查找功能:

根据运动员、裁判员等查找出所需要的比赛信息;

(5)增加、删除、修改功能:

完成运动员信息的多种更新;

(6)统计功能:

完成各类比赛信息的统计功能,例如某项比赛的名词排名,各个运动员的积分成绩统计等。

二、总体设计

1、将学校运动会管理系统系统进行模块化分析

三、详细设计

本程序包含除main函数外包含20个函数:

menu()、menu2()、reads(structathletesath[N])、reads1(structrefereeref[N])、reads2(structAll_the_eventssport[N])、save(structathletesath[N],intn)、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_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_on_a_single_information()、sort()、keep()、sheep()。

此外还定义了三个结构体类型:

structathletes、structreferee、structAll_the_events。

函数名

功能

入口

出口

调用关系

menu()

输出菜单选项

该函数无形参

printf()输出信息,无返回值

在main()中被反复调用

menu2()

输出输出单项比赛信息菜单选项

该函数无形参

printf()输出信息,无返回值

在main()中被反复调用

reads(structathletesath[N])

读取运动员文件中的内容

形参结构体structathletesath[N]

returni

在需要运动员数据时被调用

reads1(structrefereeref[N])

读取裁判员取文件中的内容

形参结构体structrefereeref[N]

returni

在需要裁判员数据时被调用

reads2(structAll_the_eventssport[N])

读取全部比赛项目文件中的内容

形参结构体structAll_the_eventssport[N]

returni

在需要全部比赛项目数据时被调用

save(structathletesath[N],intn)

运动员信息改变后更新文件

形参结构体structathletesath[N],intn

将运动员信息存入文件,无返回值

在文件需要被保存时调用

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()输出信息,无返回值

在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()

按姓名删除该运动员信息

该函数无形参

在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()输出信息,无返回值

在main()中被反复调用

sort()

按百米赛跑成绩排名

该函数无形参

printf()输出信息,无返回值

在main()中被反复调用

keep()

按三级跳成绩排名

该函数无形参

printf()输出信息,无返回值

在main()中被反复调用

sheep()

按撑杆跳成绩排名

该函数无形参

printf()输出信息,无返回值

在main()中被反复调用

四、调试与测试

1、测试目的:

测试出每个调用函数存在的数据调用错误,在分步调试的过程中检查出所用语句的错误,在检查程序的过程中尽量做出一定的更改,已达到让程序更加简洁的目的。

2、测试方法:

对每一个调用的函数进行分步调试,之后再运行成功后根据运行结果对源程序做出相应的更改.

3、测试错误:

a.搜索号码修改运动员信息时,发现文件被删除b.按三级跳成绩排名时,发现有数据被后面的数据覆盖c.等等

4、解决措施:

a.我还没找到方法耶。

b.将结构体structAll_the_events中的charplace[10]改成charplace[20]

五、测试结果

1、输出菜单

2、增加运动员信息

3、输出全部运动员信息

4、按号码查找运动员信息

5、按姓名查找运动员信息

6、输出全部裁判员信息

7、按姓名查询裁判员信息

8、输出全部比赛项目

9、输出单项比赛信息

6、用户手册:

进入输出菜单选项界面—>一般最开选择操作2,先增加运动员信息->再根据用户需求选择操作-〉最后选择操作13,退出系统.

7、附录(源代码)

#include〈stdio。

h〉

#include〈stdlib.h〉

#include

//#include

#defineN20

structathletes

charnum[20];

charname[10];

charIdentity_information[10];

floatbaimi;

floatsanjitiao;

floatchenggantiao;

};

structreferee

{

charnum[20];

charname[10];

charIdentity_information[10];

charbaimi[10];

charsanjitiao[10];

charchenggantiao[10];

};

structAll_the_events

{

charsport_name[10];

chartime[20];

charreferee[10];

charplace[20];

};

voidmenu();//输出菜单选项

voidmenu2();//输出输出单项比赛信息菜单选项

intreads(structathletesath[N]);//读取运动员文件中的内容

intreads1(structrefereeref[N]);//读裁判员取文件中的内容

intreads2(structAll_the_eventssport[N]);//读取全部比赛项目文件中的内容

voidsave(structathletesath[N],intn);//运动员信息改变后更新文件

voidshow_athletes();//输出全部运动员信息

voidshow_referee();//输出全部裁判员信息

voidadd();//增加运动员信息

voidAccording_to_the_number_to_find_players_information();//按号码查找运动员信息

voidAccording_to_the_name_to_find_players_information();//按姓名查找运动员信息

voidAccording_to_the_number_to_Modify_the_players_information();//搜索号码修改运动员信息

voidAccording_to_the_name_to_Modify_the_players_information();//搜索号码姓名修改运动员信息

voidAccording_to_the_name_to_delete_the_players_information();//按姓名删除该运动员信息

voidAccording_to_the_name_to_find_referee_information();//按姓名查找裁判员信息

voidshow_all_events();//输出输出全部比赛项目

voidOutput_on_a_single_information();//输出单项比赛信息

voidsort();//按百米赛跑成绩排名

voidkeep();//按三级跳成绩排名

voidsheep();//按撑杆跳成绩排名

voidmain()

{

intn;

while

(1)

menu();

printf("\n请输入您要选择的操作序号,按回车键确认:

");

scanf("%d”,&n);

switch(n)

case1:

show_athletes();break;

case2:

add();break;

case3:

According_to_the_number_to_find_players_information();break;

case4:

According_to_the_name_to_find_players_information();break;

case5:

According_to_the_number_to_Modify_the_players_information();break;

case6:

According_to_the_name_to_Modify_the_players_information();break;

case7:

According_to_the_name_to_delete_the_players_information();break;

case9:

show_referee();break;

case10:

According_to_the_name_to_find_referee_information();break;

case11:

show_all_events();break;

case12:

Output_on_a_single_information();break;

case13:

exit(0);

default:

printf(”输入错误,请输入列表中存在的序号!

\n”);

}

}

}

voidmenu()//输出菜单选项

{

printf("*════════*\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");

printf(”║【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”);

voidmenu2()//输出输出单项比赛信息菜单选项

printf(”*════════*\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”);

}

intreads(structathletesath[N])//读取运动员文件中的内容

{

FILE*fp;

inti=0;

if((fp=fopen(”f:

\\程序设计\\athletes。

txt”,"r”))==NULL)

printf("文件打开失败!

\n");

return0;

else

{

for(i=0;!

feof(fp);i++)

fscanf(fp,”%s%s%s%f%f%f\n",ath[i].num,ath[i].name,ath[i].Identity_information,&ath[i]。

baimi,&ath[i].sanjitiao,&ath[i]。

chenggantiao);

fclose(fp);

returni;

}

intreads1(structrefereeref[N])//读取裁判员取文件中的内容

FILE*fp;

inti=0;

if((fp=fopen("f:

\\程序设计\\referee。

txt”,"r"))==NULL)

printf(”文件打开失败!

\n”);

return0;

}

else

for(i=0;!

feof(fp);i++)

fscanf(fp,"%s%s%s%s%s%s\n”,ref[i].num,ref[i]。

name,ref[i]。

Identity_information,ref[i].baimi,ref[i]。

sanjitiao,ref[i]。

chenggantiao);

}

fclose(fp);

returni;

intreads2(structAll_the_eventssport[N])//读取全部比赛项目文件中的内容

FILE*fp;

inti=0;

if((fp=fopen("f:

\\程序设计\\All_the_events。

txt”,”r"))==NULL)

{

printf("文件打开失败!

\n");

return0;

else

for(i=0;!

feof(fp);i++)

fscanf(fp,"%s%s%s%s\n”,sport[i].sport_name,sport[i]。

time,sport[i].referee,sport[i]。

place);

fclose(fp);

returni;

voidsave(structathletesath[N],intn)//运动员信息改变后更新文件

{

FILE*fp;

inti=0;

if((fp=fopen(”f:

\\程序设计\\athletes。

txt”,"w"))==NULL)

printf("文件打开失败!

\n”);

return;

}

else

for(i=0;i〈n;i++)

printf(”%s%s%s%f%f%f\n",ath[i]。

num,ath[i]。

name,ath[i]。

Identity_information,ath[i].baimi,ath[i]。

sanjitiao,ath[i]。

chenggantiao);

}

fclose(fp);

voidshow_athletes()//输出全部运动员信息

structathletesath[N];

inti,n;

n=reads(ath);

printf("*****************************所有的学生信息如下***************************\n\n”);

printf("序号号码姓名身份百米赛跑(s)三级跳(m)撑杆跳(m)\n");

printf(”**************************************************************************\n”);

for(i=0;i〈n;i++)

printf("\n%3d%12s%8s%8s%10。

1f%12。

1f%12.1f\n”,i+1,ath[i].num,ath[i].name,ath[i].Identity_information,ath[i]。

baimi,ath[i]。

sanjitiao,ath[i]。

chenggantiao);

getch();

voidadd()//增加运动员信息

{

FILE*fp;

intn,i;

structathletesath;

if((fp=fopen("f:

\\程序设计\\athletes。

txt”,"a”))==NULL)//如果文件已经存在,可以追加学生信息

{

if((fp=fopen("f:

\\程序设计\\athletes。

txt","w"))==NULL)//文件不存在时,创建新文件,输入学生信息

printf(”文件打开失败!

\n");

return;

printf("请输入要添加的运动员数量,按回车键确认:

”);

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。

chenggantiao);

fprintf(fp,”%s%s%s%f%f%f\n",ath.num,ath.name,ath。

Identity_information,ath。

baimi,ath.sanjitiao,ath。

chenggantiao);

}

fclose(fp);

}

voidA

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1