当前位置: 首页 > 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;来…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...

CppCon 2015 学习:REFLECTION TECHNIQUES IN C++

关于 Reflection&#xff08;反射&#xff09; 这个概念&#xff0c;总结一下&#xff1a; Reflection&#xff08;反射&#xff09;是什么&#xff1f; 反射是对类型的自我检查能力&#xff08;Introspection&#xff09; 可以查看类的成员变量、成员函数等信息。反射允许枚…...

CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中&#xff0c;其实有很多站点&#xff0c;比如企业门户网站&#xff0c;产品手册&#xff0c;知识帮助手册等&#xff0c;因此会需要多个站点&#xff0c;甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...