Java实现简单员工管理系统
作者:大菜彩 发布时间:2021-12-13 17:51:26
标签:java,员工,管理系统
本文实例为大家分享了Java实现简单员工管理系统的具体代码,供大家参考,具体内容如下
代码如下:
import java.util.*;
public class Demo {
public static void main(String[] args) {
EmpManage em = new EmpManage();
while (true) {
System.out.println("==================员工管理系统====================");
System.out.println("==================0.加载原有信息==================");
System.out.println("==================1.加入员工=====================");
System.out.println("==================2.删除员工=====================");
System.out.println("==================3.查询员工信息==================");
System.out.println("==================4.修改员工薪水 ==================");
System.out.println("==================5.薪水排序======================");
System.out.println("==================6.平均工资、最低与最高工资=======");
System.out.println("==================7.打印全体员工信息==============");
System.out.println("==================8.退出系统=====================");
System.out.print("请选择功能【0~8】:");
Scanner reader = new Scanner(System.in);
int x;
x = reader.nextInt();
switch (x) {
case 0:
Employee e1 = new Employee("2001","轩辕戈",2002f);
Employee f = new Employee("2002","季长风",4500f);
Employee g = new Employee("2003","鱼幼薇",2560f);
Employee h = new Employee("2004","李小龙",1604f);
em.addEmp(e1);
em.addEmp(f);
em.addEmp(g);
em.addEmp(h);
System.out.println("加载完毕!");
break;
case 1:
System.out.println("请输入要增加员工的信息(编号,姓名,薪水中间用空格隔开)");
String a, b;
float c;
a = reader.next();
b = reader.next();
c = reader.nextFloat();
Employee e = new Employee(a, b, c);
em.addEmp(e);
System.out.println("加入成功!");
break;
case 2:
System.out.print("请输入要刪除員工的编号:");
String y;
y=reader.next();
em.deleteEmp(y);
System.out.println("删除成功!");
break;
case 3:
System.out.print("请输入要查询員工的编号:");
String z;
z=reader.next();
em.showinfo(z);
break;
case 4:
System.out.print("请输入要修改員工的编号:");
String w;
w=reader.next();
System.out.print("请输入要修改成的工资数目:");
float v;
v=reader.nextFloat();
em.changesal(w, v);
System.out.println("修改成功!");
break;
case 5:
System.out.println("1.按薪水从高到低的顺序排序");
System.out.println("2.按薪水从低到高的顺序排序");
System.out.print("请选择功能【1~2】:");
int t;
t=reader.nextInt();
if(t==1)
{
em.sorthl();
}
if(t==2)
{
em.sortlh();
}
break;
case 6:
em.hlsal();
break;
case 7:
em.showAll();
break;
case 8:
System.out.println("程序已经运行结束,下次见!");
System.exit(0);
break;
default:
System.out.print("数字范围只能在1~8之间!");
}
}
}
}
//雇员管理类
class EmpManage
{
private ArrayList al=null;
//构造方法
public EmpManage() {
al=new ArrayList();
}
//加入员工方法
public void addEmp(Employee e)
{
al.add(e);
}
//刪除员工
public void deleteEmp(String x)
{
int i;
for(i=0;i<al.size();i++)
{
Employee temp=(Employee)al.get(i);
if(temp.getEmNo().equals(x))
break;
}
al.remove(i-1);
}
//根据员工号显示该员工的信息
public void showinfo(String emNo)
{
//遍历整个ArrayList
for(int i=0;i<al.size();i++)
{
Employee em=(Employee)al.get(i);
if(em.getEmNo().equals(emNo))
{
System.out.println("编号:"+em.getEmNo()+" "+"姓名:"+em.getName()+" "+"工资:"+em.getSal());
}
}
}
//修改员工的薪水
public void changesal(String x,float y)
{
for(int i=0;i<al.size();i++)
{
Employee em=(Employee) al.get(i);
if(em.getEmNo().equals(x))
{
em.setSal(y);
}
}
}
//根据员工的薪水进行排序(从高到低)
public void sorthl()
{
String a,b;
float c;
for(int i=0;i<al.size()-1;i++)
{
Employee e=(Employee)al.get(i);
for(int j=i+1;j<al.size();j++)
{
Employee m=(Employee)al.get(j);
if(e.getSal()<m.getSal())
{
a=e.getEmNo();
e.setEmNo(m.getEmNo());
m.setEmNo(a);
b=e.getName();
e.setName(m.getName());
m.setName(b);
c=e.getSal();
e.setSal(m.getSal());
m.setSal(c);
}
}
}
System.out.println("排序成功!");
System.out.println("打印信息如下:");
showAll();
}
//根据员工的薪水进行排序(从低到高)
public void sortlh()
{
String a,b;
float c;
for(int i=0;i<al.size()-1;i++)
{
Employee e=(Employee)al.get(i);
for(int j=i+1;j<al.size();j++)
{
Employee m=(Employee)al.get(j);
if(e.getSal()>m.getSal())
{
a=e.getEmNo();
e.setEmNo(m.getEmNo());
m.setEmNo(a);
b=e.getName();
e.setName(m.getName());
m.setName(b);
c=e.getSal();
e.setSal(m.getSal());
m.setSal(c);
}
}
}
System.out.println("排序成功!");
System.out.println("打印信息如下:");
showAll();
}
//平均工资、最高与最低工资
public void hlsal()
{
float x=0,h,l=0;
for(int i=0;i<al.size();i++)
{
Employee e=(Employee)al.get(i);
x=x+e.getSal();
}
System.out.println("平均工资:"+x/al.size());
Employee s=(Employee)al.get(0);
h=s.getSal();
l=s.getSal();
for(int i=0;i<al.size();i++)
{
Employee v=(Employee)al.get(i);
if(v.getSal()>h)
h=v.getSal();
if(v.getSal()<l)
l=v.getSal();
}
System.out.println("最高工资:"+h);
System.out.println("最低工资:"+l);
}
//显示所有员工的信息
public void showAll()
{
for(int i=0;i<al.size();i++)
{
Employee em=(Employee)al.get(i);
System.out.println("第"+(i+1)+"个员工: "+"编号:"+em.getEmNo()+" "+"姓名:"+em.getName()+" "+"工资:"+em.getSal());
}
}
}
//员工类
class Employee {
private String emNo;
private String name;
private float sal;
// 构造方法
public Employee(String emNo, String name, float sal) {
super();
this.emNo = emNo;
this.name = name;
this.sal = sal;
}
// 所有的getter和setter方法
public String getEmNo() {
return emNo;
}
public void setEmNo(String emNo) {
this.emNo = emNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}
}
运行示例:
来源:https://blog.csdn.net/qq_53786696/article/details/117325170


