📄 11.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 + -