Java基础类和方法的调用实现航班人事管理系统
一:简介
利用Java的一些方法的定义,封装灯基本知识的衔接实现人事管理系统的登录功能与菜单界面以及人员添加,密码修改,个人信息查看,账户状态修改(存在被拉黑的用户,会被判定不能登录),修改用户角色(存在管理员和普通用户两种角色),查询用户列表,查询指定办事处,删除用户,办事处添加,办事处列表等功能。
二:具体的实现思路
先创建一个专门的类来存储用户的信息(id,username,password,age,role,email,officeid,status),利用source快速生成setget方法,另外还需要重写hashcode与equal,toString方法,再就是创建一个储存具体实施方法的类,再使用另外一个类来构造登陆界面以及调用这些方法实现相应的功能,利用Scanner类来实现控制台输入信息实现操作。而办事处类以此类推。
三:具体实现的代码
public class UserManager {
ArrayList<User> list = new ArrayList<>();
User u= new User();
{
u.setUsername("admin");
u.setPassword("admin123");
u.setRole(1);
u.setStatus(1);
list.add(u);
}
//用户添加功能
public void add(User u){
list.add(u);
}
//用户查找功能
public User findByUname(String una){
for(User u:list){
if(u.getUsername().equals(una)){
return u;
}
}
return null;
}
//用户登录功能
public boolean login(String una,String pas){
// User u = new User();
if(u.getUsername().equals(una)&&
u.getPassword().equals(pas)){
if(u.getStatus()==1){
return true;
}else{
System.out.println("您的账号已被冻结,详情请咨询相关部门");
return false;
}
}
return false;
}
//密码修改功能
public void updatePword(String una,String pas){
findByUname(una).setPassword(pas);
}
//个人信息查看
public User select(String una){
return findByUname(una);
}
//账号状态修改
public void updateStatus(String una,int i){
findByUname(una).setStatus(i);
}
//修改用户角色
public void updateRole(String una,int i){
findByUname(una).setRole(i);
}
//查看用户列表
public ArrayList<User> findAll(){
return list;
}
//查询办事处的员工
public ArrayList<User> findByOid(int oi){
ArrayList<User> list2 =new ArrayList<>();
for(User u:list){
if(u.getOfficeid()==oi){
list2.add(u);
}
}
return list2;
}
//删除用户
public ArrayList<User> delete(String una){
list.remove(findByUname(una));
return list;
}
}
public class UserClient {
private Scanner sc;
UserManager ma = new UserManager();
User u =new User();
OfficeManager of = new OfficeManager();
public void login() {
sc = new Scanner(System.in);
msg("请按照格式输入账号和密码:账号/密码");
String s = sc.nextLine();
String[] info = s.split("/");
String j1 = info[0];
String j2 = info[1];
if (ma.login(j1, j2)) {
if (ma.findByUname(j1).getRole()==1) {
menu1();
} else {
menu2();
}
menu1();
} else {
msg("用户名未注册!");
login();
}
}
public void menu1() {
msg("欢迎使用xdx的智能系统:");
msg("========用户模块=============");
msg("========1.用户添加===========");
msg("========2.密码修改===========");
msg("========3.个人信息查看=========");
msg("========4.账号状态修改========");
msg("========5.修改用户角色=========");
msg("========6.用户列表===========");
msg("========7.查询指定办事处的员工===");
msg("========8.删除用户===========");
msg("==========办事处模块=========");
msg("========9.办事处添加=========");
msg("========10.办事处列表=========");
msg("========0.退出系统===========");
msg("请输入相应的数字实现功能:");
start();
}
public void menu2() {
msg("欢迎使用xdx的智能系统:");
msg("========1.密码修改===========");
msg("========2.个人信息查看=========");
msg("请输入相应的数字实现功能:");
start();
}
public void start() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
add();
break;
case 2:
updatePword();
break;
case 3:
findSelf();
break;
case 4:
updateStatus();
break;
case 5:
updateRole();
break;
case 6:
findAll();
break;
case 7:
findByOid();
break;
case 8:
delete();
break;
case 9:
OfficeAdd();
break;
case 10:
OfficeList();
break;
case 0:
exit();
}
menu1();
}
private void exit() {
sc = new Scanner(System.in);
msg("是否确定退出?(Y/N)");
String v = sc.next();
if(v.equalsIgnoreCase("y")){
msg("退出成功");
System.exit(1);
}
}
private void OfficeList() {
for (Office o : of.findAll()) {
System.out.println(o.getOfficeid() + "\t" + o.getOfficename());
}
}
private void OfficeAdd() {
msg("请按照以下格式输入添加的办事处信息:(办事处id/办事处名称)");
sc = new Scanner(System.in);
String s = sc.nextLine();
String[] info = s.split("/");
int j1 = Integer.parseInt(info[0]);
String j2 = info[1];
Office o = new Office(j1, j2);
of.add(o);
}
private void delete() {
sc = new Scanner(System.in);
msg("请输入要删除的用户名:");
String s = sc.nextLine();
ma.delete(s);
msg("删除成功");
}
private void findByOid() {
sc = new Scanner(System.in);
msg("请输入要查询的办事处id:");
int s = sc.nextInt();
ArrayList<User> n = ma.findByOid(s);
for (User u : n) {
msg(u.getId() + "\t" + u.getUsername() + "\t"
+ u.getRole() + "\t" + u.getEmail() + "\t" +
u.getOfficeid());
}
}
private void findAll() {
sc = new Scanner(System.in);
ArrayList<User> n = ma.findAll();
for (User u : n) {
msg(u.getId() + "\t" + u.getUsername() + "\t"
+ u.getRole() + "\t" + u.getEmail() + "\t" +
u.getOfficeid());
}
}
private void updateRole() {
sc = new Scanner(System.in);
msg("请输入要修改的用户名和修改后的角色:用户名/角色");
String s = sc.nextLine();
String [] info = s.split("/");
String j1 = info[0];
int j2 = Integer.parseInt(info[1]);
ma.updateRole(j1, j2);
msg("修改成功");
}
private void updateStatus() {
sc = new Scanner(System.in);
msg("请输入要修改的用户名和修改后的状态:用户名/状态");
String s = sc.nextLine();
String [] info = s.split("/");
String j1 = info[0];
int j2 = Integer.parseInt(info[1]);
ma.updateRole(j1, j2);
msg("修改成功");
}
private void findSelf() {
sc = new Scanner(System.in);
msg("请输入要查询的用户名:");
String s = sc.nextLine();
User u = ma.findByUname(s);
msg(u.getId() + "\t" + u.getUsername() + "\t"
+ u.getRole() + "\t" + u.getEmail() + "\t" +
u.getOfficeid()+"\t"+u.getAge());
}
private void updatePword() {
sc = new Scanner(System.in);
msg("请输入要修改的用户名和修改后的密码:用户名/密码");
String s = sc.nextLine();
String[] info = s.split("/");
String j1 = info[0];
String j2 = info[1];
ma.updatePword(j1, j2);
}
private void add() {
sc = new Scanner(System.in);
msg("请按照以下格式输入添加的用户信息:"
+ "id/账号/密码/年龄/角色/邮箱/办事处id/账户状态");
String s = sc.nextLine();
String [] info = s.split("/");
int a1 = Integer.parseInt(info[0]);
String a2 = info[1];
String a3 = info[2];
int a4 = Integer.parseInt(info[3]);
int a5 = Integer.parseInt(info[4]);
String a6 = info[5];
int a7 = Integer.parseInt(info[6]);
int a8 = Integer.parseInt(info[7]);
User u = new User(a1,a2,a3,a4,
a5,a6,a7,a8);
ma.add(u);
msg("添加成功!!!");
}
public void msg(Object o) {
System.out.println(o);
}
public static void main(String[] args) {
UserClient c = new UserClient();
c.login();
}
}
具体的实现结果我就不在此处演示了,需要注意的是里面的一个登陆功能的实现,一个默认管理员的设置卡了我很长时间,后来是采用一个游离块实现的集合添加默认元素。当然这个管理系统还存在着许多问题,功能也不是特别完善,扩展性不是特别好。还有待以后技术提升再来进行优化和升级。