职工信息管理系统(ArrayList泛型、JAVA——基于控制台)

职工信息管理系统

1.任务描述
编写一个职工类(Employee),包含的属性有职工号、姓名、性别、年龄等,将所有职工存储在一个数组中,编写职工信息管理程序实现如下操作:
(1) 增加一个职工;
(2) 根据职工号删除某位职工;
(3) 根据职工号修改职工的某些信息;
(4) 将所有职工年龄增加一岁;
(5) 将数组中顺序显示所有职工信息;
(6) 将所有职工按姓名排序输出。
在这里插入图片描述
备注:
(1) 编写三个类:职工类、职工操作类和测试类。
(2) 职工信息管理系统类的UML图如下所示。
在这里插入图片描述2.运行结果
增:
在这里插入图片描述
插入成功:
在这里插入图片描述
删:
在这里插入图片描述
删成功:
在这里插入图片描述
指定改:
在这里插入图片描述
指定改成功:
在这里插入图片描述
所有年龄+1:
在这里插入图片描述
在这里插入图片描述
3.实现思路
设计函数完成增,删,改,排序功能.

  1. 增思路:
    依题要求,首先判断输入的职工号是否为“000”:若输入结果不为“000”时需要利用构造方法ergodic()判断该输入的职工号是否存在,存在则重新输入,直至输入不存在链表中的职工号,后依此输入其他信息;然后利用类方法将输入的各个参数传入类中;最后利用链表的常用方法add(E e)方法增加结点到链表中。若输入的职工号为“000”则退出录入功能。

  2. 删思路:
    利用构造方法ergodic()判断输入的职工号是否存在。若存在则返回该职工对应结点的位置并用链表的常用方法remove(int index)将该节点删除;若不存在则输出错误提示。

  3. 改思路:
    a. 指定职工号修改:利用构造方法ergodic()判断输入信息是否存在。若存在则返回该职工对应结点的位置并用链表的常用方法get(int index)和构造的setNameString(String)修改信息;若不存在则输出错误信息。
    b. 全部修改:首先设置迭代器iterator遍历链表,利用hasNext()方法判断链表结点是否为空;然后创建Employee对象利用迭代器的next()方法获取每一个结点;最后利用Employee类中构造的setAgestring()和getAgestring()方法使所有结点的年龄信息+1。

  4. 排序思路:
    首先为了不改变原链表的信息,创建一个链表利用链表的常用方法clone(),“克隆”一个链表。然后重写Comparable类中的compareTo()方法。最后利用链表的常用方法sort()将链表中的数据按指定内容排序。

4.实现代码

Test.java

package example;

import dao.EmployeeDAO;

public class EmployTest {
   
	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		EmployeeDAO employeeDAO = new EmployeeDAO();
		while (true) {
   
			employeeDAO.menu();
		}
	}
}

Employee.java

package javabean;

public class Employee implements Comparable {
   
	protected String noString;
	protected String nameString;
	protected String sexString;
	protected int age;

	public String getNoString() {
   
		return noString;
	}

	public void setNoString(String noString) {
   
		this.noString = noString;
	}

	public String getNameString() {
   
		return nameString;
	}

	public void setNameString(String nameString) {
   
		this.nameString = nameString;
	}

	public String getSexString() {
   
		return sexString;
	}

	public void setSexString(String sexString) {
   
		this.sexString = sexString;
	}

	public int getAgeString() {
   
		return age;
	}

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

	public Employee(String no, String name, String sex, int age) {
   
		noString = no;
		nameString = name;
		sexString = sex;
		this.age = age;
	}

	p
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值