Java面向过程实现员工管理系统(利用集合存储数据实现员工增删改查排序)

1.界面:

package staffSystem;

import java.util.Scanner;

/**
 * 交互界面
 * @author 123
 *
 */
public class Surface {

	public static void main(String[] args) {

//		Staff sta = new Staff();
//		Model mode = new Model();
		Scanner scan = new Scanner(System.in);
//		int index=0;
		
		menu(scan);
		scan.close();
		
	}
	public static void menu(Scanner scan) {
		while (true) {
			
			System.out.println("******************员工管理系统******************");
			System.out.println("1--添加员工   2--修改员工   3--查询员工");
			System.out.println("4--删除员工   5--员工排名   6--退出系统 ");
			System.out.println("************************************************");
			System.out.println("请输入序号进行操作(1-6):");
			int n = scan.nextInt();
			if (n == 1) {
				Model.addEmp();//添加
			} else if (n == 2) {
				Model.setEmp();//修改
			} else if (n == 3) {
				Model.search();//查询
			} else if (n == 4) {
				Model.remove();//删除
			} else if (n == 5) {
				Model.sort();//排序
			} else if (n == 6) {
				break;
			} else {
				System.out.println("输入不合法!请重新输入!");
			}
			
		}
		System.out.println("已退出系统!!!");
		
	}
	public static void search1() {
		System.out.println("此员工不存在!");
		System.out.println();
		System.out.println("请选择选项:");
		System.out.println("1--重新查询   2--返回主界面");
	}
}

2.员工类:

package staffSystem;

/**
 * 员工类
 * 
 * @author 123
 *
 */
public class Staff {

	private String name;// 员工姓名
	private int id;// 员工号
	private String sex;// 员工性别
	private int age;// 员工年龄
	private float salary;// 工资

	public Staff() {

	}

