用c++写一个歌手比赛系统
时间: 2023-12-31 11:06:32 浏览: 63
好的,以下是一个简单的歌手比赛系统的代码示例,仅供参考:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 歌手类
class Singer {
public:
Singer(string name, int score) {
this->name = name;
this->score = score;
}
string getName() {
return name;
}
int getScore() {
return score;
}
void addScore(int score) {
this->score += score;
}
private:
string name;
int score;
};
// 歌手比赛系统类
class SingerContestSystem {
public:
void addSinger(string name, int score) {
Singer s(name, score);
singers.push_back(s);
}
void startContest() {
int round = 1;
while (singers.size() > 1) {
cout << "第" << round << "轮比赛开始!" << endl;
vector<Singer> winners;
for (int i = 0; i < singers.size(); i += 2) {
cout << singers[i].getName() << " VS " << singers[i+1].getName() << endl;
int score1, score2;
cout << "请输入" << singers[i].getName() << "的得分:";
cin >> score1;
cout << "请输入" << singers[i+1].getName() << "的得分:";
cin >> score2;
if (score1 > score2) {
singers[i].addScore(score1);
winners.push_back(singers[i]);
} else {
singers[i+1].addScore(score2);
winners.push_back(singers[i+1]);
}
}
singers = winners;
round++;
}
cout << "比赛结束,获胜者是:" << singers[0].getName() << endl;
}
private:
vector<Singer> singers;
};
int main() {
SingerContestSystem system;
system.addSinger("张三", 0);
system.addSinger("李四", 0);
system.addSinger("王五", 0);
system.addSinger("赵六", 0);
system.startContest();
return 0;
}
```
该系统中,歌手和比赛都抽象成了类,歌手类包含歌手的姓名和得分,而歌手比赛系统类则包含了一个歌手列表和比赛开始方法。在比赛开始时,每一轮都让歌手两两比较,输入得分后判断获胜者,将获胜者加入下一轮的列表中。最后,当只剩一个人时,输出获胜者的姓名。