如何用C++设计一个决赛叫号系统
时间: 2024-01-22 08:20:26 浏览: 26
一个决赛叫号系统可以基于以下几个功能设计:
1. 添加选手:包括选手姓名、所属组别、联系方式等信息。
2. 分配选手编号:为每个选手分配一个唯一的编号,可以根据选手姓名首字母或者随机生成编号。
3. 查找选手:通过选手编号或者姓名查找选手信息。
4. 叫号:按照选手编号或者姓名顺序逐个叫号,可以使用语音播报或者显示在屏幕上。
5. 修改选手信息:可以修改选手的姓名、所属组别、联系方式等信息。
6. 删除选手:删除已经注册的选手信息。
下面是一个简单的 C++ 实现:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
// 选手结构体
struct Player {
string name;
string group;
string contact;
int number;
};
// 添加选手
void addPlayer(vector<Player>& players) {
Player player;
cout << "请输入选手姓名:";
cin >> player.name;
cout << "请输入选手所属组别:";
cin >> player.group;
cout << "请输入选手联系方式:";
cin >> player.contact;
player.number = players.size() + 1; // 分配选手编号
players.push_back(player);
cout << "添加成功,选手编号为:" << player.number << endl;
}
// 查找选手
void searchPlayer(vector<Player>& players) {
int choice;
cout << "请选择查找方式:\n1.按编号查找\n2.按姓名查找\n";
cin >> choice;
if (choice == 1) {
int number;
cout << "请输入选手编号:";
cin >> number;
for (int i = 0; i < players.size(); i++) {
if (players[i].number == number) {
cout << "编号\t姓名\t所属组别\t联系方式\n";
cout << players[i].number << '\t' << players[i].name << '\t' << players[i].group << '\t' << players[i].contact << endl;
return;
}
}
cout << "没有找到该选手!" << endl;
}
else if (choice == 2) {
string name;
cout << "请输入选手姓名:";
cin >> name;
for (int i = 0; i < players.size(); i++) {
if (players[i].name == name) {
cout << "编号\t姓名\t所属组别\t联系方式\n";
cout << players[i].number << '\t' << players[i].name << '\t' << players[i].group << '\t' << players[i].contact << endl;
return;
}
}
cout << "没有找到该选手!" << endl;
}
else {
cout << "无效选择!" << endl;
}
}
// 叫号
void callPlayers(vector<Player>& players) {
int choice;
cout << "请选择叫号方式:\n1.按编号顺序叫号\n2.按姓名字典序叫号\n";
cin >> choice;
if (choice == 1) {
cout << "按编号顺序叫号:" << endl;
for (int i = 0; i < players.size(); i++) {
cout << "请编号为 " << players[i].number << " 的选手 " << players[i].name << " 上场!" << endl;
}
}
else if (choice == 2) {
vector<Player> sortedPlayers = players;
sort(sortedPlayers.begin(), sortedPlayers.end(), [](const Player& a, const Player& b) {
return a.name < b.name;
});
cout << "按姓名字典序叫号:" << endl;
for (int i = 0; i < sortedPlayers.size(); i++) {
cout << "请编号为 " << sortedPlayers[i].number << " 的选手 " << sortedPlayers[i].name << " 上场!" << endl;
}
}
else {
cout << "无效选择!" << endl;
}
}
// 修改选手信息
void modifyPlayer(vector<Player>& players) {
int number;
cout << "请输入要修改的选手编号:";
cin >> number;
for (int i = 0; i < players.size(); i++) {
if (players[i].number == number) {
cout << "当前选手信息:\n编号\t姓名\t所属组别\t联系方式\n";
cout << players[i].number << '\t' << players[i].name << '\t' << players[i].group << '\t' << players[i].contact << endl;
cout << "请输入修改后的姓名:";
cin >> players[i].name;
cout << "请输入修改后的所属组别:";
cin >> players[i].group;
cout << "请输入修改后的联系方式:";
cin >> players[i].contact;
cout << "修改成功!" << endl;
return;
}
}
cout << "没有找到该选手!" << endl;
}
// 删除选手
void deletePlayer(vector<Player>& players) {
int number;
cout << "请输入要删除的选手编号:";
cin >> number;
for (auto it = players.begin(); it != players.end(); it++) {
if (it->number == number) {
players.erase(it);
cout << "删除成功!" << endl;
return;
}
}
cout << "没有找到该选手!" << endl;
}
int main() {
vector<Player> players;
int choice;
while (true) {
cout << "请选择功能:\n1.添加选手\n2.查找选手\n3.叫号\n4.修改选手信息\n5.删除选手\n6.退出程序\n";
cin >> choice;
switch (choice) {
case 1:
addPlayer(players);
break;
case 2:
searchPlayer(players);
break;
case 3:
callPlayers(players);
break;
case 4:
modifyPlayer(players);
break;
case 5:
deletePlayer(players);
break;
case 6:
return 0;
default:
cout << "无效选择!" << endl;
break;
}
}
return 0;
}
```
注意:这只是一个简单的实现,实际应用中可能需要更完善的异常处理和界面设计。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)