员工管理系统数组版

第一部分 案例描述

案例目的

学习面向对象的主要特征和基本概念,包括类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字等。

案例难度

★★★

案例覆盖技能点

1、  流程控制语句

2、  类、对象

3、  封装、继承、多态

4、  方法的重载、重写

5、  访问修饰符

6、  static、finally

适用课程和对象

JAVA面向对象编程基础

第二部分  需求和开发环境

使用技术和开发环境

JEclipse3.0或以上、JDK7.0或以上

案例需求

需求说明:

员工信息的基本情况

普通员工

属性:员工编号、员工姓名、员工职务、请假天数、基本工资

普通员工工资:

在基本工资的基础上增加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.增加董事长

三、 删除

四、 修改

4、查询

系统基本模块包括:

功能点

难度

备注

父类Employee类的创建

★★★

 

三个子类:CommonEmployee类,Manager类和Director类的创建

★★★

 

管理类TestEMD类——增加

★★★★

 

管理类TestEMD类——删除

★★★★

 

管理类TestEMD类——修改

★★★★

 

管理类TestEMD类——查询

★★★★

 

项目类汇总

//源代码

package com.hp.employees;public class Employee {private String id;private String name;private String position;private int holiday;private double salary;/** 创建类的时候如果自己没有写构造方法,* 系统提供一个默认的无参构造方法*/public Employee(){}如不写 系统会提供默认的构造函数/** 重载*/public Employee(String id,String name,String position,int holiday,double salary){this.id=id;this.name=name;this.position=position;this.holiday=holiday;this.salary=salary;   }/** 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;}public void setSalary(double salary) {this.salary = salary;}/** 工资计算方式*/public double sumSalary(int holiday){return 1;}/** 显示详细信息*/public void display(){System.out.println("编号: "+this.id+" 姓名: "+this.name+" 职务: "+this.position+" 请假天数:"+this.holiday+" 工资: "+this.sumSalary(this.holiday));}}

//普通员工类

package com.hp.employees;public class CommonEmployee extends Employee {
/** 构造方法*/public CommonEmployee(String id,String name,String position,int holiday,double salary){super(id, name, position, holiday, salary);this.setId(id);this.setName(name);this.setPosition(position);this.setHoliday(holiday);this.setSalary(salary);}/** 重写父类工资计算方法*/public double sumSalary(int holiday){return (this.getSalary()*1.6+200)/30*(30-this.getHoliday());}}

//经理类

package com.hp.employees;public class Manager extends Employee{
/** 构造方法*/public Manager(String id,String name,String position,int holiday,double salary){this.setId(id);this.setName(name);this.setPosition(position);this.setHoliday(holiday);this.setSalary(salary);}/** 重写父类工资计算方法*/public double sumSalary(int holiday){return (this.getSalary()*1.7+500)/30*(30-this.getHoliday());}
}

//董事长类

package com.hp.employees;public class Director extends Employee{/** 构造方法*/public Director(String id,String name,String position,int holiday,double salary){this.setId(id);this.setName(name);this.setPosition(position);this.setHoliday(holiday);this.setSalary(salary);}/** 重写父类工资计算方法*/public double sumSalary(int holiday){return (this.getSalary()*1.38+2000+3000)/30*(30-this.getHoliday());}
}

//测试类

package com.hp.employees;import java.util.Scanner;public class TestEMD {/** 成员属性*/public static Employee[] ems=new Employee[100];public static int maxIndex=-1;/** 增加*/public static void addEmplyee(){Scanner sc=new Scanner(System.in);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();if(position.equals("普通员工")){Employee newOne=new CommonEmployee(id, name, position, holiday, salary);System.out.println("增加数据成功");newOne.display();maxIndex++;ems[maxIndex]=newOne;}else if(position.equals("经理")){Employee newOne=new Manager(id, name, position, holiday, salary);System.out.println("增加数据成功");newOne.display();maxIndex++;ems[maxIndex]=newOne;}else if(position.equals("董事长")){Employee newOne=new Director(id, name, position, holiday, salary);System.out.println("增加数据成功");newOne.display();maxIndex++;ems[maxIndex]=newOne;}else{System.out.println("你所输入的职务不存在");}}/** 删除*/public static void delEmployee(){Scanner sc= new Scanner(System.in);System.out.println("请输入要删除的员工姓名");String delName=sc.next();boolean b1=false;for(int i=0;i<=maxIndex;i++){if(ems[i].getName().equals(delName)){ems[i].display();System.out.println("删除数据成功");for(;i<=maxIndex;i++){ems[i]=ems[i+1];b1=true;maxIndex--;}}}if(!b1){System.out.println("你要删除的人不存在");}}/** 修改*/public static void updateEmployee(){Scanner sc=new Scanner(System.in);System.out.println("请输入你要修改的员工姓名");String updateName=sc.next();boolean b1=false;for(int i=0;i<=maxIndex;i++){if(ems[i].getName().equals(updateName)){ems[i].display();System.out.println("请重新输入员工信息");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();if(position.equals("普通员工")){Employee newOne=new CommonEmployee(id, name, position, holiday, salary);System.out.println("修改数据成功");newOne.display();ems[i]=newOne;}else if(position.equals("经理")){Employee newOne=new Manager(id, name, position, holiday, salary);System.out.println("修改数据成功");newOne.display();ems[i]=newOne;}else if(position.equals("董事长")){Employee newOne=new Director(id, name, position, holiday, salary);System.out.println("修改数据成功");newOne.display();ems[i]=newOne;}else{System.out.println("你所输入的职务不存在");}}}}/** 查找*/public static void queryEmployee(){Scanner sc=new Scanner(System.in);System.out.println("请输入员工姓名");String name=sc.next();boolean b1=false;for(int i=0;i<=maxIndex;i++){if(ems[i].getName().equals(name)){ems[i].display();b1=true;}}if(!b1){System.out.println("你要查找的人不存在");}}/** main方法*/public static void main(String[] args) {// TODO Auto-generated method stub
/** 业务选择界面* */Scanner sc=new Scanner(System.in);while(true){System.out.println("|--------------|");System.out.println("|----1 增加-----|");System.out.println("|----2 删改-----|");System.out.println("|----3 修改-----|");System.out.println("|----4 查询-----|");System.out.println("|----5 退出-----|");System.out.println("|--------------|");System.out.println("请选择业务:");int choose=sc.nextInt();/** switch语句*/switch(choose){case 1:addEmplyee();break;case 2:delEmployee();break;case 3:updateEmployee();break;case 4:queryEmployee();break;case 5:System.exit(0);default:System.out.println("你所需的业务不存在,重新输入");}    }}
}

