一个非常简易的,以控制台交互的java编写的用户管理系统

有一个初始的管理员帐号:admin 密码:admin123
一个初始的普通用户帐号:user 密码:user

用户模块功能:

  1. 用户添加
  2. 密码修改
  3. 个人信息查看
  4. 账号状态修改(禁用0、启用1)
  5. 用户登录(被禁用账号无法登录并提示友好的消息)
  6. 修改用户角色(设置取消管理员)
  7. 用户列表
  8. 删除用户

. 办事处模块功能

  1. 办事处添加
  2. 办事处列表
  3. 查询指定办事处的所有员工
    管理员具备以上所有功能,普通用户只有密码修改和个人信息查看功能。
    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();
	}
}
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值