用java编写一个程序实现学生投票系统。某班级投票选举班干部,班级学生人数为10人,每个学生只能投一票,投票成功提示“感谢你的投票”。 若重复投票,提示“请勿重复投票”。当投票总数达到10或者人为结束投票时,统计投票学生人数和投票结果。
时间: 2024-10-23 07:11:06 浏览: 73
为了实现这个简单的学生投票系统,我们可以创建一个名为`VoteSystem`的Java类,其中包含一个`Student`类作为投票者,以及一个`Candidate`类作为候选人。以下是代码示例:
```java
import java.util.*;
class Student {
private String name;
private boolean voted;
public Student(String name) {
this.name = name;
this.voted = false;
}
public void vote(Candidate candidate) {
if (!voted) {
System.out.println("感谢你的投票," + name + " 投给 " + candidate.getName());
voted = true;
} else {
System.out.println(name + ", 请勿重复投票!");
}
}
}
class Candidate {
private String name;
private int votes;
public Candidate(String name) {
this.name = name;
this.votes = 0;
}
public void receiveVote() {
this.votes++;
}
public int getVotes() {
return votes;
}
@Override
public String toString() {
return "候选人:" + name + " 票数:" + votes;
}
}
public class VoteSystem {
private List<Student> students;
private int totalVotes;
private Map<String, Candidate> candidates;
public VoteSystem(int studentCount) {
students = new ArrayList<>(studentCount);
for (int i = 0; i < studentCount; i++) {
students.add(new Student("学生" + (i+1)));
}
candidates = new HashMap<>();
// 添加候选人的例子
candidates.put("班长", new Candidate("张三"));
candidates.put("学习委员", new Candidate("李四"));
}
public void startPolling() {
while (totalVotes < students.size() && !isEndPolling()) {
for (Student student : students) {
student.vote(candidates.values().toArray(Candidate[]::new)[Math.random() % candidates.size()]);
}
totalVotes++;
}
printResults();
}
private boolean isEndPolling() {
// 你可以根据需要添加人工结束投票的逻辑,这里简化为固定次数
return totalVotes >= students.size();
}
private void printResults() {
System.out.println("投票总人数:" + totalVotes);
candidates.forEach((title, candidate) -> System.out.println(title + ": " + candidate));
}
public static void main(String[] args) {
VoteSystem system = new VoteSystem(10);
system.startPolling();
}
}
```
在这个程序中,我们首先定义了`Student`和`Candidate`类,然后在`VoteSystem`类中管理学生列表、候选人映射和投票计数。`startPolling()`方法会循环让每个学生投票,直到达到指定票数或者满足其他条件(例如人工结束)。最后,`printResults()`方法打印出投票结果。
阅读全文