资源简介
要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数
各项目名次取法有如下几种:
取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,
二名得分3,第三名得分2;
功能要求:
(1)系统以菜单方式工作
(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩
(4)查看参赛学校信息和比赛项目信息等。
代码片段和文件信息
#include
#include
#include
#include
#include
#define n 2//学校数目
#define m 1//男子项目数目
#define w 1//女子项目数目
#define null 0
struct itemnode{
int itemnum; //项目编号
int top; //取名次的数目
int range[5]; //名次
int mark[5]; //分数
char name[8];
}; //定义项目结点的类型
struct headnode{
int schoolnum; //学校编号
int score; //学校总分
int mscore; //男团体总分
int wscore; //女团体总分
itemnode c[m+w]; //项目数组
};//定义头结点类型
headnode h[n];//定义一个头结点数组
void inputinformation() //输入信息,建立系统
{
int ijks;
char ch;
for(i=0;i {
h[i].score=0;
h[i].mscore=0;
h[i].wscore=0; //初始化头结点
printf(“====参赛学校编号:“);
scanf(“%d“&h[i].schoolnum); //输入头结点信息
for(j=0;j {
printf(“ 参赛项目编号:“);
scanf(“%d“&h[i].c[j].itemnum);
printf(“ 取前3名or前5名:“);
scanf(“%d“&h[i].c[j].top);
printf(“ 所取名次数量:“);
scanf(“%d“&k); //输入项目信息
for(s=0;s {
h[i].c[j].range[s]=0;
h[i].c[j].mark[s]=0; //初始化排名和分数
printf(“ 所获得的名次:“);
scanf(“%d“&h[i].c[j].range[s]); //输入所获名次信息
printf(“ 该运动员姓名:“);
getchar(ch);
gets(h[i].c[j].name);
if(h[i].c[j].top==3)
switch(h[i].c[j].range[s])
{
case 0: h[i].c[j].mark[s]=0; break;
case 1: h[i].c[j].mark[s]=5; break;
case 2: h[i].c[j].mark[s]=3; break;
case 3: h[i].c[j].mark[s]=2; break;
}
else
switch(h[i].c[j].range[s])
{
case 0: h[i].c[j].mark[s]=0; break;
case 1: h[i].c[j].mark[s]=7; break;
case 2: h[i].c[j].mark[s]=5; break;
case 3: h[i].c[j].mark[s]=3; break;
case 4: h[i].c[j].mark[s]=2; break;
case 5: h[i].c[j].mark[s]=1; break;
}
h[i].score=h[i].score+h[i].c[j].mark[s]; //按取前三名还是取前五名分别记分
if(j<=m-1)
h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目(取前三名)则记到男子分数里面去
else
h[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目(取前五名)则记到女子项目里面去
}
printf(“\n“);
}
}
printf(“\n“);
}
void output() //输出函数
{
int choiceijk;
int remember[n];
int sign;
do
{
printf(“*******************1.按参赛学校编号输出.*******************\n“);
printf(“*******************2.按参赛学校总分输出.*******************\n“);
printf(“\n*********************** 请选择编号*************************\n:“);
scanf(“%d“&choice);
switch(choice)
{
case 1:
for(i=0;i {
printf(“\n\n*****学校编号:%d“h[i].s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8170 2010-06-03 09:30 运动会比赛计分系统\运动会比赛计分系统.cpp
目录 0 2010-11-09 20:58 运动会比赛计分系统
----------- --------- ---------- ----- ----
8170 2
评论
共有 条评论