某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票。本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示“感谢你的投票”,若重复投票,提示“请勿重复投票”。当投票总数达到100时或者主观结束投票时,同时统计投票学生人数和投票结果。
时间: 2024-10-07 12:01:39 浏览: 50
这个编程任务可以使用简单的数据结构,如字典或集合,在Python中实现。以下是一个基本的伪代码描述:
```python
class Voter:
def __init__(self, name):
self.name = name
self.voted = False
class VotingSystem:
def __init__(self):
self.voters = {} # 存储学生信息,key是名字,value是Voter对象
self.total_votes = 0
def vote(self, name):
if name not in self.voters or not self.voters[name].voted:
self.voters[name] = Voter(name)
self.voters[name].voted = True
self.total_votes += 1
print(f"感谢{name}的投票")
else:
print("请勿重复投票")
def end_voting(self, manual_end=False):
if manual_end or self.total_votes == len(self.voters):
print(f"投票结束,总共有{self.total_votes}名同学参与投票.")
results = {name: voter for name, voter in self.voters.items() if voter.voted}
return results
```
在这个程序中,`VotingSystem`类负责管理投票过程,每个学生的投票状态通过`Voter`类存储。每当有新的投票时,系统会检查是否已经投过票,如果没有则允许投票并更新投票数,如果已投过票则给出相应提示。
`end_voting`方法用于人工结束投票或者当投票数等于学生总数时自动结束,并返回投票结果。
阅读全文