项目简介
某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自动化软件系 统,该系统将提供给这些办事处的管理者(role=1)和普通用户(role=0)用于管理航班信息。根据以上描述,要 求实现系统的用户模块和办事处模块,包含以下功能(注:系统存在一个默认管理员admin/admin123):
用户模块:
- 用户添加
- 密码修改
- 个人信息查看
- 账号状态修改(禁用0、启用1)
- 用户登录(被禁用账号无法登录并提示友好的消息)
- 修改用户角色(设置取消管理员)
- 用户列表
- 删除用户
办事处模块
- 办事处添加
- 办事处列表
- 查询指定办事处的所有员工
代码展示
测试类
package com.exercise2.Test32;
public class Test {
public static void main(String[] args) {
new SoftClient().menu();
}
}
客户端登录类
package com.exercise2.Test32;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class SoftClient {
static ManageClient m = new ManageClient();
static UserManage userManage = new UserManage();
private Scanner sc;
public void menu() {
msg("=========SOFTEEM自动化软件系统==========");
msg("=========【1】管理员登录================");
msg("=========【2】普通用户登录===============");
msg("=========【0】退出系统=================");
msg("请输入指令:");
start();
}
private void start() {
sc = new Scanner(System.in);
try {
int i = sc.nextInt();
switch (i) {
case 1:
managerLoad();
break;
case 2:
commonUserLoad();
break;
case 0:
exit();
break;
default:
msg("请输入正确的操作!");
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
menu();
}
}, 1000);
}
} catch (InputMismatchException e) {
System.out.println("请输入一个整数!");
start();
}
}
private void commonUserLoad() {
msg("请输入用户信息(按以下格式:账号/密码)");
sc = new Scanner(System.in);
String s = sc.nextLine();
String[] info = s.split("/");
if (userManage.name(info[0], info[1])) {
msg("登录成功");
m.menu2();
} else {
msg("账号输入有误!");
menu();
}
}
private void managerLoad() {
msg("请输入管理员信息(按以下格式:账号/密码)");
sc = new Scanner(System.in);
String s = sc.nextLine();
String[] info = s.split("/");
if (info[0].equals("admin")) {
if (info[1].equals("admin123")) {
msg("登录成功!");
m.menu1();
} else {
msg("密码输入有误!");
menu();
}
} else {
msg("账号输入有误!");
menu();
}
}
/** 系统退出 */
private void exit() {
sc = new Scanner(System.in);
msg("是否确定退出?(Y/N)");
String op = sc.next();
if (op.equalsIgnoreCase("Y")) {
msg("谢谢使用,再见!");
System.exit(1);
}
}
private static void msg(String string) {
System.out.println(string);
}
}
客户端权限类
package com.exercise2.Test32;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class ManageClient {
static UserManage u = new UserManage();
static SoftClient soft = new SoftClient();
Scanner sc;
public void menu2() {
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
enterUserClient();
}
}, 1000);
}
public void enterUserClient() {
msg("=========用户登录界面================");
msg("=========【1】密码修改=================");
msg("=========【2】个人信息查看==============");
msg("=========【0】退出登录=================");
msg("请输入指令:");
start2();
}
private void start2() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
enter2();
break;
case 2:
enter3();
break;
case 0:
soft.menu();
break;
default:
msg("请输入正确的操作!");
}
enterUserClient();
}
public void menu1() {
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
enterManageClient();
}
}, 1500);
}
//1. 用户添加 2. 密码修改 3. 个人信息查看 4. 账号状态修改(禁用0、启用1) 5. 用户登录(被禁用账号无法登录并提示友好的消息) 6. 修改用户角色(设置取消管理员) 7. 用户列表 8. 删除用户
private void enterManageClient() {
msg("=========管理员登录界面================");
msg("=========【1】用户添加=================");
msg("=========【2】密码修改=================");
msg("=========【3】个人信息查看==============");
msg("=========【4】账号状态修改==============");
msg("=========【5】修改用户角色==============");
msg("=========【6】查看用户列表==============");
msg("=========【7】删除用户=================");
msg("=========【0】退出登录=================");
msg("请输入指令:");
start1();
}
private void start1() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
enter1();
break;
case 2:
enter2();
break;
case 3:
enter3();
break;
case 4:
enter4();
break;
case 5:
enter5();
break;
case 6:
enter6();
break;
case 7:
enter7();
break;
case 0:
soft.menu();
break;
default:
msg("请输入正确的操作!");
}
enterManageClient();
}
// 删除用户
private void enter7() {
msg("请输入需要删除的用户id");
sc = new Scanner(System.in);
int i = sc.nextInt();
Boolean b = u.delete(i);
if (b) {
msg("删除用户成功!");
} else {
msg("此用户不存在!");
}
}
// 查看用户列表
private void enter6() {
u.userTable();
}
// 修改用户角色
private void enter5() {
msg("请输入需要修改角色的id和修改后的角色");
sc = new Scanner(System.in);
int i = sc.nextInt();
String s = sc.next();
Boolean b = u.modifyRole(i, s);
if (b) {
msg("用户角色修改成功!");
} else {
msg("此用户不存在!");
}
}
// 账号状态修改
private void enter4() {
msg("请输入需要修改状态的id");
sc = new Scanner(System.in);
int i = sc.nextInt();
Boolean s = u.modifyStatus(i);
if (s) {
msg("账号状态修改成功!");
} else {
msg("该用户不存在!");
}
}
// 根据id查看个人信息
private void enter3() {
msg("请输入需要查看信息的id");
sc = new Scanner(System.in);
int i = sc.nextInt();
User s = u.findSelfInformation(i);
if (s != null) {
msg(s);
} else {
msg("该用户不存在!");
}
}
// 密码修改
private void enter2() {
msg("请输入需要修改的账号id和修改后的密码:");
sc = new Scanner(System.in);
int i = sc.nextInt();
String s = sc.next();
if (u.modifyPassWord(i, s)) {
msg("密码修改成功!");
}
}
// 用户添加
private void enter1() {
msg("请输入需要添加的用户信息,按以下格式:\n(用户id/办事处id/年龄/账户状态/用户名/密码/角色/邮箱)");
sc = new Scanner(System.in);
String x = sc.nextLine();
String[] ss = x.split("/");
int s1 = Integer.parseInt(ss[0]);
int s2 = Integer.parseInt(ss[1]);
int s3 = Integer.parseInt(ss[2]);
String s5 = ss[3];
String s6 = ss[4];
String s7 = ss[5];
String s8 = ss[6];
User user = new User(s1, s2, s3, true, s5, s6, s7, s8);
if (u.add(user)) {
msg("用户添加成功!");
}
}
private void msg(Object o) {
System.out.println(o);
}
}
用户类
package com.exercise2.Test32;
/**
* 用户类(User) id,账号(username),密码(passord),年龄(age),角色(role)
* ,邮箱(email),办事处id(officeID),账户状态 (status)
*
* @author Administrator
*
*/
public class User {
private int id;
private int officeID;
private int age;
private boolean status;
private String userName;
private String passWord;
private String role;
private String email;
public User() {
super();
}
public User(int id, int officeID, int age, boolean status, String userName, String passWord, String role,
String email) {
super();
this.id = id;
this.officeID = officeID;
this.age = age;
this.status = status;
this.userName = userName;
this.passWord = passWord;
this.role = role;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOfficeID() {
return officeID;
}
public void setOfficeID(int officeID) {
this.officeID = officeID;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User [id=" + id + ", officeID=" + officeID + ", age=" + age + ", status=" + status + ", userName="
+ userName + ", passWord=" + passWord + ", role=" + role + ", email=" + email + "]";
}
}
用户管理类
package com.exercise2.Test32;
import java.util.ArrayList;
public class UserManage {
static ArrayList<User> list = new ArrayList<>();
// 判断是否存在此普通用户
public boolean name(String s1, String s2) {
for (User u : list) {
if (u.getUserName().equals(s1) && u.getPassWord().equals(s2) && u.getRole().equals("普通用户")) {
return true;
}
}
return false;
}
// 用户添加
public boolean add(User user) {
return list.add(user);
}
// 根据id修改密码
public boolean modifyPassWord(int id, String passWord) {
for (User user : list) {
if (user.getId() == id) {
user.setPassWord(passWord);
return true;
}
}
return false;
}
// 个人信息查看
public User findSelfInformation(int id) {
for (User user : list) {
if (user.getId() == id) {
return user;
}
}
return null;
}
// 账号状态修改(禁用0、启用1)
public boolean modifyStatus(int id) {
for (User user : list) {
if (user.getId() == id) {
if (user.isStatus() == true) {
user.setStatus(false);
System.out.println("账号已禁用!");
} else {
user.setStatus(true);
System.out.println("账号已启用!");
}
return true;
}
}
return false;
}
// 用户登录(被禁用账号无法登录并提示友好的消息)
public boolean load(int id, String passWord) {
for (User user : list) {
if (user.getId() == id && user.getPassWord().equals(passWord)) {
return true;
}
}
return false;
}
// 修改用户角色(设置取消管理员)
public boolean modifyRole(int id, String role) {
for (User user : list) {
if (user.getId() == id) {
user.setRole(role);
System.out.println("修改");
return true;
}
}
return false;
}
// 用户列表
public void userTable() {
for (User user : list) {
System.out.println(user);
}
}
// 根据id删除用户
public boolean delete(int id) {
for (User user : list) {
if (user.getId() == id) {
list.remove(user);
return true;
}
}
return false;
}
// 打印ArrayList集合中的User
public void print(ArrayList<User> a) {
for (User user : a) {
System.out.println(user);
}
}
}
办事处类
package com.exercise2.Test32;
/**
* 办事处类(Office): id,办公室名(officeName)
*
* @author Administrator
*
*/
public class Office {
private int id;
private String officeName;
public Office() {
super();
}
public Office(int id, String officeName) {
super();
this.id = id;
this.officeName = officeName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getOfficeName() {
return officeName;
}
public void setOfficeName(String officeName) {
this.officeName = officeName;
}
@Override
public String toString() {
return "Office [id=" + id + ", officeName=" + officeName + "]";
}
}
办事处管理类
package com.exercise2.Test32;
import java.util.ArrayList;
public class OfficeManage {
static ArrayList<Office> list = new ArrayList<>();
// 办事处添加
public boolean add(Office office) {
return list.add(office);
}
// 办事处列表
public void listOffice() {
for (Office office : list) {
System.out.println(office);
}
}
}