java 小程序 人员信息管理系统

实现增删改查.

java入门的练手小程序


1.Person类

package p1;

public class Person {
	// Person属性
	private int num;
	private String name;
	private String sex;
	private int salary;

	public Person(int num, String name, String sex, int salary) {
		super();
		this.num = num;
		this.name = name;
		this.sex = sex;
		this.salary = salary;
	}

	// 对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 getSalary() {
		return salary;
	}

	public void setSalary(int salary) {
		this.salary = salary;
	}

}


2.SysMenu类

package p1;

public class SysMenu {
	public static final String[] MENU = { "1.员工信息管理", "2.退出" };
	public static final String[] OPERATION_MENU = { "1.新增", "2.查看", "3.修改", "4.删除", "5.返回" };

	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("---------------------------------------");
	}
}


3.SysInfo类
package p1;

import java.util.ArrayList;
import java.util.List;

public class SysInfo {
	private static List informationList = new ArrayList();

	// 获取 informationList
	public static List getList() {
		return informationList;
	}
}


4.InformationService类

package p1;

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.getSalary());
	}
	//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.getSalary());
		}
	}

	
	// 按名字查找信息
	public Person getPersonByName(final String name) {
		if (name == null)
			return null;
		for (int i = 0; i < informationList.size(); i++) {
			Person p = (Person) informationList.get(i);
			if (p.getName().equals(name)) {
				return p;
			}
		}
		return null;
	}
	
	//检查对象是否存在
	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)
	{
		p.setNum(getPersonMaxInt()+1);
		informationList.add(p);
	}
	
	// 查找最大编号
	public int getPersonMaxInt()
	{
		int max = 0;
		for(int i =0;i<informationList.size();i++)
		{
			Person p =(Person)informationList.get(i);
			if(max < p.getNum())
				max = p.getNum();
		}
		return max;
	}
}


5.SysRun类

package p1;

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("启动系统管理系统");
		boolean isExit = false;
		do {
			System.out.println("----------操作选项-------------");
			SysMenu.showMenu(SysMenu.MENU);
			// 获取用户输入
			int operNum = getCorrONum(SysMenu.MENU);
			// 管理操作
			isExit = doManageNum(operNum);
		} while (!isExit);
		System.out.println("系统退出.");
	}

	private boolean doManageNum(int operNum) {
		boolean isExit = false;
		switch (operNum) {
		case 1:
			is.showPerson();
			System.out.println("----------操作选项-------------");
			SysMenu.showMenu(SysMenu.OPERATION_MENU);
			// addPerson();//test
			System.out.println("输入功能选择:");
			int num = getVaildInt();
			doOperationNum(num);
			break;
		case 2:
			isExit = true;
			return isExit;
		}
		return isExit;
	}

	// doOperationNum
	private void doOperationNum(int OperationNum) {
		// 增,查,修,删,返回
		switch (OperationNum) {
		case 1:
			// add
			addPerson();
			is.showPerson();
			break;
		case 2:
			// 查看
			viewPerson();
			break;
		case 3:
			updatePerson();
			break;
		case 4:
			deletePerson();
			is.showPerson();
			break;
		case 5:
			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("请输入性别:");
				String sex = getVaildSex();
				System.out.println("请输入工资:");
				int salary = getVaildInt();

				p.setName(name);
				p.setSex(sex);
				p.setSalary(salary);
				is.showPerson();
			} else
				System.out.println("输入要修改的编号有误,请重新输入:");
		} while (!isOk);

	}

	// 查看viewPerson()
	private void viewPerson() {
		System.out.println("请输入要查看的人的信息编号:");
		Person p;
		boolean isOk = false;
		do {
			int num = getVaildInt();
			boolean NumIsOk = is.CheckExitByNum(num);
			if (NumIsOk == true) {
				p = is.getPersonByNum(num);
				is.showAPerson(p);
				isOk = true;
			} else {
				System.out.println("无此编号的人的信息,请重新输入:");
			}
		} while (!isOk);

	}

	// addPerson()
	private void addPerson() {
		System.out.println("------------新增对象---------------");

		boolean isOk = false;
		String name = null;
		do {
			System.out.println("请输入名称(且不能与现有的对象重名)");
			name = s.next();
			// 处理同名冲突
			if (is.getPersonByName(name) == null) {
				isOk = true;
			} else {
				System.out.println("该人信息已存在,请重新输入!");
				s.next();
			}
		} while (!isOk);
		// other information
		System.out.println("请输入其他信息...");
		System.out.println("sex:");
		String sex = getVaildSex();
		System.out.println("salary:");
		int salary = getVaildInt();
		// save
		is.savePerson(new Person(0, name, sex, salary));
	}

	/* 输入有效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 >= 1 && inputNum <= targetMenu.length) {
					inputIsOk = true;
				} else {
					System.out.println("输入错误,请重新输入!");
				}
			} catch (InputMismatchException e) {
				System.out.println("输入有误,请重新输入");
				// 若输入出现异常,Scanner要丢弃上一次的输入,否则 do-while会出现死循环
				s.next();
			}

		} while (!inputIsOk);
		return inputNum;
	}

}


效果图:


  • 14
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值