如今微信聊天已经普及到几乎每一个人,在聊天中,经常会有人需要帮忙在某个APP中投票。本案例要求编写一个模拟微信投票的程序,通过在控制台输入指令,实现添加候选人、查看当前投票和投票的功能。每个功能的具体要求如下: (1)用户输入指令1代表”添加候选人”,可以在本地文件中添加被选举人。 (2)用户输入指令2代表”查看当前投票”,将本地文件中的数据打印到控制台。 (3)用户输入指令3 代表”投票”功能,在控制台输入被投票人的名字进行投票操作。 (4)用户输入指令4代表”退出”操作。
时间: 2024-02-13 11:05:27 浏览: 168
电脑上播放手机微信语音 播放软件
好的,这是一个有趣的问题!基于您的需求,我可以给您提供一个Java微信投票的简单实现。请注意,以下代码仅供参考,您可以根据需要进行修改和优化。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class WeChatVote {
public static void main(String[] args) {
Map<String, Integer> candidates = new HashMap<>(); // 存储候选人和得票数的映射
String filename = "candidates.txt"; // 候选人名单文件名
Scanner scanner = new Scanner(System.in);
int choice = 0; // 用户选择的操作
// 读取候选人名单文件
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
String[] tokens = line.split(",");
String name = tokens[0].trim();
int votes = Integer.parseInt(tokens[1].trim());
candidates.put(name, votes);
}
} catch (IOException e) {
System.err.println("读取候选人名单文件出错:" + e.getMessage());
}
// 微信投票程序主循环
while (choice != 4) {
System.out.println("请选择操作:");
System.out.println("1. 添加候选人");
System.out.println("2. 查看当前投票");
System.out.println("3. 投票");
System.out.println("4. 退出");
choice = scanner.nextInt();
scanner.nextLine(); // 清除输入缓冲区
switch (choice) {
case 1:
// 添加候选人
System.out.print("请输入候选人名字:");
String name = scanner.nextLine();
candidates.put(name, 0);
System.out.println("候选人 " + name + " 已添加!");
break;
case 2:
// 查看当前投票
System.out.println("当前投票情况如下:");
for (Map.Entry<String, Integer> entry : candidates.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue() + " 票");
}
break;
case 3:
// 投票
System.out.print("请输入投票人的名字:");
String voter = scanner.nextLine();
if (!candidates.containsKey(voter)) {
System.out.println("无法投票,投票人 " + voter + " 不在候选人名单中!");
break;
} else {
System.out.print("请输入被投票人的名字:");
String candidate = scanner.nextLine();
if (!candidates.containsKey(candidate)) {
System.out.println("无法投票,被投票人 " + candidate + " 不在候选人名单中!");
break;
} else {
int votes = candidates.get(candidate);
candidates.put(candidate, votes + 1);
System.out.println("投票成功," + voter + " 给 " + candidate + " 投了一票!");
}
}
break;
case 4:
// 退出
System.out.println("程序已退出!");
break;
default:
// 非法输入
System.out.println("无效的输入,请重新选择!");
break;
}
}
// 将候选人名单和得票数写入文件
try (FileWriter writer = new FileWriter(filename)) {
for (Map.Entry<String, Integer> entry : candidates.entrySet()) {
writer.write(entry.getKey() + ", " + entry.getValue() + "\n");
}
} catch (IOException e) {
System.err.println("写入候选人名单文件出错:" + e.getMessage());
}
}
}
```
上面的代码中,我们使用了一个HashMap来存储候选人和得票数的映射关系。在程序启动时,我们从本地文件中读取候选人名单和得票数,然后进入微信投票程序主循环,等待用户输入指令。当用户选择添加候选人时,我们从控制台读取候选人名字,然后将其添加到HashMap中。当用户选择查看当前投票时,我们遍历HashMap,打印出每个候选人的得票数。当用户选择投票时,我们先从控制台读取投票人的名字,如果该名字不在候选人名单中,则提示无法投票;否则,我们再从控制台读取被投票人的名字,如果该名字不在候选人名单中,则提示无法投票;否则,我们将被投票人的得票数加一。最后,当用户选择退出时,我们将候选人名单和得票数写入本地文件中。
阅读全文