用java 写出完整详细代码 按照以下要求 某班级投票选举班干部,班级学生人数为10人,每个学生只能投一票,投票成功提示“感谢你的投票”。若重复投票,提示“请勿重复投票”。当投票总数达到10或者人为结束投票时,统计投票学生人数和投票结果。本案例要求编写一个程序实现学生投票系统。
时间: 2024-09-14 17:03:50 浏览: 69
java班级管理系统(java+面向对象+源码)
5星 · 资源好评率100%
以下是一个简单的Java程序,实现了学生投票系统的基本要求:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class ClassElection {
// 存储每个学生的投票记录
private Map<String, Boolean> voteRecords = new HashMap<>();
// 记录投票的总人数
private int totalVotes = 0;
// 班级学生人数
private static final int STUDENT_COUNT = 10;
// 用于标记投票是否结束
private boolean isVotingOver = false;
// 学生投票的方法
public void vote(String studentName) {
// 如果投票已结束或学生已经投过票,则返回
if (isVotingOver || voteRecords.getOrDefault(studentName, false)) {
System.out.println("请勿重复投票");
return;
}
// 学生投票成功
voteRecords.put(studentName, true);
totalVotes++;
System.out.println("感谢你的投票");
// 检查是否达到总人数或人为结束投票
if (totalVotes >= STUDENT_COUNT || isVotingOver) {
printElectionResults();
}
}
// 结束投票的方法
public void endVoting() {
isVotingOver = true;
}
// 打印投票结果的方法
private void printElectionResults() {
System.out.println("投票已结束,总投票人数:" + totalVotes);
for (Map.Entry<String, Boolean> entry : voteRecords.entrySet()) {
String studentName = entry.getKey();
// 如果某个学生投了票,则输出学生姓名
if (entry.getValue()) {
System.out.println(studentName);
}
}
}
public static void main(String[] args) {
ClassElection election = new ClassElection();
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎来到班级选举系统,输入学生姓名进行投票。输入'结束'来结束投票。");
while (!election.isVotingOver) {
System.out.print("请输入学生姓名进行投票:");
String studentName = scanner.nextLine();
if ("结束".equals(studentName)) {
election.endVoting();
continue;
}
election.vote(studentName);
}
scanner.close();
// 打印投票结果
election.printElectionResults();
}
}
```
这段代码实现了一个简单的投票系统,具备以下功能:
1. 学生可以通过输入自己的姓名来投票。
2. 投票后会提示“感谢你的投票”。
3. 如果学生试图重复投票,会提示“请勿重复投票”。
4. 当投票总数达到10人或管理员输入“结束”时,系统会统计投票结果并显示投票学生的姓名以及总投票人数。
注意:该程序简化了实际的投票验证过程,如验证学生身份等,实际应用中可能需要更复杂的逻辑和数据校验。
阅读全文