Compare commits
2 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
11b64b05fa | 2 years ago |
|
|
8a57784ade | 2 years ago |
@ -1 +1,214 @@
|
||||
# src
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
// 用户类
|
||||
class User implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String username;
|
||||
private String email;
|
||||
private int age;
|
||||
private String gender;
|
||||
|
||||
public User(String username, String email, int age, String gender) {
|
||||
this.username = username;
|
||||
this.email = email;
|
||||
this.age = age;
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public String getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public void setAge(int age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public void setGender(String gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Username: " + username + ", Email: " + email + ", Age: " + age + ", Gender: " + gender;
|
||||
}
|
||||
}
|
||||
|
||||
// 用户管理类
|
||||
class UserManager {
|
||||
private ArrayList<User> userList;
|
||||
private static final String FILE_NAME = "users.dat";
|
||||
|
||||
public UserManager() {
|
||||
userList = readUsersFromFile();
|
||||
}
|
||||
|
||||
// 从文件中读取用户信息
|
||||
private ArrayList<User> readUsersFromFile() {
|
||||
ArrayList<User> users = new ArrayList<>();
|
||||
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) {
|
||||
users = (ArrayList<User>) ois.readObject();
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("文件不存在,将创建新文件。");
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return users;
|
||||
}
|
||||
|
||||
// 将用户信息写入文件
|
||||
private void writeUsersToFile() {
|
||||
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_NAME))) {
|
||||
oos.writeObject(userList);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// 添加用户
|
||||
public void addUser(User user) {
|
||||
userList.add(user);
|
||||
writeUsersToFile();
|
||||
}
|
||||
|
||||
// 根据用户名查找用户
|
||||
public User findUserByUsername(String username) {
|
||||
for (User user : userList) {
|
||||
if (user.getUsername().equals(username)) {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
public boolean removeUser(String username) {
|
||||
User user = findUserByUsername(username);
|
||||
if (user != null) {
|
||||
userList.remove(user);
|
||||
writeUsersToFile();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 修改用户信息
|
||||
public boolean modifyUserInfo(String username, String newEmail, int newAge, String newGender) {
|
||||
User user = findUserByUsername(username);
|
||||
if (user != null) {
|
||||
user.setEmail(newEmail);
|
||||
user.setAge(newAge);
|
||||
user.setGender(newGender);
|
||||
writeUsersToFile();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 主程序
|
||||
public class yy1{
|
||||
public static void main(String[] args) {
|
||||
UserManager userManager = new UserManager();
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
boolean running = true;
|
||||
while (running) {
|
||||
System.out.println("用户信息管理系统");
|
||||
System.out.println("1. 添加用户");
|
||||
System.out.println("2. 查找用户");
|
||||
System.out.println("3. 删除用户");
|
||||
System.out.println("4. 修改用户信息");
|
||||
System.out.println("5. 退出");
|
||||
System.out.print("请选择操作:");
|
||||
int choice = scanner.nextInt();
|
||||
scanner.nextLine(); // 清除输入缓冲区
|
||||
|
||||
switch (choice) {
|
||||
case 1:
|
||||
System.out.print("请输入用户名:");
|
||||
String username = scanner.nextLine();
|
||||
System.out.print("请输入邮箱:");
|
||||
String email = scanner.nextLine();
|
||||
System.out.print("请输入年龄:");
|
||||
int age = scanner.nextInt();
|
||||
scanner.nextLine(); // 清除输入缓冲区
|
||||
System.out.print("请输入性别:");
|
||||
String gender = scanner.nextLine();
|
||||
User newUser = new User(username, email, age, gender);
|
||||
userManager.addUser(newUser);
|
||||
System.out.println("用户已添加!");
|
||||
break;
|
||||
case 2:
|
||||
System.out.print("请输入要查找的用户名:");
|
||||
String searchUsername = scanner.nextLine();
|
||||
User foundUser = userManager.findUserByUsername(searchUsername);
|
||||
if (foundUser != null) {
|
||||
System.out.println("用户信息:");
|
||||
System.out.println(foundUser);
|
||||
} else {
|
||||
System.out.println("未找到用户!");
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
System.out.print("请输入要删除的用户名:");
|
||||
String deleteUsername = scanner.nextLine();
|
||||
boolean removed = userManager.removeUser(deleteUsername);
|
||||
if (removed) {
|
||||
System.out.println("用户已删除!");
|
||||
} else {
|
||||
System.out.println("未找到用户!");
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
System.out.print("请输入要修改信息的用户名:");
|
||||
String modifyUsername = scanner.nextLine();
|
||||
System.out.print("请输入新的邮箱:");
|
||||
String newEmail = scanner.nextLine();
|
||||
System.out.print("请输入新的年龄:");
|
||||
int newAge = scanner.nextInt();
|
||||
scanner.nextLine(); // 清除输入缓冲区
|
||||
System.out.print("请输入新的性别:");
|
||||
String newGender = scanner.nextLine();
|
||||
boolean modified = userManager.modifyUserInfo(modifyUsername, newEmail, newAge, newGender);
|
||||
if (modified) {
|
||||
System.out.println("用户信息已修改!");
|
||||
} else {
|
||||
System.out.println("未找到用户!");
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
running = false;
|
||||
System.out.println("感谢使用,再见!");
|
||||
break;
|
||||
default:
|
||||
System.out.println("无效的选项,请重新输入!");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in new issue