1.任务描述 如今微信聊天已经普及到几乎每一个人,在聊天中,经常会有人需要帮忙在某个APP中投票。本案例要求编写一个模拟微信投票的程序,通过在控制台输入指令,实现添加候选人、查看当前投票和投票的功能。每个功能的具体要求如下: (1) 用户输入指令1代表”添加候选人”,可以在本地文件中添加被选举人。 (2) 用户输入指令2代表”查看当前投票”,将本地文件中的数据打印到控制台。 (3) 用户输入指令3 代表”投票”功能,在控制台输入被投票人的名字进行投票操作。 (4) 用户输入指令4代表”退出”操作。
时间: 2024-02-21 08:01:15 浏览: 136
手机App及微信小程序在备战日语能力等级考试中的运用.pdf
以下是一个简单的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 VoteSystem {
private static final String FILE_NAME = "candidates.txt";
private static final Map<String, Integer> candidates = new HashMap<>();
public static void main(String[] args) {
loadCandidates();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入指令:");
System.out.println("1. 添加候选人");
System.out.println("2. 查看当前投票");
System.out.println("3. 投票");
System.out.println("4. 退出");
String command = scanner.nextLine();
switch (command) {
case "1":
addCandidate();
break;
case "2":
printCandidates();
break;
case "3":
vote();
break;
case "4":
saveCandidates();
return;
default:
System.out.println("无效指令,请重新输入!");
}
}
}
private static void loadCandidates() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(",");
candidates.put(parts[0], Integer.parseInt(parts[1]));
}
} catch (IOException e) {
System.out.println("无法读取候选人信息!");
e.printStackTrace();
}
}
private static void addCandidate() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入候选人姓名:");
String name = scanner.nextLine();
candidates.put(name, 0);
System.out.println("候选人添加成功!");
}
private static void printCandidates() {
System.out.println("当前候选人及得票数:");
for (Map.Entry<String, Integer> entry : candidates.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
private static void vote() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要投票的候选人姓名:");
String name = scanner.nextLine();
if (candidates.containsKey(name)) {
candidates.put(name, candidates.get(name) + 1);
System.out.println("投票成功!");
} else {
System.out.println("无效的候选人姓名!");
}
}
private static void saveCandidates() {
try (FileWriter writer = new FileWriter(FILE_NAME)) {
for (Map.Entry<String, Integer> entry : candidates.entrySet()) {
writer.write(entry.getKey() + "," + entry.getValue() + "\n");
}
} catch (IOException e) {
System.out.println("无法保存候选人信息!");
e.printStackTrace();
}
}
}
```
程序使用HashMap来存储候选人及其得票数,候选人信息保存在本地文件中。用户可以通过控制台输入指令来添加候选人、查看当前投票和进行投票操作。程序在退出时会自动保存候选人信息到本地文件中。
阅读全文