当前位置: 首页 > news >正文

以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…...

单例模式之懒汉式

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

1638_chdir函数的功能

全部学习汇总&#xff1a;GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 今天看一个半生不熟的小函数&#xff0c;chdir。说半生不熟&#xff0c;是因为这个接口一看就知道是什么功能。然而&#xff0c;这个接口如何用可真就没啥想法了。 …...

使用CEF 获得某头条请求,并生成本地文件的方法

目录 一、获得网站请求响应信息 1、响应过滤 2、匹配过滤URL的函数 3、获得请求响应后的处理...

二十、Django-restframework之视图集和路由器

一、视图集和路由器 REST框架包含了一个处理视图集的抽象&#xff0c;它允许开发人员集中精力建模API的状态和交互&#xff0c;并根据通用约定自动处理URL构造。 视图集类与视图类几乎相同&#xff0c;不同之处在于它们提供的是retrieve或update等操作&#xff0c;而不是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++协程实现(时间轮定时器)

在后端的开发中&#xff0c;定时器有很广泛的应用。 比如&#xff1a; 心跳检测 倒计时 游戏开发的技能冷却 redis的键值的有效期等等&#xff0c;都会使用到定时器。 定时器的实现数据结构选择 红黑树 对于增删查&#xff0c;时间复杂度为O(logn)&#xff0c;对于红黑…...

java多线程与线程池-04线程池与AQS

第7章 线程池与AQS java.util.concurrent包中的绝大多数同步工具,如锁(locks)和屏障(barriers)等,都基于AbstractQueuedSynchronizer(简称AQS)构建而成。这个框架提供了一套同步管理的通用机制,如同步状态的原子性管理、线程阻塞与解除阻塞,还有线程排队等。 在JD…...

优化模型验证关键代码25:样本均值近似技术处理两阶段随机旅行商问题及Gurobipy代码验证

大多数数学规划模型都会考虑到研究问题中存在的不确定性,针对这些不确定性,两种常用的处理方法是鲁棒优化和随机规划。这篇论文我们关注后者,也就是两阶段随机旅行商问题;利用套期保值算法计算不同规模TSP的可行解,同时比较了样本均值近似技术的解的情况,并计算了该问题的…...

老爸:“你做的什么游戏测试简直是不务正业!”——我上去就是一顿猛如虎的解释。

经常有人问我&#xff1a;游戏测试到底是干什么呢&#xff1f;是游戏代练&#xff1f;每天玩游戏&#xff1f;装备随便造&#xff0c;怪物随便秒&#xff0c;线上GM指令随便用&#xff1f;可以每天玩玩游戏&#xff0c;不用忙工作&#xff0c;太爽了&#xff1f;有时朋友不理解…...

JVM垃圾回收调优知识点整理

目录 1、JVM内存模型 1.2、堆及垃圾回收 1.3、JVM参数设置经验: 1.4、对象逃逸分析:...

linux安装mysql-8.0.31

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

2023 年会是网络安全的关键年吗?

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

【深度强化学习】(1) DQN 模型解析,附Pytorch完整代码

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

Nginx服务优化与防盗链

目录 1.隐藏nginx版本号 1.查看版本号 2.隐藏版本信息 2.修改用户与组 3.缓存时间 4.日志分割 5.连接超时 6.更改进程数 7.网页压缩 8.配置防盗链 1.配置web源主机&#xff08;192.168.156.10 www.lhf.com&#xff09; 2.配置域名映射关系 3.配置盗链主机 &#xff0…...

npm与yarn常用命令

npm npm -v&#xff1a;查看 npm 版本npm init&#xff1a;初始化后会出现一个 Package.json 配置文件&#xff0c;可以在后面加上 -y&#xff0c;快速跳到问答界面npm install&#xff1a;会根据项目中的 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项目

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

java Spring5 xml配置文件方式实现声明式事务

在java Spring5通过声明式事务(注解方式)完成一个简单的事务操作中 我们通过注解方式完成了一个事务操作 那么 下面 我还是讲一下 基于xml实现声明式事务的操作 其实在开发过程中 大家肯定都喜欢用注解 因为他方便 这篇文章中的xml方式 大家做个了解就好 还是 我们的这张表 记…...

常用存储芯片-笔记本上固态硬盘PTS11系列推荐

在存储领域中&#xff0c;除了存储颗粒之外&#xff0c;还有一种极其重要的芯片&#xff1a;存储控制芯片。存储控制芯片是CPU与存储器之间数据交换的中介&#xff0c;决定了存储器最大容量、存取速度等多个重要参数。特别是在AI、5G、自动驾驶时代&#xff0c;对于数据处理及存…...

【AI绘图学习笔记】奇异值分解(SVD)、主成分分析(PCA)

这节的内容需要一些线性代数基础知识&#xff0c;如果你没听懂本文在讲什么&#xff0c;强烈建议你学习【官方双语/合集】线性代数的本质 - 系列合集 文章目录奇异值分解线性变换特征值和特征向量的几何意义什么是奇异值分解&#xff1f;公式推导SVD推广到任意大小矩阵如何求SV…...

