JDK11
背景:在公司中,为了管理众多员工,以及员工的工资,特开发了员工工资管理系统。通过该系统完成新员工入职,离职,修改工资,查询等功能。
需求:使用员工管理系统之前,需要先登陆。登陆后,可以完成员工的添加、显示,删除、修改、查找、排序的功能。
要求用户输入用户名和密码
如果用户名和密码输入错误,给予提示,并让用户重新输入。
如果用户三次以上没有输入正确信息,提示“非法用户”,并结束程序
- 主界面显示
登陆成功以后,完成主界面显示。
根据用户的不同的选择执行不同的功能。
- 添加员工,当添加下一个员工信息,而数组长度不够时,要重新创建一个更长的一个数组,把较短的数组的数据,赋值给新建的数组,再把新建数组的引用赋值给以前的数组变量
要求用户输入新员工的工号
如果工号已存在,给予提示
要求用户输入姓名和工资
填写完毕后,完成新员工的添加。
- 显示员工信息
显示所有员工的信息。
输入要删除员工的姓名,
如果没有找到,给予提示。
找到以后,完成删除,并显示删除的结果
先找到要删除的下标,下标以前的值不变,下标以后的值依次覆盖前一个值
输入要查找员工的姓名,
如果没有找到,给予提示。
找到以后,显示该员工信息。
- 修改员工工资
输入要修改工资的员工姓名,
如果没有找到,给予提示。
找到以后,提示输入新工资
修改完成以后,显示修改的结果
8、按工资排序显示工资单
将所有员工,按工资进行排序,然后显示工资单。
用双重循环完成排序
结束员工管理系统。
package com.project.homework.homework1_11;
import javax.swing.*;
import java.awt.*;
public class EmployessSystem {
//管理员
public static String[] admiArray = {"张三", "李四"};
//密码
public static String[] codeArray = {"123", "456"};
//员工employess
//工号
public static String[] numArray = {"001","002","003"};
//姓名
public static String[] nameArray = {"张三", "李四","李白"};
//工资
public static int[] moneyArray = {555,666,464};
//
public static int num = 3;
//下标
public static int index = -1;
public static void main(String[] args) {
if (login() == false) {
JOptionPane.showMessageDialog(null, "非法用户");
System.exit(0);
}
while (true) {
String str = JOptionPane.showInputDialog(null, "请输入要进行的操作n1.添加员工n2.显示员工信息n3." +
"删除员工n4.查询员工信息n5.修改员工工资n6.按工资排序显示工资单n7.退出");
switch (str) {
case "1":
addEmployess();
break;
case "2":
show();
break;
case "3":
deleteEmployess();
break;
case "4":
find();
break;
case "5":
setMoney();
break;
case "6":
sort();
break;
case "7":
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null, "请输入1-7");
break;
}
}
}
//登录
public static boolean login() {
for (int i = 0; i < 3; i++) {
String str = JOptionPane.showInputDialog(null, "请输入用户名:");
String str1 = JOptionPane.showInputDialog(null, "请输入密码:");
if (checkUser(str, str1) != -1) {
return true;
}
}
return false;
}
//验证用户名
public static int checkUser(String str, String str1) {
for (int i = 0; i < admiArray.length; i++) {
if (str.equals(admiArray[i]) && str1.equals(codeArray[i])) {
index = i;
return i;
}
}
return -1;
}
//添加
public static void addEmployess() {
String str = JOptionPane.showInputDialog(null, "请输入员工编号:");
if (checkNum(str) == true) {
JOptionPane.showMessageDialog(null, "编号已存在,请重新输入编号");
addEmployess();
// return;
}
if (num == numArray.length) {
newArray();
}
String str1 = JOptionPane.showInputDialog(null, "请输入姓名:");
String str2 = JOptionPane.showInputDialog(null, "请输入工资");
int money = Integer.parseInt(str2);
numArray[num] = str;
nameArray[num] = str1;
moneyArray[num] = money;
num++;
String isContinue = JOptionPane.showInputDialog(null, "是否继续y/n?");
if (isContinue.equalsIgnoreCase("y")) {//忽略大小写比较是否相等
addEmployess();
}
}
//验证编号是否存在
public static boolean checkNum(String str) {
for (int i = 0; i < num; i++) {
if (str.equals(numArray[i])) {
return true;
}
}
return false;
}
//超过创建一个更长的数组接受
public static void newArray() {
String[] newNum = new String[num + 10];
String[] newName = new String[num + 10];
int[] newMoney = new int[num + 10];
for (int i = 0; i < num; i++) {
newNum[i] = numArray[i];
newName[i] = nameArray[i];
newMoney[i] = moneyArray[i];
}
//重新赋值
numArray = newNum;
nameArray = newName;
moneyArray = newMoney;
}
//显示员工信息
public static void show() {
String s = "工号 姓名 工资n";
for (int i = 0; i < num; i++) {
s += numArray[i] + " " + nameArray[i] + " " + moneyArray[i] + "n";
}
JOptionPane.showMessageDialog(null, s);
}
//验证名字
public static int checkFind(String name) {
for (int i = 0; i < num; i++) {
if (name.equals(nameArray[i])) {
return i;
}
}
JOptionPane.showMessageDialog(null, "查无此人");
return -1;
}
//删除员工
public static void deleteEmployess() {
String name = JOptionPane.showInputDialog(null, "请输入要删除的员工姓名:");
if (checkFind(name) != -1) {
int g = checkFind(name);
for (int i = g; i < num - 1; i++) {
numArray[i] = numArray[i + 1];
nameArray[i] = nameArray[i + 1];
moneyArray[i] = moneyArray[i + 1];
}
JOptionPane.showMessageDialog(null, "删除成功");
num--;
show();
String isContinue = JOptionPane.showInputDialog(null, "是否继续y/n?");
if (isContinue.equalsIgnoreCase("y")) {//忽略大小写比较是否相等
deleteEmployess();
}
}
}
//查询员工信息
public static void find() {
String name = JOptionPane.showInputDialog(null, "请输入要删除的员工姓名:");
if (checkFind(name) != -1) {
String s = "编号 姓名 工资n";
s += numArray[checkFind(name)] + " " + nameArray[checkFind(name)] + " " + moneyArray[checkFind(name)];
JOptionPane.showMessageDialog(null, s);
String isContinue = JOptionPane.showInputDialog(null, "是否继续y/n?");
if (isContinue.equalsIgnoreCase("y")) {//忽略大小写比较是否相等
find();
}
}
}
//修改员工信息
public static void setMoney() {
String name = JOptionPane.showInputDialog(null, "请输入要删除的员工姓名:");
if (checkFind(name) != -1) {
String str = JOptionPane.showInputDialog(null, "请输入新工资:");
int money = Integer.parseInt(str);
moneyArray[checkFind(name)] = money;
JOptionPane.showMessageDialog(null, "修改成功");
show();
String isContinue = JOptionPane.showInputDialog(null, "是否继续y/n?");
if (isContinue.equalsIgnoreCase("y")) {//忽略大小写比较是否相等
setMoney();
}
}
}
//按工资排序显示工资
public static void sort() {
for (int i = 0; i < num - 1; i++) {
sortDaxiao(i);
}
show();
}
public static void sortDaxiao(int i) {
for (int j = i + 1; j < num; j++) {
if (moneyArray[j] > moneyArray[i]) {
//编号
String y = numArray[i];
numArray[i] = numArray[j];
numArray[j] = y;
//名字
String a = nameArray[i];
nameArray[i] = nameArray[j];
nameArray[j] = a;
//钱
int x = moneyArray[i];
moneyArray[i] = moneyArray[j];
moneyArray[j] = x;
}
}
}
}



