集合类 ArrayList实现公司职员薪水管理
package com.test; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList; public class test2 {
public static void main(String[] args) throws IOException{
//创建EmpManage对象
EmpManage em=new EmpManage();
//引入IO流
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//作出一个简易菜单
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:退出系统"); String operType=br.readLine(); if(operType.equals("1")){
System.out.println("请输入编号:");
String empNo=br.readLine();
System.out.println("请输入名字:");
String name=br.readLine();
System.out.println("请输入工资:");
Float sal=Float.parseFloat(br.readLine());
//构造对象
Emp emp=new Emp(empNo,name,sal); em.addEmp(emp);
}
else if(operType.equals("2")){
System.out.println("请输入一个编号:");
String empNo=br.readLine();
em.showinfo(empNo);
}
else if(operType.equals("3")){
System.out.println("请输入一个编号:");
String empNo=br.readLine();
System.out.println("请输入修改后的工资:");
Float sal=Float.parseFloat(br.readLine());
Float newSal=Float.parseFloat(br.readLine());
em.updateSal(empNo, newSal);
}
else if(operType.equals("4")){
System.out.println("请输入一个编号:");
String empNo=br.readLine();
em.delEmp(empNo);
}
else if(operType.equals("5")){
System.exit(-1);
}
} } } //雇员管理类
class EmpManage{
private ArrayList a=null;
//构造函数(初始化成员变量)
public EmpManage(){
a=new ArrayList();
}
//加入员工
public void addEmp(Emp emp){
a.add(emp);
}
//显示员工的相关信息
public void showinfo(String empNo){
//遍历整个ArrayList
for(int i=0;i<a.size();i++){
//取出Emp对象
Emp emp=(Emp)a.get(i);
//比较编号!!!不能用等号,字符相等是指地址相等,.equals比较的是内容
if(emp.getNumber().equals(empNo)){
System.out.println("找到该员工,信息:");
System.out.println("编号"+empNo);
System.out.println("姓名"+emp.getName());
System.out.println("薪水"+emp.getSal()); }
}
} //修改工资
public void updateSal(String empNo,float newSal){
for(int i=0;i<a.size();i++){
Emp emp=(Emp)a.get(i);
if(emp.getNumber().equals(empNo)){
//修改工资
emp.setSal(newSal);
}
}
} //删除某个员工
public void delEmp(String empNo){
for(int i=0;i<a.size();i++){
Emp emp=(Emp)a.get(i);
if(emp.getNumber().equals(empNo)){
a.remove(i); //按编号
//a.remove(emp);
}
}
}
} //雇员类
class Emp{
private String number;
private String name;
private float sal; public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
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;
} //构造函数
public Emp(String number,String name,float sal){
this.number=number;
this.name=name;
this.sal=sal;
}
}
集合类 ArrayList实现公司职员薪水管理的更多相关文章
- 《Mysql 公司职员学习篇》 第二章 小A的惊喜
第二章 小A的惊喜 ---- 认识数据库 吃完饭后,小Y和小A回到了家里,并打开电脑开始学习Mysql. 小Y:"小A,你平时的Excell文件很多的情况下,怎么样存放Exce ...
- 关系网络数据可视化:3. 案例:公司职员关系图表 & 导演演员关系网络可视化
1. 公司职员关系图表 节点和边界数据 节点是指每个节点本身的数据,代表公司职工的名称:属性(Country).分类(Category)和地区(Region,给每个节点定义的属性数据).文件必须是.c ...
- 《Mysql 公司职员学习篇》 第一章 小A的烦恼
第一章 小A的烦恼 ----- 为什么学习数据库 和 如何选择数据库 小A是某公司的职员,公司数据部的员工,平常的大小工作,完全离不开EXCELL,而最近小A却越来越苦恼,不由的向好朋友小Y吐槽.小 ...
- C#中的集合类——ArrayList
1. ArrayList与数组 数组的长度不可变,元素的类型单一: ArrayList 实际上相当于一个可变长度的动态数组,由于集合中的元素都是object类型,元素的类型可以有多种了:与数组一样, ...
- 0121 集合类 ArrayList 的练习
集合接口的常用方法: 1.List接口 public class Jihe { public static void main(String[] args) { ArrayList<String ...
- java基础集合类——ArrayList 源码略读
ArrayList是java的动态数组,底层是基于数组实现. 1. 成员变量 public class ArrayList<E> extends AbstractList<E> ...
- Java集合类ArrayList循环中删除特定元素
在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java"&g ...
- 【Java源码】集合类-ArrayList
一.类继承关系 public class ArrayList<E> extends AbstractList<E> implements List<E>, Rand ...
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
2014年9月的时候,写过一篇面试的总结性质的文章,"2014年武汉的IT行情好像不太好". 原文地址:blog.csdn.net/fansunion/article/detai ...
随机推荐
- BZOJ4819: [Sdoi2017]新生舞会(01分数规划)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1029 Solved: 528[Submit][Status][Discuss] Descripti ...
- javascript动画函数封装
function animate(obj, target) { clearInterval(obj.timer); obj.timer = setInterval(function () { var ...
- HDU 1176 免费馅饼【动态规划】
解题思路:用a[i][j]表示在第i秒在地点j的掉落馅饼的数量,设整个馅饼掉落的时间持续为timemax,即为矩阵的高度,一共0到10个地点,为矩阵的长度,如图,即可构成数塔,因为考虑到在地点0的时候 ...
- ZBrush中Mrgb、Rgb和M的使用
ZBrush®软件工具架中所有的命令选项都是我们平时较为常用的,位于工具架的中间位置,有一个Mrgb.Rgb和M选项它们所表示的是材质及颜色,那么,在Zbrush中只要选择相应的选项,就可以同时绘制材 ...
- servlet实现定时刷新功能
1,继承httpservlet类重写doget个dopost方法 2,发送头消息 response.setHeader("refresh","间隔秒数:url=目标地址& ...
- Windows下安装XAMPP,Wordpress
配置XAMPP: 1.下载:https://www.apachefriends.org/zh_cn/download.html(下载速度日了狗!) 2.安装XAMPP; 3.启动apache, ...
- python链接mysql数据库
1.安装pycharm python3.6 pip 在windows+R cmd where pip pip install mysql-client 如何看自已mysql-client有没有 ...
- npx命令
npx命令 查了一下, 英文资料: https://www.npmjs.com/package/npx 中文资料: 什么是npx 第一次看到npx命令是在 babel 的文档里 Note: If yo ...
- linux下如何查看cpu信息
linux的cpu信息可以从文件中cpuinfo读取. 执行命令: # cat /proc/cpuinfo 我们一般看到的processor是逻辑核. 它的计数是从0开始的,例如这里看到的是31 ...
- 递归树处理,配合vue的vueTreeselect组件使用
在项目中经常会使用到tree,并且需要对递归树进行操作. 在vue项目中,使用vue-treeselect插件(https://vue-treeselect.js.org/) 使用中遇到的问题: 1. ...