#include <string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include <Windows.h>
#define SIZE 6
#define N 3
#define WM 3
void bsxm();
void csxy();
void Information();
int main();
void menu();
void printf_back();
void saveathlete();
void saveprogram();
void saveschool();
void savescore();
void Search();
void ttzf() ;
int i;
FILE *fp1,*fp2,*fp3,*fp4;
struct athlete //定义运动员信息
{
char univ[5];
char name[8];
char prog[15];
int mingci[15];
int score;
}at[SIZE];
struct xueyuan //定义学院信息
{
char univ[5];
char prog[15];
int num_athlete;
}xy[N];
struct program //定义项目信息
{
int quming;
char prog[5];
char ath1[5];
char ath2[5];
char univ1[5];
char univ2[5];
}pro[WM];
struct zongfen //定义学院得分信息
{
char univ[5];
char prog1[5];
char prog2[5];
char prog3[5];
int score1;
int score2;
int score3;
int total_score;
}zf[N];
void Information()
{
int n,w ;
do {
puts("\n\n\n");
puts("\t\t-------------- 信息录入 --------------\n");
puts("\t\t*************************MENU*************************\n");
puts("\t\t--------- 1.运动员 ----------\n");
puts("\t\t-------- 2.参赛学院 ----------\n");
puts("\t\t-------- 3.比赛项目 ----------\n");
puts("\t\t-------- 4.退出 ----------\n");
puts("\t\t******************************************************\n");
printf("请输入序号(1-4)进行操作:[ ]\b\b");
scanf("%d",&n);
if (n<1||n>4)
{
w=1;
getchar();
}
else w=0;
}
while (w==1);
switch(n)
{
case 1 : saveathlete(); break; // 保存运动员信息子函数
case 2 : saveschool(); break; //保存学院信息子函数
case 3 : saveprogram();break; //保存项目比赛信息子函数
case 4 : exit(0);
}
}
void saveathlete() //保存运动员信息子函数
{
printf("请输入各项目获奖运动员的信息:\n");
for(i=0;i<SIZE;i++)
{
printf("请输入第%d个运动员的信息:\n",i+1);
printf("姓名:");
scanf("%s",at[i].name);
printf("学院:");
scanf("%s",at[i].univ);
printf("参赛项目:");
scanf("%s",at[i].prog);
printf("名次:");
scanf("%d",&at[i].mingci);
printf("得分:");
scanf("%d",&at[i].score);
}
fp1=fopen("ath","w");
for(i=0;i<SIZE;i++)
{
if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1)
printf("File write error!\n");
}
fclose(fp1);
fp1=fopen("ath","r");
if(fp1 == NULL)
{
printf("[saveathlete]文件打开失败!错误码:%d\n", GetLastError());
exit(0);
}
printf("\n现在各运动员的信息如下:\n\n");
printf("姓名 性别 学院 项目 名次 得分\n");
for(i=0;i<SIZE;i++)
{
fread(&at[i],sizeof(struct athlete),1,fp1);
printf("%-10s%-10s%-10s%-10s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score);
}
fclose(fp1);
printf_back();
}
void saveschool() //保存学院信息子函数
{
printf("\n请输入各参赛学院的信息:\n");
for(i=0;i<N;i++)
{
printf("\n请输入第%d个学校的信息:\n",i+1);
printf("学院:");
scanf("%s",xy[i].univ);
printf("参赛的项目:");
scanf("%s",xy[i].prog);
printf("参赛人数:");
scanf("%d",&xy[i].num_athlete);
}
fp2=fopen("xyuan","w");
if(fp2 == NULL)
{
printf("[saveschool]文件打开失败!错误码:%d\n", GetLastError());
exit(0);
}
for(i=0;i<N;i++)
{
if(fwrite(&xy[i],sizeof(struct xueyuan),1,fp2)!=1)
printf("File write error!\n");
}
fclose(fp2);
printf_back();
}
void saveprogram() //保存项目比赛信息子函数
{
printf("\n请输入关于比赛项目的信息:");
for(i=0;i<WM;i++)
{
printf("\n请输入第%d项比赛的信息:\n",i+1);
printf("项目:");
scanf("%s",pro[i].prog);
printf("取分情况:");
scanf("%d",&pro[i].quming);
printf("参赛者1:");
scanf("%s",pro[i].ath1);
printf("所属学院:");
scanf("%s",pro[i].univ1);
printf("参赛者2:");
scanf("%s",pro[i].ath2);
printf("所属学院:");
scanf("%s",pro[i].univ2);
}
fp3=fopen("pr","w");
if(fp3 == NULL)
{
printf("[saveprogram]文件打开失败!错误码:%d\n", GetLastError());
exit(0);
}
for(i=0;i<N;i++)
{
if(fwrite(&pro[i],sizeof(struct program),1,fp3)!=1)
printf("File write error!\n");
}
fclose(fp3);
printf_back();
}
void savescore() //保存学院得分情况子函数
{
printf("N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数。\n");
printf("W.100-女子一百米比赛,M.100-男子一百米。\n");
printf("W.200-女子两百米比赛,M.200-男子两百米。\n");
printf("取前三名:第一名7分 第二名5分 第三名3分 第四名2分 第五名1分 \n");
printf("请输入各学院的得分情况:\n");
for(i=0;i<N;i++)
{
printf("\n请输入第%d个学院的得分情况:\n",i+1);
printf("学院:");
scanf("%s",zf[i].univ);
printf("参赛项目1:");
scanf("%s",zf[i].prog1);
printf("得分:");
scanf("%d",&zf[i].score1);
printf("参赛项目2:");
scanf("%s",zf[i].prog2);
printf("得分:");
scanf("%d",&zf[i].score2);
printf("参赛项目3:");
scanf("%s",zf[i].prog3);
printf("得分:");
scanf("%d",&zf[i].score3);
zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3;
}
fp4=fopen("zfen","w");
if(fp4 == NULL)
{
printf("[savescore]文件打开失败!\n");
exit(0);
}
for(i=0;i<N;i++)
{
if(fwrite(&zf[i],sizeof(struct zongfen),1,fp4)!=1)
printf("File write error!\n");
}
fclose(fp4);
printf_back();
}
void Search()
{
int n,w2;
do
{
puts("\t\t------------ 查看信息 ------------\n");
puts("\t\t*************************MENU*************************\n");
puts("\t\t------------ 1.团体总分 ------------\n"); //查看团体总分
puts("\t\t------------ 2.参赛学院 ------------\n"); //查看参赛学院信息!
puts("\t\t------------ 3.比赛项目 ------------\n"); //查看比赛项目信息!
puts("\t\t------------ 4.退出 -------------n"); //退出
puts("\t\t***************************************\n");
printf("请输入序号(1-4)进行操作:[ ]\b\b");
scanf("%d",&n);
if (n<1||n>4)
{
w2=1;
getchar();
}
else w2=0;
}while (w2==1);
switch(n)
{ case 1: ttzf();break;
case 2: csxy();break;
case 3: bsxm();break;
case 4: exit(0);break;
default: printf("未进行任何操作!");
}
}
void ttzf() //查看学院团体总分子函数
{
fp4=fopen("zfen","r");
if(fp4 == NULL)
{
printf("[ttzf]文件打开失败!\n");
exit(0);
}
printf("\n各学院的团体总分情况如下:\n\n");
printf("学院 参赛项目 总分\n");
for(i=0;i<N;i++)
{
fread(&zf[i],sizeof(struct zongfen),1,fp4);
printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score);
}
fclose(fp4);
printf_back();
}
void csxy() //查看参赛学院信息子函数
{
fp2=fopen("xyuan","r");
if(fp2 == NULL)
{
printf("[csxy]文件打开失败!错误码:%d\n", GetLastError());
exit(0);
}
printf("\n各参赛学院的情况如下:\n\n");
printf("学院 参赛项目 参赛者数\n");
for(i=0;i<N;i++)
{
fread(&xy[i],sizeof(struct xueyuan),1,fp2);
printf("%-8s%-20s%-12d\n",xy[i].univ,xy[i].prog,xy[i].num_athlete);
}
fclose(fp2);
printf_back();
}
void bsxm() //查看比赛项目子函数
{
fp3=fopen("pr","r");
if(fp3 == NULL)
{
printf("[bsxm]文件打开失败!失败错误码:%d\n", GetLastError());
exit(0);
}
printf("\n各比赛项目的信息如下:\n\n");
printf("项目 取分情况 参赛者1 所属学院 参赛者2 所属学院\n");
for(i=0;i<N;i++)
{
fread(&pro[i],sizeof(struct program),1,fp3);
printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2);
}
fclose(fp3);
printf_back();
}
int main()
{
menu();
return 0;
}
void menu()
{
int n,w1;
do
{
puts("\t\t-------- 欢迎进入海经运动会管理系统 --------\n");
puts("\t\t*************************菜单*************************\n");
puts("\t\t---------- 1.信息录入 --------------\n");
puts("\t\t---------- 2.比赛结果录入 --------------\n");
puts("\t\t---------- 3.查询信息 --------------\n");
puts("\t\t---------- 4.退出 --------------\n");
puts("\t\t******************************************************\n");
printf("请输入序号(1-4)进行操作:[ ]\b\b");
scanf("%d",&n);
if (n<1||n>4)
{
w1=1;
getchar();
}
else w1=0;
}
while (w1==1);
switch(n)
{
case 1:Information();break; //输入信息
case 2:savescore();break; //比赛结果录入
case 3:Search();break; //查询模块
case 4:exit(0);
}
}
//公共函数
void printf_back()
{
int w;
printf("\n\n\t操作成功!\n\n");
printf("接下来您需要做什么?\n\n\t1).结束[ ] \t2).菜单:[ ]\b\b");
scanf("%d",&w);
if(w==1)
exit(0);
else menu();
}