来,先核对一下题目是否一样再看:
一、运动会分数统计
问题描述
参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。
基本要求
产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
测试数据
对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。
实现提示
可以假设n<=20,m<=30,w<=20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。
选作内容
允许用户指定某项目采取其他名次取法。
界面 :
代码/code:
如果一样 那么下面呢是老娘写的 ,没有按照他给的东西 因为当时没看见还给了一小段
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdio.h>
#include <process.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <stack>
#include <queue>
int man=0,woman=1,total=2;
using namespace std;
struct information{
char name[21];
int score=0;
int rank=0;
};
struct SPORT{
information project[6];//max 5 people
int prizes=0;
int totalscore=0;//0for man 1for woman_score,3for school
};
SPORT school_project[21][51];
int iffirst=1;
int n,m,w;
int maxeven[6]={0,7,5,3,2,1};
int maxodd[4]={0,5,3,2};
void first();
void input();
void wait();
void search();
void all_schools();
void BEzer0();
int main()
{
if(iffirst)first();
char choice;
while (1)
{ system("cls");
cout << "\n\n\n\n";
cout << "\t\t 运动会统计 \n";
cout << "\t\t======================================";
cout << "\n\n";
cout << "\t\t 1:输入成绩 \n";
cout << "\t\t 2:按校成绩查询 \n";
cout << "\t\t 3:多校总成绩一览 \n";
cout << "\t\t 4:清空数据 \n";
cout << "\n";
cout << "\t\t 0:退出 \n";
cout << "\n";
cout << "\t\t请选择:" << flush;
choice = getch();
system("cls");
switch(choice)
{
case '1':
input();
break;
case '2':
search();
break;
case '3':
all_schools();
break;
case '4':
BEzer0();
case '0':
exit(0);
}
}
}
void first()
{
m=n=w=0;
cout<<"===========请先输入基本信息=============="<<flush;
cout<<"\n请输入参加学校总数n:"<<flush; cin>>n;
cout<<"\n请输入参加男生项目数m:"<<flush; cin>>m;
cout<<"\n请输入参加女生项目数w:"<<flush; cin>>w;
iffirst=0;
}
void run(int in_NO,int in_project,int x)//school,project,score;
{
if(in_project<=m)
{
school_project[in_NO][man].totalscore+=x;
}
else
{
school_project[in_NO][woman].totalscore+=x;
}
school_project[in_NO][total].totalscore+=x;
}
void input()
{
int i,j;
int in_school,in_project;
cout<<"输入项目编号:"<<flush;
scanf("%d",&in_project);
if(in_project>w+m){printf("ERR:项目编号超出指定范围");wait();return;}
if(in_project%2)//0 for even
{
j=1;
if(j>5){printf("ERR:获奖运动员数目超出指定范围");wait();return;}
for(i=1;i<=5;i++)
{
cout<<"输入第"<<i<<"名的运动员的{学校编号}和{姓名}:"<<flush;
scanf("%d",&in_school);
if(in_school>n){printf("ERR:学校编号超出指定范围");wait();return;}
school_project[in_school][in_project].project[j].rank=i;//
school_project[in_school][in_project].project[j].score=maxeven[i];
run(in_school,in_project,maxeven[i]);
scanf("%s", &school_project[in_school][in_project].project[j].name);
school_project[in_school][in_project].prizes++;
j++;
}
}
else
{
j=1;
if(j>3){printf("ERR:获奖运动员数目超出指定范围");wait();return;}
for(i=1;i<=3;i++)
{
cout<<"输入名次是"<<i<<"的运动员的{学校编号}和{姓名}:"<<flush;
scanf("%d",&in_school);
if(in_school>n){printf("ERR:学校编号超出指定范围");wait();return;}
school_project[in_school][in_project].project[j].rank=i;
school_project[in_school][in_project].project[j].score=maxodd[i];
run(in_school,in_project,maxodd[i]);
scanf("%s",&school_project[in_school][in_project].project[j].name);
school_project[in_school][in_project].prizes++;
j++;
}
}
cout<<"=================这个项目输入已经完成"<<endl;
wait();
}
void search()
{
cout<<"输入学校代号:"<<flush;
int in_NO;
cin>>in_NO;
if(in_NO>n){printf("ERR:学校编号超出指定范围");wait();return;}
int in_project;
cout<<"\n这是相关的信息:"<<endl;
for(in_project=1;in_project<=m;in_project++)
{
if(school_project[in_NO][in_project].prizes)
{
int in_5;
for(in_5=1;school_project[in_NO][in_project].project[in_5].score!=0;in_5++)
{
cout<<"男参赛者姓名:"<< school_project[in_NO][in_project].project[in_5].name<<flush;
cout<<"===>名次:" <<school_project[in_NO][in_project].project[in_5].rank<<endl;
}
}
else
{cout<<"这个学校男生在项目"<<in_project<<"没有获得名次 :( "<<endl;}
}
for(in_project=m+1;in_project<=m+w;in_project++)
{
if(school_project[in_NO][in_project].prizes)
{
int in_5;
for(in_5=1;school_project[in_NO][in_project].project[in_5].score!=0;in_5++)
{
cout<<"女参赛者姓名:"<< school_project[in_NO][in_project].project[in_5].name<<flush;
cout<<"===>名次:" <<school_project[in_NO][in_project].project[in_5].rank<<endl; }
}
else
{cout<<"这个学校女生在项目"<<in_project<<"没有获得名次 :( "<<endl;}
}
cout<<"\ntotal_man_score :"<<school_project[in_NO][man].totalscore<<endl;
cout<< "total_woman_score:"<<school_project[in_NO][woman].totalscore<<endl;
cout<< "school-total :"<<school_project[in_NO][total].totalscore<<endl;
wait();
}
void all_schools()
{
cout <<"=学校========总成绩========男生========女生"<<endl;
int in_school;
for(in_school=1;in_school<=n;in_school++)
{
printf(" %2d",in_school);
cout<<"=========="<<flush;
printf("%3d",school_project[in_school][2].totalscore);
cout<<"=========="<<flush;
printf("%3d",school_project[in_school][0].totalscore);
cout<<"==========="<<flush;
printf("%3d",school_project[in_school][1].totalscore);
cout<<endl;
}
wait();
}
void BEzer0(){
cout<<"\n\n==========本程序会清空已有内容,请稍后手动重启============"<<endl;
exit(0);
}
void wait(){
cout << "\n请按任意键继续\n" << flush;
getch();
}
Thank you for reading my essay.