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

📄 11.cpp

📁 运动会的得分情况,各学校的总体得分,以及冠军
💻 CPP
字号:
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdio.h>
#include <process.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

typedef struct 
{
     char name[10];              //记录姓名
	 int schoolNo;               //记录校号
     int score;
}DataType;

typedef struct 
{
	int item,type;              //项目编号和类型符
	DataType data[5];           //记录前几名的信息
}Project;                       //记录项目的信息   

void makeGrade(int i,Project p[],int pNum);           //产生各学校的成绩单并输出,输入参数为学校编号
void makeReport(int n,int m,Project p[],int pNum);    //产生团体总分报表,输入参数为学校个数

void main()
{
	int n,m,w;                                        //n个学校 m个男子项目 w个女子项目
	Project p[50];
	int i,j,k;

	cout<<"输入学校数(小于20的整数)";
	cin>>n;

	cout<<"输入男子项目数(小于30的整数)";
	cin>>m;
	
	cout<<"输入女子项目数(小于20的整数)";
	cin>>w;

	for(i=0;i<m+w;i++)                                 //对每个项目进行处理
	{
		system("cls");
		if(i<m)
			cout<<"男子项目"<<endl;                   //先输出男子项目,再输出女子项目
		else
			cout<<"女子项目"<<endl;
		p[i].item=i;                                  //项目编号
		cout<<"输入第"<<i+1<<"个项目信息"<<endl;
        cout<<"输入项目类型 (1:取前五名,2:取前三名):"<<endl;
		cin>>k;
		p[i].type=k;
		system("cls");
        if (k==1)                                    //取前五名
		{
			cout<<"按名次顺序输入前五名运动员的姓名、校号"<<endl;
		    for(j=0;j<5;j++)
			{
				cout<<"第"<<j+1<<"名"<<endl;
				cout<<"姓名:";
				cin>>p[i].data[j].name;
				cout<<"校号:";
				cin>>p[i].data[j].schoolNo;
				if(j==0)
					p[i].data[j].score=7;           //第一名
				if(j==1)
					p[i].data[j].score=5;           //第二名
				if(j==2)
					p[i].data[j].score=3;           //第三名
				if(j==3)
					p[i].data[j].score=2;          //第四名
				if(j==4)
					p[i].data[j].score=1;          //第五名
			}
		}
		else                                      //取前三名
		{
			cout<<"按名次顺序输入前三名运动员的姓名、校号"<<endl;
		    for(j=0;j<3;j++)
			{
				cout<<"第"<<j+1<<"名"<<endl;
				cout<<"姓名:";
				cin>>p[i].data[j].name;
				cout<<"校号:";
				cin>>p[i].data[j].schoolNo;
				if(j==0)
					p[i].data[j].score=5;
				if(j==1)
					p[i].data[j].score=3;
				if(j==2)
					p[i].data[j].score=2;
			}
		}
	}

	system("cls");

	for(i=0;i<=n;i++)                 //i也可以等于1
	{
		makeGrade(i,p,m+w);			
	}

cout<<endl;

makeReport(n,m,p,m+w);
}

void makeGrade(int i,Project p[],int pNum)
//产生各学校的成绩单并输出,输入参数为学校编号  
{
	    int c;     //名次
		int b;     //项目

        for(b=0;b<pNum;b++)
	    if(p[b].type==1)    //选1,取前五名
		for(c=0;c<5;c++)  
		{
			if(p[b].data[c].schoolNo==i)
			cout<<"第"<<i<<"个学校的"<<p[b].data[c].name<<"在"<<b+1<<"项目中获得第"<<c+1<<"名"<<"成绩为:"<<p[b].data[c].score<<"分"<<endl;
		}
			else
               for(c=0;c<3;c++)
			   {
			     if(p[b].data[c].schoolNo==i)
				 cout<<"第"<<i<<"个校的"<<p[b].data[c].name<<"在"<<b+1<<"项目中获得第"<<c+1<<"名"<<"成绩为:"<<p[b].data[c].score<<"分"<<endl;
			   }
}
void makeReport(int n,int m,Project p[],int pNum)//团体总分报表
{
	int b;
	int c;
	int sum,sumb,sumg;//sum学校的总分,sumb男子项目总分,sumg女子项目总分
	for(int i=1;i<n+1;i++)
	{	
	    sum=0;
		sumb=0;
		sumg=0;
		for(b=0;b<pNum;b++)
				if(p[b].type==1)
				for(c=0;c<5;c++)
			{
					if(p[b].data[c].schoolNo==i)
						{
						sum=sum+p[b].data[c].score;	
						if(b<m)
							sumb=sumb+p[b].data[c].score;
						else
							sumg=sumg+p[b].data[c].score;
				}
			}
				else
                for(c=0;c<3;c++)
			{
					if(p[b].data[c].schoolNo==i)
						{
						sum=sum+p[b].data[c].score;
						if(b<m)
							sumb=sumb+p[b].data[c].score;
						else
							sumg=sumg+p[b].data[c].score;
					}
			}
				cout<<"第"<<i<<"个学校的总分为"<<sum<<endl;
				cout<<"   该校男子项目总分为"<<sumb<<endl;
				cout<<"   该校女子项目总分为"<<sumg<<endl;

	}		
}

⌨️ 快捷键说明

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