Java实现员工信息管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;
}
}
}
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;
= name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String 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);
ArrayList<Employ> ems=(ArrayList<Employ>) ois.readObject();
ois.close();
for(int i=0;i<ems.size();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<Employ> ems;
public Add() {
if(file.exists()){
try {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
try {
ems=(ArrayList<Employ>) 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<Employ>();
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<cs.length;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<ems.size();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);
//询问是否继续录⼊
}
(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<Employ> ems;
public ShowEmp() {
if(file.exists()){
try {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); try {
ems=(ArrayList<Employ>) 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<cs.length;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);
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<Employ> ems;
public Modify() {
if(file.exists()){
try {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); try {
ems=(ArrayList<Employ>) 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;
//检测输⼊格式
if(idStr==null || idStr.equals("")){
System.out.println("⾮法输⼊,重来");
return false;
}
char[] cs=idStr.toCharArray();
for(int i=0;i<cs.length;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<ems.size();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;
* 集合对象ArrayList
* @author 李章勇
*
*/
public class Delete {
private Scanner sc=new Scanner(System.in);
private File file=new File(FilePath.PATH_NAME);
private ArrayList<Employ> ems;
public Delete() {
if(file.exists()){
try {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
try {
ems=(ArrayList<Employ>) 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<cs.length;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();
}
}
public void delete(){
System.out.println("请输⼊要删除的员⼯ID:");
int id=getRightNum();
if(SearchID.searchId(id)!=null){
System.out.println("删除前⽤户的姓名为:"+SearchID.searchId(id).getName());
Iterator<Employ> it=ems.iterator();
while(it.hasNext()){
Employ em=it.next();
if(id==em.getId()){
it.remove();
saveToFile();
}
}
}else{
System.out.println("⽆此⽤户");
return;
}
}
}
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

相关文档
最新文档