猜你喜欢
- 当遇到以下场景:其他人写的单元测试影响统计结果一些需要调用外部接口的测试暂不运行需要在非本机环境上运行一些不回滚的单元测试则有必要选择以下方
- 前言随着使用 Spring 进行开发的个人和企业越来越多,Spring 也慢慢从一个单一简洁的小框架变成一个大而全的开源软件,Spring
- 前言Kotlin一个强大之处就在于它的扩展函数,巧妙的运用这些扩展函数可以让你写出的代码更加优雅,阅读起来更加流畅,下面总结了在开发中经常用
- autoMapping和autoMappingBehavior的区别autoMappingBehaviormybatis核心配置文件中set
- 目录前言继承Thread实现Runnale接口Callable线程池常见的4种线程池。总结前言在java中,如果每个请求到达就创建一个新线程
- 本文实例讲述了android中ListView数据刷新时的同步方法。分享给大家供大家参考。具体实现方法如下:public class Mai
- 我这里主要是对串口类的简单使用,实现的功能是以读写方式打开串口,点击发送数据按钮将发送区的数据发送到缓冲区,然后在接收区显示出来,界面如下:
- Unsafe类介绍第一次看到这个类时被它的名字吓到了,居然还有一个类自名Unsafe?读完本文,大家也能发现Unsafe类确实有点不那么安全
- 介绍技术之前有用eureka 现在用nacos工作流和gateway接口数据流向数据表新建项目新建cloud-删除src-新建modleEu
- 1. Date.compareTo()java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。如果两个日
- Dictionary<TKey,TValue> 类,表示键和值的集合。Dictionary<TKey,TValue>
- 本文实例讲述了C#在RichTextBox中显示不同颜色文字的方法。分享给大家供大家参考。具体实现方法如下:#region 日志记录、支持其
- 1.实现阴影或模糊边效果方式:2.通过shape来实现,具体是通过layer-list 多层叠放的方式实现的<?xml version
- 本文实例为大家分享了Android投票进度条的具体代码,供大家参考,具体内容如下效果展示功能属性介绍<!-- MatchSupport
- Freemarker 3种循环模式1. map循环举例:<#if vo.urlMap??>
- java 接口回调实例详解首先官方对接口回调的定义是这样的,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,
- spring FactoryBean 是创建 复杂的bean,一般的bean 直接用xml配置即可,如果一个bean的创建过程中
- 这篇文章主要介绍了Java反射通过Getter方法获取对象VO的属性值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
- 1.向上转型 向下转型2.强制类型转换的应用应用多态性时由于引用为父类类型,导致编译时只能调用父类中声明的属性和方法。子类特有的属性和方法不
- 我就废话不多说了,大家还是直接看代码吧~package com.zejian.annotationdemo; import java.lan