?? 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 + -