java 员工管理系统相关推荐

  1. java员工管理系统实验报告_java员工管理系统实验报告怎么写?员工管理系统的风险控制有哪些?...

    员工管理系统在设计好后,要先试运行,实验成功后,才可以使用的.那大家知道java员工管理系统实验报告怎么写吗?还有,员工管理系统的风险控制有哪些呢?下面就让小编带大家一起来了解一下吧. java员工管 ...

  2. java员工管理系统代码_员工管理系统JAVA源码(源码大小8M)

    员工管理系统JAVA源码(源码大小8M) 本站提供几百套大型商业源码,平均一元一套,火爆下载中...... QQ:283072.283672 EMAIL:web@hur.cn.jhwjeffrey@1 ...

  3. Java员工管理系统(控制台输出)

    今天上午看完阅兵,爽,解放军太帅了!虽然现在是个小鲜肉横行的时代,但国家危亡的关键时刻还是得靠军人和社会的中流砥柱. 还有在网上看到"叠被子.走方队能把敌人叠死.走死吗",&quo ...

  4. [Java] 员工管理系统

    声明:为了锻炼我的Java工程能力,我决定从头开始学习一遍Java全家桶.

  5. Java入门--员工管理系统

    Java员工管理系统 需求 思路 定义员工类 主界面编写 查看员工的代码编写 新增员工代码的编写 判断工号是否被使用 修改员工代码的编写 删除员工的代码编写 需求 编写一个控制台版本的员工管理系统,员 ...

  6. java 管理系统 注释_员工管理系统--带注释--oracle系统--java项目

    [实例简介] 员工管理系统--带注释--oracle系统--java项目 [实例截图] [核心代码] 31a0847e-5da9-43d6-b402-f60390d0396d └── person_M ...

  7. JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构 ...

  8. 基于Java毕业设计智创员工管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计智创员工管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智创员工管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  9. [附源码]计算机毕业设计JAVA企业员工管理系统

    [附源码]计算机毕业设计JAVA企业员工管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  10. 计算机毕业设计之java+springboot基于vue的人事管理系统-员工管理系统

    计算机毕业设计之java+springboot基于vue的人事管理系统-员工管理系统 项目介绍 系统权限按管理员和员工这两类涉及用户划分. (a)管理员:管理员使用本系统涉到的功能主要有:首页,个人中 ...

最新文章

  1. 机器视觉边缘检测算法详解
  2. H - Fibonacci POJ - 3070 (矩阵快速幂)
  3. Microbiome:地球上有多大比例的原核生物已经被测序了基因组?
  4. 4.15第8周 第一节
  5. django-admin.py 不是内部或外部命令
  6. .net get set 初始化_RAM初始化的下板验证(Xilinx)
  7. ES6新特性之class类的基本语法
  8. 吐血整理:C#顺序、选择、循环结构用法与案例,这一篇就够了!
  9. python读txt转array_python将txt文件读入为np.array的方法
  10. python求助神器_python三大神器
  11. 八分音符(频率)卷积算子 Octave Convolution
  12. 下血本了!京东宣布未来三年向湖北投资,助力经济恢复
  13. 智能数据引擎Dataphin重磅发布,提供一站式的技术管理能力
  14. Golang里的Future/Promise
  15. Session 'app': Error Launching activity
  16. 小飞鱼通达二开 致远OA启动时报错“无法初始化数据库连接池,系统无法启动”的问题处理(图文)
  17. 解决Vscode Unable to start debugging
  18. secureCRT无法输入
  19. java网课|File类递归
  20. ABAP RFC远程调用

热门文章

  1. Android 矢量图动画(完结篇)
  2. mysql 2008 安装图解_SQL Server 2008 安装图文教程
  3. ata计算机模拟考试系统,滨湖教育在线模拟考试系统
  4. Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
  5. 服务器msdtc没有安全显示项,MSDTC 问题疑难解答 - BizTalk Server | Microsoft Docs
  6. 游戏计算机重要参数,这真的很重要吗 游戏鼠标三大参数之谜
  7. 硬件编解码与软件编解码的区别
  8. B2B跨境电子商务平台综合服务解决方案 1
  9. 推荐几个适合 新手学习 软件逆向 脱壳破解 的网站
  10. PopWindow使用实战