用java编写一个投票程序,每个学生只能投一次票,投票成功提示感谢投票,若重复投票,提示请勿重复投票,当总票数达到100时或者主观结束后投票时,同时统计投票学生和投票结果,带上注释,将类创建和类测试分为两个文件展示
时间: 2024-10-08 11:00:45 浏览: 35
java编写的学生会投票系统
4星 · 用户满意度95%
在Java中,我们可以设计一个简单的投票程序,这里我会提供一个`StudentVote`类用于处理投票操作,以及一个`Main`类来进行测试。为了模拟投票限制,我们将使用HashSet来跟踪已投票的学生。
首先,我们创建一个名为`StudentVote`的类:
```java
import java.util.HashSet;
// 投票类
public class StudentVote {
private static HashSet<String> votedStudents = new HashSet<>(); // 存储已经投票的学生ID
public static void vote(String studentId) { // 投票方法
if (!votedStudents.contains(studentId)) { // 检查是否已投票
votedStudents.add(studentId);
System.out.println("感谢您的投票,学生ID:" + studentId);
} else {
System.out.println("抱歉,您已投过票,请勿重复.");
}
// 当总票数达到100或者投票结束时统计
int totalVotes = votedStudents.size();
if (totalVotes == 100 || isVotingFinished()) {
printResult();
}
}
private static boolean isVotingFinished() { // 判断投票是否结束,这里假设有固定结束时间
// 实现具体的检查逻辑,比如获取当前时间等
return false; // 返回投票是否结束,这里仅作为示例,实际应用需替换
}
private static void printResult() {
System.out.println("投票结束,以下是投票结果:");
for (String student : votedStudents) {
System.out.println("学生:" + student + " 投了票");
}
}
}
```
接下来,我们创建一个`Main`类进行测试:
```java
public class Main {
public static void main(String[] args) {
// 开始投票
StudentVote.vote("student1");
StudentVote.vote("student2"); // 第二次投票会提示重复
StudentVote.vote("student3");
StudentVote.vote("student4");
// ... 更多投票操作...
// 模拟投票结束条件(这里只是一个示例)
// 可以为投票设置一个特定的结束时间或者硬编码100票
StudentVote.vote("student500"); // 如果超过100票,会打印结果
}
}
```
注意,这个例子简化了许多细节,例如投票结束的具体判断、错误处理以及用户交互。在实际应用中,你需要完善这些部分,并且可能需要连接数据库或使用更复杂的数据结构来存储投票数据。
阅读全文