公司职员薪水管理系统(List)

集合初步完成下面的功能需求
做公司职员薪水管理系统,完成以下功能
1,当有新员工时,将加入该管理系统
2,根据员工号,显示该员工信息
3,可以显示所有员工的信息
4,可以修改员工的薪水
5,当员工离职时,从该系统中删除该员工
6,可以将员工按薪水高低排序(思考)
7,统计员工的平均工资,最高和最低工资

第一步:既然是员工管理系统,我们就先来写一个员工类Employee.java

/** * @author Hercules* @version 创建时间:2020年1月10日 下午2:56:52 * 员工类*/
public class Employee {private int eNo;       //员工号private String name;        //员工名字private double salary;      //员工薪水//而后是两个构造函数一个无参的一个带参的public Employee() {super();      //这里有一个super()是因为java所有的类都继承自Object类}public Employee(int eNo, String name, double salary) {super();this.eNo = eNo;this.name = name;this.salary = salary;}//添加get set方法public int geteNo() {return eNo;}public void seteNo(int eNo) {this.eNo = eNo;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}/*重写这个类的toString方法,我在上面提到过java所有的类* 都继承自Object这个类,而toString方法正是这个类中的方法,* 所以所有的类都有toString方法,在我们需要把该类转换为String* 类型的时候会调用这个方法,例如在我们调用System.out.println();* 的时候,输出该类的时候会调用这个方法。当然这只是其中一例* 还有更多的例子。* * */public String toString() {return String.format("Employee [eNo=" + eNo + ", name=" + name + ", salary=%6.2f]", salary);}
}

有了员工类当然一定要有管理员工的类:Manager.java

/** * @author Hercules* @version 创建时间:2020年1月10日 下午3:11:50 * 管理员工的类*/import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Manager {//存放所有员工的集合private List<Employee> employees = new ArrayList<Employee>();/*这里要着重分析一下,首先我们用的是ArrayList存储员工,这个东西是有序的可以重复的,所以为保证员工号的唯一性,* 这里用一个静态的变量来记录员工号。* */private static int no = 0;  //不知道大家学过数据库没有,这里就是自增长类型的员工号了。//添加员工public void addEmployee(Employee employee) {no++;             //每添加一个no就自增一次employee.seteNo(no);employees.add(employee); //调用ArrayList的add方法}//根据员工号查找员工public Employee showEmployee(int no) {Employee e = null;for(Employee employee: employees) {if(employee.geteNo() == no) {e = employee;break;}}return e;}//显示所有员工信息public void showAllEmployee() {for(Employee employee:employees) {//这里我们直接调用toString方法就可以直接打印相关信息System.out.println(employee.toString());}}//修改员工薪水public void updateEmployeeSalary(int no,double salary) {Employee e = showEmployee(no);if(e == null) {System.out.println("查无此人,无法修改薪水");return;}else {Scanner scanner = new Scanner(System.in);System.out.println("此人现在的薪水为"+e.getSalary());System.out.println("请输入您想要修改的数值");double newSalary = scanner.nextDouble();e.setSalary(newSalary);}}//员工离职撤出系统public void remove(int no) {Employee e = showEmployee(no);if(e == null) {System.out.println("查无此人");return;}employees.remove(e);}//员工从高到低排序,自己也可以反过来从低到高排序public void sort() {for(int i = 0;i < employees.size()-1;i++) {//循环轮次for(int j = 0;j < employees.size()-1-i;j++) { //循环比较次数if(employees.get(j).getSalary() < employees.get(j+1).getSalary()) {//冒泡排序Employee e = employees.get(j);employees.set(j, employees.get(j+1));employees.set(j+1, e);}}}}//查找工资最高的人,既然上面已经有排序函数,则下面就可很方便的得出条件public Employee getMaxSalary() {sort();return employees.get(0);}//工资最低的人,returnpublic Employee getMinSalary() {sort();return employees.get(employees.size() - 1);}//平均工资public void avg() {double z = 0;for(Employee employee:employees) {z += employee.getSalary();}double a = z/employees.size();System.out.println("平均工资为"+a);}
}

接下来我们再来写一个测试类:Test.java

