⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.cpp

📁 校际运动会管理系统
💻 CPP
字号:
#include<iostream.h>
#include<stdio.h>
#include <conio.h>
#include<stdlib.h>

#define SIZE 6
#define N    3
#define WM   3

int i;
FILE *fp1,*fp2,*fp3,*fp4;

struct athlete
{
	char univ[5];
	char name[8];
	char prog[15];
    char mingci[5];
	int score;
}at[SIZE];

struct zongfen
{
	char univ[5];
	char prog1[5];
	char prog2[5];
	char prog3[5];
	int score1;
	int score2;
	int score3;
	int zongf;
}zf[N];

struct xuexiao
{
	char univ[5];
	char prog[15];
	int cansaishu;
}xx[N];

struct program//这个名字不能和结构体里的名字取得一样,否则会出错
{
	char prog[5];
	int quming;
    char ath1[5];
	char ath2[5];
	char univ1[5];
	char univ2[5];
}pro[WM];


void save1()
{
   printf("\n请输入各项目获奖运动员的信息:");

	for(i=0;i<SIZE;i++)
	{
        printf("\n请输入第%d个运动员的信息:\n",i+1);

		printf("姓名:");
	    scanf("%s",at[i].name);

	    printf("学校:");
	    scanf("%s",at[i].univ);

	    printf("参赛项目:");
	    scanf("%s",at[i].prog);

		printf("名次:");
		scanf("%s",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");
    printf("\n现在各运动员的信息如下:\n\n");
    printf("姓名      学校       项目             名次       得分\n");
	for(i=0;i<SIZE;i++)
	{
		fread(&at[i],sizeof(struct athlete),1,fp1);
	    printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score);
	}
	fclose(fp1);
}

void save2()
{
	printf("\n请输入各学校的总分情况:");

    for(i=0;i<N;i++)
	{
		printf("\n请输入第%d个学校的总分情况:\n",i+1);//在输入的这句话前加\n可以使输入更加清晰

		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].zongf=zf[i].score1+zf[i].score2+zf[i].score3;
	}

    fp2=fopen("zfen","w");
	for(i=0;i<N;i++)
	{
		if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1)
			printf("File write error!\n");
	}
	fclose(fp2);
}

void save3()
{
	printf("\n请输入各参赛学校的信息:");

	for(i=0;i<N;i++)
	{
		printf("\n请输入第%d个学校的信息:\n",i+1);

		printf("学校:");
		scanf("%s",xx[i].univ);

		printf("参赛的项目:");
		scanf("%s",xx[i].prog);

		printf("参赛者数:");
		scanf("%d",&xx[i].cansaishu);
	}

	fp3=fopen("xxiao","w");
	for(i=0;i<N;i++)
	{
		if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1)
			printf("File write error!\n");
	}
	fclose(fp3);
}

void save4()
{
	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);
	}

    fp4=fopen("pr","w");
	for(i=0;i<N;i++)
	{
		if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1)
			printf("File write error!\n");
	}
	fclose(fp4);
}


void ttzf()//查看团体总分的函数
{
	fp2=fopen("zfen","r");
    printf("\n各学校的团体总分情况如下:\n\n");
    printf("学校    参赛项目       总分\n");
	for(i=0;i<N;i++)
	{
		fread(&zf[i],sizeof(struct zongfen),1,fp2);
	    printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].zongf);
	}
	fclose(fp2);
}

void csxx()//查看参赛学校信息的函数
{
    fp3=fopen("xxiao","r");
    printf("\n各参赛学校的情况如下:\n\n");
    printf("学校    参赛项目         参赛者数\n");
	for(i=0;i<N;i++)
	{
		fread(&xx[i],sizeof(struct xuexiao),1,fp3);
	    printf("%-8s%-20s%-12d\n",xx[i].univ,xx[i].prog,xx[i].cansaishu);
	}
	fclose(fp3);
}

void bsxm()//查看比赛项目的函数
{
    fp4=fopen("pr","r");
    printf("\n各比赛项目的信息如下:\n\n");
    printf("项目    取分情况    参赛者1  所属学校     参赛者2  所属学校\n");
	for(i=0;i<N;i++)
	{
		fread(&pro[i],sizeof(struct program),1,fp4);
	    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(fp4);
}
  



void main()
{
	char ch1,ch2;
	
	printf("N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。\n");
	printf("W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。\n");
	printf("\n各项同名次取法如下几种:\n");
	printf("取前五名:第一名7分   第二名5分   第三名3分   第四名2分   第五名1分\n");
	printf("取前三名:第一名5分   第二名3分   第三名2分\n");

    save1();
	save2();
	save3();
	save4();

printf("\n要进行查看信息,根据屏幕提示:\n");
L:	printf("  1.  查看团体总分情况\n");
	printf("  2.  查看参赛学校信息\n");
	printf("  3.  查看比赛项目信息\n");
	printf("  4.  退出\n");

	ch1=getch();
	
	switch(ch1)
	{
	 case '1':
		ttzf();
		break;
	 case '2':
		csxx();
		break;
	 case '3':
		bsxm();
		break;
	 case '4':
		exit(0);
     default:
		printf("未进行任何操作!");
		
	}
	
	printf("\n想要继续查看请按“y”\n");//让程序能够重复执行
	ch2=getch();
	if(ch2=='y')  goto L;//注意要“==”,而不是“=”
}


     
	




















































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -