资源简介
运动会分数统计
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:
1) 可以输入各个项目的前三名或前五名的成绩;
2) 能统计各学校总分,
3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5) 数据存入文件并能随时查询
6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
代码片段和文件信息
#include
#include
#include
#include
#include
typedef struct
{
char schnam[20]; //学校名称
int schnum; //学校编号
char pronam[20]; //项目名称
int pronum; //项目编号
int score; //成绩
}match;
typedef struct
{
match match[20];
int num; //学校数
int sportnum; //运动员数
int m; //男子项目数
int w; //女子项目数
}node;
typedef struct //统计总分
{
int key; //放分
int xiaohao; //放学校代号
}recordtype;
typedef struct //存放各学校分数
{
recordtype r[20]; //工作单元
}list;
int gofirst=1; //标志位
void saveinf(node *L); //保存数据函数声明
char password[9]; //存放密码
void checkfirst() //设置密码函数模块
{
FILE *f*f1;
char pwd[9]pwd1[9];
int i;
if((f=fopen(“config.dat““r“))==NULL)
{
printf(“\n新系统,还未初始化,单击任意键进行初始化操作!“);
getch();
do
{
printf(“\n设置登录系统的密码(最多8位):“);
for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
putch(‘*‘);
printf(“\n再次确认密码:“);
for(i=0;i<8&&((pwd1[i]=getch())!=13);i++)
putch(‘*‘);
pwd[i]=‘\0‘;
pwd1[i]=‘\0‘;
if(strcmp(pwdpwd1)!=0)
printf(“\n两次输入的密码不同,请重新输入!\n\n“);
else
break;
}while(1);
if((f1=fopen(“config.dat““w“))==NULL)
{
printf(“\n创建系统配置文件失败,按任意键退出系统!“);
getch();
exit(1);
}
fprintf(f1“%s“pwd);
fclose(f1);
printf(“\n\n系统配置成功,按任意键登陆系统“);
getch();
exit(1);
}
else
{
while(fscanf(f“%s“pwd)!=EOF)
strcpy(passwordpwd);
}
}
void login() //密码登录模块
{
int i n=3;
char pwd2[9];
do
{
printf(“请输入进入系统的密码(最多输入3次):“);
for(i=0;i<8&&((pwd2[i]=getch())!=13);i++)
putch(‘*‘);
pwd2[i]=‘\0‘;
printf(“\n%c“pwd2[n]);
printf(“\n%c“password[n]);
if(strcmp(pwd2password))
{
printf(“\n密码错误,请重新输入!“);
system(“cls“);
n--;
}
else
break;
}while(n>0);
if(!n)
{
printf(“非法用户,请关机!\n“);
getch();
exit(1);
}
}
void createinf(node *L) //输入并创建运动会分数统计系统信息
{
int shirankflag=1;
int nummwsportnum;
L=(node*)malloc(sizeof(node));
printf(“ 请输入学校数、运动员数、男子项目数、女子项目数:“);
scanf(“%d%d%d%d“&num&sportnum&m&w); //输入学校数、运动员数、男子项目数、女子项目数
L->num=num;
L->m=m;
L->w=w;
L->sportnum=sportnum;
for(i=1;i<=L->sportnum;i++)
{
printf(“ 请输入学校代码,学校名称,项目代码,项目名称:\n“i);//依次输入学校代码,学校名称,项目代码,项目名称
printf(“ “);
scanf(“%d%s%d%s“&(L->match[i]).schnum&(L->match[i]).schnam&(L->match[i]).pronum&(L->match[i]).pronam);
printf(“ 该项目取前五名OR前三名积分?“); //输入积分方式
scanf(“%d“&sh);
while(flag) //判断输入积分方式是否合法
{
switch(sh)
{
case 3:flag=0;break;
case 5:flag=0;break;
default:
{
printf(“ 输入错误!请重新输入!\n“);
printf(“ 该项目取前五名OR前三名积分?“);
scanf(“%d“&sh);
break;}
}
}
printf(“ 请输入该学校在该项目取得的名次:“); //输入学校在某项目取得名次
scanf(“%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13543 2004-06-30 08:59 运动会分数统计系统\123.cpp
文件 3723 2004-06-30 08:59 运动会分数统计系统\123.dsp
文件 529 2004-06-30 08:59 运动会分数统计系统\123.dsw
文件 50176 2004-06-30 08:59 运动会分数统计系统\123.ncb
文件 48640 2004-06-30 08:59 运动会分数统计系统\123.opt
文件 615 2004-06-30 08:59 运动会分数统计系统\123.plg
文件 3 2000-06-27 10:15 运动会分数统计系统\config.dat
文件 217123 2011-06-29 18:01 运动会分数统计系统\Debug\123.exe
文件 347976 2011-06-29 18:01 运动会分数统计系统\Debug\123.ilk
文件 44525 2004-06-30 08:59 运动会分数统计系统\Debug\123.obj
文件 43520 2011-06-27 19:14 运动会分数统计系统\Debug\123.opt
文件 3564176 2004-06-30 08:59 运动会分数统计系统\Debug\123.pch
文件 582656 2011-06-29 17:59 运动会分数统计系统\Debug\123.pdb
文件 148480 2004-06-30 08:59 运动会分数统计系统\Debug\vc60.idb
文件 77824 2004-06-30 08:59 运动会分数统计系统\Debug\vc60.pdb
文件 2094592 2011-06-30 12:21 运动会分数统计系统\sheji1.doc
..A..H. 162 2011-06-28 08:35 运动会分数统计系统\~$ Microsoft Word 文档.doc
目录 0 2012-02-09 12:07 运动会分数统计系统\Debug
目录 0 2012-02-09 12:07 运动会分数统计系统
----------- --------- ---------- ----- ----
7238263 19
评论
共有 条评论