久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
C++演講比賽程序
[打印本頁]
作者:
jackzhu123
時間:
2023-7-23 16:38
標題:
C++演講比賽程序
#include<iostream>
using namespace std;
#include<vector>;
#include<map>
#include<string>
#include<algorithm>
#include<ctime>
#include<functional>
#include<deque>
#include<numeric>
#include<fstream>
#include<ctime>
void showMenu()
{
cout << "**********************************" << endl;
cout << "******* 歡迎參加演講比賽 *******" << endl;
cout << "******* 1.開始演講比賽 *******" << endl;
cout << "******* 2.查看往屆記錄 *******" << endl;
cout << "******* 3.清空比賽記錄 *******" << endl;
cout << "******* 0.退出比賽記錄 *******" << endl;
}
class Player
{
public:
Player()
{
}
Player(string name, double score)
{
this->name = name;
this->score = score;
}
string name;
double score;
};
void print(int a)
{
cout << a << " ";
}
class Jiang
{
public:
bool operator()(double dou1, double dou2)const
{
return dou1 > dou2;
}
};
class SpeechContest
{
public:
map<int, string>players;
vector<int>draw;
bool is_empty=true;
map<int, vector<string>>his_rec;
//創建比賽選手容器
void creatPlayers()
{
string st = "ABCDEFJHIJKL";
int number = 10001;
for (int i = 0; i < 12; i++)
{
string name = "選手";
name += st[i];
players.insert(make_pair(number + i, name));
draw.push_back(number + i);
}
}
//進行抽簽
void drawLots()
{
random_shuffle(draw.begin(), draw.end());
}
//打印抽簽后的演講順序
void print_DrawLots()
{
cout << "抽簽后演講順序如下:" << endl;
for_each(draw.begin(), draw.end(), print);
cout << endl;
system("pause");
}
void print_group(multimap<double, int, Jiang>&group1)
{
for (multimap<double, int>::iterator it = group1.begin(); it != group1.end(); it++)
{
cout << it->second << " " << it->first << " " << players.find(it->second)->second << endl;
}
}
void delete_End(multimap<double, int, Jiang>& group1)
{
int i = 0;
do
{
multimap<double, int>::iterator it = group1.end();
--it;
group1.erase(it);
i++;
}while (i < 3);
}
void add_Final_Player(multimap<double, int, Jiang>& group1)
{
for (multimap<double, int>::iterator it = group1.begin(); it != group1.end(); it++)
{
draw.push_back(it->second);
}
}
void competition(multimap<double, int, Jiang>&group1,int a)
{
deque<double>de;
double score;
for (int i = a; i < 6+a; i++)
{
de.clear();
for(int j=0;j<10;j++)
{
score = rand() % 21 + 79 + rand() % 100 / 100.00;
de.push_back(score);
}
sort(de.begin(),de.end());
de.pop_back();
de.pop_front();
score=accumulate(de.begin(), de.end(),0)/8.00;
group1.insert(make_pair(score, draw[i]));
}
}
void first_Round()
{
multimap<double, int, Jiang>group1;
multimap<double, int, Jiang>group2;
drawLots();
print_DrawLots();
competition(group1,0);
cout << "第1小組比賽名次:" << endl;
print_group(group1);
competition(group2,6);
cout << "第2小組比賽名次:" << endl;
print_group(group2);
delete_End(group1);
delete_End(group2);
cout << "晉級人員:" << endl;
print_group(group1);
print_group(group2);
draw.clear();
add_Final_Player(group1);
add_Final_Player(group2);
cout << "第一輪比賽完畢" << endl;
}
void read()
{
ifstream ifs;
ifs.open("speech_result.csv", ios::in);
if (!ifs.is_open())
{
cout << "該文件不存在" << endl;
is_empty = true;
ifs.close();
return;
}
char ch;
ifs >> ch;
if (ifs.eof())
{
cout << "記錄為空" << endl;
is_empty = true;
ifs.close();
return;
}
is_empty = false;
ifs.putback(ch);
vector<string>ve;
string date;
int index = 1;
while (ifs>>date)
{
ve.clear();
int start = 0;
int pos = -1;
while (true)
{
pos = date.find(',', start);
if (pos==-1)
{
break;
}
string st = date.substr(start, pos - start);
ve.push_back(st);
start = pos + 1;
}
his_rec.insert(make_pair(index, ve));
index++;
}
}
void store(multimap<double, int, Jiang>&group)
{
ofstream ofs;
ofs.open("speech_result.csv",ios::out|ios::app);
for(multimap<double, int, Jiang>::iterator it=group.begin();it!=group.end();it++)
{
ofs << it->second << "," << it->first << ",";
}
ofs << endl;
ofs.close();
cout << "記錄已保存" << endl;
is_empty = false;
}
void second_Round()
{
multimap<double, int, Jiang>group;
cout << "第二輪比賽開始" << endl;
drawLots();
print_DrawLots();
competition(group, 0);
cout << "決賽名次:" << endl;
print_group(group);
delete_End(group);
cout << "冠亞季軍:" << endl;
print_group(group);
store(group);
}
void del_rec()
{
fstream fs;
fs.open("speech_result.csv", ios::out);
fs.clear();
is_empty = true;
cout << "記錄已清空" << endl;
}
};
void contest(SpeechContest &con)
{
con.creatPlayers();
con.first_Round();
con.second_Round();
}
void showTop(string st)
{
cout << st << "\t";
}
void showHis(const pair<int,vector<string>>&pa)
{
cout << "第" << pa.first << "屆:";
for_each(pa.second.begin(), pa.second.end(), showTop);
cout << endl;
}
void hisRec(SpeechContest &con)
{
con.read();
if (con.is_empty)
{
return;
}
for_each(con.his_rec.begin(), con.his_rec.end(),showHis);
}
int main()
{
srand((unsigned int)time(NULL));
SpeechContest con;
while (true)
{
showMenu();
cout << "請輸入您的選擇:" << endl;
int sel;
cin >> sel;
switch (sel)
{
case 1:
contest(con);
system("pause");
system("cls");
break;
case 2:
hisRec(con);
system("pause");
system("cls");
break;
case 3:
con.del_rec();
system("pause");
system("cls");
break;
case 0:
cout << "歡迎下次使用" << endl;
system("pause");
return 0;
break;
default:
cout << "您輸入有誤!" << endl;
system("pause");
system("cls");
}
}
system("pause");
return 0;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美日韩一区在线播放
|
欧美激情综合
|
成人免费看片
|
精品国产欧美一区二区三区成人
|
欧美成视频
|
欧美区日韩区
|
91精品国产综合久久久久久丝袜
|
欧美视频免费
|
欧美a级网站
|
亚洲一区二区久久久
|
欧美午夜精品久久久久免费视
|
久久久久国产精品午夜一区
|
av中文字幕在线
|
亚洲一区二区三区免费视频
|
一区二区三区久久
|
成人高潮片免费视频欧美
|
91精品久久久久久久久中文字幕
|
久久久久一区
|
九九视频网
|
www.蜜桃av
|
国产欧美精品区一区二区三区
|
日本精品一区二区在线观看
|
日韩电影免费在线观看中文字幕
|
91精品国产91综合久久蜜臀
|
日韩一级
|
国产亚洲一区二区三区
|
在线视频三区
|
一区二区三区视频在线观看
|
国产亚洲精品美女久久久久久久久久
|
一区二区在线
|
精精精精xxxx免费视频
|
91麻豆精品一区二区三区
|
在线视频一区二区三区
|
国产精品成人久久久久a级 久久蜜桃av一区二区天堂
|
久久久久久网站
|
日本三级电影在线观看视频
|
国产精品久久国产精品久久
|
国产东北一级毛片
|
亚洲欧美日本国产
|
成人在线精品视频
|
亚洲欧美日韩一区二区
|