以java编写员工管理系统(测试过 无问题)
一、系统结果的部分展示
二、题目以及相关要求
三、组成
1.该系统由 Employee 类 、commonEmployee类、Testemd类和managerEmployee类组成
2.Employee实现的代码
public class Employee {private String id;private String name;private String job;private int holiday;private int baseSalary;public Employee(String id, String name, String job, int holiday, int baseSalary) {this.id = id;this.name = name;this.job = job;this.holiday = holiday;this.baseSalary = baseSalary;}public Employee() {}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 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 int getbaseSalary() {return baseSalary;}public void setbaseSalary(int baseSalary) {this.baseSalary = baseSalary;}public double sumCommonEmployeeSalary(int baseSalary,int holiday){ return baseSalary + baseSalary * 0.1 + baseSalary * 0.5 + 200 -(baseSalary / 20)*holiday ; }public double sumManagerEmployeeSalary(int baseSalary,int holiday){ return baseSalary + baseSalary*0.2 + baseSalary * 0.5 + 500 - (baseSalary / 20)*holiday;}public String toString(int baseSalary,int holiday,String ids ) {if (ids.equals("员工")) {return "编号为:" + getId() + " 姓名为:" + getName() + " 职务为:" + getJob() + " 请假天数为:" + getHoliday() + "天 " + getName() + "的薪资为:" + sumCommonEmployeeSalary(getbaseSalary(), getHoliday()) + "元";} else {return "编号为:" + getId() + " 姓名为:" + getName() + " 职务为:" + getJob() + " 请假天数为:" + getHoliday() + " 天 " + getName() + "的薪资为:" + sumManagerEmployeeSalary(getbaseSalary(), getHoliday()) + "元";}}}
3. commonEmployee类的实现:
public class Commonemployee extends Employee {public Commonemployee(String id, String name, String job, int holiday, int baseSalary) {super(id, name, job, holiday, baseSalary);}public Commonemployee() {}}
4.managerEmployee类的实现:
public class Manageremployee extends Employee{public Manageremployee(String id, String name, String job, int holiday, int baseSalary) {super(id, name, job, holiday, baseSalary);}public Manageremployee() {}}
5.Testemd类的实现:
package chapter03;import java.util.ArrayList;
import java.util.Scanner;public class Testemd {public static void main(String[] args) {Employee e = new Employee();ArrayList<Employee> list = new ArrayList<>();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("|------------- 0. 退出 ---------|");System.out.println("|------------------------------------|");System.out.print("请选择业务:");Scanner sc = new Scanner(System.in);int selectChoice = sc.nextInt();switch (selectChoice) {case 1:addEmployee(list);break;case 2:deleteEmployee(list);break;case 3:modEmployee(list);break;case 4:displayEmployee(list);break;case 5:selectEmployee(list);break;case 0:System.out.println("感谢您的使用!");System.exit(0);break;default:System.out.println("您输入的选项有误,请您重新输入!");break;}}}//添加人员public static void addEmployee(ArrayList<Employee> list){Scanner sc = new Scanner(System.in);String id ;while (true){System.out.print("请输入职工编号:");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("请输入职工的基本工资:");int baseSalary = sc.nextInt();if( job.equals("员工")){Commonemployee ce = new Commonemployee();ce.setId(id);ce.setName(name);ce.setHoliday(holiday);ce.setJob(job);ce.setbaseSalary(baseSalary);String info = ce.toString(baseSalary,holiday,id);System.out.println(info);//将新增加的员工报存到集合中list.add(ce);System.out.println("添加成功!");//测试System.out.println("调用了添加员工的函数");break;}else if(job.equals("经理")){Manageremployee me = new Manageremployee();me.setId(id);me.setName(name);me.setHoliday(holiday);me.setJob(job);me.setbaseSalary(baseSalary);String info = me.toString(baseSalary,holiday,id);System.out.println(info);//将新增的员工报存到集合中去list.add(me);System.out.println("添加成功!");//测试System.out.println("调用了添加经理的函数");break;}else {System.out.println(" 您输入的有误!请您输入 员工 / 经理 ");}}}//删除操作public static void deleteEmployee(ArrayList<Employee> list){Scanner sc = new Scanner(System.in);System.out.print("请输入删除的职工号");String id = sc.next();int isExist = -1;for(int i= 0;i < list.size();i++){Employee e = list.get(i);if (e.getId().equals(id)){isExist = i;break;}}if (isExist != -1){list.remove(isExist);System.out.println("删除成功!");System.out.println("被删除的职工号为:" );}else{System.out.println("输入有误!");}}//修改操作public static void modEmployee(ArrayList<Employee>list){Scanner sc = new Scanner(System.in);System.out.println("请输入修改的职工号:");String id= sc.next();int index = -1;for(int i = 0; i < list.size();++i){Employee e = list.get(i);if (e.getId().equals(id)){index = i;break;}}if (index ==-1){System.out.println("改职工不存在!请重新输入");}else {System.out.print("请输入修改职工工姓名:");String name = sc.next();System.out.print("请输入修改职工职务(员工/经理):");String job = sc.next();System.out.print("请输入原职工请假天数:");int holiday = sc.nextInt();System.out.print("请输入职工基本工资:");int baseSalary = sc.nextInt();if (job.equals("员工")){Commonemployee ce = new Commonemployee();ce.setId(id);ce.setName(name);ce.setHoliday(holiday);ce.setJob(job);ce.setbaseSalary(baseSalary);String info = ce.toString();list.set(index,ce);System.out.println("修改成功!");}else if(job.equals("经理")){Manageremployee me = new Manageremployee();me.setId(id);me.setName(name);me.setHoliday(holiday);me.setJob(job);me.setbaseSalary(baseSalary);String info = me.toString();System.out.println(info);list.set(index,me);System.out.println("修改成功!");}}}//显示操作public static void displayEmployee(ArrayList<Employee> list ){if(list.size() ==0){System.out.println("当前列表没有任何信息,请输入信息后再操作");}else {for (int i = 0; i < list.size();++i){Employee e = list.get(i);if(e.getId().equals("员工")){System.out.println("编号为:"+e.getId() +" 姓名为:" + e.getName() + " 职务为:" +e.getJob() + " 假期天数为:" + e.getHoliday() +" 天 薪资为:" +e.sumCommonEmployeeSalary(e.getbaseSalary(), e.getHoliday())+"元");} else{System.out.println("编号为:"+e.getId() +" 姓名为:" + e.getName() + " 职务为:" +e.getJob() + " 假期天数为:" + e.getHoliday() +"天 薪资为:" +e.sumManagerEmployeeSalary(e.getbaseSalary(), e.getHoliday())+"元");}}}}//查询操作public static void selectEmployee(ArrayList<Employee>list){while(true) {boolean flag = false;Scanner sc = new Scanner(System.in);if (list.size() == 0) {System.out.println("当前列表没有任何信息,请输入信息后再操作");} else {System.out.print("输入查询的职工号:");String id = sc.next();for (int i = 0; i < list.size(); i++) {Employee e = list.get(i);if (e.getId().equals(id)) {System.out.println(e.toString(e.getbaseSalary(), e.getHoliday(),e.getId()));flag = true;break;}}if (flag==true){break;}System.out.println("输入的编号有错误!请重新输入!");}}}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- 分割线 -------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------
四、Congratulation:
1.首先恭喜你,是一个有进取心的人,想知道事情的底层或者原理
五、详细解释
1.对于Employee类的详解
Employee类前面的基本的JavaBean就不谈了(不知道什么是基本JavaBean去http://www.baidu.com),主要的是在求解不同类的工资时,投了一个小巧,由于commonEmployee类和managerEmployee类均是extends与Employee类的,所以在可以依据输入的职业来判断是员工还是经理,是员工直接调用sumCommonEmoployeeSalary函数否则调用sumManagerEmployeeSalary函数,然后计算相关金额,toString函数很简单就是输出相关信息。
2.对于commonEmployee类和managerEmployee类的详解
太简单了!不讲了
3.对于Testemd类的详解
该类为测试类.................(看不懂的在评论区问,懒得写了)
六、comefrom(cdcas)
相关文章:

以java编写员工管理系统(测试过 无问题)
一、系统结果的部分展示 二、题目以及相关要求 三、组成 1.该系统由 Employee 类 、commonEmployee类、Testemd类和managerEmployee类组成 2.Employee实现的代码 public class Employee {private String id;private String name;private String job;private int holiday…...

单例模式之懒汉式
在上篇文章中,我们讲了单例模式中的饿汉式,今天接着来讲懒汉式。 1.懒汉式单例模式的实现 public class LazySingleton {private static LazySingleton instance null;// 让构造函数为private,这样该类就不会被实例化private LazySingleto…...

1638_chdir函数的功能
全部学习汇总:GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 今天看一个半生不熟的小函数,chdir。说半生不熟,是因为这个接口一看就知道是什么功能。然而,这个接口如何用可真就没啥想法了。 …...
使用CEF 获得某头条请求,并生成本地文件的方法
目录 一、获得网站请求响应信息 1、响应过滤 2、匹配过滤URL的函数 3、获得请求响应后的处理...
二十、Django-restframework之视图集和路由器
一、视图集和路由器 REST框架包含了一个处理视图集的抽象,它允许开发人员集中精力建模API的状态和交互,并根据通用约定自动处理URL构造。 视图集类与视图类几乎相同,不同之处在于它们提供的是retrieve或update等操作,而不是get或…...
[深入理解SSD系列 闪存实战2.1.2] SLC、MLC、TLC、QLC、PLC NAND_固态硬盘闪存颗粒类型
闪存最小物理单位是 Cell, 一个Cell 是一个晶体管。 闪存是通过晶体管储存电子来表示信息的。在晶体管上加入了浮动栅贮存电子。数据是0或1取决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1. SSD 根据闪存颗粒区分,固态硬盘有SLC、MLC、TLC、QLC、PLC 五种类型…...

论文阅读-MGTAB: A Multi-Relational Graph-Based Twitter Account DetectionBenchmark
目录 摘要 1. 引言 2. 相关工作 2.1. 立场检测 2.2.机器人检测 3.数据集预处理 3.1.数据收集和清理 3.2.专家注释 3.3. 质量评估 3.4.特征分析 4. 数据集构建 4.1.特征表示构造 4.2.关系图构建 5. 实验 5.1.实验设置 5.2.基准性能 5.3训练集大小的研究 5.4 社…...

基于libco的c++协程实现(时间轮定时器)
在后端的开发中,定时器有很广泛的应用。 比如: 心跳检测 倒计时 游戏开发的技能冷却 redis的键值的有效期等等,都会使用到定时器。 定时器的实现数据结构选择 红黑树 对于增删查,时间复杂度为O(logn),对于红黑…...
java多线程与线程池-04线程池与AQS
第7章 线程池与AQS java.util.concurrent包中的绝大多数同步工具,如锁(locks)和屏障(barriers)等,都基于AbstractQueuedSynchronizer(简称AQS)构建而成。这个框架提供了一套同步管理的通用机制,如同步状态的原子性管理、线程阻塞与解除阻塞,还有线程排队等。 在JD…...
优化模型验证关键代码25:样本均值近似技术处理两阶段随机旅行商问题及Gurobipy代码验证
大多数数学规划模型都会考虑到研究问题中存在的不确定性,针对这些不确定性,两种常用的处理方法是鲁棒优化和随机规划。这篇论文我们关注后者,也就是两阶段随机旅行商问题;利用套期保值算法计算不同规模TSP的可行解,同时比较了样本均值近似技术的解的情况,并计算了该问题的…...

老爸:“你做的什么游戏测试简直是不务正业!”——我上去就是一顿猛如虎的解释。
经常有人问我:游戏测试到底是干什么呢?是游戏代练?每天玩游戏?装备随便造,怪物随便秒,线上GM指令随便用?可以每天玩玩游戏,不用忙工作,太爽了?有时朋友不理解…...
JVM垃圾回收调优知识点整理
目录 1、JVM内存模型 1.2、堆及垃圾回收 1.3、JVM参数设置经验: 1.4、对象逃逸分析:...

linux安装mysql-8.0.31
1)、下载mysql-8.0.31压缩包两种方式 a.本地下载后上传服务器解压,下载地址:https://downloads.mysql.com/archives/community/ b.服务器使用命令下载,注意:路径在那,就下载到那个位置。 wget https://dev.mysql.com/…...

2023 年会是网络安全的关键年吗?
过去 12 个月对网络安全领域和周围的每个人来说再次充满挑战。和往年不同,感觉很不一样,攻击源源不断。过去,大型漏洞每季度发生一次,但在过去一年中,在某些情况下,我们几乎每周都会处理严重漏洞。 已知利…...

【深度强化学习】(1) DQN 模型解析,附Pytorch完整代码
大家好,今天和各位讲解一下深度强化学习中的基础模型 DQN,配合 OpenAI 的 gym 环境,训练模型完成一个小游戏,完整代码可以从我的 GitHub 中获得: https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Mod…...

Nginx服务优化与防盗链
目录 1.隐藏nginx版本号 1.查看版本号 2.隐藏版本信息 2.修改用户与组 3.缓存时间 4.日志分割 5.连接超时 6.更改进程数 7.网页压缩 8.配置防盗链 1.配置web源主机(192.168.156.10 www.lhf.com) 2.配置域名映射关系 3.配置盗链主机 ࿰…...
npm与yarn常用命令
npm npm -v:查看 npm 版本npm init:初始化后会出现一个 Package.json 配置文件,可以在后面加上 -y,快速跳到问答界面npm install:会根据项目中的 package.json 文件自动给下载项目中所需的全部依赖npm insall 包含 --…...

【C++】C++11新特性——右值引用
文章目录一、左值引用、 右值引用1.1 左值与右值1.2 左值引用1.3 右值引用二、右值引用的意义三、移动语句3.1 移动构造3.2 移动赋值3.3 总结四、move问题五、完美转发5.1 万能引用与折叠5.2 完美转发std::forward一、左值引用、 右值引用 1.1 左值与右值 我们经常能听到左值…...
C#基础教程21 正则表达式
文章目录 简介正则表达式语法字符集元字符转义字符量词贪婪匹配和非贪婪匹配正则表达式类Regex类Match方法Matches方法简介 正则表达式是一种描述字符串模式的语言,它可以用来匹配、查找、替换字符串中的模式。在C#中,我们可以使用System.Text.RegularExpressions命名空间下的…...

聚观早报|谷歌发布最大视觉语言模型;王兴投资王慧文ChatGPT项目
今日要闻:谷歌发布全球最大视觉语言模型;马斯克预计Twitter下季度现金流转正;王兴投资王慧文ChatGPT项目;美国拟明年 11 月开展载人绕月飞行;慧与科技宣布收购Athonet谷歌发布全球最大视觉语言模型 近日,来…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...