9、运动会管理系统
学校十五届运动会管理系统。设有n个学院参加运动会,共有男子竞赛项目数m,女子竞赛项目数w。每个学院可以参加所有竞赛项目不受限制,每个学院对每个项目的参赛运动员不能超过4人或4支,每个运动员最多只能参加3项单项比赛,团体赛不受限制。
各项目名次取法有如下几种:用户自定义:(各名次权值由用户指定)
① 参赛人数超过6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;
②参赛人数不超过6人,取前3名:第1名得分 5,第2名得分 3,第3名得分2;
③ 团体项目的名次取法和上面相同,但分数加倍。
功能要求 :
⑴ 运动员报名登记,以学院为单位进行运动员报名登记,登记的限制要求按问题描述的要求;
⑵ 参赛信息查询,查看参赛学院信息和比赛项目信息;
⑶ 竞赛检录,每项比赛开始前完成参赛运动员的检录;
⑷ 竞赛成绩登记,填写比赛名次,然后根据竞赛检录的运动员人数和上述的记分方式自动完成各学院的成绩登记并实时生成各学院的团体总分;
⑸ 比赛成绩查询,可以按竞赛项目、参赛学校、参赛运动员查看比赛成绩;
⑹ 竞赛成绩排序,以学校为单位,按总成绩的高低,分别排序输出每个学校的总成绩、男子总成绩、女子总成绩;
⑺ 设计一个菜单,至少具有上述操作要求的基本功能。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int n,n2;
void menuselect(int n);
void input1();
void input2();
void find2();
void find3();
int delete1();
void print1();
int main()
{
menuselect(n);
return 0;
}
void menuselect(int n)
{
while(1)
{
cout<<setfill('*')<<endl;
cout<<setw(50)<<"欢迎来到运动会管理系统"<<setw(29)<<"*"<<endl;
cout<<setfill(' ')<<endl;
cout<<setw(47)<<"1、运动员报名登记"<<endl;
cout<<setw(45)<<"2、参赛信息查询"<<endl;
cout<<setw(41)<<"3、竞赛检录"<<endl;
cout<<setw(45)<<"4、竞赛成绩登记"<<endl;
cout<<setw(45)<<"5、比赛成绩查询"<<endl;
cout<<setw(45)<<"6、竞赛成绩排序"<<endl;
cout<<setw(41)<<"0、退出程序"<<endl;
cout<<setfill('*')<<endl;
cout<<setw(79)<<""<<endl;
cout<<setfill(' ')<<setw(44)<<"请选择功能:";
cin>>n;
if(n==1)
input1();
if(n==2)
find2();
if(n==3)
delete1();
if(n==4)
input2();
if(n==5)
find3();
if(n==0)
break;
}
}
class Match //报名登记
{
public:
Match *next;
char school[20];
char call[10];
char name[10];
char sex[5];
friend void input1();
};
void input1()
{ ofstream fout("e:\\运动员报名登记.dat",ios::app);
char ch;
Match a;
do
{ cout&l