/** * @author Hercules* @version 创建时间:2020年1月10日 下午4:09:07 * 类说明 */
public class Test {public static void main(String[] args) {Manager manager = new Manager();for(int i = 0;i<10;i++) {Employee employee = new Employee(i,"张三"+i,Math.random()*10000);manager.addEmployee(employee);}manager.showAllEmployee();System.out.println("上面为排序前");//排序展示manager.sort();manager.showAllEmployee();//返回最大的工资的人System.out.println("最高工资的人的数据为");System.out.println(manager.getMaxSalary().toString());}
}

在这里插入图片描述
好了这是一个用list完成的员工管理系统,我下面的博客还会用Map再完成一次,到时候又会有很多新的东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36336.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何简单地将工资单发给员工?

现在的企业越来越大&#xff0c;对于行政人员来说&#xff0c;在每月的发工资日&#xff0c;如何更快速地将工资单发给员工手上&#xff0c;也是一个头疼的问题&#xff0c;我们找到了一个平台&#xff0c;特别针对工资单做了解决方案&#xff0c;操作简单&#xff0c;几分钟即…

我帮公司财务写了个“群发工资条”的 Python 脚本!

来源 | 数据分析与统计学之美 本文介绍 这是一个很好的Python自动化的案例。对于小公司&#xff0c;采用手动方式一个个发送邮件还是可以的。如果一个上百号&#xff0c;上千号&#xff0c;或者更大规模的公司&#xff0c;我们再一个个发送工资条邮件&#xff0c;就太浪费时间了…

人事部员工数量统计报表制作

现在有员工信息数据&#xff0c;要求从不同的维度统计各部门的员工数据量&#xff0c; Excel 中数据如下&#xff1a; 统计结果为&#xff1a; 制作报表过程 1、 打开润乾报表工具并新建空白报表 2、 增加数据集&#xff0c;类型为文本文件&#xff0c;选择 Excel 文件 …

Python自动化结算工资和统计报表

实例需求说明 你好&#xff0c;我是悦创。 博客首发&#xff1a;https://bornforthis.cn/column/pyauto/auto_base07.html 学习了 Excel 文件的写入、读取和追加内容&#xff0c;那现在来做个案例。 需求描述并整理&#xff0c;如下&#xff1a; 每个月的 2 号&#xff0c…

妙用EXECEL与JMAIL发送员工工资条

妙用EXECEL与JMAIL发送员工工资条 在实际的工作当中&#xff0c;有许多小规模的单位总是采用EXCEL来做员工工资&#xff0c;因为EXCEL中有许多公式可以用&#xff0c;只填入当月变动的项目&#xff0c;扣税、最终实发工资等项目就自动计算出来了。做出工资了有好多单位财务人员…

用Excel做了7天报表,这个领导喜欢的可视化工具,只用了7小时

以前我在某外企银行实习的时候&#xff0c;需要处理将近七年的财务报表&#xff0c;如果按照传统的方式&#xff0c;我估计七天七夜都处理不完&#xff0c;就更别提分析了。一般来说外企的电脑软件限制非常严格&#xff0c;有专门的IT把控。很多软件是下不了的&#xff0c;即使…

员工每月工资数据集可视化分析

前言 最近在学习《从零开始学Python数据分析》这本书&#xff0c;第六章的综合实例——巴尔的摩公务员工资数据集&#xff0c;原网站上数据集被清除&#xff0c;于是在Kaggle上寻找了相似的数据“Employee_monthly_salary.csv”进行可视化数据分析。 工作环境 系统&#xff…

android app图标长按展示快捷方式 Shortcuts 类似3d touch

android 长按图标展示快捷方式 文章目录 android 长按图标展示快捷方式1. 静态创建2. 动态创建 首先&#xff0c;这不是一个新功能了&#xff0c;在android 7.1的时候就已经支持创建快捷入口了。因为当时项目用不到也没关注过这块&#xff0c;现在很多应用都支持长按展示快捷入…

苹果手机的计算机怎么设置快捷键大全,苹果Macbook快捷键使用大全,超详细!...

苹果电脑Macbook快捷键如何使用&#xff1f;很多小伙伴经常询问小编有关于苹果电脑的相关问题&#xff0c;其实很多快捷键都可以提高生产力&#xff0c;那么接下来一起看看苹果Macbook快捷键使用大全&#xff01; 苹果电脑Macbook快捷键大全&#xff1a; 一、将键盘当作鼠标使用…

最全Mac系统快捷键一览

Mac中主要有四个修饰键&#xff0c;分别是Command&#xff0c;Control&#xff0c;Option和Shift。 这四个键分别有自己的图案&#xff0c;他们经常出现在Mac应用程序中的菜单栏里&#xff0c;方便你随时学习新的快捷键。 MAC 键盘快捷键符号图例 通用 Command是Mac里最重要的…

苹果Macbook快捷键使用大全

苹果电脑Macbook快捷键如何使用&#xff1f;很多小伙伴经常询问小编有关于苹果电脑的相关问题&#xff0c;其实很多快捷键都可以提高生产力&#xff0c;那么接下来一起看看苹果Macbook快捷键使用大全&#xff01; 苹果电脑Macbook快捷键大全&#xff1a; 一、将键盘当作鼠标使用…

消除macbook桌面快捷键图标上的箭头

修改/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ 路径下的AliasBadgeIcon.icns如下图&#xff1a; 修改AliasBadgeIcon.icns 名称为AliasBadgeIcon-no.icns 但是坑爹的右键没有重命名选项 于是想着在终端修改文件名 打开终端sudo -i切换到root模…

iOS APP添加桌面快捷方式

本文字数&#xff1a;13900字 预计阅读时间&#xff1a;35 分钟 iOS APP添加桌面快捷方式 背景 新接到一个需求&#xff0c;需要APP内的某些功能&#xff0c;能够把入口添加到桌面&#xff0c;点击桌面到入口可以直接跳转APP对应界面&#xff08;类似于下面这张示例图&#xff…

mac快捷键标志 ,图案,图标, 常用快捷键

Mac中主要有四个修饰键&#xff0c;分别是Command&#xff0c;Control&#xff0c;Option和Shift。这四个键分别有自己的图案 . Command-Z 撤销  Command-X 剪切   Command-C 拷贝&#xff08;Copy&#xff09;   Command-V 粘贴   Command-A 全选&#xff08;All&…

ShortcutManager桌面app图标长按快捷入口

1.动态方式实现 1.kotlin版代码 1.1 直接实现 对应代码&#xff1a; fun shortcut(){if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.N_MR1) {val scManager: ShortcutManager getSystemService(ShortcutManager::class.java)//跳转Secondval…

MAC OSX 快捷方式更换图标

1、MAC OSX快捷方式创建图标 右键快捷方式——显示简介 将你的icon图片文件&#xff08;大小为128x128像素&#xff09;拖入当前图标位置 2、修改你的icon图标文件 有时你会需要让你的桌面图标看起来更加统一&#xff0c;这时你就需要修改你的图标 打开PS&#xff0c;新建1…

正大国际期货:用狼性思维参与外盘期货

投资源于生活&#xff0c;而生活启示了投资交易的方法。因为我们知道在地球上&#xff0c;除了人类&#xff0c;狼应该是最聪明智慧的动物了&#xff0c;那么在狼的智慧中&#xff0c;有怎样的期货投资启示呢&#xff1f;下面正大IxxxuanI详细给大家讲解一下&#xff01; 1、当…

欧元区通胀率升至9.1% 将跟随美联储“鹰派”步伐?如何使资产保值成为现实需要

欧盟统计局数据显示&#xff0c;由于能源和食品价格持续飙升&#xff0c;欧元区8月调和CPI同比上升9.1%&#xff0c;距离两位数通胀近在咫尺。 伴随着通胀数据屡创新高&#xff0c;摩根大通、高盛和美国银行的分析师均预计&#xff0c;欧央行将在下周的会议上加息75个基点&…

外汇天眼:美联储认为美国房价有大跌的风险!

美联储周五表示&#xff0c;在超低利率的背景下&#xff0c;近年来房价大幅上涨后&#xff0c;高位房价可能会急剧下跌。 “由于估值处于高位&#xff0c;房价可能对冲击特别敏感&#xff0c;”美联储在周五发布的半年度金融稳定报告中表示。 央行表示&#xff0c;尽管最近随…

股票和外汇究竟哪个更存在风险呢?

股票和外汇究竟哪个更存在风险呢&#xff1f; 1、股票T1交易制度&#xff0c;今天买入&#xff0c;明天才能卖出&#xff1b;外汇T0交易制度&#xff0c;随时买入&#xff0c;随时可以卖出。流动性方面看&#xff0c;外汇风险较小。 2、外汇手续费很低&#xff0c;只有买入时扣…