有一个初始的管理员帐号:admin 密码:admin123
一个初始的普通用户帐号:user 密码:user
用户模块功能:
- 用户添加
- 密码修改
- 个人信息查看
- 账号状态修改(禁用0、启用1)
- 用户登录(被禁用账号无法登录并提示友好的消息)
- 修改用户角色(设置取消管理员)
- 用户列表
- 删除用户
. 办事处模块功能
- 办事处添加
- 办事处列表
- 查询指定办事处的所有员工
管理员具备以上所有功能,普通用户只有密码修改和个人信息查看功能。
User类
public class User {
private int id;
private String username;
private String passord;
private int age;
private boolean role;// 角色
private String email;
private int officelID;
private boolean status;// 状态修改
public User() {
}
public User(int id, String username, String passord, int age, boolean role, String email, int officelID,
boolean status) {
super();
this.id = id;
this.username = username;
this.passord = passord;
this.age = age;
this.role = role;
this.email = email;
this.officelID = officelID;
this.status = status;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassord() {
return passord;
}
public void setPassord(String passord) {
this.passord = passord;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isRole() {
return role;
}
public void setRole(boolean role) {
this.role = role;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getOfficelID() {
return officelID;
}
public void setOfficelID(int officelID) {
this.officelID = officelID;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", passord=" + passord + ", age=" + age + ", role=" + role
+ ", email=" + email + ", officelID=" + officelID + ", status=" + status + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((email == null) ? 0 : email.hashCode());
result = prime * result + id;
result = prime * result + officelID;
result = prime * result + ((passord == null) ? 0 : passord.hashCode());
result = prime * result + (role ? 1231 : 1237);
result = prime * result + (status ? 1231 : 1237);
result = prime * result + ((username == null) ? 0 : username.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (age != other.age)
return false;
if (email == null) {
if (other.email != null)
return false;
} else if (!email.equals(other.email))
return false;
if (id != other.id)
return false;
if (officelID != other.officelID)
return false;
if (passord == null) {
if (other.passord != null)
return false;
} else if (!passord.equals(other.passord))
return false;
if (role != other.role)
return false;
if (status != other.status)
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
}
Office类
public class Office {
private int oid;
private String oname;
public Office() {
}
public Office(int oid, String oname) {
super();
this.oid = oid;
this.oname = oname;
}
public int getOid() {
return oid;
}
public void setOid(int oid) {
this.oid = oid;
}
public String getOname() {
return oname;
}
public void setOname(String oname) {
this.oname = oname;
}
@Override
public String toString() {
return "Office [oid=" + oid + ", oname=" + oname + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + oid;
result = prime * result + ((oname == null) ? 0 : oname.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Office other = (Office) obj;
if (oid != other.oid)
return false;
if (oname == null) {
if (other.oname != null)
return false;
} else if (!oname.equals(other.oname))
return false;
return true;
}
}
OfficeManage类
import java.util.ArrayList;
public class OfficeManage {
static ArrayList<Office> list = new ArrayList<>();
public OfficeManage() {
list.add(new Office(2001, "技术部"));
}
// 新增部门
public void add(Office of) {
list.add(of);
}
// 办事处列表
public void show() {
for (Office office : list) {
if (office != null) {
System.out.println(office);
}
}
}
// 查询id是否存在
public boolean Find(int id) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getOid() == id) {
return false;
}
}
return true;
}
}
UserManage类
import java.util.ArrayList;
public class UserManage {
static ArrayList<User> list = new ArrayList<>();
public UserManage() {
list.add(new User(1001, "admin", "admin123", 22, true, "Admin@123.com", 1001, true));
list.add(new User(1002, "user", "user", 18, false, "", 1002, true));
}
// 用户添加
public void add(User u) {
list.add(u);
}
// 验证登录
public User login(String s1, String s2) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getUsername().equals(s1) && list.get(i).getPassord().equals(s2)) {
return list.get(i);
}
}
return null;
}
// 验证是否为管理员
public boolean isAdmin(String s) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getUsername().equals(s) && list.get(i).isRole()) {
return true;
}
}
return false;
}
// 查询用户
public User Find(String s) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getUsername().equals(s)) {
return list.get(i);
}
}
return null;
}
// 输出用户的信息
public void show(String s) {
User u = new User();
u = Find(s);
System.out.println(u);
}
// 更改密码
public void updata(String s, String s2) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getUsername().equals(s)) {
list.get(i).setPassord(s2);
}
}
}
// 修改用户状态
public void updata_status(int id, boolean b) {
if (list.get(id) == null) {
System.out.println("用户不存在!请确认用户ID");
}
list.get(id).setStatus(b);
}
// 取消管理员权限
public void CanclaAdmin(int id) {
if (list.get(id) == null) {
System.out.println("用户不存在!请确认用户ID");
}
list.get(id).setRole(false);
}
// 显示所有用户信息
public void ShowAll() {
for (User user : list) {
if (user != null)
System.out.println(user);
}
}
// 删除用户
public void Del(int id) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id) {
list.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("用户不存在!请确认id无误!");
}
// 查询指定办事处的所有员工
public void FindOU(int id) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getOfficelID() == id) {
System.out.println(list.get(i));
}
}
}
}
Test类
import java.util.Scanner;
public class Test {
String s1 = "";
String s2 = "";
Scanner sc = new Scanner(System.in);
UserManage ume = new UserManage();
OfficeManage om = new OfficeManage();
public void m(Object obj) {
System.out.println(obj);
}
// 登录界面
public boolean login() {
int t = login_u_p();
if (t == 0) {
System.out.println("您的账号或密码错误,请重新输入!");
login();
} else if (t == 2) {
menu();
} else if (t == 1) {
menu_admin();
} else if (t == 3) {
m("抱歉您的帐号已被禁用!暂时无法登录!感谢您的使用!期待下次与您相见!");
}
return false;
}
// 普通用户的功能节界面
public void menu() {
m("===============");
m("=1.查看个人信息=");
m("===2.密码修改===");
m("=====0.退出=====");
m("===============");
start();
}
// 管理员版的功能界面
public void menu_admin() {
m("==============================");
m("==========请输入操作指令========");
m("============1.用户添加=========");
m("============2.密码修改=========");
m("========3.个人信息查看==========");
m("==4.账号状态修改(禁用0、启用1)==");
m("============5.用户登陆==========");
m("=6.修改用户角色(设置取消管理员)=");
m("=============7.用户列表=========");
m("=============8.用户删除=========");
m("==========9.办事处添加===========");
m("==========10.办事处列表==========");
m("===11.查询指定办事处的所有员工====");
m("================0.退出===========");
m("================================");
start_admin();
}
// 管理员的功能实现
public void start_admin() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
add();
break;
case 2:
updata_admin();
break;
case 3:
show_admin();
break;
case 4:
updata_status();
break;
case 5:
login();
break;
case 6:
CanclaAdmin();
break;
case 7:
ShowAll();
break;
case 8:
Del();
break;
case 9:
addOfice();
break;
case 10:
showOffice();
break;
case 11:
showOU();
break;
case 0:
exit();
break;
default:
m("输入错误,请重新输入!");
menu_admin();
}
}
// 查询同一个办事处的员工
private void showOU() {
m("请输入要查询的办事处的id");
int in = sc.nextInt();
ume.FindOU(in);
menu_admin();
}
// 办事处的列表
private void showOffice() {
om.show();
menu_admin();
}
// 增加一个办事处
private void addOfice() {
Office o = new Office();
m("请输入要添加的办事处的id:");
int i = sc.nextInt();
if (!om.Find(i)) {
m("办事处id已存在,请重新输入!");
addOfice();
return;
}
m("请输入要添加的办事处的名字:");
String s = sc.next();
o.setOid(i);
o.setOname(s);
om.add(o);
menu_admin();
}
private void Del() {
m("请输入您要删除的帐号id:");
int i = sc.nextInt();
ume.Del(i);
menu_admin();
}
private void ShowAll() {
ume.ShowAll();
menu_admin();
}
private void CanclaAdmin() {
m("请输入要修改状态的帐号id:");
int s6 = sc.nextInt();
ume.CanclaAdmin(s6);
menu_admin();
}
private void updata_status() {
System.out.println("请输入您要修改的账号id:");
int s6 = sc.nextInt();
System.out.println("请输入您要修改到的状态:");
boolean b = sc.nextBoolean();
ume.updata_status(s6, b);
start_admin();
}
// 管理员更改密码
public void updata_admin() {
System.out.println("请输入更改后的密码:");
String ss = sc.next();
ume.updata(s1, ss);
menu_admin();
}
// 普通用户登录成功后的界面
public void start() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
show();
break;
case 2:
updata();
break;
case 0:
exit();
break;
default:
m("指令错误,请重新输入!");
menu();
}
}
// 添加一个用户
private void add() {
m("请输入您要添加的用户信息,格式为id/账户名/密码/年龄/角色/email/办事处id/帐号状态");
sc = new Scanner(System.in);
String smsg = sc.nextLine();
String[] info = smsg.split("/");
User user = new User(Integer.parseInt(info[0]), info[1], info[2], Integer.parseInt(info[3]),
Boolean.parseBoolean(info[4]), info[5], Integer.parseInt(info[6]), Boolean.parseBoolean(info[7]));
if (ume.Find(info[0]) == null && !om.Find(Integer.parseInt(info[6]))) {
ume.add(user);
menu_admin();
}
m("添加失败,可能是用户id重复,或部门id不存在");
menu_admin();
}
// 修改密码
private void updata() {
System.out.println("请输入更改后的密码:");
String ss = sc.next();
ume.updata(s1, ss);
menu();
}
// 显示信息
private void show() {
ume.show(s1);
menu();
}
// 管理员信息显示
private void show_admin() {
ume.show(s1);
menu_admin();
}
private void exit() {
sc = new Scanner(System.in);
m("是否确定退出?(Y/N)");
String op = sc.next();
if (op.equalsIgnoreCase("y")) {
m("谢谢使用,再见!");
System.exit(1);
}
}
// 登录帐号
public int login_u_p() {
System.out.println("请输入您的账号:");
s1 = sc.next();
System.out.println("请输入您的密码:");
s2 = sc.next();
User us = ume.login(s1, s2);
if (us == null) {
// 账号密码错误
return 0;
} else if (us.isRole()) {// 账号密码正确且是管理员
// 检查帐号是否被冻结
if (!us.isStatus()) {
return 3;
}
return 1;
} else if (!us.isRole()) {// 密码账号正确但不是管理员
// 检查帐号是否被冻结
if (!us.isStatus()) {
return 3;
}
return 2;
}
return 0;
}
public static void main(String[] args) {
Test t = new Test();
t.login();
}
}