某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自动化软件系统,该系统将提供给这些办事处的管理者(role=1)和普通用户(role=0)用于管理航班信息。根据以上描述,要求实现系统的用户模块和办事处模块,包含以下功能(注:系统存在一个默认管理员admin/admin123)
用户模块:
- 用户添加
- 密码修改
- 个人信息查看
- 账号状态修改(禁用0、启用1)
- 用户登录(被禁用账号无法登录并提示友好的消息)
- 修改用户角色(设置取消管理员)
- 用户列表
- 删除用户
用户类
(User)id,账号(username),密码(passord),年龄(age),角色(role),邮箱(email),办事处id(officeID),账户状态(status)办事处类(Office):id,办公室名(officeName)
package testa;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
import javax.print.attribute.standard.Fidelity;
public class UserModule {
private Scanner sc;
private ArrayList list = new ArrayList<>();
private User user;
public UserModule() {
this.sc = new Scanner(System.in);
getuser();
writeuser();
}
// 获取用户
public void getuser() {
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream("D:/testa/src/user.txt");
ois = new ObjectInputStream(fis);
Object obj = ois.readObject();
// 把文件输入到链表
// (一开始没实现)
if (obj instanceof ArrayList) {
this.list = (ArrayList<User>) obj;
}
} catch (EOFException e) {
// 文件内没有用户,创建一个初始用户
this.list = new ArrayList<User>();
User user = new User("1", "admin", "admin123", "20", "123@qq.com", " 14", "1", " 1");
list.add(user);
writeuser();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (ois != null) {
try {
ois.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 写入用户
public void writeuser() {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream("D:/testa/src/user.txt");
oos = new ObjectOutputStream(fos);
oos.writeObject(list);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 选择界面
public void choice(User user) {
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.println("6.");
System.out.println("7.用户列表");
System.out.println("8.删除用户");
System.out.println("9.退出");
System.out.println(">>");
String ch = sc.nextLine();
switch (ch) {
case "1":
adduser();
break;
case "2":
changePassword();
break;
case "3":
search();
choice(user);
break;
case "4":
break;
case "5":
login();
choice(user);
break;
case "6":
break;
case "7":
showall();
choice(user);
break;
case "8":
deleteuser();
break;
case "9":
break;
}
}
// 修改密码
public void changePassword() {
String name;
String password;
String newpassword;
String repassword;
System.out.println("请输入用户名");
name = sc.nextLine();
System.out.println("请输入原密码");
password = sc.nextLine();
if (user.getUsername().equals(name) && user.getPassword().equals(password)) {
for (User user : list) {
if (!password.equals(user.getPassword())) {
System.out.println("密码错误请重新输入");
changePassword();
}
System.out.println("请输入新密码");
newpassword = sc.nextLine();
System.out.println("请确认新密码");
repassword = sc.nextLine();
if (!newpassword.equals(repassword)) {
System.out.println("两次密码输入不一致,请重新输入");
changePassword();
} else {
user.setPassword(newpassword);
list.add(user);
writeuser();
System.out.println("密码修改成功");
choice(user);
}
}
}else{
System.out.println("用户名或密码不匹配");
changePassword();
}
}
// 用户添加
public void adduser() {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
User user = new User();
fos = new FileOutputStream("D:/testa/src/user.txt");
oos = new ObjectOutputStream(fos);
System.out.println("请输入添加的用户id");
String id = sc.nextLine();
user.setId(id);
System.out.println("请输入添加的用户账号");
String username = sc.nextLine();
user.setUsername(username);
System.out.println("请输入添加的用户密码");
String password = sc.nextLine();
user.setPassword(password);
System.out.println("请输入添加的用户年龄");
String age = sc.nextLine();
user.setAge(age);
System.out.println("请输入添加的用户角色");
String role = sc.nextLine();
user.setRole(role);
System.out.println("请输入添加的用户邮箱");
String email = sc.nextLine();
user.setEmail(email);
System.out.println("请输入添加的用户办事处ID");
String officeID = sc.nextLine();
user.setOfficeID(officeID);
System.out.println("请输入添加的用户账号状态");
String status = sc.nextLine();
user.setStatus(status);
list.add(user);
oos.writeObject(list);
System.out.println("添加用户成功");
choice(user);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (oos != null) {
try {
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 登录
public void login() {
System.out.println("请输入您的账号");
String count = sc.nextLine();
System.out.println("请输入您的密码");
String pwd = sc.nextLine();
System.out.println("文件长度:" + list.size());
for (User user : list) {
if (user.getUsername().equals(count) && user.getPassword().equals(pwd)) {
System.out.println("登录成功");
choice(user);
} else {
System.out.println("用户名或密码错误");
login();
}
}
}
// 查看用户列表
public void showall() {
getuser();
if (list.size() == 0) {
System.out.println("当前用户为空");
} else {
for (User user : list) {
System.out.println(user);
}
}
}
// 删除用户
public void deleteuser() {
System.out.println("请输入想要删除的用户id");
String di = sc.nextLine();
for (User user : list) {
if (user.getId().equals(di)) {
list.remove(user);
System.out.println("删除成功");
writeuser();
choice(user);
}
}
}
// 根据id查看用户
public void search() {
System.out.println("请输入您想要查看的id");
String si = sc.nextLine();
for (User user : list) {
if (user.getId() == si) {
System.out.println(si);
} else {
System.out.println("用户不存在");
}
}
}
}