package ArrayList的小程序;
import java.io.*;
import java.util.*;
public class kkk { /**
* 作者:Mr.fan
* 功能:展示一个小的ArrayList链表的 员工工资记录系统
*/
public static void main(String[] args)throws Exception
{
//创建EmpManage对象
EmpManage em=new EmpManage();
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:退出系统");
System.out.println("6:显示出所有员工的信息"); 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 gaiNO=br.readLine();
System.out.println("请输入修改后工资:");
float gaiSAL=Float.parseFloat(br.readLine());
em.updateSal(gaiNO,gaiSAL);
}
else if(operType.equals("4"))
{
System.out.println("请输入要删除员工的编号:");
String NOdel=br.readLine();
em.delEmp(NOdel);
}
else if(operType.equals("5"))
{
//退出系统
System.exit(0);
}
else if(operType.equals("6"))
{
ArrayList nx=em.getal();
for(int i=0;i<nx.size();i++)
{
//取出Emp对象
Emp emp=(Emp)nx.get(i); System.out.print("编号="+emp.getEmpNo());
System.out.print(" 名字="+emp.getName());
System.out.print(" 工资="+emp.getSal());
System.out.println("\n"); }
}
}
} }
//采用面向对象 封装思想 来建造一个雇员管理类
class EmpManage
{
/*封装思想都会采用 保护 */ private ArrayList al=null;
public EmpManage()//构造
{
al=new ArrayList();
}
//加入员工
public void addEmp(Emp emp)
{
al.add(emp);
}
//显示员工的相关信息
public void showInfo(String empNo)
{
//遍历整个ArrayList
for(int i=0;i<al.size();i++)
{
//取出Emp对象
Emp emp=(Emp)al.get(i);
//比较编号
if(emp.getEmpNo().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<al.size();i++)
{
Emp emp=(Emp)al.get(i);
if(emp.getEmpNo().equals(empNo))
{
//修改薪水
emp.setSal(newSal);
}
}
}
public void delEmp(String empNo)
{
for(int i=0;i<al.size();i++)
{
Emp emp=(Emp)al.get(i);
if(emp.getEmpNo().equals(empNo))
{
al.remove(i);
}
}
}
public ArrayList getal()
{
return al;
}
}
class Emp
{ private String empNo;
private String name;
private float sal;
public Emp(String empNo,String name,float sal)
{
this.empNo=empNo;
this.name=name;
this.sal=sal;
}
public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
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;
}
}

超实用 2 ArrayList链表之 员工工资管理系统的更多相关文章

  1. 超实用 1 ArrayList 链表

    package ArrayList链表; import java.util.*; public class kk1 { /** * 作者:Mr.Fan * 功能:记住ArrayList链表 */ pu ...

  2. 职工工资管理系统 --C语言

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define NUM 1000 void ente ...

  3. jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)

    1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...

  4. Python作业工资管理系统(第三周)

    作业内容: 实现效果: 从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 效果演示: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工 ...

  5. 4_python之路之模拟工资管理系统

    python之路之模拟工资管理系统 1.程序说明:Readme.txt 1.程序文件:salary_management.py info.txt 2.程序文件说明:salary_management. ...

  6. qt项目:员工信息管理系统

    开发一个员工信息管理系统 一.项目具体要求: 1.用qt开发界面,数据库用QSqlite 数据库文件名:demostudent.db 2.通过界面能够查看到数据库中员工信息表中内容,包括员工姓名.年龄 ...

  7. HR开发 读取员工工资

    1.使用函数读取员工工资. ①数据结构工资结果 DATA: GT_RGDIR TYPE TABLE OF PC261 , GS_RGDIR TYPE PC261 , GT_PAYRESULT TYPE ...

  8. Python 员工信息管理系统

    学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本. 员工信息管理系统: 需求: 1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户. 2.普通账户可以查看所有员工 ...

  9. C 计算员工工资

    #include <stdio.h> int main(int argc, char **argv) { //定义四个变量 g每小时固定的工资 40 固定工作时间 pay工资 hours员 ...

随机推荐

  1. flex 自适应

    flex-grow.flex-shrink.flex-basis这三个属性的作用是:在flex布局中,父元素在不同宽度下,子元素是如何分配父元素的空间的. 其中,这三个属性都是在子元素上设置的. 注: ...

  2. 二、Delphi10.3在不下载文件情况下读取网站文件大小等信息

    一.上源码 uses TxHttp, Classes, TxCommon, Frm_WebTool, SysUtils; var m_Url: string; m_Http: TTxHttp; m_P ...

  3. Qt中插入html样式

    Qt中引入html调节样式 HTML 设置行间距字体高度和颜色 <html><head/><body><p style=\"height:16px; ...

  4. string首字母大写

    定义函数将字符串首字母大写: 例1:Study hard, improve every day. def toJadenCase(string): return string.title()print ...

  5. 在centos6.5下挂载windows共享文件夹

    1.在windows下建立文件夹f:\linux,共享给win下用户username,该用户密码为passwd.该windows系统在局域网中IP为192.168.18.203 2.在centos6. ...

  6. n进制转十进制

    #include<cstdio> #include<iostream> using namespace std; ; int main(){ ,len=; char ch[ma ...

  7. 基于BM3803处理器平台的PCI软硬件调试问题汇总(持续更新中)

    一:相关基本配置: FPGA:  XILINX XC5VFX130T-1FFG1738 PCI接口部分使用XILINX提供的pci32_v4_8硬核:PCI控制器由FPGA逻辑实现,主要完成PCI设备 ...

  8. v$pwfile_user表

    SQL> select * from v$pwfile_users;select * from v$pwfile_users; USERNAME SYSDB SYSOP SYSAS------- ...

  9. 2_C语言中的数据类型 (一)2.1.常量和字符串常量

    2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 ...

  10. [TJOI2015]概率论[卡特兰数]

    题意 \(n\) 个节点二叉树的叶子节点的期望个数. \(n\leq 10^9\) . 分析 实际询问可以转化为 \(n\) 个点的不同形态的二叉树的叶子节点总数. 定义 \(f_n\) 表示 \(n ...