员工管理系统实现起来还是比较简单的,建一个员工类,里面包含员工的工号、姓名、年龄、性别和专业属性

public class Staff {private int id;private String name;private int age;private String sex;private String specialty;public Staff(int id, String name, int age, String sex, String specialty) {this.id = id;this.name = name;this.age = age;this.sex = sex;this.specialty = specialty;}public Staff(){}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getSpecialty() {return specialty;}public void setSpecialty(String specialty) {this.specialty = specialty;}
}

设置完员工的属性后,需要存储员工的信息,我用的是ArrayList动态数组存储员工信息

ArrayList动态数组还是比较强大的,它不像数组要定义数组的长度,并且它的操作性很强,自带许多的方法,例如add()、clear()、get()...

public class StaffManager {public static void main(String[] args) {ArrayList<Staff> array = new ArrayList<>();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("请输入您的选择:");Scanner sc = new Scanner(System.in);String line = sc.nextLine();switch (line) {case "1":System.out.println("添加员工");add(array);break;case "2":delete(array);break;case "3":update(array);break;case "4":find(array);break;case "5":System.out.println("谢谢使用");System.exit(0);}}}public static void add(ArrayList<Staff> array) {Scanner sc = new Scanner(System.in);String id;while (true) {System.out.println("请输入员工号:");id = sc.nextLine();boolean flag = isUsed(array, id);if (flag) {System.out.println("你输入的员工号已经被使用,请重新输入");} else {break;}}System.out.println("请输入员工姓名:");String name = sc.nextLine();System.out.println("请输入员工年龄:");String age = sc.nextLine();System.out.println("请输入员工性别:");String sex = sc.nextLine();System.out.println("请输入员工专业:");String specialty = sc.nextLine();Staff s = new Staff();s.setId(Integer.parseInt(id));s.setName(name);s.setAge(Integer.parseInt(age));s.setSex(sex);s.setSpecialty(specialty);array.add(s);System.out.println("添加员工成功");}public static boolean isUsed(ArrayList<Staff> array, String id) {boolean flag = false;for (int i = 0; i < array.size(); i++) {Staff s = array.get(i);if (s.getId()==Integer.parseInt(id)) {flag = true;break;}}return flag;}public static void find(ArrayList<Staff> array) {if (array.size() == 0) {System.out.println("无信息,请先添加信息再查询");} else {System.out.println("员工号\t\t姓名\t\t\t\t年龄\t\t\t\t\t性别\t\t\t\t\t专业");for (int i = 0; i < array.size(); i++) {Staff s = array.get(i);System.out.println(s.getId() + "\t\t\t" + s.getName() + "\t\t\t\t" + s.getAge() + "岁\t\t\t\t" + s.getSex()+"\t\t\t\t"+s.getSpecialty());}}}public static void delete(ArrayList<Staff> array) {Scanner sc = new Scanner(System.in);System.out.println("请输入你要删除的员工号:");String id = sc.nextLine();int index = -1;for (int i = 0; i < array.size(); i++) {Staff s = array.get(i);if (s.getId()==(Integer.parseInt(id))) {index = i;break;}}if (index == -1) {System.out.println("该员工不存在,请重新输入");} else {array.remove(index);System.out.println("删除成功");}}public static void update(ArrayList<Staff> array) {Scanner sc = new Scanner(System.in);System.out.println("请输入你要修改的员工号:");String id = sc.nextLine();int index = -1;for (int i = 0; i < array.size(); i++) {Staff staff = array.get(i);if (staff.getId()==(Integer.parseInt(id))) {index = i;break;}}if (index == -1) {System.out.println("该员工不存在,请重新输入");} else {System.out.println("请输入员工新的姓名:");String name = sc.nextLine();System.out.println("请输入员工新的年龄:");String age = sc.nextLine();System.out.println("请输入员工新的性别:");String sex = sc.nextLine();System.out.println("请输入员工新的专业:");String specialty = sc.nextLine();Staff s = new Staff();s.setId(Integer.parseInt(id));s.setName(name);s.setAge(Integer.parseInt(age));s.setSex(sex);s.setSpecialty(specialty);array.set(index, s);System.out.println("修改员工信息成功");}}
}

后面对员工信息的增添删改都是对动态数组的一个操作

