员工管理系统数组版
来源:互联网 发布:谷歌学术镜像 知乎 编辑:程序博客网 时间:2024/04/29 17:06
第一部分 案例描述
案例目的
学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字等。
案例难度
★★★
案例覆盖技能点
1、 流程控制语句
2、 类、对象
3、 封装、继承、多态
4、 方法的重载、重写
5、 访问修饰符
6、 static、finally
适用课程和对象
JAVA面向对象编程基础
第二部分需求和开发环境
需求说明:
员工信息的基本情况
普通员工
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
普通员工工资:
在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助
基本工资+基本工资*0.1+基本工资*0.5+200
经理
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
经理工资:
在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助
基本工资+基本工资*0.2+基本工资*0.5+500
董事
属性:员工编号、员工姓名、员工职务、请假天数、基本工资
董事工资:
在基本工资的基础上增加8%的工作餐,30%的岗位补助,2000元住房补助,3000元投资补助
基本工资+基本工资*0.08+基本工资*0.3+2000+3000
工资扣除部分,所有员工都一样
无请假,基本工资全发,有请假,扣除每天平均工资 * 请假天数
通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为100,业务流程如下
一、 启动业务选择界面
二、 增加员工
1.增加普通员工
2.增加经理
3.增加董事长
三、 删除
四、 修改
五、查询
系统基本模块包括:
项目类汇总
代码:
Employee类
public class Employee {//成员属性private String id;private String name;private String position;private int holiday;private double salary;//构造方法public Employee(String id, String name, String position, int holiday,double salary) {super();this.id = id;this.name = name;this.position = position;this.holiday = holiday;this.salary = salary;}//工资计算方法public double sumSalary(){return salary-salary/30*holiday;}//显示详细信息public void display(){}//get,set方法public String getID() {return id;}public void setID(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPosition() {return position;}public void setPosition(String position) {this.position = position;}public int getHoliday() {return holiday;}public void setHoliday(int holiday) {this.holiday = holiday;}public double getSalary() {return salary-salary/30*holiday;}//public void setSalary(double salary) {this.salary = salary;}}
CommonEmployee类
public class CommonEmployee extends Employee {private double commonSalary;public CommonEmployee(String id, String name, String position, int holiday,double salary) {super(id, name, position, holiday, salary);commonSalary=0;}@Overridepublic void display() {System.out.println("编号:"+super.getID()+",姓名:"+super.getName()+",职位:"+super.getPosition()+",请假天数:"+super.getHoliday()+",工资:"+sumSalary());}@Override/** * 普通员工工资计算方法 * 普通员工工资: * 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助 * 基本工资+基本工资*0.1+基本工资*0.5+200 */public double sumSalary() {double baseSalary = super.getSalary();commonSalary = baseSalary + baseSalary*0.1 + baseSalary*0.5 + 200;return commonSalary;}}
Director类
public class Director extends Employee {private double directorCalary;public Director(String id, String name, String position, int holiday,double salary) {super(id, name, position, holiday, salary);directorCalary=0;}@Overridepublic void display() {System.out.println("编号:"+super.getID()+",姓名:"+super.getName()+",职位:"+super.getPosition()+",请假天数:"+super.getHoliday()+",工资:"+sumSalary());}@Override/** * 董事工资: * 在基本工资的基础上增加8%的工作餐,30%的岗位补助,2000元住房补助,3000元投资补助 * 基本工资+基本工资*0.08+基本工资*0.3+2000+3000 */public double sumSalary() {double baseSalary = super.getSalary();directorCalary = baseSalary + baseSalary*0.08 + baseSalary*0.3 + 2000 + 3000;return directorCalary;}}
Manager类
public class Manager extends Employee {private double managerCalary;public Manager(String id, String name, String position, int holiday,double salary) {super(id, name, position, holiday, salary);managerCalary=0;}@Overridepublic void display() {System.out.println("编号:"+super.getID()+",姓名:"+super.getName()+",职位:"+super.getPosition()+",请假天数:"+super.getHoliday()+",工资:"+sumSalary());}@Override/** * 经理工资: * 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助 * 基本工资+基本工资*0.2+基本工资*0.5+500 */public double sumSalary() {double baseSalary = super.getSalary();managerCalary = baseSalary + baseSalary*0.2 + baseSalary*0.5 + 500;return managerCalary;}}
TestEMD类
import java.util.Scanner;public class TestEMD {static Scanner sc = new Scanner(System.in);static Employee[] ems = new Employee[100];static int i = 0;static int maxEmployee = -1;public static void main(String[] args) {start();}/** * start */public static void start(){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("丨-----------丨");System.out.println("请选择业务:");int choose = sc.nextInt();switch (choose) {case 1://增加addEmployee();break;case 2://删除delEmployee();break;case 3://修改updateEmployee();break;case 4://查找queryEmployee();break;case 0://退出sc.close();System.exit(0);System.out.println("已退出程序!");break;default:System.out.println("请输入正确的格式!");start();break;}}/** * 添加员工 */public static void addEmployee(){System.out.println("请输入员工编号:");String id = sc.next();System.out.println("请输入员工姓名:");String name = sc.next();System.out.println("请输入员工职务(普通员工,经理,董事长):");String position = sc.next();System.out.println("请输入请假天数:");int holiday = sc.nextInt();System.out.println("请输入员工基本工资:");double salary = sc.nextDouble();switch (position) {case "普通员工":ems[++maxEmployee] = new CommonEmployee(id, name, position, holiday, salary);ems[maxEmployee].display();break;case "经理":ems[++maxEmployee] = new Manager(id, name, position, holiday, salary);ems[maxEmployee].display();break;case "董事长":ems[++maxEmployee] = new Director(id, name, position, holiday, salary);ems[maxEmployee].display();break;default:break;}System.out.println("已存记录:");for (int i = 0;i <= maxEmployee;i++) {ems[i].display();}start();}/** * 删除员工 */private static void delEmployee() {System.out.println("请输入删除员工姓名:");String name = sc.next();for (int i = 0; i <= maxEmployee; i++) {if(name.equals(ems[i].getName())){ems[i].display();System.out.println("确认删除?(1.是2.否)");int n = sc.nextInt();if(n == 1){for(int j=i;j<maxEmployee;j++){ems[j]=ems[j+1];}maxEmployee--;System.out.println("删除成功");start();}else{start();}}}System.out.println("无此员工");start();}/** * 修改员工 */private static void updateEmployee() {System.out.println("请输入修改员工姓名:");String name = sc.next();for (int i = 0; i <= maxEmployee; i++) {if(name.equals(ems[i].getName())){ems[i].display();System.out.println("请重新输入:");System.out.println("请输入员工编号:");String id = sc.next();System.out.println("请输入员工职务(普通员工,经理,董事长):");String position = sc.next();System.out.println("请输入请假天数:");int holiday = sc.nextInt();System.out.println("请输入员工基本工资:");double salary = sc.nextDouble();switch (position) {case "普通员工":ems[i] = new CommonEmployee(id, name, position, holiday, salary);break;case "经理":ems[i] = new Manager(id, name, position, holiday, salary);break;case "董事长":ems[i] = new Director(id, name, position, holiday, salary);break;default:System.out.println("职位输入错误,退出程序");break;}ems[i].display();System.out.println("修改成功!");start();}}}/** * 查询员工 */private static void queryEmployee() {System.out.println("请输入查询员工姓名:");String name = sc.next();for (int i = 0; i <= maxEmployee; i++) {if(name.equals(ems[i].getName())){ems[i].display();start();}}System.out.println("无此员工");start();}}
0 0
- 员工管理系统数组版
- 员工管理系统数组版
- 员工管理系统(数组)
- 员工管理系统数组版-要求
- 员工管理系统(数组版)
- 员工管理系统数组版-建立员工类
- 员工管理系统数组版-建立普通员工、经理、董事长类
- 员工管理系统(集合版)
- 员工管理系统Android版
- 员工管理系统Map版
- 员工管理系统List版
- 员工管理系统数组版-方法的构建以及在主程序中的调用
- Java实现员工管理系统(对象数组存储)
- 员工管理系统集合框架版
- 员工考勤管理系统
- 员工管理系统
- 课程设计----员工管理系统
- 员工管理系统
- http 请求获取页面内容
- 1197 -- 曹冲称象
- Android APK反编译就这么简单 详解(附图)
- html经验
- BAT面试班本周末开课,百度面官传授面试技巧!
- 员工管理系统数组版
- 次世代游戏贴图介绍
- 1198 -- 排排队
- 分享插件 jiaThis
- photoshop中RGB与LAB空间的相互转换
- TI的BLE低功耗蓝牙介绍
- 求无向连通图的割点
- 1199 -- 蛋疼的Plato
- go1.5 动态密码,最简单的实现使用hmac加密