分享一个Java Application的工资系统。
运行界面如下:
其他分类专栏也有一些其他的Java Web系统
点击分类专栏介绍查看
直接创建如下的5个Java类文件。
1.项目工程
2.CommonEmployee类
package study;import java.util.*;public class TestEMD {/*** len代表数组的当前下标*/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("请输入员工职务(员工、经理、懂事):");String job = sc.next(); System.out.print("请输入员工请假天数:");int holiday = sc.nextInt();System.out.print("请输入员工基本工资:");double salary = sc.nextDouble();//在此作一下逻辑判断,根据job的不同,创建不同的Employee子类if(job.equals("员工")) {em = new CommonEmployee();} else if(job.equals("经理")) {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后使用,变为emp[0]emp[++len] = em;printEmployee(emp[len]);System.out.println("添加成功!");}/*** 删除员工*/public void deleteEmployee() {System.out.println("------删除员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为falseboolean flg = false;String name = sc.next();for(int i=0; i<=len; i++) {//若查找成功,则把emp[i]数组后面的指针往前移一位,覆盖掉当前的指向对象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标志,若查找不到则为falseboolean 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("请输入员工职务(员工、经理、懂事):");emp[i].setJob(sc.next());System.out.print("请输入员工请假天数:");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();}}/*** 根据姓名查找雇员信息* @param args*/public void findEmployee() {System.out.println("------查找员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为falseboolean 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(" 请假天数 : " + em.getHoliday());//参数:1.基本工资 2.请假天数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("|-----1. 增加 -----|");System.out.println("|-----2. 删除 -----|");System.out.println("|-----3. 修改 -----|");System.out.println("|-----4. 查询 -----|");System.out.println("|-----0. 退出 -----|");//业务选择label : while(true) {System.out.println("请选择业务:");int select = sc.nextInt();switch (select) {case 1: //添加新雇员te.addEmployee();break;case 2: //删除雇员te.deleteEmployee();break;case 3: //修改雇员信息te.updateEmployee();break;case 4: //根据姓名查找雇员信息te.findEmployee();break;case 0: //退出System.out.println("退出成功!");break label;default:System.out.println("您输入的数字不正确!");break;}}}}
3.DirectorEmployee类
package study;public class DirectorEmployee extends Employee {/*** 经理工资* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助* @param 工资* @param 请假天数*/@Overridepublic double sunSalary(double salary, int holiday) {double sum = salary + salary*0.2 + salary*0.5 + 500;return sum - sum/30 * holiday;}}
4.Employee类
package study;public class Employee {/*** 成员属性:ID、姓名、职务、请假天数、基本工资*/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+ ", 请假天数:" + holiday + ", 工资:" + salary;}}
5.ManagerEmployee类
package study;public class ManagerEmployee extends Employee {/*** 经理工资* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助* @param 工资* @param 请假天数*/@Overridepublic double sunSalary(double salary, int holiday) {double sum = salary + salary*0.2 + salary*0.5 + 500;return sum - sum/30 * holiday;}}
6.TestEMD类(main class)
package study;import java.util.*;public class TestEMD {/*** len代表数组的当前下标*/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("请输入员工职务(员工、经理、懂事):");String job = sc.next(); System.out.print("请输入员工请假天数:");int holiday = sc.nextInt();System.out.print("请输入员工基本工资:");double salary = sc.nextDouble();//在此作一下逻辑判断,根据job的不同,创建不同的Employee子类if(job.equals("员工")) {em = new CommonEmployee();} else if(job.equals("经理")) {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后使用,变为emp[0]emp[++len] = em;printEmployee(emp[len]);System.out.println("添加成功!");}/*** 删除员工*/public void deleteEmployee() {System.out.println("------删除员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为falseboolean flg = false;String name = sc.next();for(int i=0; i<=len; i++) {//若查找成功,则把emp[i]数组后面的指针往前移一位,覆盖掉当前的指向对象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标志,若查找不到则为falseboolean 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("请输入员工职务(员工、经理、懂事):");emp[i].setJob(sc.next());System.out.print("请输入员工请假天数:");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();}}/*** 根据姓名查找雇员信息* @param args*/public void findEmployee() {System.out.println("------查找员工------");System.out.println("---请输入员工姓名:---");//设置一个boolean类型的flg标志,若查找不到则为falseboolean 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(" 请假天数 : " + em.getHoliday());//参数:1.基本工资 2.请假天数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("|-----1. 增加 -----|");System.out.println("|-----2. 删除 -----|");System.out.println("|-----3. 修改 -----|");System.out.println("|-----4. 查询 -----|");System.out.println("|-----0. 退出 -----|");//业务选择label : while(true) {System.out.println("请选择业务:");int select = sc.nextInt();switch (select) {case 1: //添加新雇员te.addEmployee();break;case 2: //删除雇员te.deleteEmployee();break;case 3: //修改雇员信息te.updateEmployee();break;case 4: //根据姓名查找雇员信息te.findEmployee();break;case 0: //退出System.out.println("退出成功!");break label;default:System.out.println("您输入的数字不正确!");break;}}}}