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. 文字属性和div容器盒的使用基础

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. linux中服务环境的搭建

    一.Samba服务 samba服务的安装及配置: sudo apt-get install samba 二.配置: 1.创建一个需要共享的目录,并修改权限: lpf@ubuntu:~$ mkdir l ...

  3. 针对于网络安全领域中基于PCAP流量的数据集

    网络安全领域中基于PCAP流量的数据集 MAWI Working Group Traffic Archive URL:http://mawi.wide.ad.jp/mawi/ CIC dataset ...

  4. NGS检测SNP

    1,Fastq数据质控 2,Fastq转化成bam,包含头文件 bwa aln ref.fa test_1.fq > test_1.sai bwa aln ref.fa test_2.fq &g ...

  5. SVG 动画(animate、animateTransform、animateMotion)

    原文:https://blog.csdn.net/chy555chy/article/details/53535581 参考 MDN开发文档 https://developer.mozilla.org ...

  6. 3504: [Cqoi2014]危桥

    3504: [Cqoi2014]危桥 链接 分析: 首先往返的可以转化为全是“往”,那么只要将容量除以2即可. 然后S向a1连边容量为an(除以2之前为2*an),S向a2连边容量为an,b1,b2向 ...

  7. iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字

    iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字 简述:NSString * regex_0 = @"\\d{1,}";   /*允许首位为0*/ NSString * re ...

  8. 洛咕 P2494 [SDOI2011]保密

    出题人没素质啊,强行拼题还把题面写得又臭又长. 简单题面就是有一张图,每条边有两个权值\(t,s\),有无限支军队,一支军队可以打一个点,代价是从n到这个点的路径的\(\frac{\sum t}{\s ...

  9. loj558 「Antileaf's Round」我们的CPU遭到攻击

    考完了可以发题解了. 做法是link-cut tree维护子树信息,并不需要维护黑树白树那些的. 下面是一条重链: 如果4是根的话,那么在splay上是这样的: 在splay中,子树的信息都已经计算完 ...

  10. python之进程池与线程池

    一.进程池与线程池介绍 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 当并发的任务数远远超过了计算机的承受能力时,即无法一次性开启过多的进程数或线程数时就应该 ...