职工信息管理系统
1.任务描述
编写一个职工类(Employee),包含的属性有职工号、姓名、性别、年龄等,将所有职工存储在一个数组中,编写职工信息管理程序实现如下操作:
(1) 增加一个职工;
(2) 根据职工号删除某位职工;
(3) 根据职工号修改职工的某些信息;
(4) 将所有职工年龄增加一岁;
(5) 将数组中顺序显示所有职工信息;
(6) 将所有职工按姓名排序输出。
备注:
(1) 编写三个类:职工类、职工操作类和测试类。
(2) 职工信息管理系统类的UML图如下所示。
2.运行结果
增:
插入成功:
删:
删成功:
指定改:
指定改成功:
所有年龄+1:
3.实现思路
设计函数完成增,删,改,排序功能.
-
增思路:
依题要求,首先判断输入的职工号是否为“000”:若输入结果不为“000”时需要利用构造方法ergodic()判断该输入的职工号是否存在,存在则重新输入,直至输入不存在链表中的职工号,后依此输入其他信息;然后利用类方法将输入的各个参数传入类中;最后利用链表的常用方法add(E e)方法增加结点到链表中。若输入的职工号为“000”则退出录入功能。 -
删思路:
利用构造方法ergodic()判断输入的职工号是否存在。若存在则返回该职工对应结点的位置并用链表的常用方法remove(int index)将该节点删除;若不存在则输出错误提示。 -
改思路:
a. 指定职工号修改:利用构造方法ergodic()判断输入信息是否存在。若存在则返回该职工对应结点的位置并用链表的常用方法get(int index)和构造的setNameString(String)修改信息;若不存在则输出错误信息。
b. 全部修改:首先设置迭代器iterator遍历链表,利用hasNext()方法判断链表结点是否为空;然后创建Employee对象利用迭代器的next()方法获取每一个结点;最后利用Employee类中构造的setAgestring()和getAgestring()方法使所有结点的年龄信息+1。 -
排序思路:
首先为了不改变原链表的信息,创建一个链表利用链表的常用方法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