員工管理系統(tǒng)java版
員工管理系統(tǒng)要求如下:
通過面向?qū)ο蟮木幊趟枷耄瑢崿F(xiàn)員工信息的增刪改查,存儲結(jié)構為數(shù)組。限定數(shù)組長度為100。
實現(xiàn)頁面:
添加員工
查找員工
修改員工
刪除員工、退出
工程目錄結(jié)構:
1.Employee基類
/** * @author 李廣亮 * */ public class Employee { /** * 成員屬性:ID、姓名、職務、請假天數(shù)、基本工資 */ private String ID; private String name; private String job; private int holiday; private double salary; /** * 計算工資 */ 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 "編號:" + ID + ", 姓名:" + name + ", 職務" + job + ", 請假天數(shù):" + holiday + ", 工資:" + salary; } }
2.普通員工類CommonEmployee
public class CommonEmployee extends Employee { /** * 普通員工工資 * 在基本工資的基礎上增加10%的工作餐,50%的崗位補助,200元住房補助 * @param 工資 * @param 請假天數(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)理工資 * 在基本工資的基礎上增加20%的工作餐,50%的崗位補助,500元住房補助 * @param 工資 * @param 請假天數(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)理工資 * 在基本工資的基礎上增加20%的工作餐,50%的崗位補助,500元住房補助 * @param 工資 * @param 請假天數(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è)務邏輯類TestEMD
/** * @author 李廣亮 * */ public class TestEMD { /** * len代表數(shù)組的當前下標 */ 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("請輸入員工編號:"); String id = sc.next(); System.out.print("請輸入員工姓名:"); String name = sc.next(); System.out.print("請輸入員工職務(員工、經(jīng)理、懂事):"); String job = sc.next(); System.out.print("請輸入員工請假天數(shù):"); int holiday = sc.nextInt(); System.out.print("請輸入員工基本工資:"); 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("---請輸入員工姓名:---"); //設置一個boolean類型的flg標志,若查找不到則為false boolean flg = false; String name = sc.next(); for(int i=0; i<=len; i++) { //若查找成功,則把emp[i]數(shù)組后面的指針往前移一位,覆蓋掉當前的指向?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("查無此人,請重新輸入:"); deleteEmployee(); } } /** * 修改雇員信息 * @param args * @return */ public void updateEmployee() { System.out.println("------修改員工------"); System.out.println("---請輸入員工姓名:---"); //設置一個boolean類型的flg標志,若查找不到則為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("---請按照提示輸入修改信息---"); System.out.print("請輸入員工編號:"); emp[i].setID(sc.next()); System.out.print("請輸入員工姓名:"); emp[i].setName(sc.next()); System.out.print("請輸入員工職務(員工、經(jīng)理、懂事):"); emp[i].setJob(sc.next()); System.out.print("請輸入員工請假天數(shù):"); emp[i].setHoliday(sc.nextInt()); System.out.print("請輸入員工基本工資:"); emp[i].setSalary(sc.nextDouble()); //修改完成后打印一下 printEmployee(emp[i]); System.out.println("修改成功!"); flg = true; break; } } if(!flg) { System.out.println("查無此人,請重新輸入:"); updateEmployee(); } } /** * 根據(jù)姓名查找雇員信息 * @param args */ public void findEmployee() { System.out.println("------查找員工------"); System.out.println("---請輸入員工姓名:---"); //設置一個boolean類型的flg標志,若查找不到則為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("查無此人,請重新輸入:"); findEmployee(); } } /** * 打印雇員信息 * @param args */ public void printEmployee(Employee em) { System.out.print(" 編號: " + em.getID()); System.out.print(" 姓名: " + em.getName()); System.out.print(" 職務: " + em.getJob()); System.out.print(" 請假天數(shù) : " + em.getHoliday()); //參數(shù):1.基本工資 2.請假天數(shù) double sum = em.sunSalary(em.getSalary(), em.getHoliday()); System.out.println(" 工資:" + sum); } public static void main(String[] args) { TestEMD te = new TestEMD(); //開始界面 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è)務選擇 label : while(true) { System.out.println("請選擇業(yè)務:"); 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; } } } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SpringBoot整合Mybatis與MybatisPlus方法詳細講解
這篇文章主要介紹了SpringBoot整合Mybatis與MybatisPlus方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能
這篇文章主要給大家介紹了關于springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能的相關資料,Spring?Boot和Vue.js是兩個非常流行的開源框架,可以用來構建Web應用程序,需要的朋友可以參考下2023-07-07java常見報錯:Array?Out?of?Bounds兩種解決辦法
這篇文章主要給大家介紹了關于java報錯Array?Out?of?Bounds的兩種解決辦法,Array out of bounds錯誤表示你嘗試訪問數(shù)組中不存在的索引,即索引小于零或者大于等于數(shù)組的大小,文中通過代碼將解決的辦法介紹的非常詳細,需要的朋友可以參考下2024-08-08SpringBoot集成Apache POI實現(xiàn)Excel的導入導出
Apache POI是一個流行的Java庫,用于處理Microsoft Office格式文件,包括Excel文件,本文主要介紹了SpringBoot集成Apache POI實現(xiàn)Excel的導入導出,具有一定的參考價值,感興趣的可以了解一下2024-06-06IntelliJ IDEA編譯項目報錯 "xxx包不存在" 或 "找不到符號"
這篇文章主要介紹了IntelliJ IDEA編譯項目報錯 "xxx包不存在" 或 "找不到符號" ,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08