📄 sports.cpp
字号:
#include"sphead.h"
/*
int initSports(sports &sp,schools sc,prizes pr){
int i,n;
printf("请输入运动项目的个数:");
scanf("%d",&n);
fflush(stdin);
sp.sp=(sport *)malloc(n*sizeof(sport));
if(!sp.sp) exit(1);
sp.num=n;
printf("请输入%d个运动项目的信息\n",n);
for(i=0;i<n;i++)
{
sp.sp[i].id=i;
printf("项目%d的名称:",i+1);
scanf("%s",sp.sp[i].name);
printf("项目%d的种类(0=男子项目,1=女子项目): ",i+1);
scanf("%d",&sp.sp[i].sex);
printf("项目%d获奖名额(<6): ",i+1);
scanf("%d",&sp.sp[i].prizeNum);
}
fflush(stdin);
printf("是否保存(Y/N): ");
char ch=getchar();
if(ch=='y'||ch=='Y')
save(sp,sc,pr);
else
exit(0);
return 0;
}
int initSchools(sports sp,schools &sc,prizes pr){
int n;
printf("请输入参赛学校的数目:");
scanf("%d",&n);
fflush(stdin);
sc.sc=(school *)malloc(n*sizeof(school));
if(!sc.sc) exit(1);
sc.num=n;
printf("请输入%d个学校的信息\n",n);
for(int i=0;i<n;i++)
{
sc.sc[i].id=i;
printf("学校%d的名称:",i+1);
scanf("%s",sc.sc[i].name);
printf("学校参赛项目数目:");
scanf("%d",&sc.sc[i].sportNum);
spMeum(sp,sp.num);
printf("请选择学校申报的运动项目: ");
for(int j=0;j<sc.sc[i].sportNum;j++)
{
scanf("%d",&sc.sc[i].sport_id[j]);
}
fflush(stdin);
for(j=0;j<sp.num;j++);
sc.sc[i].sport_id[j]=0;
for(j=0;j<sp.num;j++);
sc.sc[i].sport_score[j]=0;
sc.sc[i].totalScore=0;
sc.sc[i].manScore=0;
sc.sc[i].womenScore=0;
}
printf("是否保存(Y/N): ");
char ch=getchar();
if(ch=='y'||ch=='Y')
save(sp,sc,pr);
else
exit(0);
return 0;
}
*/
int getScore(sports &sp,schools &sc,prizes &pr){
int temp[M+W],id[M+W];
int score1[3]={5,3,2};
int score2[5]={7,5,3,2,1};
int k=0;
int end=0;
int a,b;
load(sp,sc,pr);
pr.pr=(prize *)malloc(sp.num*sizeof(prize));
if(!pr.pr) exit(1);
scMeum(sc,sc.num);
printf("\n请按提示输入获奖信息... \n\n");
for(int i=0;i<sp.num;i++)
{
printf("运动项目: %-20s\n",sp.sp[i].name);
printf("\n参赛学校: ");
/////////////========查询参赛学校========/////////////////////
for(int m=0;m<sc.num;m++)
for(int n=0;n<sc.sc[m].sportNum;n++)
if(sp.sp[i].id==sc.sc[m].sport_id[n])
{
temp[k]=sc.sc[m].id;//保存学校编号
id[k]=n; //保存该学校的项目位置
k++;
printf("%-2d",sc.sc[m].id);
break;
}
end=k;
k=0;
lp: k=0;
b=sp.sp[i].prizeNum;
pr.pr[i].sport_id=sp.sp[i].id; /////-----wwwwwwwwwwwwwwwwwwwwwwww
printf("\n\n第1--%d名: ",sp.sp[i].prizeNum);
////////////////////----------选择获奖学校-----------////////////////
for(int j=0;j<sp.sp[i].prizeNum&&j<sc.num;j++)
scanf("%d",&pr.pr[i].school_id[j]);
// fflush(stdin);
for(j=0;j<sp.sp[i].prizeNum&&j<sc.num;j++)
{
if(b==3)
sc.sc[pr.pr[i].school_id[j]].sport_score[id[j]]=score1[j];
else
sc.sc[pr.pr[i].school_id[j]].sport_score[id[j]]=score2[j];
////////////////////----------核实学校信息-----------////////////////
a=1;
for(int t=0;t<end;t++)
{
if(pr.pr[i].school_id[j]==temp[t])
{
a=0;
break;
}
}
if(a==1)
{
printf("\n编号为%d学校没有参加该项目,请核实后重新输入 !",pr.pr[i].school_id[j]);
goto lp;
}
////////////////////----------核实学校信息-----------////////////////
}
printf("\n==========================\n\n");
///////////////////-----------默认方法打分------------///////////////////
if(sp.sp[i].prizeNum==3)
{
pr.pr[i].score[0]=5;
pr.pr[i].score[1]=3;
pr.pr[i].score[2]=2;
}
else
{
pr.pr[i].score[0]=7;
pr.pr[i].score[1]=5;
pr.pr[i].score[2]=3;
pr.pr[i].score[3]=2;
pr.pr[i].score[4]=1;
}
sc.sc[i].manScore=0;
sc.sc[i].womenScore=0;
sc.sc[i].totalScore=0;
}
for(;i<sc.num;i++)
{
sc.sc[i].manScore=0;
sc.sc[i].womenScore=0;
sc.sc[i].totalScore=0;
}
fflush(stdin);
printf("是否保存(Y/N): ");
char ch=getchar();
if(ch=='y'||ch=='Y')
save(sp,sc,pr);
else
exit(0);
getchar();
return 0;
}
int totalScore(sports sp,schools &sc,prizes pr){
load(sp,sc,pr);
int flag=1;
for(int i=0;i<sc.num;i++)
{
if(sc.sc[i].totalScore==0)
{
for(int j=0;j<sc.sc[i].sportNum;j++)
if(sp.sp[sc.sc[i].sport_id[j]].sex==0)
sc.sc[i].manScore+=sc.sc[i].sport_score[j];
else
sc.sc[i].womenScore+=sc.sc[i].sport_score[j];
sc.sc[i].totalScore=sc.sc[i].manScore+sc.sc[i].womenScore;
}
}
printf("\n\n ※ 学校分数统计表 ※ \n");
printf("--------------------------------------------------------------\n");
printf(" 学校名称 男子团体得分 女子团体得分 男女团体总分\n");
printf("--------------------------------------------------------------\n");
for(i=0;i<sc.num;i++)
{
printf(" %-6s%15d%15d%15d\n",sc.sc[i].name,sc.sc[i].manScore,sc.sc[i].womenScore,sc.sc[i].totalScore);
}
printf("--------------------------------------------------------------\n");
save(sp,sc,pr);
return 0;
}
int search(sports sp,schools sc,prizes pr){
load(sp,sc,pr);
int flag;
puts("\n\n \t=========================================================\n");
puts(" 〓〓〓 信息查询菜单 〓〓〓\n ");
puts(" \t=========================================================\n");
printf("\t\t1、查询学校的某个项目");
printf("\t2、查询项目的获奖学校\n\n");
// printf(" \t\t\t0-------退出该信息查询菜单\n\n");
puts(" \t=========================================================\n");
printf("请选择:");
scanf("%d",&flag);
switch(flag)
{
case 1:scSearch(sp,sc);
break;
case 2:spSearch(sp,sc,pr);
break;
case 0:exit(0);
break;
default:
printf("输入错误!!!\n");
exit(0);
}
return 0;
}
int schoolSort(sports &sp,schools &sc,prizes &pr){
load(sp,sc,pr);
int flag;
puts(" \n\t=========================================================\n");
puts(" 〓〓〓 学校信息排序菜单 〓〓〓\n ");
puts(" \t=========================================================\n");
printf("\t\t\t0------------按学校编号排序\n\n");
printf("\t\t\t1------------按学校总分排序\n\n");
printf("\t\t\t2------------按男子总分排序\n\n");
printf("\t\t\t3------------按女子总分排序\n\n");
printf("\t\t\t4------------退出不进行排序\n\n");
puts(" \t=========================================================\n");
printf("请选择:");
scanf("%d",&flag);
sort(sp,sc,pr,flag);
fflush(stdin);
return 0;
}
int scSearch(sports sp,schools sc){
int sc_id,sp_id;
scMeum(sc,sc.num);
printf("请选择要查询的学校编号:");
scanf("%d",&sc_id);
printf("\n\n该学校参加的运动项目有:\n\n");
for(int i=0;i<sc.sc[sc_id].sportNum;i++)
printf("%d、%s ",sc.sc[sc_id].sport_id[i],sp.sp[sc.sc[sc_id].sport_id[i]].name);
printf("\n\n请选择要查询的项目编号:");
scanf("%d",&sp_id);
fflush(stdin);
printf("\n该项目的详细信息如下表:\n\n",sc.sc[sc_id].name,sp.sp[sp_id].name);
spShow(sp,sp_id);
// printf("\n该学校此项目的得分为: %d\n\n\n",sc.sc[sc_id].sport_score[sp_id]);
return 0;
}
int spSearch(sports sp,schools sc,prizes pr){
int sc_id,sp_id;
spMeum(sp,sp.num);
printf("请输入要查询的项目编号:");
scanf("%d",&sp_id);
fflush(stdin);
printf("\n\n\n");
printf("==============================================================\n");
printf(" 项目名称 获奖名次 学校名称 学校编号\n");
printf("==============================================================\n\n");
for(int i=0;i<sp.sp[sp_id].prizeNum;i++)
printf(" %s 第%d名 %s %d\n\n",sp.sp[sp_id].name,i+1,sc.sc[pr.pr[sp_id].school_id[i]].name,pr.pr[sp_id].school_id[i]);
printf("==============================================================\n\n");
printf("\n请选择要查询的学校编号:");
scanf("%d",&sc_id);
fflush(stdin);
putchar(10);
scShow(sc,sc_id);
return 0;
}
int save(sports sp,schools sc,prizes pr){
FILE *fp;
int n;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -