最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)的實(shí)現(xiàn)

 更新時(shí)間:2018年10月18日 09:43:06   作者:zzuli-dk  
這篇文章主要為大家詳細(xì)介紹了C++如何實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)運(yùn)動(dòng)會(huì)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

#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;//男生參賽成績(jī)
map< pair<string, string>, int> wtable;//女生參賽成績(jī)
multimap<string, string> parti;//學(xué)號(hào)對(duì)應(yīng)參賽項(xiàng)目
set <string> st;//有哪些學(xué)生學(xué)號(hào)
map<string, int> mitem;//參加該項(xiàng)目的女學(xué)生數(shù)
map<string, int> witem;//參加該項(xiàng)目的男學(xué)生數(shù)
map<string, int> item;//項(xiàng)目數(shù)參加人數(shù)
map<string, int> acad;//學(xué)院的總得分
map<string, int> macad;//學(xué)院男生得分
map<string, int> wacad;//學(xué)院女生得分
int cnt;
struct student
{
 string number;
 string name;
 string acad;
 string sex;
 int participate;
} stu[MAXN];
void menu()
{
 cout<<"**************系統(tǒng)菜單功能項(xiàng)*****************\n";
 cout<<"1.運(yùn)動(dòng)會(huì)報(bào)名\n";
 cout<<"2.參賽信息查詢\n";
 cout<<"3.競(jìng)賽檢錄\n";
 cout<<"4.競(jìng)賽成績(jī)錄入\n";
 cout<<"5.競(jìng)賽成績(jī)查詢\n";
 cout<<"6.競(jìng)賽成績(jī)排序\n";
 cout<<"7.退出程序\n";
 return ;
}
void apply()//報(bào)名
{
 system("cls");
 string s1,s2,s3,s4,s5;
 cout<<"請(qǐng)輸入學(xué)生信息\n";
 cout<<"請(qǐng)分別輸入學(xué)生所屬學(xué)院名,學(xué)生姓名,學(xué)生學(xué)號(hào), 學(xué)生性別,學(xué)生參加的項(xiàng)目名\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("此學(xué)生已經(jīng)報(bào)滿3項(xiàng),無(wú)法繼續(xù)填報(bào)\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("信息查詢的結(jié)果如下\n");
 for(int i=0; i<cnt; ++i)
 {
 cout<<"學(xué)生學(xué)號(hào)"<<stu[i].number<<" "<<"學(xué)生姓名"<<stu[i].name<<" "<<"學(xué)生性別"<<stu[i].sex<<" "<<"學(xué)生所屬院系"<<stu[i].acad<<" "<<"學(xué)生參加項(xiàng)目數(shù)"<<stu[i].participate<<endl;;
 cout<<"同學(xué)姓名:"<<" "<<stu[i].name<<" "<<"參加了以下項(xiàng)目\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<<"請(qǐng)輸入即將檢錄的比賽項(xiàng)目名字"<<endl;
 string s;
 cin>>s;
 cout<<"請(qǐng)一下同學(xué)前來(lái)檢錄"<<"\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<<"沒(méi)有人報(bào)名該比賽\n"<<endl;
 return ;
}
void record()//錄入成績(jī)
{
 printf("請(qǐng)輸入學(xué)生學(xué)號(hào),和項(xiàng)目名字以及項(xiàng)目的名次\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.按學(xué)院查看\n";
 cout<<"2.按參賽項(xiàng)目查看\n";
 cout<<"3.按參賽運(yùn)動(dòng)員查看\n";
 cout<<"4.退出\n";
 cout<<"請(qǐng)輸入您的選擇\n";
 return ;
}
void query_contest1()
{
 map<string, int>::iterator it=acad.begin();
 for(; it!=acad.end(); ++it)
 {
 cout<<"學(xué)院名字:"<<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<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
   else
   cout<<"姓名: "<<stu[i].name<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<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<<"項(xiàng)目名稱:"<<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<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
   else
    cout<<"姓名: "<<stu[i].name<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<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<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<mtable[pair<string,string>(iter->first,iter->second)]<<endl;
  else
   cout<<"項(xiàng)目: "<<iter->second<<"成績(jī): "<<wtable[pair<string,string>(iter->first,iter->second)]<<endl;
  }
 }
 }
}
void query_contest()//比賽成績(jī)查詢
{
 system("cls");
 menu2();
 int op;
 if(cnt==0)
 {
 printf("當(dāng)前無(wú)人報(bào)名比賽,請(qǐng)先報(bào)名比賽\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("輸入有誤,請(qǐng)重新輸入\n");
 }
}
void sort_contest()//比賽成績(jī)排序
{
 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<<"學(xué)院名稱:"<<Maxs<<" 學(xué)院總分:"<<Max<<endl;
 cout<<"男生總得分:"<<macad[Maxs]<<" 女生總得分"<<wacad[Maxs]<<endl;
 }
}
int main()
{
 int op;
 cout<<("**************學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)*****************\n");
// printf("請(qǐng)分別輸入?yún)①悓W(xué)院個(gè)數(shù),男子競(jìng)賽項(xiàng)目數(shù)和女子競(jìng)賽項(xiàng)目數(shù)\n");
// scanf("%d %d %d", &c, &n, &m);
// if(c<0||n<0||m<0)
// {
// printf("輸入值有誤,請(qǐng)重新輸入\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<<"錯(cuò)誤輸入, 請(qǐng)重新輸入\n";
  break;
 }
 }
 return 0;
}

