中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用C++怎么編寫一個學校運動會管理系統

發布時間:2021-05-27 18:25:45 來源:億速云 閱讀:217 作者:Leah 欄目:編程語言

這篇文章給大家介紹使用C++怎么編寫一個學校運動會管理系統,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

具體內容如下

#include <iostream>
#include <cstdio>
#include <string>
#include <windows.h>
#include <set>
#include <map>
using namespace std;
const int MAXN = 100005;
typedef long long LL;
map< pair<string, string>, int> mtable;//男生參賽成績
map< pair<string, string>, int> wtable;//女生參賽成績
multimap<string, string> parti;//學號對應參賽項目
set <string> st;//有哪些學生學號
map<string, int> mitem;//參加該項目的女學生數
map<string, int> witem;//參加該項目的男學生數
map<string, int> item;//項目數參加人數
map<string, int> acad;//學院的總得分
map<string, int> macad;//學院男生得分
map<string, int> 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<cnt; ++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<string, string>(s3,s5)]=0;
 }
 else
 {
 witem[s5]=witem[s5]+1;
 wacad.insert(make_pair(s1,0));
 wtable[pair<string, string>(s3,s5)]=0;
 }
 return ;
}
void query()//查詢
{
 printf("信息查詢的結果如下\n");
 for(int i=0; i<cnt; ++i)
 {
 cout<<"學生學號"<<stu[i].number<<" "<<"學生姓名"<<stu[i].name<<" "<<"學生性別"<<stu[i].sex<<" "<<"學生所屬院系"<<stu[i].acad<<" "<<"學生參加項目數"<<stu[i].participate<<endl;;
 cout<<"同學姓名:"<<" "<<stu[i].name<<" "<<"參加了以下項目\n";
 multimap<string,string>::iterator it=parti.begin();
 for(; it!=parti.end(); it++)
 {
  if(it->first==stu[i].number)
  {
  cout<<it->second<<" ";
  }
 }
 cout<<"\n";
 }
 return ;
}
void registration()//檢錄
{
 system("cls");
 cout<<"請輸入即將檢錄的比賽項目名字"<<endl;
 string s;
 cin>>s;
 cout<<"請一下同學前來檢錄"<<"\n";
 int flag=0;
 multimap<string, string>::iterator it = parti.begin();
 for(; it!=parti.end(); ++it)
 {
 if(it->second==s)
 {
  flag=1;
  cout<<it->first<<endl;
 }
 }
 if(!flag)
 cout<<"沒有人報名該比賽\n"<<endl;
 return ;
}
void record()//錄入成績
{
 printf("請輸入學生學號,和項目名字以及項目的名次\n");
 string s1,s2;
 int grade, ans=0;
 cin>>s1>>s2>>grade;
 for(int i=0; i<cnt; ++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<string,string>(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<string, string>(s1,s2)]=ans;
  }
  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<string, int>::iterator it=acad.begin();
 for(; it!=acad.end(); ++it)
 {
 cout<<"學院名字:"<<it->first<<endl;
 for(int i=0; i<cnt; ++i)
 {
  if(stu[i].acad==it->first)
  {
  multimap<string, string>::iterator iter=parti.begin();
  for(; iter!=parti.end(); ++iter)
  {
   if(stu[i].number!=iter->first)
   continue;
   if(stu[i].sex=="男")
   cout<<"姓名: "<<stu[i].name<<"項目: "<<iter->second<<"成績: "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
   else
   cout<<"姓名: "<<stu[i].name<<"項目: "<<iter->second<<"成績: "<<wtable[pair<string,string>(iter->first,iter->second)]<<endl;
  }
  }
 }
 }
}
void query_contest2()
{
 map<string, int>::iterator it=item.begin();
 for(; it!=item.end(); it++)
 {
 cout<<"項目名稱:"<<it->first<<endl;
 multimap<string, string>::iterator iter=parti.begin();
 for(; iter!=parti.end(); iter++)
 {
  if(iter->second==it->first)
  {
  for(int i=0; i<cnt; ++i)
  {
   if(iter->first==stu[i].number)
   {
   if(stu[i].sex=="男")
    cout<<"姓名: "<<stu[i].name<<"項目: "<<iter->second<<"成績: "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
   else
    cout<<"姓名: "<<stu[i].name<<"項目: "<<iter->second<<"成績: "<<wtable[pair<string,string>(iter->first,iter->second)]<<endl;
   }
  }
  }
 }
 }
}
void query_contest3()
{
 for(int i=0; i<cnt; ++i)
 {
 cout<<"姓名: "<<stu[i].name<<"\n";
 multimap<string, string>::iterator iter=parti.begin();
 for(; iter!=parti.end(); iter++)
 {
  if(iter->first==stu[i].number)
  {
  if(stu[i].sex=="男")
   cout<<"項目: "<<iter->second<<"成績: "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
  else
   cout<<"項目: "<<iter->second<<"成績: "<<wtable[pair<string,string>(iter->first,iter->second)]<<endl;
  }
 }
 }
}
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<Size; ++i)
 {
 int Max=-1;
 string Maxs="";
 map<string, int >::iterator it = acad.begin();
 map<string, int >::iterator iter;
 for(; it!=acad.end(); ++it)
 {
  if(Max<it->second)
  {
  Max=it->second;
  Maxs=it->first;
  iter=it;
  }
 }
 acad.erase(iter);
 cout<<"學院名稱:"<<Maxs<<" 學院總分:"<<Max<<endl;
 cout<<"男生總得分:"<<macad[Maxs]<<" 女生總得分"<<wacad[Maxs]<<endl;
 }
}
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", &c, &n, &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++怎么編寫一個學校運動會管理系統

關于使用C++怎么編寫一個學校運動會管理系統就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

宁城县| 望都县| 图木舒克市| 合作市| 肇州县| 陵川县| 科技| 洛浦县| 资源县| 调兵山市| 邵武市| 平山县| 许昌市| 如东县| 青铜峡市| 锡林郭勒盟| 上饶县| 民县| 忻城县| 秦皇岛市| 陆川县| 海晏县| 盱眙县| 南宁市| 南木林县| 凤凰县| 汽车| 丹江口市| 长葛市| 东港市| 子洲县| 柘城县| 巨鹿县| 隆子县| 长岭县| 屏边| 武陟县| 拉萨市| 霍邱县| 定南县| 安宁市|