实现程序模拟简单的企业职工管理系统。编写程序实现以下要求:
(1)请按继承层次构建企业的各种职工类型,包括超类Employee,以及相应的子类Manager、Secretary和Programmer,从Manager继承又可得到Executive。超类Employee有编号,姓名,年龄,薪金、地址和雇佣日期等信息。
(2)用户可以根据职工编号或职工姓名查找所需的信息。管理人员可以增加,删除数据;可以写入一个数据,查找一个数据,或删除一个数据;此外,管理人员可以增加或降低每个职工的薪金。程序通过ArrayList来实现增加,查找,删除数据。
可以参考一下
import java.util.*;
public class main {
private static Scanner input = new Scanner(System.in);
private static String[][] workers = new String[100][8];
private static String[] workerName = new String[100];
private static String[] newWorker = new String[8];
private static int total = 0;
public static void main(String[] args) {
excleFiles file = new excleFiles();
file.go(workers,workerName);//初始化workers表
sortUp Osort = new sortUp();
total = file.getTotal();
Osort.sort(workers,total,0);
System.out.println("经过姓名字典排序后的职工表为");
for (int i = 0;i < total;i++){
for (int j = 0;j < 8;j++){
System.out.print(workers[j][i]+" ");
}
System.out.println();
}//此部分为调试代码时验证使用
System.out.println("********************欢迎使用职工管理系统*********************");
System.out.println("* *");
System.out.println("* 1.增加职工 *");
System.out.println("* 2.删除职工 *");
System.out.println("* 3.查询职工信息 *");
System.out.println("* 4.修改职工信息 *");
System.out.println("* 5.根据需要对职工进行排序 *");
System.out.println("* 6.退出 *");
System.out.println("* *");
System.out.println("***********************职工管理系统**********************");
while (true) {
System.out.println("请选择需要的服务(1-6):");
int Select = input.nextInt();
if(Select == 1){//添加功能已完善!
int i = 0;
System.out.println("您现在选择的是增加职工,请输入对应信息");
System.out.println("姓名:");
newWorker[i] = input.next();
i++;
System.out.println("性别:");
newWorker[i] = input.next();
i++;
System.out.println("出生年月:");
newWorker[i] = input.next();
i++;
System.out.println("工作年月:");
newWorker[i] = input.next();
i++;
System.out.println("学历:");
newWorker[i] = input.next();
i++;
System.out.println("职务:");
newWorker[i] = input.next();
i++;
System.out.println("住址:");
newWorker[i] = input.next();
i++;
System.out.println("电话:");
newWorker[i] = input.next();
System.out.println("您输入的用户信息为");
for (i = 0;i < 8;i++) {
System.out.print(newWorker[i] + " ");
}
System.out.println("是否对其进行写入?确认请输入y,否则输入n");
if(input.next().equals("y")){
for (i = 0;i < 8;i++) {
workers[i][total] = newWorker[i];
}
total++;
System.out.println("已写入");
}
System.out.println("现在职工表信息为");
for (i = 0;i < total;i++){
for (int j = 0;j < 8;j++){
System.out.print(workers[j][i]+" ");
}
System.out.println();
}//此部分为调试代码时验证使用
}
if(Select == 2){//删除功能(已写完但是未完善)//已完善!!!一遍过
int flag = 0;
System.out.println("您现在使用的是删除功能,请输入您要删除的员工姓名");
String selectName = input.next();
for(int i = 0;i < total;i++){
if (workers[0][i].equals(selectName)) {
System.out.println("匹配成功");
flag = 1;
for (int h = 0;h < 8;h++) {
System.out.print(workers[h][i] + " ");
}
System.out.println("您是否决定对其进行删除?删除请输入y,否则输入n");
if (input.next().equals("y")){
for (;i < total;i++){
for (int j=0;j < 8;j++){
workers[j][i] = workers[j][i+1];
}
}
total--;
}
break;
}
}
if (flag == 0){
System.out.println("在职工表中未找到匹配对象");
}
System.out.println("现在职工表信息为");
for (int i = 0;i < total;i++){
for (int j = 0;j < 8;j++){
System.out.print(workers[j][i]+" ");
}
System.out.println();
}//此部分为调试代码时验证使用
}
if (Select == 3){//查询功能已完善!
int flag = 0;
System.out.println("您现在使用的是查询功能,请输入您查询的员工姓名");
//System.out.println(total);(total值已经成功导入)
/*for (int i=0;i < total;i++){
for (int j=0;j < 7;j++){
System.out.println(workers[j][i]);
}
}*///workers表已经成功导入
String selectName = input.next();
//if (selectName.equals("a"))
//System.out.println("和a一样");
//System.out.println(selectName);
for (int i = 0;i < total;i++){
//System.out.println(workers[0][i]);这个匹配是对的
if (workers[0][i].equals(selectName)){
System.out.println("匹配成功");
for (int j=0;j < 8;j++) {
System.out.print(workers[j][i] + " ");
}
flag = 1;
break;
}
}
if (flag == 0){
System.out.println("未在职工表中找到匹配对象!");
}
}
if (Select == 4){//修改值(已写但是未完善)//就改了一个值,总体功能没问题,gooddd~
int flag = 0;
System.out.println("您现在使用的是检索并修改功能,请输入您检索的员工姓名");
String selectName = input.next();
for (int i = 0;i < total;i++){
if (workers[0][i].equals(selectName)){
System.out.println("匹配成功,请输入您想修改的属性编码,编码对应如下");
flag = 1;
System.out.println("姓名:0 性别:1 出生年月:2 工作年月:3 学历:4 职务:5 住址:6 电话:7");
//String temp = input.next();
int temp = input.nextInt();
for (int j = 0;j < 8;j++){
//System.out.println(temp);测试用的
if (temp == j){
System.out.println("请输入您修改后的值");
workers[j][i] = input.next();
System.out.println("已修改完毕!");
}
/*else{
System.out.println("还没匹配到");
}*/
}
break;
}
}
if (flag == 0){
System.out.println("未在职工表中找到匹配对象!");
}
System.out.println("此时职工表为");
for (int i=0;i < total;i++){
for (int j = 0;j < 8;j++){
System.out.print(workers[j][i]+" ");
}
System.out.println();
}
}
if (Select == 5){//排序输出(采用的是升序字典排列法)
System.out.println("您选择的是排序功能,本系统将对职工表中的选定属性行升序排列");
int sign;
sortUp sort1 = new sortUp();
System.out.println("请选择您想要进行排序的属性编码,编码对应如下");
System.out.println("姓名:0 性别:1 出生年月:2 工作年月:3 学历:4 职务:5 住址:6 电话:7");
sign = input.nextInt();
sort1.sort(workers,total,sign);
System.out.println("此时职工表为");
for (int i=0;i < total;i++){
for (int j = 0;j < 8;j++){
System.out.print(workers[j][i]+" ");
}
System.out.println();
}
}
if (Select == 6){//退出并写入文件
file.output(workers);
System.out.println("感谢您的使用,欢迎下次再来!");
break;
}
}
}
}