unknown 6 years ago
parent b569b20af0
commit cb1a865364

164
b.c

@ -0,0 +1,164 @@
#include<stdio.h>
#include<stdlib.h>
#define N 2
#define M 1
#define W 1
typedef struct score
{
int mark[5];
int itmnum;
int itmkind;
char itmname[20];
char name[10];
int level;
int range[5];
}sc;
typedef struct school
{
int sclnum;
char sclname[20];
sc a[M+W];
int mscore;
int wscore;
int sum;
struct school *next;
}scl;
scl *p,*q,*head,*g,*s,*u;
void menu()
{
system("cls");
printf("★----------------------------------------运动会比赛计分系统------------------------------------- ★\n");
printf("** 1-------------------键盘输入 **\n");
printf("** 2-------------------输出 **\n");
printf("** 3-------------------查询 **\n");
printf("** 4-------------------退出 **\n");
printf("**该系统计分方式为: **\n");
printf("**男子前三名依次得分5分 3分 2分 **\n");
printf("**女子前五名依次得分7分 5分 3分 2分 1分 **\n");
printf("★----------------------------------------------------------------------------------------------- ★\n");
}
/*******************************计 分 函 数*******************************/
void calculate(int i,int x,int k)
{
if(k==5)
{
switch(p->a[x].range[i])
{
case 0: p->a[x].mark[p->a[x].range[i]]=0;break;
case 1: p->a[x].mark[p->a[x].range[i]]=5;break;
case 2: p->a[x].mark[p->a[x].range[i]]=3;break;
case 3: p->a[x].mark[p->a[x].range[i]]=2;break;
default: printf("输入有误!\n");
exit(0);
}
}
else
{
switch(p->a[x].range[i])
{
case 0: p->a[x].mark[p->a[x].range[i]]=0;break;
case 1: p->a[x].mark[p->a[x].range[i]]=7;break;
case 2: p->a[x].mark[p->a[x].range[i]]=5;break;
case 3: p->a[x].mark[p->a[x].range[i]]=3;break;
case 4: p->a[x].mark[p->a[x].range[i]]=2;break;
case 5: p->a[x].mark[p->a[x].range[i]]=1;break;
default: printf("输入有误!\n");break;
}
}
}
/***********************输 入 函 数***********************/
scl *input()
{
int i,x,y=1,k;
p=(scl*)malloc(sizeof(scl));
printf("\n**-------------------按如下格式输入(请勿输入重复编号)-----------------------**\n");
printf("**-----------------项目类型有222---男子 111---女子-----------------------**\n");
printf("***学校编号\n**学校名称\n**项目编号**项目类型**项目名称**获得名次数**名次**姓名***\n");
p->mscore=0;p->wscore=0;
scanf("%d",&p->sclnum);
scanf("%s",p->sclname);
for(x=0;x<W+M;x++)
{
scanf("%d",&p->a[x].itmnum);
scanf("%d",&p->a[x].itmkind);
scanf("%s",p->a[x].itmname);
scanf("%d",&p->a[x].level);
for(i=0;i<p->a[x].level;i++)
{
scanf("%d",&p->a[x].range[i]);
scanf("%s",p->a[x].name);
}
if(p->a[x].itmkind==222)
k=5;
else
k=3;
for(i=0;i<p->a[x].level;i++)
{
calculate(i,x,k);
if(p->a[x].itmkind==222 )
p->mscore+=p->a[x].mark[p->a[x].range[i]];
else
p->wscore+=p->a[x].mark[p->a[x].range[i]];
}
}
p->sum=p->mscore+p->wscore;
head=p;
q=p;
while(y<N)
{
y=y+1;
p=(scl*)malloc(sizeof(scl));
p->mscore=0;p->wscore=0;
scanf("%d",&p->sclnum);
scanf("%s",p->sclname);
for(x=0;x<M+W;x++)
{
scanf("%d",&p->a[x].itmnum);
scanf("%d",&p->a[x].itmkind);
scanf("%s",p->a[x].itmname);
scanf("%d",&p->a[x].level);
for(i=0;i<p->a[x].level;i++)
{
scanf("%d",&p->a[x].range[i]);
scanf("%s",p->a[x].name);
}
if(p->a[x].itmkind==222)
k=5;
else
k=3;
for(i=0;i<p->a[x].level;i++)
{
calculate(i,x,k);
if(p->a[x].itmkind==222)
p->mscore+=p->a[x].mark[p->a[x].range[i]];
else
p->wscore+=p->a[x].mark[p->a[x].range[i]];
}
}
p->sum=p->mscore+p->wscore;
q->next=p;
q=p;
}
p->next=NULL;
menu();
return head;
}
int main() //主函数1
{
int ch;
menu();
while(1)
{
printf("--------------请选择\t");
scanf("%d",&ch);
switch(ch)
{
case 1: menu();g=input(); break;
//case 2: menu();output(g); break;
//case 3: menu();find(g); break;
case 4: menu();printf("******************************谢谢您的使用!******************************\n");
printf("******************************生命在于运动!******************************\n");exit(0);
default: menu();printf("对不起!输入有误!\n");exit(0);
}
}
}

BIN
b.exe

Binary file not shown.
Loading…
Cancel
Save