如何设计一个程序来统计两人竞选选举中的选票分布情况?
时间: 2024-10-21 21:16:01 浏览: 30
BallotProgram:我的第一个完整程序,一个电子选举投票程序
设计一个程序来统计两人竞选选举中的选票分布情况,通常需要遵循以下步骤:
1. **定义数据结构**:首先,你需要创建一个数据结构,比如一个名为`Candidate`的类,包含两个属性,如`name`代表候选人姓名,`votes`表示得票数。
```python
class Candidate:
def __init__(self, name):
self.name = name
self.votes = 0
```
2. **用户输入**:设计一个功能让用户输入选民的选择,例如候选人的名字,可以是一个字典或哈希表来存储选票信息,键是候选人名,值是对应的票数。
```python
def get_votes():
votes_data = {}
while True:
candidate_name = input("请输入候选人的名字(输入'结束'退出):")
if candidate_name.lower() == "结束":
break
else:
vote_count = int(input(f"请输入{candidate_name}的票数:"))
votes_data[candidate_name] = vote_count
return votes_data
```
3. **统计选票**:遍历输入的数据,累加每个候选人的票数。
```python
def calculate_distribution(votes_data):
for candidate, count in votes_data.items():
current_candidate = Candidate(candidate)
current_candidate.votes += count
return votes_data
```
4. **显示结果**:最后,展示两人各自的票数和总投票数。
```python
def display_results(candidates):
total_votes = sum([v.votes for v in candidates.values()])
print(f"总投票数: {total_votes}")
for candidate in candidates:
print(f"{candidate}: {candidates[candidate].votes} 票")
# 使用函数
votes_data = get_votes()
candidates = calculate_distribution(votes_data)
display_results(candidates)
```
阅读全文