C++学校运动会管理系统的实现

C++学校运动会管理系统的实现,第1张

概述这篇文章主要为大家详细介绍了C++如何实现学校运动会管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现运动会管理系统的具体代码,供大家参考,具体内容如下

#include

#include

#include

#include

#include

#include

using namespace std;

const int MAXN = 100005;

typedef long long LL;

map< pair,int> mtable;//男生参赛成绩

map< pair wtable;//女生参赛成绩

multimap parti;//学号对应参赛项目

set st;//有哪些学生学号

map mitem;//参加该项目的女学生数

map witem;//参加该项目的男学生数

map item;//项目数参加人数

map acad;//学院的总得分

map macad;//学院男生得分

map wacad;//学院女生得分

int cnt;

struct student

{

string number;

string name;

string acad;

string sex;

int participate;

} stu[MAXN];

voID menu()

{

cout<<"**************系统菜单功能项*****************n";

cout<<"1.运动会报名n";

cout<<"2.参赛信息查询n";

cout<<"3.竞赛检录n";

cout<<"4.竞赛成绩录入n";

cout<<"5.竞赛成绩查询n";

cout<<"6.竞赛成绩排序n";

cout<<"7.退出程序n";

return ;

}

voID apply()//报名

{

system("cls");

string s1,s2,s3,s4,s5;

cout<<"请输入学生信息n";

cout<<"请分别输入学生所属学院名,学生姓名,学生学号, 学生性别,学生参加的项目名n";

cin>>s1>>s2>>s3>>s4>>s5;

if(st.find(s3)==st.end())

{

stu[cnt].acad=s1;

stu[cnt].name=s2;

stu[cnt].number=s3;

stu[cnt].sex=s4;

stu[cnt++].participate++;

st.insert(s3);

}

else

{

for(int i=0; i

{

if(s3==stu[i].number)

{

if(stu[i].participate+1<=3)

stu[i].participate++;

else

{

printf("此学生已经报满3项,无法继续填报n");

return ;

}

}

}

}

parti.insert(make_pair(s3,s5));

acad.insert(make_pair(s1,0));

item[s5]++;

if(s4=="男")

{

mitem[s5]=mitem[s5]+1;

macad.insert(make_pair(s1,0));

mtable[pair(s3,s5)]=0;

}

else

{

witem[s5]=witem[s5]+1;

wacad.insert(make_pair(s1,0));

wtable[pair

}

return ;

}

voID query()//查询

{

printf("信息查询的结果如下n");

for(int i=0; i

{

cout<<"学生学号"<

cout<<"同学姓名:"<<" "<

multimap::iterator it=parti.begin();

for(; it!=parti.end(); it++)

{

if(it->first==stu[i].number)

{

cout<second<<" ";

}

}

cout<<"n";

}

return ;

}

voID registration()//检录

{

system("cls");

cout<<"请输入即将检录的比赛项目名字"<

string s;

cin>>s;

cout<<"请一下同学前来检录"<<"n";

int flag=0;

multimap::iterator it = parti.begin();

for(; it!=parti.end(); ++it)

{

if(it->second==s)

{

flag=1;

cout<first<

}

}

if(!flag)

cout<<"没有人报名该比赛n"<

return ;

}

voID record()//录入成绩

{

printf("请输入学生学号,和项目名字以及项目的名次n");

string s1,s2;

int grade,ans=0;

cin>>s1>>s2>>grade;

for(int i=0; i

{

if(stu[i].number==s1)

{

if(stu[i].sex=="男")

{

if(mitem[s2]>6)

{

if(grade==1)

ans=7;

else if(grade==2)

ans=5;

else if(grade==3)

ans=3;

else if(grade==4)

ans=2;

else if(grade==5)

ans=1;

else

ans=0;

}

else

{

if(grade==1)

ans=5;

else if(grade==2)

ans=3;

else if(grade==3)

ans=2;

else

ans=0;

}

macad[stu[i].acad]+=ans;

mtable[pair(s1,s2)]=ans;

}

else

{

if(witem[s2]>6)

{

if(grade==1)

ans=7;

else if(grade==2)

ans=5;

else if(grade==3)

ans=3;

else if(grade==4)

ans=2;

else if(grade==5)

ans=1;

else

ans=0;

}

else

{

if(grade==1)

ans=5;

else if(grade==2)

ans=3;

else if(grade==3)

ans=2;

else

ans=0;

}

wacad[stu[i].acad]+=ans;

wtable[pair

}

acad[stu[i].acad]+=ans;

}

}

}

voID menu2()

{

cout<<"1.按学院查看n";

cout<<"2.按参赛项目查看n";

cout<<"3.按参赛运动员查看n";

cout<<"4.退出n";

cout<<"请输入您的选择n";

return ;

}

voID query_contest1()

{

map::iterator it=acad.begin();

for(; it!=acad.end(); ++it)

{

cout<<"学院名字:"<first<

for(int i=0; i

{

if(stu[i].acad==it->first)

{

multimap::iterator iter=parti.begin();

for(; iter!=parti.end(); ++iter)

{

if(stu[i].number!=iter->first)

continue;

if(stu[i].sex=="男")

cout<<"姓名: "<second<<"成绩: "<(iter->first,iter->second)]<

else

cout<<"姓名: "<second<<"成绩: "<second)]<

}

}

}

}

}

voID query_contest2()

{

map::iterator it=item.begin();

for(; it!=item.end(); it++)

{

cout<<"项目名称:"<first<

multimap::iterator iter=parti.begin();

for(; iter!=parti.end(); iter++)

{

if(iter->second==it->first)

{

for(int i=0; i

{

if(iter->first==stu[i].number)

{

if(stu[i].sex=="男")

cout<<"姓名: "<second<<"成绩: "<second)]<

}

}

}

}

}

}

voID query_contest3()

{

for(int i=0; i

{

cout<<"姓名: "<

multimap::iterator iter=parti.begin();

for(; iter!=parti.end(); iter++)

{

if(iter->first==stu[i].number)

{

if(stu[i].sex=="男")

cout<<"项目: "<second<<"成绩: "<second)]<

else

cout<<"项目: "<second<<"成绩: "<second)]<

}

}

}

}

