Java实现员工信息管理系统

网友投稿 280 2022-08-24


Java实现员工信息管理系统

在java SE中,对IO流与集合的操作在应用中比较重要。接下来,我以一个小型项目的形式,演示IO流、集合等知识点在实践中的运用。

该项目名称为“员工信息管理系统”(或“员工收录系统”),主要是通过输入员工的id、姓名信息,实现简单的增删改查功能。

该项目主要在DOS窗口的控制台或者Eclipse的控制台上进行操作。操作界面如下:

该项目的文件结构如下:

Step 1:

入口类SystemMain的代码为:

package empsystem;

import java.util.Scanner;

/**

* 主界面

* 一个Scanner录入对象

* Employ类

* 文件路径

* 查重SearchID

* @author 李章勇

*

*/

public class SystemMain {

private Scanner sc=new Scanner(System.in);

public SystemMain() {

showWelcome();

}

public void showWelcome(){

System.out.println("----员工收录系统");

System.out.println("1.增加员工功能");

System.out.println("2.查看员工功能");

System.out.println("3.修改员工功能");

System.out.println("4.删除员工功能");

System.out.println("5.退出系统");

String choice=sc.nextLine();

switch(choice){

case "1":

System.out.println("您选择了增加用户功能");

//Add

new Add();

break;

case "2":

System.out.println("您选择了查看用户功能");

//Search

new ShowEmp();

break;

case "3":

System.out.println("您选择了修改用户功能");

//Modify

new Modify();

break;

case "4":

System.out.println("您选择了删除用户功能");

//删除用户Delete

new Delete();

break;

case "5":

System.out.println("您选择了退出系统");

return;

default:

System.out.println("无此功能");

break;

}

showWelcome();

}

public static void main(String[] args) {

new SystemMain();

}

}

Step 2:

写文件路径FilePath接口。

package empsystem;

public interface FilePath {

public static final String PATH_NAME="emp.em";

}

Step 3:

写员工类Employ。

package empsystem;

import java.io.Serializable;

/**

* id,name

* @author 李章勇

*

*/

public class Employ implements Serializable{

private int id;

private String name;

public Employ() {

}

public Employ(int id, String name) {

super();

this.id = id;

this.name = name;

}

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;

}

@Override

public String toString() {

return "Employ [id=" + id + ", name=" + name + "]\n";

}

}

Step 4:

根据ID查找员工的类SearchID。

package empsystem;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.util.ArrayList;

import java.util.List;

/**

* 根据Id查找员工

* @author 李章勇

*

*/

