以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谷歌发布全球最大视觉语言模型 近日,来…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