voID query_contest()//比赛成绩查询

{

system("cls");

menu2();

int op;

if(cnt==0)

{

printf("当前无人报名比赛,请先报名比赛n");

return ;

}

scanf("%d",&op);

switch(op)

{

case 1:

query_contest1();

break;

case 2:

query_contest2();

break;

case 3:

query_contest3();

break;

case 4:

return;

break;

default:

printf("输入有误,请重新输入n");

}

}

voID sort_contest()//比赛成绩排序

{

int Size=acad.size();

for(int i=0; i

{

int Max=-1;

string Maxs="";

map::iterator it = acad.begin();

map::iterator iter;

for(; it!=acad.end(); ++it)

{

if(Maxsecond)

{

Max=it->second;

Maxs=it->first;

iter=it;

}

}

acad.erase(iter);

cout<<"学院名称:"<

cout<<"男生总得分:"<

}

}

int main()

{

int op;

cout<<("**************学校运动会管理系统*****************n");

// printf("请分别输入参赛学院个数,男子竞赛项目数和女子竞赛项目数n");

// scanf("%d %d %d",&c,&n,&m);

// if(c<0||n<0||m<0)

// {

// printf("输入值有误,请重新输入n");

// scanf("%d %d %d",&m);

// }

cnt=0;

while(1)

{

menu();

scanf("%d",&op);

switch(op)

{

case 1:

apply();

break;

case 2:

query();

break;

case 3:

registration();

break;

case 4:

record();

break;

case 5:

query_contest();

break;

case 6:

sort_contest();

break;

case 7:

return 0;

break;

default:

cout<<"错误输入, 请重新输入n";

break;

}

}

return 0;

}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持内存溢出。

总结

以上是内存溢出为你收集整理的C++学校运动会管理系统的实现全部内容,希望文章能够帮你解决C++学校运动会管理系统的实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存