用C++定义一个结构体person,包含姓名、编号、年龄、票数。某班级要投票选班长,设有3个候选人,共有10个人参与投票,通过输入投票候选人姓名进行计票,统计并公布候选人的票数。
时间: 2024-11-25 18:13:13 浏览: 4
在C++中,你可以定义一个名为`Person`的结构体来表示一个学生,包括他们的姓名、编号、年龄和票数。对于投票的情况,我们可以创建一个map来存储每个候选人的票数,然后允许用户输入投票信息进行计票。下面是一个简单的实现:
```cpp
#include <iostream>
#include <map>
#include <string>
// 定义结构体 Person
struct Person {
std::string name;
int id;
int age;
int votes; // 初始票数为0
};
// 存储候选人信息
std::map<std::string, Person> candidates;
void vote(std::string candidateName) {
if (candidates.find(candidateName) != candidates.end()) {
candidates[candidateName].votes++;
std::cout << "Candidate " << candidateName << " received one more vote." << std::endl;
} else {
std::cout << "Invalid candidate name!" << std::endl;
}
}
int main() {
// 初始化3名候选人
candidates["Candidate A"] = { "", 1, 0, 0 };
candidates["Candidate B"] = { "", 2, 0, 0 };
candidates["Candidate C"] = { "", 3, 0, 0 };
// 模拟10人投票
for (int i = 1; i <= 10; ++i) {
std::cout << "Vote for candidate (type 'exit' to quit): ";
std::string input;
std::cin >> input;
if (input == "exit") break;
vote(input);
}
// 公布票数
std::cout << "\nFinal results:" << std::endl;
for (const auto &entry : candidates) {
std::cout << entry.first << ": " << entry.second.votes << " votes" << std::endl;
}
return 0;
}
```
在这个程序中,用户可以通过循环投票,每投一票,候选人的票数就会增加。当用户输入"exit"时,程序停止接受投票并显示最终的票数。
阅读全文