	public Staff(Integer id, String name, String sex, Integer age, Integer salary) {
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.salary = salary;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getSex() {
		return sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public float getSalary() {
		return salary;
	}

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

	@Override
	public String toString() {//方便查看员工信息
		return "员工号:" + id +"\t姓名:" + name +  "\t性别:" + sex + "\t年龄:" + age + "\t工资:" + salary;
	}
	

}

3.功能实现:

package staffSystem;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 对象模型类
 * 
 * @author 123
 *
 */
public class Model {

	static ArrayList<Staff> sta = new ArrayList<>();
	static {// 初始化
		Staff sta1 = new Staff(1, "张三", "女", 18, 5000);
		Staff sta2 = new Staff(2, "李四", "男", 23, 8000);
		Staff sta3 = new Staff(3, "王五", "男", 26, 6500);
//		Staff sta4 = new Staff(67, "李5四", "男", 23, 56);
//		Staff sta5 = new Staff(7, "王7五", "男", 26, 12000);
		sta.add(sta1);
		sta.add(sta2);
		sta.add(sta3);
//		sta.add(sta4);
//		sta.add(sta5);
	}

	/**
	 * 查询员工信息
	 */
	public static void search() {
		boolean t = true;
		while (t) {
			System.out.println("**********员工信息表**********");
			for (int i = 0; i < sta.size(); i++) {
				System.out.println("工号:" + sta.get(i).getId() + " \t" + "姓名:" + sta.get(i).getName());
			}
			System.out.println("请选择查询员工方式:");
			System.out.println("1--按员工姓名查找    2--按员工工号查找    3--返回主界面");
			Scanner scan1 = new Scanner(System.in);
			int n = scan1.nextInt();
			if (n == 1) {
				int a = 0;
				System.out.println("请输入要查询的员工名字:");
				String name = scan1.next();
				for (int i = 0; i < sta.size(); i++) {
					if (name.equals(sta.get(i).getName())) {
						System.out.println(sta.get(i));
						System.out.println("查询成功!");
						System.out.println();
						System.out.println("1--继续查询    2--返回主界面");
						int y1 = scan1.nextInt();
						if (y1 == 1) {
							a = 1;
						} else if (y1 == 2) {
							a = 1;
							t = false;
						} else {
							System.out.println("输入不合法!已退出查询!");
							System.out.println("******************************");
							a = 1;
							t = false;
						}
					}
				}
				if (a == 0) {
					Surface.search1();
					int n1 = scan1.nextInt();
					while (true) {
						if (n1 == 1) {
							break;
						} else if (n1 == 2) {
							t = false;
							break;
						} else {
							System.out.println("输入错误!请重新输入!");
							n1 = scan1.nextInt();
						}
					}
				}
			} else if (n == 2) {
				int a1 = 0;
				System.out.println("请输入要查询的员工工号:");
				int id = scan1.nextInt();
				for (int i = 0; i < sta.size(); i++) {
					if (id == sta.get(i).getId()) {
						System.out.println(sta.get(i));
						System.out.println("查询成功!");
						System.out.println();
						System.out.println("1--继续查询    2--返回主界面");
						int y = scan1.nextInt();
						if (y == 1) {
							a1 = 1;
						} else if (y == 2) {
							a1 = 1;
							t = false;
						} else {
							System.out.println("输入不合法!已退出查询!");
							System.out.println("******************************");
							a1 = 1;
							t = false;
						}
					}
				}
				if (a1 == 0) {
					Surface.search1();
					int n1 = scan1.nextInt();
					while (true) {
						if (n1 == 1) {
							break;
						} else if (n1 == 2) {
							t = false;
							break;
						} else {
							System.out.println("输入错误!请重新输入!");
							n1 = scan1.nextInt();
						}
					}
				}
			} else if (n == 3) {
				t = false;
			} else {
				System.out.println("输入不合法!请重新输入!");
				System.out.println("******************************");
			}
		}
	}

	/**
	 * 添加员工信息
	 */
	public static void addEmp() {
		boolean t = true;
		while (t) {
			Scanner scan3 = new Scanner(System.in);

			System.out.print("请输入员工工号:");
			int addid = scan3.nextInt();
			System.out.print("请输入员工姓名:");
			String addname = scan3.next();
			System.out.print("请输入员工性别:");
			String addsex = scan3.next();
			System.out.print("请输入员工年龄:");
			int addage = scan3.nextInt();
			System.out.print("请输入员工工资:");
			float addsalary = scan3.nextFloat();

			boolean b = true;
			for (int i = 0; i < sta.size(); i++) {
				if (sta.get(i).getId() == addid) {
					b = false;
					break;
				}
			}
			if (b) {
				Staff staff = new Staff();
				staff.setId(addid);
				staff.setName(addname);
				staff.setSex(addsex);
				staff.setAge(addage);
				staff.setSalary(addsalary);
				sta.add(staff);
				System.out.println("员工添加成功!");
				System.out.println("1--继续添加    2--返回主界面");
				System.out.println("******************************");
				int y = scan3.nextInt();
				if (y == 1) {

				} else if (y == 2) {
					t = false;
				} else {
					System.out.println("输入不合法!已退出添加!");
					System.out.println("******************************");
					t = false;
				}
			} else {
				System.out.println("添加失败!请不要重复添加!");
				System.out.println("1--继续添加    2--返回主界面");
				System.out.println("******************************");
				int y1 = scan3.nextInt();
				if (y1 == 1) {

				} else if (y1 == 2) {
					t = false;
				} else {
					System.out.println("输入不合法!已退出添加!");
					System.out.println("******************************");
					t = false;
				}
			}
		}
	}

	/**
	 * 删除员工信息
	 */
	public static void remove() {
		boolean t = true;
		while (t) {
			System.out.println("**********员工信息表**********");
			for (int i = 0; i < sta.size(); i++) {
				System.out.println("工号:" + sta.get(i).getId() + "\t" + "姓名:" + sta.get(i).getName());
			}
			System.out.println("请选择要删除的员工工号:");
			Scanner scan4 = new Scanner(System.in);
			int id = scan4.nextInt();
			for (int i = 0; i < sta.size(); i++) {
				if (sta.get(i).getId() == id) {
					System.out.println("是否删除此人?");
					System.out.println("1--是   2--否   3--返回主界面");
					int a = scan4.nextInt();
					if (a == 1) {
						sta.remove(i);
						System.out.println("删除成功!!");
						System.out.println("1--继续删除    2--返回主界面");
						System.out.println("******************************");
						int y = scan4.nextInt();
						while (true) {
							if (y == 1) {
								break;
							} else if (y == 2) {
								t = false;
								break;
							} else {
								System.out.println("输入错误,请重新输入!");
							}
						}
						break;
					} else if (a == 2) {
						System.out.println("已取消删除!");
						System.out.println("********************");
						break;
					} else if (a == 3) {
						t = false;
						break;
					} else {
						System.out.println("输入错误!请重新输入!");
						System.out.println("********************");
						i--;
					}
				} else if (i == sta.size() - 1) {
					System.out.println("输入工号错误,没有此员工!");
					System.out.println("1--重新输入    2--返回主界面");
					System.out.println("******************************");
					int a1 = scan4.nextInt();
					if (a1 == 1) {

					} else if (a1 == 2) {
						t = false;
					} else {
						System.out.println("输入错误!已退出删除程序");
						t = false;
					}
				}
			}
		}
	}

	/**
	 * 修改员工信息
	 */
	public static void setEmp() {
		boolean t = true;
		while (t) {
			System.out.println("**********员工信息表**********");
			for (int i = 0; i < sta.size(); i++) {
				System.out.println("工号:" + sta.get(i).getId() + "\t" + "姓名:" + sta.get(i).getName());
			}
			System.out.println("请选择要修改的员工工号:");
			Scanner scan5 = new Scanner(System.in);
			int id = scan5.nextInt();
			for (int i = 0; i < sta.size(); i++) {
				if (sta.get(i).getId() == id) {
					int w = 0;
					System.out.println("是否修改此人?");
					System.out.println("1--是   2--否   3--返回主界面");
					int a = scan5.nextInt();
					if (a == 1) {

						System.out.print("请输入员工工号:");
						int addid = scan5.nextInt();
						System.out.print("请输入员工姓名:");
						String addname = scan5.next();
						System.out.print("请输入员工性别:");
						String addsex = scan5.next();
						System.out.print("请输入员工年龄:");
						int addage = scan5.nextInt();
						System.out.print("请输入员工工资:");
						float addsalary = scan5.nextFloat();

						for (int j = 0; j < sta.size(); j++) {
							if (j == i) {
								continue;
							}
							if (addid == sta.get(j).getId()) {
								w = 1;
							}
						}
						if (w == 0) {
							sta.remove(i);
							Staff staff = new Staff();
							staff.setId(addid);
							staff.setName(addname);
							staff.setSex(addsex);
							staff.setAge(addage);
							staff.setSalary(addsalary);
							sta.add(i, staff);
							System.out.println("员工修改成功!");
							System.out.println("1--继续修改    2--返回主界面");
							System.out.println("******************************");
							int y = scan5.nextInt();
							if (y == 1) {
								break;
							} else if (y == 2) {
								t = false;
								break;
							} else {
								System.out.println("输入不合法!已退出修改!");
								System.out.println("******************************");
								t = false;
								break;
							}
						}

					} else if (a == 2) {
						System.out.println("已取消修改!");
						System.out.println("********************");
						break;
					} else if (a == 3) {
						t = false;
						break;
					} else {
						System.out.println("输入错误!请重新输入!");
						System.out.println("********************");
						break;
					}

					if (w == 1) {
						System.out.println("工号重复,请重新输入!");
						System.out.println("*************************");
						break;
					}
				} else if (i == sta.size() - 1) {
					System.out.println("输入工号错误,没有此员工!");
					System.out.println("1--重新输入    2--返回主界面");
					System.out.println("******************************");
					int a1 = scan5.nextInt();
					if (a1 == 1) {

					} else if (a1 == 2) {
						t = false;
					} else {
						System.out.println("输入错误!已退出修改程序");
						t = false;
					}
				}
			}
		}
	}

	/**
	 * 对员工进行排序
	 */
	public static void sort() {
		boolean t = true;
		while (t) {
			System.out.println("请选择要排序的方式:");
			System.out.println("1--按工号进行排序    2--按工资进行排序    3--返回主界面");
			System.out.println("******************************");
			Scanner scan6 = new Scanner(System.in);
			int n = scan6.nextInt();
			if (n == 1) {
				System.out.println("工号从小到大排序:");
				System.out.println("**********员工信息表**********");
				Staff staff = new Staff();

				for (int i = 0; i < sta.size() - 1; i++) {// 按照工号从小到大排序
					int min = sta.get(i).getId();
					for (int x = i + 1; x < sta.size(); x++) {
						if (sta.get(x).getId() < min) {
							int k = 0;
							for (int j = 0; j < x; j++) {
								if (sta.get(j).getId() == min) {
									k = j;
									break;
								}
							}
							staff = sta.get(k);
							sta.set(k, sta.get(x));
							sta.set(x, staff);
						}
					}
				}
				for (int i = 0; i < sta.size(); i++) {
					System.out.println(sta.get(i));
				}
				System.out.println();
				System.out.println("员工排序成功!");
				System.out.println("1--继续排序    2--返回主界面");
				System.out.println("******************************");
				int y1 = scan6.nextInt();
				while (true) {
					if (y1 == 1) {
						break;
					} else if (y1 == 2) {
						t = false;
						break;
					} else {
						System.out.println("输入错误,请重新输入!");
					}
				}
			} else if (n == 2) {
				System.out.println("工资从小到大排序:");
				System.out.println("**********员工信息表**********");
				Staff staff = new Staff();
				for (int i = 0; i < sta.size() - 1; i++) {// 按照工资从小到大排序
					for (int x = 0; x < sta.size() - 1 - i; x++) {
						if (sta.get(x).getSalary() > sta.get(x + 1).getSalary()) {// 冒泡排序
							staff = sta.get(x);
							sta.set(x, sta.get(x + 1));
							sta.set(x + 1, staff);
						}
					}
				}
				for (int i = 0; i < sta.size(); i++) {
					System.out.println(sta.get(i));
				}
				System.out.println();
				System.out.println("员工排序成功!");
				System.out.println("1--继续排序    2--返回主界面");
				System.out.println("******************************");
				int y = scan6.nextInt();
				while (true) {
					if (y == 1) {
						break;
					} else if (y == 2) {
						t = false;
						break;
					} else {
						System.out.println("输入错误,请重新输入!");
					}
				}
			} else if (n == 3) {
				t = false;
			} else {
				System.out.println("输入错误!请重新输入!");
				System.out.println();
			}

		}
	}

}

输出结果:

 

 

 

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值