【设计模式】模板方法模式和门面模式

模板方法模式和门面模式模板方法模式代码示例门面模式代码示例门面模式的应用场景模板方法模式 模板方法模式非常简单&#xff0c;就是定义了一个固定的公共流程&#xff0c;整个流程有哪些步骤是事先定义好的&#xff0c;具体的步骤则交由子类去实现。属于行为型设计模式。 简…...

Kubernetes未来十年的四大发展趋势

作者&#xff1a;李翔 跟大家已经感受到的一样&#xff0c;Kubernetes已经成为了云计算领域最具统治力的平台&#xff0c;成为了云原生开发的绝对标准&#xff0c;而伴随Kubernetes诞生的CNCF (Cloud Native Computing Foundation) 也因此成为了业界影响力巨大的组织。在成为云…...

一、sql 基础知识、函数和子查询

MySQL 是一种流行的关系型数据库管理系统&#xff0c;使用 SQL 语言进行数据管理和操作。在 MySQL 中&#xff0c;常用的语句包括 SELECT 查询语句、WHERE 条件语句、算术表达式、函数、聚合函数、自定义函数、逻辑表达式、子查询和连接。这些语句可以帮助用户快速地进行数据查…...

产品射频认证笔记

文章目录1. 射频监管认证的目的&#xff1a;1.1 确保 RF 产品在其预期环境中按预期运行1.2 确保射频产品不会干扰其他电子或射频设备2. 射频认证地区规范3. FCC简介4. FCC认证需要准备的内容&#xff1a;5. 射频监管测量会话期间测量以下射频属性&#xff1a;6. 调整射频参数6.…...

做了个springboot接口参数解密的工具,我给它命名为万能钥匙(已上传maven中央仓库,附详细使用说明)

前言&#xff1a;之前工作中做过两个功能&#xff0c;就是之前写的这两篇博客&#xff0c;最近几天有个想法&#xff0c;给它做成一个springboot的start启动器&#xff0c;直接引入依赖&#xff0c;写好配置就能用了 springboot使用自定义注解实现接口参数解密&#xff0c;普通…...

【Flutter从入门到入坑】Flutter 知识体系

学习 Flutter 需要掌握哪些知识&#xff1f; 终端设备越来越碎片化&#xff0c;需要支持的操作系统越来越多&#xff0c;从研发效率和维护成本综合考虑&#xff0c;跨平台开发一定是未来大前端的趋势&#xff0c;我们应该拥抱变化。而 Flutter 提供了一套彻底的移动跨平台方案…...

顺序表的基本操作

目录 一.什么是顺序表 二.顺序表的基本操作 1.初始化 2.增容 3.尾插 4.头插 5.尾删 6.头删 7.指定位置插入 8.指定位置删除 9.打印 10.查找 11.销毁 一.什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组…...

日本做美食视频网站/武汉疫情最新情况

我们先直奔主题&#xff0c;在DM中我们进行字符界面安装时候&#xff0c;需要手动注册数据库服务&#xff0c;在DM7中我们需要使用的是-i参数&#xff0c;在比较新的DM8的版本中我们需要使用的是-dm_ini参数&#xff0c;在测试过程中&#xff0c;有较早的DM8版本还是会使用-i参…...

网站百度百科怎么做/网站快速推广

spring&#xff1a;Spring是一个轻量级的控制反转&#xff08;IoC&#xff09;和面向切面&#xff08;AOP&#xff09;的容器框架。 commons-logging &#xff1a;所有的Java日志实现”提供一个统一的接口 junit-3.8.2.jar &#xff1a; JUnit是一个Java语言的单元测试框…...

政府网站建设 典型/百度搜索引擎提交入口

前言 大家都知道阿里P8大牛经常是神龙见首不见尾的&#xff0c;一般的程序员也没有机会见到&#xff0c;今天就有阿里P8大牛和大家面对面聊职业生涯&#xff0c;不知道大家想不想一见大牛的风范&#xff1f;想不想了解阿里的岗位职级和公司架构&#xff0c;想不想听听大牛给大…...

wordpress设置配置文件报错/如何进行网络营销

本文很简单就是记录一下linux使用中的一些需要注意的点 目录 ssh登录 ssh协议用于不同主机之间的访问&#xff0c;采用非对称加密。 其中密钥一般在 ~/.ssh 下面&#xff0c;其中 id_rsa.pub 表示公钥&#xff0c; id_rsa 表示私钥&#xff0c;如果不存在可通过 ssh-keygen …...

wordpress读取速度慢/谷歌google 官网下载

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云 作者&#xff1a;Python进阶者 想要学习Python&#xff1f;有问题得不到第一时间解决&#xff1f;来看看这里“1039649593”满足你的需…...

去哪里注册商标和品牌/seo运营

//使用autoload加载相关库,这边重点就是为了require $file; spl_autoload_register(function($class) {$file __DIR__ . /lib/Predis/ . $class . .php;if (file_exists($file)) {require $file;return true;} });//配置连接的IP、端口、以及相应的数据库 $server array (…...