效果圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C指針原理教程之Ncurses介紹

    C指針原理教程之Ncurses介紹

    Ncurses 提供字符終端處理庫(kù),包括面板和菜單。為了能夠使用ncurses庫(kù),您必須在您的源程序中將curses.h包括(include)進(jìn)來(lái),而且在編譯的需要與它連接起來(lái). 在gcc中您可以使用參數(shù)-lcurses進(jìn)行編譯.
    2019-02-02
  • c語(yǔ)言多進(jìn)程tcp服務(wù)器示例

    c語(yǔ)言多進(jìn)程tcp服務(wù)器示例

    這篇文章主要介紹了c語(yǔ)言多進(jìn)程tcp服務(wù)器示例,多進(jìn)程socket,epoll實(shí)現(xiàn)IO復(fù)用,需要的朋友可以參考下
    2014-03-03
  • Qt中QDateTimeEdit的具體使用

    Qt中QDateTimeEdit的具體使用

    本文主要介紹了Qt中QDateTimeEdit的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • C語(yǔ)言實(shí)現(xiàn)圖的遍歷之深度優(yōu)先搜索實(shí)例

    C語(yǔ)言實(shí)現(xiàn)圖的遍歷之深度優(yōu)先搜索實(shí)例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)圖的遍歷之深度優(yōu)先搜索實(shí)例,采用不同的方法實(shí)現(xiàn)了深度優(yōu)先搜索算法,有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • C++實(shí)現(xiàn)俄羅斯方塊小游戲

    C++實(shí)現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • linux下實(shí)現(xiàn)的2048游戲示例分享

    linux下實(shí)現(xiàn)的2048游戲示例分享

    這篇文章主要介紹了linux下實(shí)現(xiàn)的2048游戲示例,需要的朋友可以參考下
    2014-04-04
  • 淺談單調(diào)隊(duì)列、單調(diào)棧

    淺談單調(diào)隊(duì)列、單調(diào)棧

    其實(shí),單調(diào)隊(duì)列和單調(diào)棧是類似的,在我看來(lái),這兩個(gè)東西只是名字不一樣 - - ! 比較容易想的一道題啦! 首先,這題的兩個(gè)關(guān)鍵點(diǎn): 1、區(qū)間的和。這個(gè)簡(jiǎn)單,地球人都知道! 2、區(qū)間的最小值。
    2015-07-07
  • OpenCV c++滑動(dòng)條的創(chuàng)建和使用代碼

    OpenCV c++滑動(dòng)條的創(chuàng)建和使用代碼

    滾動(dòng)條(Trackbar)在OpenCV中是非常方便的交互工具,它依附于特定的窗口而存在,下面這篇文章主要給大家介紹了關(guān)于OpenCV?c++滑動(dòng)條的創(chuàng)建和使用的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • C語(yǔ)言庫(kù)函數(shù)qsort及bsearch快速排序算法使用解析

    C語(yǔ)言庫(kù)函數(shù)qsort及bsearch快速排序算法使用解析

    這篇文章主要為大家介紹了C語(yǔ)言庫(kù)函數(shù)qsort及bsearch快速排序算法的使用示例解析
    2022-02-02
  • C語(yǔ)言 共用體(Union)詳解及示例代碼

    C語(yǔ)言 共用體(Union)詳解及示例代碼

    本文主要介紹C語(yǔ)言 共用體,這里整理了相關(guān)資料及示例代碼,幫助大家學(xué)習(xí)理解此部分的知識(shí),有興趣的小伙伴可以參考下
    2016-08-08

最新評(píng)論

明星| 中西区| 永新县| 开原市| 武宣县| 镇赉县| 广饶县| 丰宁| 永清县| 瓦房店市| 射阳县| 平潭县| 民权县| 南宁市| 徐闻县| 平塘县| 大方县| 张家界市| 玛纳斯县| 韩城市| 六盘水市| 洞头县| 桦甸市| 大港区| 巴楚县| 洱源县| 五指山市| 安福县| 永胜县| 古丈县| 台南市| 松潘县| 浙江省| 靖宇县| 攀枝花市| 望城县| 高平市| 广宁县| 安宁市| 甘南县| 龙门县|