Java简易人员管理系统
1.人员管理系统
- 输入用户名admin123,密码123456,可登录系统;
- 登录成功后展示菜单
1.新增用户
2.更新用户
3.删除用户
4.查询用户 - 输入1则新增用户,填写用户信息,包括工号、姓名、性别、年龄信息;
- 更新用户信息,输入新的用户信息,覆盖原来的用户信息;
- 删除用户,输入工号后根据工号删除用户信息;
- 查询用户,输入工号查询人员信息,输入*则,查询所有用户信息;
- 选择0,退出系统,退出整个系统。
代码结构:
代码:
InformationService.java
package code;
import java.util.List;
public class InformationService {
private List informationList = SysInfo.getList();
// 获取信息列表
public List getList() {
return informationList;
}
// 按工号查找信息
public Person getPersonByNum(final int num) {
if (num < 1) {
System.out.println("工号错误");
return null;
}
for (int i = 0; i < informationList.size(); i++) {
Person p = (Person) informationList.get(i);
if (p.getNum() == num) {
System.out.println("查找成功");
return p;
}
}
System.out.println("工号录入成功");
return null;
}
//查看单一Person信息
public void showAPerson(Person p)
{
System.out.println("工号\t\t姓名\t\t性别\t\t年龄");
System.out.println(p.getNum()+ "\t\t" + p.getName() + "\t\t" + p.getSex() + "\t\t" + p.getAge());
}
//show all Person
public void showPerson() {
System.out.println("工号\t\t姓名\t\t性别\t\t年龄");
List ps = getList();
for (int i = 0; i < ps.size(); i++) {
Person p = (Person) ps.get(i);
System.out.println(p.getNum() + "\t\t" + p.getName() + "\t\t" + p.getSex() + "\t\t" + p.getAge());
}
}
//检查对象是否存在
public boolean CheckExitByNum(int num)
{
for(int i=0;i<informationList.size();i++)
{
Person p = (Person)informationList.get(i);
if(p.getNum()==num)
return true;
}
return false;
}
//save Person
public void savePerson(Person p)
{
informationList.add(p);
}
}
Person.java
package code;
public class Person {
// Person属性
private int num;
private String name;
private String sex;
private int age;
public Person(int num, String name, String sex, int age) {
super();
this.num = num;
this.name = name;
this.sex = sex;
this.age = age;
}
// 对Perosn操作的方法
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
SysInfo.java
package code;
import java.util.ArrayList;
import java.util.List;
public class SysInfo {
private static List informationList = new ArrayList();
// 获取 informationList
public static List getList() {
return informationList;
}
}
SysMenu.java
package code;
public class SysMenu {
public static final String[] USERNAME = { "1.员工信息管理", "2.退出" };
public static final String[] MENU = { "1.员工信息管理", "2.退出" };
public static final String[] OPERATION_MENU = { "1.新增用户", "2.更新用户", "3.删除用户", "4.查询用户", "0.退出系统" };
public static void showMenu(String[] Menu) {
for (int i = 0; i < Menu.length; i++)
System.out.print(Menu[i] + "\t\t");
System.out.println();
System.out.println("---------------------------------------");
}
}
SysRun.java
package code;
import javax.sound.midi.Soundbank;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class SysRun {
private List informationList = SysInfo.getList();
private Scanner s = new Scanner(System.in);
private InformationService is = new InformationService();
// 系统运行类
public static void main(String[] args) {
SysRun sys = new SysRun();
sys.sysRun();
}
public void sysRun() {
System.out.println("欢迎进入人员管理系统");
System.out.println("-----------------------");
System.out.println("请输入用户名:");
while(true){
Scanner sc = new Scanner(System.in);
String username = sc.next();
if(username.equals("admin123")){
System.out.println("请输入密码:");
break;
}else {
System.out.println("用户名输入错误!请重新输入:");
}
}
while(true) {
Scanner sc = new Scanner(System.in);
String password = sc.next();
if(password.equals("123456")){
break;
}else {
System.out.println("密码输入错误!请重新输入:");
}
}
boolean isExit = false;
do {
System.out.println("----------操作选项-------------");
SysMenu.showMenu(SysMenu.OPERATION_MENU);
// 获取用户输入
int operNum = getCorrONum(SysMenu.OPERATION_MENU);
// 管理操作
if(operNum == 0){
isExit = true;
}else {
doOperationNum(operNum);
}
} while (!isExit);
System.out.println("系统已退出");
}
// doOperationNum
private void doOperationNum(int OperationNum) {
// 增,查,修,删,返回
switch (OperationNum) {
case 1:
addPerson();
break;
case 2:
updatePerson();
break;
case 3:
deletePerson();
break;
case 4:
System.out.println("请输入要查看的人的信息工号:(输入*则查询所有用户信息)");
String numstr = s.next();
if (numstr.equals("*")) {
is.showPerson();
} else {
int num = Integer.parseInt(numstr);
viewPerson(num);
}
break;
}
}
// 删除Person
private void deletePerson() {
int num;
// Person p;
boolean isOk = false;
System.out.println("请输入要删除信息的工号:");
do {
num = getVaildInt();
isOk = is.CheckExitByNum(num);
if (isOk == true) {
System.out.println("工号信息查找成功。");
informationList.remove(is.getPersonByNum(num));
} else
System.out.println("输入工号有误,请重新输入:");
} while (!isOk);
}
// 修改Person
public void updatePerson() {
System.out.println("请输入要修改的信息工号:");
boolean isOk = false;
Person p;
do {
int num = getVaildInt();
isOk = is.CheckExitByNum(num);
if (isOk == true) {
isOk = true;
p = is.getPersonByNum(num);
is.showAPerson(p);
System.out.println("请输入名字:");
String name = s.next();
System.out.println("请输入性别(输入f或m):");
String sex = getVaildSex();
System.out.println("请输入年龄:");
int age = getVaildInt();
p.setName(name);
p.setSex(sex);
p.setAge(age);
is.showPerson();
} else
System.out.println("输入要修改的工号有误,请重新输入:");
} while (!isOk);
}
// 查看viewPerson()
private void viewPerson(int num) {
Person p;
boolean isOk = false;
do {
boolean NumIsOk = is.CheckExitByNum(num);
if (NumIsOk == true) {
p = is.getPersonByNum(num);
is.showAPerson(p);
isOk = true;
} else {
System.out.println("无此工号的人的信息。");
break;
}
} while (!isOk);
}
// addPerson()
private void addPerson() {
System.out.println("------------新增用户·---------------");
boolean isOk = false;
int num = 0;
do {
System.out.println("请输入工号(且不能与现有的工号重复)");
num = s.nextInt();
// 处理同名冲突
if (is.getPersonByNum(num) == null) {
isOk = true;
} else {
System.out.println("该人信息已存在,请重新输入!");
s.nextInt();
}
} while (!isOk);
// other information
System.out.println("请输入其他信息...");
System.out.println("name:");
String name = null;
name = s.next();
System.out.println("sex:(输入f或m)");
String sex = getVaildSex();
System.out.println("age:");
int age = getVaildInt();
// save
is.savePerson(new Person(num, name, sex, age));
}
/* 输入有效int */
private int getVaildInt() {
int num = 0;
boolean isOk = false;
do {
try {
num = s.nextInt();
isOk = true;
} catch (InputMismatchException e) {
System.out.println("输入错误,请重新输入");
s.next();
}
} while (!isOk);
return num;
}
/* 输入有效sex信息 */
private String getVaildSex() {
String sex = null;
boolean isOk = false;
do {
sex = s.next();
if (sex.equals("f") || sex.equals("m"))
isOk = true;
else {
System.out.println("sex输入有误,请重新输入");
}
} while (!isOk);
return sex;
}
public int getCorrONum(String[] targetMenu) {
System.out.println("请输入要选择的操作:");
int inputNum = 0;
boolean inputIsOk = false;
do {
try {
inputNum = s.nextInt();
System.out.println("输入的是" + inputNum);
if (inputNum >= 0 && inputNum <= targetMenu.length) {
inputIsOk = true;
} else {
System.out.println("输入错误,请重新输入!");
}
} catch (InputMismatchException e) {
System.out.println("输入有误,请重新输入");
// 若输入出现异常,Scanner要丢弃上一次的输入,否则 do-while会出现死循环
s.next();
}
} while (!inputIsOk);
return inputNum;
}
}