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

📄 123.cpp

📁 小型运动会管理系统。可以进行运动会项目各项记录的录入
💻 CPP
字号:
#include<stdio.h>//#include "stdafx.h"
#define IN  8			//项目数目
#define DN  5			//信息数目		
#define SN  5			//学校数目
#define TN  5			//总分信息数目
struct Infor			//定义存储各项目前几名信息结构体
{
	int SchoolName;
	int Score;
	char Person;
	float Result;
};

struct Item			//定义存储项目结构体
{
	char ItemName;
	struct Infor detail[DN];		
}item[IN];

struct Total			//定义存储总分信息结构体
{
	int SchoolName;
	int Sum;		
}total[TN];


void Enter_Infor(struct	Item item[])		//定义输入函数
{
	int i,j,k,name;
	printf("请输入数据:\n");
	printf("进行的比赛项目分别为:\n");
	for(k=0;k<IN;k++)
	{
		scanf("%c",&item[k].ItemName);
	
	}

	printf("(从左至右依次为学校编号,项目积分,项目具体成绩,获奖人姓名)\n");
	for(i=0;i<IN;i++)
		{
			printf("项目名称为:");
			fflush(stdin);
			scanf("%c",&item[k].ItemName);			//输入项目名称
			for(j=0;j<DN;j++)
			{
		
				printf("第%d名的信息为:",j+1);
				scanf("%d,%d,%f,%c",&item[i].detail[j].SchoolName,&item[i].detail[j].Score,			//输入具体信息
					&item[i].detail[j].Result,&item[i].detail[j].Person);
			}
		}
}


void Count(struct Item item[])			//定义统计分数函数
{
	int i,j,m=0,sum;
	int name;
	printf("输入要统计的学校的名称(退出请按0):\n");
	fflush(stdin);
	scanf("%d",&name);
	while(name!=0)
	{   
		sum=0;
		for(i=0;i<IN;i++)
			for(j=0;j<DN;j++)
				if(item[i].detail[j].SchoolName==name)
					sum+=item[i].detail[j].Score;		//统计学校总分
				
		total[m].SchoolName=name;						//将统计结果传入结构体中保存				
		total[m].Sum=sum;
		m++;
		
		printf("该学校的总分为:\n");
		printf("%d\n",sum);								//输出总分
		printf("输入要统计的学校的编号(退出请按0):\n");
		fflush(stdin);
		scanf("%d",&name);
	}
}




void Print_Infor(struct Item item[])			//定义输出函数
{
	int i,j;
	printf("请浏览数据:\n");
	printf("             学校编号   项目积分   项目具体成绩   获奖人姓名\n");
	for(i=0;i<IN;i++)
		for(j=0;j<DN;j++)
		printf("                 %d          %d       %f         %c\n",
				item[i].detail[j].SchoolName,item[i].detail[j].Score,
				item[i].detail[j].Result,item[i].detail[j].Person);
	
}


void Taxis(struct Item item[])				//定义排序函数
{
	int x,i,j,num;
	int k=0;
	int school[SN];
	printf("请输入排序的标准:\n");
	printf("(1代表按学校编号排名;2代表按学校总分排序;3退出)\n");
	scanf("%d",&num);				//1代表按学校编号排名;2代表按学校总分排序;
	while(num==1)
	{
		for(i=0;i<SN;i++)
		school[i]=total[i].SchoolName;
	
		for(i=0;i<SN;i++)				//将学校编号传入数组进行排序
			for(j=0;j<SN-i;j++)
				if(school[j]<school[j+1])
				{
					x=school[j];
					school[j]=school[j+1];
					school[j+1]=x;
				}
		printf("     学校编号     学校总分\n");
		for(j=0;j<TN;j++)
			for(i=0;i<TN;i++)
				if(total[i].SchoolName==school[j])
				printf("        %d           %d\n",total[i].SchoolName,total[i].Sum);			//回到结构体中输出排序结果
				printf("(1代表按学校编号排名;2代表按学校总分排序;3退出)\n");
				scanf("%d",&num);
	}

	while(num==2)
	{
		for(i=0;i<TN;i++)
		    school[i]=total[i].Sum;
	
		for(i=0;i<SN;i++)					//将学校编号传入数组进行排序
			for(j=0;j<SN-i;j++)
				if(school[j]<school[j+1])
				{
					x=school[j];
					school[j]=school[j+1];
					school[j+1]=x;
				}
		printf("     学校编号     学校总分\n");
		for(j=0;j<TN;j++)
			for(i=0;i<TN;i++)
				if(total[i].Sum==school[j])
				printf("        %d           %d\n",total[i].SchoolName,total[i].Sum);			//回到结构体中输出排序结果
				printf("(1代表按学校编号排名;2代表按学校总分排序;3退出)\n");
				scanf("%d",&num);
	}
	
}

				
void Serach(struct Item item[])				//定义查找函数
{
	int num,i,j;
	int schoolname;
	printf("请输入查询标准:\n");
	printf("(1代表按学校编号查询;2代表按项目编号查询前两名);3退出)\n");
				
	scanf("%d",&num);												//1代表按学校编号查询;2代表按项目编号查询前三名。
	if(num==1)
		{	
			do{
				printf("请输入要查询学校的编号(0退出按学校编号查询):\n");
				scanf("%d",&schoolname);
				printf("             学校编号   项目积分   项目具体成绩   获奖人姓名\n");
				for(i=0;i<IN;i++)
					for(j=0;j<DN;j++)
						{
							if(item[i].detail[j].SchoolName==schoolname)		//输出查询结果
							printf("            %d         %d        %f      %c\n",
								item[i].detail[j].SchoolName,item[i].detail[j].Score,
								item[i].detail[j].Result,item[i].detail[j].Person);

						}
					printf("\n");
				}while(schoolname!=0);
      if(schoolname==0)
			Serach(item);

		
		}
	else if(num==2)
		{
			char itemnum;
			do{
				printf("请输入要查询项目的编号(0退出按项目编号查询):\n");
				fflush(stdin);
				scanf("%c",&itemnum);
				printf("该项目的前五名为:\n");
				printf("             学校编号   项目积分   项目具体成绩   获奖人姓名\n");
				for(i=0;i<IN;i++)
				{
					if(item[i].ItemName==itemnum)
				
						for(j=0;j<DN;j++)					//输出查询结果
				
						{
							
							printf("            %d         %d        %f      %c\n",
								item[i].detail[j].SchoolName,item[i].detail[j].Score,
								item[i].detail[j].Result,item[i].detail[j].Person);	
						}
					
				
				}
			}while(itemnum!='0');
		
			if(itemnum=='0')
			Serach(item);
	}

	else	printf("完成\n");
	
}




void main(int argc, char* argv[])		//主函数
{
	Enter_Infor(item);
	printf("\n");
	Print_Infor(item);
	printf("\n");
	Count(item);
	printf("\n");
	Taxis(item);
	printf("\n");
	Serach(item);

}


⌨️ 快捷键说明

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