public class SearchID {

private SearchID(){}

public static Employ searchId(int id){

File file=new File(FilePath.PATH_NAME);

if(file.exists()){

try {

ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

try {

ArrayList ems=(ArrayList) ois.readObject();

ois.close();

for(int i=0;i

if(id==ems.get(i).getId()){

return ems.get(i);

}

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

return null;

}

return null;

}

}

Step 5:

接下来是增,查,改,删的类,分别是Add类,ShowEmp类, Modify类,Modify类。

(1)

package empsystem;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.Scanner;

/**

* 一个输入器对象Scanner

* 文件

* 集合对象ArrayList

* @author 李章勇

*

*/

public class Add {

private Scanner sc=new Scanner(System.in);

private File file=new File(FilePath.PATH_NAME);

private ArrayList ems;

public Add() {

if(file.exists()){

try {

ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

try {

ems=(ArrayList) ois.readObject();

ois.close();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

ems=new ArrayList();

}

if(ems!=null){

add();

}else{

System.out.println("系统内部问题,无法操作");

return;

}

}

public boolean checkNum(String idStr){

//检测输入格式

if(idStr==null || idStr.equals("")){

System.out.println("非法输入,重来");

return false;

}

char[] cs=idStr.toCharArray();

for(int i=0;i

if(cs[i]<'0' || cs[i]>'9'){

System.out.println("输入非法,重来");

return false;

}

}

return true;

}

private String idStr;

public int getRightNum(){

idStr=sc.nextLine();

if(!checkNum(idStr)){

getRightNum();

}

int id=Integer.parseInt(idStr);

return id;

}

public void askGoOn(){

System.out.println("请问是否继续录入?Y/N");

String choice=sc.nextLine();

if("Y".equalsIgnoreCase(choice)){

add();

}else if("N".equalsIgnoreCase(choice)){

//保存到文件

saveToFile();

return;

}else{

System.out.println("无此命令,请重新选择!");

askGoOn();

}

}

public void saveToFile(){

try {

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file));

oos.writeObject(ems);

oos.close();

//测试打印查看

System.out.println("添加成功");

System.out.println(ems);

return;

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void add(){

System.out.println("请输入用户ID:");

//返回整数

int id=getRightNum();

for(int i=0;i

if(id==ems.get(i).getId()){

System.out.println("id已存在,请重新输入");

add();

}

}

System.out.println("请输入员工姓名:");

String name=sc.nextLine();

Employ em=new Employ(id,name);

ems.add(em);

//询问是否继续录入

askGoOn();

}

}

(2)

package empsystem;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.util.ArrayList;

import java.util.Scanner;

/**

* 一个输入器对象Scanner

* 文件

* 集合对象ArrayList

* @author 李章勇

*

*/

public class ShowEmp {

private Scanner sc=new Scanner(System.in);

private File file=new File(FilePath.PATH_NAME);

private ArrayList ems;

public ShowEmp() {

if(file.exists()){

try {

ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

try {

ems=(ArrayList) ois.readObject();

ois.close();

if(ems!=null){

show();

}else{

System.out.println("系统内部问题,无法操作");

return;

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("数据文件不存在,无法查看");

return;

}

}

public boolean checkNum(String idStr){

//检测输入格式

if(idStr==null || idStr.equals("")){

System.out.println("非法输入,重来");

return false;

}

char[] cs=idStr.toCharArray();

for(int i=0;i

if(cs[i]<'0' || cs[i]>'9'){

System.out.println("输入非法,重来");

return false;

}

}

return true;

}

private String idStr;

public int getRightNum(){

idStr=sc.nextLine();

if(!checkNum(idStr)){

getRightNum();

}

int id=Integer.parseInt(idStr);

return id;

}

public void show(){

System.out.println("查看全部员工输入Y,查看单个员工输入N");

String choice=sc.nextLine();

if("Y".equalsIgnoreCase(choice)){

System.out.println(ems);

return;

}else if("N".equalsIgnoreCase(choice)){

System.out.println("请输入要查询的员ID:");

int id=getRightNum();

if(SearchID.searchId(id)!=null){

System.out.println("您查找的员工信息为:\n"+SearchID.searchId(id));

return;

}else{

System.out.println("无此用户");

return;

}

}else{

System.out.println("无此命令,请重新选择!");

show();

}

}

}

(3)

package empsystem;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.Scanner;

/**

* 一个输入器对象Scanner

* 文件

* 集合对象ArrayList

* @author 李章勇

*

*/

public class Modify {

private Scanner sc=new Scanner(System.in);

private File file=new File(FilePath.PATH_NAME);

private ArrayList ems;

public Modify() {

if(file.exists()){

try {

ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

try {

ems=(ArrayList) ois.readObject();

ois.close();

if(ems!=null){

modify();

}else{

System.out.println("系统内部问题,无法操作");

return;

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("数据文件不存在,无法查看");

return;

}

}

public boolean checkNum(String idStr){

//检测输入格式

if(idStr==null || idStr.equals(lbaEOR"")){

System.out.println("非法输入,重来");

return false;

}

char[] cs=idStr.toCharArray();

for(int i=0;i

if(cs[i]<'0' || cs[i]>'9'){

System.out.println("输入非法,重来");

return false;

}

}

return true;

}

private String idStr;

public int getRightNum(){

idStr=sc.nextLine();

if(!checkNum(idStr)){

getRightNum();

}

int id=Integer.parseInt(idStr);

return id;

}

public void saveToFile(){

try {

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file));

oos.writeObject(ems);

oos.close();

//测试打印查看

System.out.println("修改成功");

System.out.println(ems);

return;

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void modify(){

System.out.println("请输入要修改的用户ID:");

int id=getRightNum();

if(SearchID.searchId(id)!=null){

System.out.println("修改前用户的姓名为:"+SearchID.searchId(id).getName());

System.out.println("请输入修改后的姓名:");

String name=sc.nextLine();

for(int i=0;i

if(id==ems.get(i).getId()){

ems.get(i).setName(name);

saveToFile();

}

}

}else{

System.out.println("无此用户");

return;

}

}

}

(4)

package empsystem;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.Scanner;

/**

* 一个输入器对象Scanner

* 文件

* 集合对象ArrayList

* @author 李章勇

*

*/

public class Delete {

private Scanner sc=new Scanner(System.in);

private File file=new File(FilePath.PATH_NAME);

private ArrayList ems;

public Delete() {

if(file.exists()){

try {

ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));

try {

ems=(ArrayList) ois.readObject();

ois.close();

if(ems!=null){

delete();

}else{

System.out.println("系统内部问题,无法操作");

return;

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("数据文件不存在,无法查看");

return;

}

}

public boolean checkNum(String idStr){

//检测输入格式

if(idStr==null || idStr.equals("")){

System.out.println("非法输入,重来");

return false;

}

char[] cs=idStr.toCharArray();

for(int i=0;i

if(cs[i]<'0' || cs[i]>'9'){

System.out.println("输入非法,重来");

return false;

}

}

return true;

}

private String idStr;

public int getRightNum(){

idStr=sc.nextLine();

if(!checkNum(idStr)){

getRightNum();

}

int id=Integer.parseInt(idStr);

return id;

}

public void sahttp://veToFile(){

try {

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file));

oos.writeObject(ems);

oos.close();

System.out.println("删除成功");

//测试打印查看

System.out.println(ems);

return;

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void delete(){

System.out.println("请输入要删除的员工ID:");

int id=getRightNum();

if(SearchID.searchId(id)!=null){

System.out.println("删除前用户的姓名为:"+SearchID.searchId(id).getName());

Iterator it=ems.iterator();

while(it.hasNext()){

Employ em=it.next();

if(id==em.getId()){

it.remove();

saveToFile();

}

}

}else{

System.out.println("无此用户");

return;

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python之生成二面体群元素(二面体群的元素)
下一篇:【工具推荐】5款超好用的python解释器!(python常用解释器)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~