C语言-校际运动会管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“校际运动会" 管理系统

一.题目要求

设计校际运动会管理系统,实现学校、运动员信息和运动项目的录入,比赛结果的输入,各个学校比赛结果的查询,生成团体总分报表,查看参赛学校信息和比赛项目信息。要求功能选择用菜单实现。

二.需求分析

根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

一、总体设计

根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

二、详细设计

1、主函数

主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。

流程图

[程序]

main()

{

menu();/*menu 是菜单函数*/

}

菜单函数程序如下:

menu()

{ int o,n;

do

{ puts("\t\t*****************MENU********************");

puts("\n\n\t\t 1.The information to writein\n");

puts("\t\t 2.The race result records to writein\n");

puts("\t\t 3.Search the information\n");

puts("\t\t 4.Exit\n");

puts("\n\t\t*****************************************");

puts("\n\nChoice you number:");

scanf("%d",&n);

if(n<1||n>4){o=1;getchar();} /*对选择的数字进行判断*/

else o=0;

}while(o==1); /*选择功能*/

switch(n)

{ case 1:writein();break; /*信息输入模块*/

case 2:resultin();break; /*比赛结果输入模块*/

case 3:search();break; /*查询模块*/

case 4:exit(0); /*退出*/

}

}

各个模块的设计

1、信息输入

[数据结构]

数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。

struct student

{ char shool[10];

char name[10];

char item[10];

char sex;

int position;

int mark;

}stu[C]; /*stu[N]中每个数组元素对应一个学生*/

struct item

{ char name[10];

char sex;

int mark;

}it[C]; /*it[C]中每个数组元素对应一个项目*/

struct shool

{ char name[10];

char item[10];

int mark;

}sho[C] /* sho[C]每个数组元素对应一个学校;*/

[信息输入模块]

根据题意把与运动员的学校、名字、项目、性别、名次、分数作为结构体成员,如果要存放若干个运动员的信息就用结构体数组。

struct student

{ char shool[10];

char name[10];

char item[10];

char sex;

int position;

int mark;

}stu[C]; /*stu[C]中每个数组元素对应一个运动员*/

stu[C]中的C为运动员的个数,程序中采用宏定义的方式定义C=100,C的值可随时在源程序中改变。

图2 输入模块流程图

/******************输入模块*****************/

writein() /*输入模块*/

{ int t,r,i=0;extern j;char F,M;y=1;

printf("\nPlease writein the student's name:\t");scanf("%s",&stu[i].name); /*输入名字*/

printf("\nPlease writein the student's shool:\t");scanf("%s",&stu[i].shool);

/*输入学校*/

printf("\nPlease writein the student's item:\t");scanf("%s",&stu[i].item); /*输入项目*/

loop_1: printf("\nPlease writein the student's sex(W or M):\t");scanf("%s",&stu[i].sex); /*输入性别*/

if(stu[i].sex!='W'&&stu[i].sex!='M')goto loop_1; /*选择函数*/

printf("\nPleasewritein the student's position:\t");scanf("%d",&stu[i].position);

mark(j,i);

loop_2:printf("\n\nDo again?\t1).Yes\t2).No\t");

scanf("%d",&t);

if(t!=2&&t!=1)goto loop_2; /*调用goto结构*/

if(t==2)menu();

i++;

if(t==1);f=1;

printf("Success\nPress any key+enter to menu..");scanf("%d",&r); /*返回主函

数*/

menu();

}

[结果录入模块]

该模块的功能是输入男女运动员的成绩,并由用户选择或定义各名次的分数。

[流程图]

提醒用户先输入运动员信息

输入学校的代号、男女运动项目的代号

用户选择或定义各名次的分数

输入成绩并反回主函数

相关文档
最新文档