员工管理系统要求如下:

通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为100。

实现页面:

添加员工

查找员工

修改员工

删除员工、退出

工程目录结构:

1.employee基类

/**

* @author 李广亮

*

*/

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;

}

}

2.普通员工类commonemployee

public class commonemployee extends employee {

/**

* 普通员工工资

* 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助

* @param 工资

* @param 请假天数

*/

@override

public double sunsalary(double salary, int holiday) {

double sum = salary + salary*0.1 + salary*0.5 + 200;

return sum - sum/30 * holiday;

}

}

3.经理manageremployee

public class manageremployee extends employee {

/**

* 经理工资

* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助

* @param 工资

* @param 请假天数

*/

@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 {

/**

* 经理工资

* 在基本工资的基础上增加20%的工作餐,50%的岗位补助,500元住房补助

* @param 工资

* @param 请假天数

*/

@override

public double sunsalary(double salary, int holiday) {

double sum = salary + salary*0.2 + salary*0.5 + 500;

return sum - sum/30 * holiday;

}

}

5.业务逻辑类testemd

/**

* @author 李广亮

*

*/

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标志,若查找不到则为false

boolean 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标志,若查找不到则为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("请输入员工职务(员工、经理、懂事):");

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标志,若查找不到则为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(" 请假天数 : " + 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("|----------------|");

system.out.println("|-----1. 增加 -----|");

system.out.println("|-----2. 删除 -----|");

system.out.println("|-----3. 修改 -----|");

system.out.println("|-----4. 查询 -----|");

system.out.println("|-----0. 退出 -----|");

system.out.println("|----------------|");

//业务选择

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;

}

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

java员工管理_员工管理系统java版相关推荐

  1. java出版社系统_图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段. ...

  2. 宿舍住宿管理java课程设计_宿舍管理系统Java课程设计

    宿舍管理系统Java课程设计 Java 课程设计设计(论文) 题目: 宿舍管理系统 所 在 院: 专 业 : 班 级 : 学 生 姓 名: 学 号: 指 导 教 师: 年 月 日课程设计(论文)任务书 ...

  3. java策略管理_详解Java编程中的策略模式

    策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式 ...

  4. 基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql)

    基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

  5. 基于javaweb的图书馆图书管理借阅书籍管理系统(java+ssm+jsp+html+mysql)

    基于javaweb的图书馆图书管理借阅书籍管理系统(java+ssm+jsp+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  6. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)

    参考链接: Java中的字符串类String 1 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 推荐阅读 第一季 0.Java的线程安全.单例模式.JVM内存结构等知识 ...

  7. java sql 工资管理,企业工资管理系统(Java+MySQL)Word版

    <企业工资管理系统(Java+MySQL)Word版>由会员分享,可在线阅读,更多相关<企业工资管理系统(Java+MySQL)Word版(24页珍藏版)>请在人人文库网上搜索 ...

  8. java相册管理_基于jsp的相册管理系统-JavaEE实现相册管理系统 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的相册管理系统, 该项目可用各类java课程设计大作业中, 相册管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. MySQL运动会管理系统_运动会管理系统(JAVA,JSP,SERVLET,SQLSERVER)

    运动会管理系统(JAVA,JSP,SERVLET,SQLSERVER)的设计与实现(毕业论文16000字以上共39页,程序代码,MySQL数据库) [运行环境]MyEclipse,JDK,TOMCAT ...

最新文章

  1. POJ值得做的题目(一)
  2. 10个让人厌烦的编程语言
  3. sql 函数 汉字转拼音
  4. nagios学习笔记(二)
  5. vue2使用$set()使对象新增属性后触发视图更新
  6. Django07:模板语法/标签/inclusion_tag/模版的继承
  7. 中国9大民居建筑,你都认识吗?
  8. python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?
  9. 山东省计算机春季高考大纲,2017年山东春季高考专业知识考试大纲.doc
  10. python语言标识符命名规则_python标识符命名规范是什么
  11. Nginx 限制单个IP的并发连接数及对每个连接速度(限速)
  12. 刷排名优优软件_QQ群排名技术原理
  13. 针对唯一化实例对话框程序,及其命令行操作方法
  14. android 渠道排名,安卓APP渠道效果统计***排名
  15. 三、GAMIT解算之分步处理
  16. fstream、ifstream、ofstream创建新文件
  17. LADY M过了自己的“赏味期限”?
  18. 研究生带28岁腼腆导师一起相亲,被女生围追堵截要微信!
  19. 谭浩强c语言课后习题笔记[1-4章]
  20. Spring Cloud Finchley OpenFeign的重试配置相关的坑

热门文章

  1. 企业邮箱邮件如何备份?公司邮件如何转发?
  2. 2019李永乐考研数学 基础过关660题 数学一
  3. 多线程进阶=》JUC并发编程
  4. 【thinkPhP】96PHPCN音乐电台(支持收听酷狗收费音乐)
  5. CFENet: An Accurate and Efficient Single-Shot Object Detector for Autonomous Driving
  6. 阿里云高新技术企业认定介绍及常见问题
  7. wireshark流量分析实战
  8. oracle 用户无限期,oracle永久密码和登录次数无限制设置
  9. Python学习之requests接口测试
  10. 实达lq1900kiiie linux驱动下载,实达 LQ-1900KIIIE驱动