基于Java的人员信息管理系统
基于Java的人员信息管理系统
- 介绍
- 实现类(Person)
- 实现类(Menu)
- 实现类(Input)
- 实现类(Operator)
- 实现类(Test)
- 结果展示:
- 操作环境以及信息
介绍
利用Java有关知识,解决有关人员信息(编号,姓名,年龄…。等等)的存储,以及进行简单的增加,删除,修改,查询数据…等等操作。
实现类(Person)
编写一个人员类进行对存储人员属性的初始化,包括(编号,姓名,年龄),以及制定各个人员之间的比较规则。
代码展示:
package InformationSystem;import java.io.Serializable;public class Person implements Serializable,Comparable<Person>{private int id; //人员编号private String name; //人员姓名private int age;//人员年龄public Person(){};public Person(int id,String name,int age){ //初始化this.id=id;this.name=name;this.age=age;}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;}@Overridepublic String toString() {// TODO Auto-generated method stubreturn "编号:"+this.getId()+",姓名:"+this.getName()+",年龄:"+this.getAge();}@Overridepublic int compareTo(Person o) { //制定比较规则if(this.id<o.id){return -1;}else if(this.id>o.id){return 1;}else{return 0;}}
}
实现类(Menu)
用于方便使用者与控制台交互,采用文字排版,来显示功能提醒。
代码展示:
package InformationSystem;public class Menu {public static void show(){System.out.println("欢迎使用大数据信息管理系统");System.out.println("******1.增加数据*****");System.out.println("******2.删除数据*****");System.out.println("******3.修改数据*****");System.out.println("******4.查看数据*****");System.out.println("******5.系统退出*****");}
}
实现类(Input)
用于捕获用户的输入内容,根据输入内容的类型进行不同方法的使用,同时制约了输入内容的格式一致以及规定了年龄的范围等。
代码展示:
package InformationSystem;
import java.util.*;
public class Input {private Scanner scan;public Input(){scan = new Scanner(System.in);}//编写一个方法,用来获取用户输入的任何的内容public String getString(String info){System.out.println(info);return scan.nextLine();}//编写一个方法,用来用户用户输入的整数,我们判断格式,如果格式不正确则重新输入public int getInt(String info,String error){//获取用户输入的内容String str = getString(info);//对用户输入的内容判断其格式是否满足需求while(!str.matches("\\d+")){System.out.println(error);str = getString(info);}return Integer.parseInt(str);}//编写一个方法,用来获取用户的年龄public int getAge(String info,String error1,String error2){int age = getInt(info, error1);while(!(age>0&&age<120)){System.out.println(error2);age = getInt(info, error1);}return age;}
}
实现类(Operator)
用于实现整体的展示,和对人员数据的存储,读取以及执行增删改查操作等。是项目的核心。
代码展示:
package test.ManagerSystem;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.Collections;public class Operator{private Input input;private File file=null;private ArrayList<Person> alist=null;private boolean flag;public Operator(){input=new Input();file=new File("E:"+File.separator+"王伯文"+File.separator+"person.txt");alist=new ArrayList<Person>();flag=true;}public void operator(){while(flag){Menu.show();int choice=input.getInt("输入数字来选择功能!", "只能是数字!");switch(choice){case 1://增加数据int id=getMaxID()+1;String name=input.getString("请输入你要增加人员的姓名!");int age=input.getAge("请输入你要增加的人员年龄", "年龄只能是数字", "超过人类正常年龄!");Person per=new Person(id,name,age);alist.add(per);update();break;case 2://删除数据select();if(alist.size()>0){for(Person p:alist){System.out.println(p);}}else{System.out.println("暂无数据!");}int deleteid=input.getInt("请输入你要删除人员的id", "只能为数字!");if(checkID(deleteid)){for(int index=0;index<alist.size();index++){if(alist.get(index).getId()==deleteid){alist.remove(index);break;}}update();}else{System.out.println("人员不存在!");}break;case 3://修改数据select();if(alist.size()>0){for(Person p:alist){System.out.println(p);}}else{System.out.println("暂无数据!");}int updateId=input.getInt("请输入你要修改的人员id", "只能是数字!");if(checkID(updateId)){String updateName=input.getString("请输入你要修改成的姓名");int updateAge=input.getAge("请输入你要修改成的年龄", "年龄只能是整数", "年龄超出正常人水平");for(Person person:alist){if(person.getId()==updateId){person.setName(updateName);person.setAge(updateAge);break;}}update();}else{System.out.println("您要修改的人员不存在!");}break;case 4://查询数据select();if(alist.size()>0){for(Person p:alist){System.out.println(p);}}else{System.out.println("暂无数据!");}break;case 5:System.out.println("系统退出成功!");System.exit(0);break;default:System.out.println("没有此选项!");break;}}}public void select(){ObjectInputStream ois=null;try {ois=new ObjectInputStream(new FileInputStream(file));alist=(ArrayList<Person>)ois.readObject();} catch (FileNotFoundException e) {} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(ois!=null){try {ois.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public int getMaxID(){int id=0;select();if(alist.size()>0){Collections.sort(alist);return alist.get(alist.size()-1).getId();}return id;}public void update(){ObjectOutputStream ops=null;try {ops=new ObjectOutputStream(new FileOutputStream(file));ops.writeObject(alist);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(ops!=null){try {ops.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public boolean checkID(int id){boolean flag=false;for(Person p:alist){if(p.getId()==id){flag=true;break;}}return flag;}
}
注意:在执行增删改查操作的前提都要查看是否有数据,才能进行下一步操作的执行。删除和修改都是根据我们的编号来进行操作,大大降低了检索难度和资源的浪费。
实现类(Test)
实现整体功能的入口
代码展示:
package InformationSystem;public class test {public static void main(String[] args) {Operator op=new Operator();op.operator();;}
}
结果展示:
查询数据:
增加数据:
删除数据:
修改数据:
系统退出:
操作环境以及信息
系统环境:windows 10 专业版
语言:Java
开发工具:eclipse
基于Java的人员信息管理系统相关推荐
- 基于Java毕业设计志愿者信息管理系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计志愿者信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计志愿者信息管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...
- 基于JAVA高校科研信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA高校科研信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA高校科研信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...
- 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
基于Java的教师信息管理系统的设计与实现论文 职场大变样社区():下载毕业设计成品 全套资料,全部50元以下 毕业设计(论文)任务书 第1页 毕业设计(论文)题目: 基于java的教师信息管理系统的 ...
- 基于JAVA网上家教信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA网上家教信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA网上家教信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...
- 基于Java毕业设计畜牧场信息管理系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计畜牧场信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计畜牧场信息管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...
- 基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署
基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA汽车售后服务信息管理系统的设计与实现计算机毕业设计源码+系统+mysql数据库+ ...
- 学生信息录入java,基于java的学生信息管理系统
基于java的学生信息管理系统中分为多级角色管理:包括系统管理员.学生和老师几种权限,采用了开发技术JSP以及MYSQL数据库作为本系统的开发工具.主要包括新闻模块,考试模块,学生模块,教师模块,选课 ...
- 基于JAVA毕业生就业信息管理系统计算机毕业设计源码+系统+lw文档+部署
基于JAVA毕业生就业信息管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA毕业生就业信息管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- 计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署
计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署 本源码技术栈 ...
最新文章
- uniapp设置模板路径页面样式混乱解决办法
- 小眼睛适合大框还是小框眼镜_北京潘家园眼镜城良心商家推荐
- wireshark读写pcap文件_PCAP-file-analysis 利用wireshark捕获tcp ip数据包和pcap文件分析 - 下载 - 搜珍网...
- 编译原理--NFA/DFA
- 一些服务器编程的概念
- 洛谷-图的遍历-P2661-信息传递
- python3实战练手项目_Python0基础练手项目有哪些值得推荐?附实战项目+学习图谱...
- 世界目光聚焦美国:埃博拉病患者是否认真是可以治愈的?
- JetBrains(Intellij, pycharm)多行编辑模式
- mysql导出数据库视频教程_Navicat怎样导入导出sql文件?(图文步骤+视频教程)...
- IPOP-CMA-ES:一种重启CMA-ES
- 如何创造一个能和你对话的语音AI?
- 食品加工行业MES与APS的应用
- vue路由报错Navigating to current location (“/login“) is not allowed踩坑总结
- Jquery.city-picker 实现省市区三级联动
- Cygwin+NS2的安装过程及问题解决
- 深度学习之语义分割unet算法解读
- 火拼商城:4亿乡村新中产正在消费升级!
- 百度云下载官方免费提速方案
- python数据分析--金融数据处理
热门文章
- C# 计算两条线段交点的位置
- 百度贴吧爬虫:理解网页的加载过程
- ubuntu 18.04安装 imu-tk ,校准加速度计和陀螺仪
- 计算机教室网络连接简图,多媒体教室连接示意图.ppt
- WEB 免费打印控件推荐
- 从键盘输入一批字符,以@结束,按要求加密并输出。输出占一行 加密规则: 1)、所有字母均转换为小写。 2)、若是字母'a'到'y',则转化为下一个字母。 3)、若是'z',则转化为'a'。
- 苏州新导RFID智能仓储管理系统+RFID仓库管理,智能化仓储管理触手可及
- 搜狗输入法词库php词库怎么用,中州韵输入法导入搜狗词库(示例代码)
- iperf 网速测速
- Android Volley完全解析(一),初识Volley的基本用法 转载地址:http://blog.csdn.net/guolin_blog/article/details/17482095