員工管理系統(tǒng)java版
員工管理系統(tǒng)要求如下:
通過(guò)面向?qū)ο蟮木幊趟枷耄瑢?shí)現(xiàn)員工信息的增刪改查,存儲(chǔ)結(jié)構(gòu)為數(shù)組。限定數(shù)組長(zhǎng)度為100。
實(shí)現(xiàn)頁(yè)面:

添加員工

查找員工

修改員工

刪除員工、退出
工程目錄結(jié)構(gòu):

1.Employee基類
/**
* @author 李廣亮
*
*/
public class Employee {
/**
* 成員屬性:ID、姓名、職務(wù)、請(qǐng)假天數(shù)、基本工資
*/
private String ID;
private String name;
private String job;
private int holiday;
private double salary;
/**
* 計(jì)算工資
*/
public double sunSalary(double salary, int holiday) {
return salary - (salary/30) * holiday;
}
/**
* get和set方法
*/
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getHoliday() {
return holiday;
}
public void setHoliday(int holiday) {
this.holiday = holiday;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
/**
* toString()方法
*/
public String toString() {
return "編號(hào):" + ID + ", 姓名:" + name + ", 職務(wù)" + job
+ ", 請(qǐng)假天數(shù):" + holiday + ", 工資:" + salary;
}
}
2.普通員工類CommonEmployee
public class CommonEmployee extends Employee {
/**
* 普通員工工資
* 在基本工資的基礎(chǔ)上增加10%的工作餐,50%的崗位補(bǔ)助,200元住房補(bǔ)助
* @param 工資
* @param 請(qǐng)假天數(shù)
*/
@Override
public double sunSalary(double salary, int holiday) {
double sum = salary + salary*0.1 + salary*0.5 + 200;
return sum - sum/30 * holiday;
}
}
3.經(jīng)理ManagerEmployee
public class ManagerEmployee extends Employee {
/**
* 經(jīng)理工資
* 在基本工資的基礎(chǔ)上增加20%的工作餐,50%的崗位補(bǔ)助,500元住房補(bǔ)助
* @param 工資
* @param 請(qǐng)假天數(shù)
*/
@Override
public double sunSalary(double salary, int holiday) {
double sum = salary + salary*0.2 + salary*0.5 + 500;
return sum - sum/30 * holiday;
}
}
4.懂事DirectorEmployee
public class ManagerEmployee extends Employee {
/**
* 經(jīng)理工資
* 在基本工資的基礎(chǔ)上增加20%的工作餐,50%的崗位補(bǔ)助,500元住房補(bǔ)助
* @param 工資
* @param 請(qǐng)假天數(shù)
*/
@Override
public double sunSalary(double salary, int holiday) {
double sum = salary + salary*0.2 + salary*0.5 + 500;
return sum - sum/30 * holiday;
}
}
5.業(yè)務(wù)邏輯類TestEMD
/**
* @author 李廣亮
*
*/
public class TestEMD {
/**
* len代表數(shù)組的當(dāng)前下標(biāo)
*/
static int len = -1;
static Employee[] emp = new Employee[100];
static Scanner sc = new Scanner(System.in);
/**
* 增加新雇員
*/
public void addEmployee() {
Employee em = null;
System.out.println("---增加員工---");
System.out.print("請(qǐng)輸入員工編號(hào):");
String id = sc.next();
System.out.print("請(qǐng)輸入員工姓名:");
String name = sc.next();
System.out.print("請(qǐng)輸入員工職務(wù)(員工、經(jīng)理、懂事):");
String job = sc.next();
System.out.print("請(qǐng)輸入員工請(qǐng)假天數(shù):");
int holiday = sc.nextInt();
System.out.print("請(qǐng)輸入員工基本工資:");
double salary = sc.nextDouble();
//在此作一下邏輯判斷,根據(jù)job的不同,創(chuàng)建不同的Employee子類
if(job.equals("員工")) {
em = new CommonEmployee();
} else if(job.equals("經(jīng)理")) {
em = new ManagerEmployee();
} else if(job.equals("懂事")) {
em = new DirectorEmployee();
} else {
System.out.println("輸入不正確!");
}
em.setID(id);
em.setName(name);
em.setJob(job);
em.setHoliday(holiday);
em.setSalary(salary);
//len先加1后使用,變?yōu)閑mp[0]
emp[++len] = em;
printEmployee(emp[len]);
System.out.println("添加成功!");
}
/**
* 刪除員工
*/
public void deleteEmployee() {
System.out.println("------刪除員工------");
System.out.println("---請(qǐng)輸入員工姓名:---");
//設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為false
boolean flg = false;
String name = sc.next();
for(int i=0; i<=len; i++) {
//若查找成功,則把emp[i]數(shù)組后面的指針往前移一位,覆蓋掉當(dāng)前的指向?qū)ο?
if(emp[i].getName().equals(name)) {
printEmployee(emp[i]);
for(int j=i; j<=len; j++) {
emp[j] = emp[j+1];
}
//前移后,最后一位置空,len--
emp[len] = null;
len--;
System.out.println("刪除成功!");
flg = true;
break;
}
}
if(!flg) {
System.out.println("查無(wú)此人,請(qǐng)重新輸入:");
deleteEmployee();
}
}
/**
* 修改雇員信息
* @param args
* @return
*/
public void updateEmployee() {
System.out.println("------修改員工------");
System.out.println("---請(qǐng)輸入員工姓名:---");
//設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為false
boolean flg = false;
String name = sc.next();
for(int i=0; i<=len; i++) {
if(emp[i].getName().equals(name)) {
printEmployee(emp[i]);
System.out.println("---請(qǐng)按照提示輸入修改信息---");
System.out.print("請(qǐng)輸入員工編號(hào):");
emp[i].setID(sc.next());
System.out.print("請(qǐng)輸入員工姓名:");
emp[i].setName(sc.next());
System.out.print("請(qǐng)輸入員工職務(wù)(員工、經(jīng)理、懂事):");
emp[i].setJob(sc.next());
System.out.print("請(qǐng)輸入員工請(qǐng)假天數(shù):");
emp[i].setHoliday(sc.nextInt());
System.out.print("請(qǐng)輸入員工基本工資:");
emp[i].setSalary(sc.nextDouble());
//修改完成后打印一下
printEmployee(emp[i]);
System.out.println("修改成功!");
flg = true;
break;
}
}
if(!flg) {
System.out.println("查無(wú)此人,請(qǐng)重新輸入:");
updateEmployee();
}
}
/**
* 根據(jù)姓名查找雇員信息
* @param args
*/
public void findEmployee() {
System.out.println("------查找員工------");
System.out.println("---請(qǐng)輸入員工姓名:---");
//設(shè)置一個(gè)boolean類型的flg標(biāo)志,若查找不到則為false
boolean flg = false;
String name = sc.next();
for( int i=0; i<=len; i++) {
if(emp[i].getName().equals(name)) {
printEmployee(emp[i]);
System.out.println("查找成功!");
flg = true;
break;
}
}
if(!flg) {
System.out.println("查無(wú)此人,請(qǐng)重新輸入:");
findEmployee();
}
}
/**
* 打印雇員信息
* @param args
*/
public void printEmployee(Employee em) {
System.out.print(" 編號(hào): " + em.getID());
System.out.print(" 姓名: " + em.getName());
System.out.print(" 職務(wù): " + em.getJob());
System.out.print(" 請(qǐng)假天數(shù) : " + em.getHoliday());
//參數(shù):1.基本工資 2.請(qǐng)假天數(shù)
double sum = em.sunSalary(em.getSalary(), em.getHoliday());
System.out.println(" 工資:" + sum);
}
public static void main(String[] args) {
TestEMD te = new TestEMD();
//開(kāi)始界面
System.out.println("|----------------|");
System.out.println("|-----1. 增加 -----|");
System.out.println("|-----2. 刪除 -----|");
System.out.println("|-----3. 修改 -----|");
System.out.println("|-----4. 查詢 -----|");
System.out.println("|-----0. 退出 -----|");
System.out.println("|----------------|");
//業(yè)務(wù)選擇
label : while(true) {
System.out.println("請(qǐng)選擇業(yè)務(wù):");
int select = sc.nextInt();
switch (select) {
case 1: //添加新雇員
te.addEmployee();
break;
case 2: //刪除雇員
te.deleteEmployee();
break;
case 3: //修改雇員信息
te.updateEmployee();
break;
case 4: //根據(jù)姓名查找雇員信息
te.findEmployee();
break;
case 0: //退出
System.out.println("退出成功!");
break label;
default:
System.out.println("您輸入的數(shù)字不正確!");
break;
}
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java精品項(xiàng)目瑞吉外賣之員工信息管理篇
- Java實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)
- java實(shí)現(xiàn)員工工資管理系統(tǒng)
- Java實(shí)現(xiàn)員工信息管理系統(tǒng)
- Java實(shí)現(xiàn)簡(jiǎn)單員工管理系統(tǒng)
- Java實(shí)戰(zhàn)員工績(jī)效管理系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)范例之員工管理系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)現(xiàn)員工管理系統(tǒng)
- Java實(shí)現(xiàn)部門(mén)員工管理
相關(guān)文章
SpringBoot整合Mybatis與MybatisPlus方法詳細(xì)講解
這篇文章主要介紹了SpringBoot整合Mybatis與MybatisPlus方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
springboot+vue+elementsUI實(shí)現(xiàn)分角色注冊(cè)登錄界面功能
這篇文章主要給大家介紹了關(guān)于springboot+vue+elementsUI實(shí)現(xiàn)分角色注冊(cè)登錄界面功能的相關(guān)資料,Spring?Boot和Vue.js是兩個(gè)非常流行的開(kāi)源框架,可以用來(lái)構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下2023-07-07
Gradle的SpringBoot項(xiàng)目構(gòu)建圖解
這篇文章主要介紹了Gradle的SpringBoot項(xiàng)目構(gòu)建圖解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
java常見(jiàn)報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法
這篇文章主要給大家介紹了關(guān)于java報(bào)錯(cuò)Array?Out?of?Bounds的兩種解決辦法,Array out of bounds錯(cuò)誤表示你嘗試訪問(wèn)數(shù)組中不存在的索引,即索引小于零或者大于等于數(shù)組的大小,文中通過(guò)代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出
Apache POI是一個(gè)流行的Java庫(kù),用于處理Microsoft Office格式文件,包括Excel文件,本文主要介紹了SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
IntelliJ IDEA編譯項(xiàng)目報(bào)錯(cuò) "xxx包不存在" 或 "找不到符號(hào)"
這篇文章主要介紹了IntelliJ IDEA編譯項(xiàng)目報(bào)錯(cuò) "xxx包不存在" 或 "找不到符號(hào)" ,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08