我谈下我对动态数组的一个理解吧,纯属个人观点,如有误还请指点

普通的一维数组,例如int[ ]、String[ ]、char[ ] 这些数组,在使用前这个数组的长度已经是定下来了无法改变得。就像建房子一样,这房子只有一层并且它的长度也不能扩大,所以里面的房间数量也是一个定值,这里的房间数量也就是数组的长度。

而动态数组,像我们这里的动态数组里面存放的是Staff类,而Staff类有五个属性,那么也就是把动态数组的长度给定下来了,就是一层楼也只有五个房间,但是它与普通的一维数组不同,它能够增加它的高度

也就是像这样一样,它的宽度不能变,但是它的高度能根据需要而增加或减少,所以它才叫动态数组

Java实现员工管理系统相关推荐

  1. [附源码]计算机毕业设计JAVA企业员工管理系统

    [附源码]计算机毕业设计JAVA企业员工管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  2. 狂神说JAVA SpringBoot员工管理系统

    SpringBoot员工管理系统(没有数据库) 成品:https://download.csdn.net/download/weixin_43501359/14927226 SpringBoot员工管 ...

  3. Java入门--员工管理系统

    Java员工管理系统 需求 思路 定义员工类 主界面编写 查看员工的代码编写 新增员工代码的编写 判断工号是否被使用 修改员工代码的编写 删除员工的代码编写 需求 编写一个控制台版本的员工管理系统,员 ...

  4. [附源码]计算机毕业设计基于Java的员工管理系统Springboot程序

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  5. java ee 员工管理系统,fb3492 javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现,java源码含论文与答辩PPT...

    fb3492 javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现,java源码含论文与答辩PPT 存储:百度网盘 --/资源热下载站/VIP源码/Java源码/fb3492 ...

  6. 基于Java的员工管理系统

    本系统将使用JSP编程语言和MYSQL数据库进行开发,Myelcpse作为开发工具,后台数据库的连接采用JDBC直连的方式,最终完成系统的开发,实现各项添加.查询等功能.系统使用简单方便,界面一目了然 ...

  7. Java项目:员工管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:分为前端翻后端部分,包括用户,区分晋通用户以及誉里员用户,包括首页展示,部门管理,人事管理,员工管理三个模块等 ...

  8. [附源码]Python计算机毕业设计Django基于Java的员工管理系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  9. java职工管理系统sql_java+sql员工管理系统

    [实例简介] java+sql员工管理系统包含 源代码.数据库.报告文档.PPT 数据字典等,功能也非常齐全:代码都有注释,非常适合做毕业或者课程之类的设计. [实例截图] [核心代码] 原始文件 └ ...

最新文章

  1. Java 对象的理解
  2. 解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
  3. 信号完整性 带宽的确定
  4. 关于Pulsar与Kafka
  5. 微博收藏(机器学习代码与工具)(一)
  6. 2016奥运男篮分组
  7. java web服务_将Java服务公开为Web服务
  8. 前端对所有文件请求添加header_【前端面试必问】浏览器缓存原理?送你满分答案...
  9. python输出jpg_利用python实现.dcm格式图像转为.jpg格式
  10. 计算机图像处理发展前景,数字图像处理发展前景
  11. 产品快速迭代的五大要点
  12. 4.2 分类效果的评价
  13. MinGW-w64下载安装2024年最新教程
  14. fedora 下常用软件安装
  15. php--spry框架制作级联下拉菜单
  16. ubuntu挂载Nas及磁盘测速
  17. 宜人贷 PaaS 数据服务平台Genie 简介(一) 1
  18. 3.依赖注入setter注入和构造器注入
  19. 【机器学习】线性回归(理论)
  20. c 语言的输出函数cout,详解C++ cout格式化输出完全攻略

热门文章

  1. 等级保护测评2.0 mysql 数据库
  2. U盘修复的大致思路和过程
  3. 从赛博朋克2077看未来互联网科技的发展
  4. 泛型无法适用重载的场景:both methods have same erasure
  5. 【arduino】I/O端口操作
  6. Oracle问题:ora-12514
  7. 【基础篇】详解Zookeeper客户端Curator
  8. 让双网卡同时工作在内网和外网
  9. wincc工程组态论文_WinCC组态的功能有哪些
  10. “AI人工智能技术及其应用实战”培训班