zoukankan      html  css  js  c++  java
  • Java实例---简单的个人管理系统

    代码分析

    FileOperate.java

     1 package com.ftl.testperson;
     2 import java.io.File ;
     3 import java.io.FileInputStream ;
     4 import java.io.FileOutputStream ;
     5 import java.io.ObjectInputStream ;
     6 import java.io.ObjectOutputStream ;
     7 public class FileOperate{    // 此类专门用于保存和读取
     8     private File file = null ;    // 定义文件对象
     9     public FileOperate(String pathName){    // 通过    构造传递文件路径
    10         this.file = new File(pathName) ;
    11     }
    12     public boolean save(Object obj) throws Exception{    // 保存对象
    13         ObjectOutputStream oos = null ;        // 对象输出流
    14         boolean flag = false ;    // 定义操作标志位
    15         try{
    16             oos = new ObjectOutputStream(new FileOutputStream(this.file)) ;    // 实例化对象输出流
    17             oos.writeObject(obj) ;    // 写入对象
    18             flag = true ;
    19         }catch(Exception e){
    20             throw e ;    // 有异常交给被调用处处理
    21         }finally{
    22             if(oos!=null){
    23                 oos.close() ;
    24             }
    25         }
    26         return flag ;
    27     }
    28     public Object load() throws Exception{    // 读取对象
    29         Object obj = null ;    // 接收读取的内容
    30         ObjectInputStream ois = null ;    
    31         try{    
    32             ois = new ObjectInputStream(new FileInputStream(this.file)) ;    // 实例化对象输入流
    33             obj = ois.readObject() ;    // 读取对象
    34         }catch(Exception e){
    35             throw e ;
    36         }finally{
    37             if(ois!=null){
    38                 ois.close() ;    // 关闭
    39             }
    40         }
    41         return obj ;
    42     }
    43 };
    View Code

    InputData.java

     1 package com.ftl.testperson;
     2 
     3 import java.io.* ;
     4 import java.util.* ;
     5 import java.text.* ;
     6 public class InputData{
     7     private BufferedReader buf = null ;
     8     public InputData(){// 只要输入数据就要使用此语句
     9         this.buf = new BufferedReader(new InputStreamReader(System.in)) ;
    10     }
    11     public String getString(String info){    // 得到字符串信息
    12         String temp = null ;
    13         System.out.print(info) ;    // 打印提示信息
    14         try{
    15             temp = this.buf.readLine() ;    // 接收数据
    16         }catch(IOException e){
    17             e.printStackTrace() ;
    18         }
    19         return temp ;
    20     }
    21     public int getInt(String info,String err){    // 得到一个整数的输入数据
    22         int temp = 0 ;
    23         String str = null ;
    24         boolean flag = true ;    // 定义一个标记位
    25         while(flag){
    26             str = this.getString(info) ;    // 接收数据
    27             if(str.matches("^\d+$")){    // 判断是否由数字组成
    28                 temp = Integer.parseInt(str) ;    // 转型
    29                 flag = false ;    // 结束循环
    30             }else{
    31                 System.out.println(err) ;    // 打印错误信息
    32             }
    33         }
    34         return temp ;
    35     }
    36     public float getFloat(String info,String err){    // 得到一个小数的输入数据
    37         float temp = 0 ;
    38         String str = null ;
    39         boolean flag = true ;    // 定义一个标记位
    40         while(flag){
    41             str = this.getString(info) ;    // 接收数据
    42             if(str.matches("^\d+.?\d+$")){    // 判断是否由数字组成
    43                 temp = Float.parseFloat(str) ;    // 转型
    44                 flag = false ;    // 结束循环
    45             }else{
    46                 System.out.println(err) ;    // 打印错误信息
    47             }
    48         }
    49         return temp ;
    50     }
    51     public Date getDate(String info,String err){    // 得到一个小数的输入数据
    52         Date temp = null ;
    53         String str = null ;
    54         boolean flag = true ;    // 定义一个标记位
    55         while(flag){
    56             str = this.getString(info) ;    // 接收数据
    57             if(str.matches("^\d{4}-\d{2}-\d{2}$")){    // 判断是否由数字组成
    58                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
    59                 try{
    60                     temp = sdf.parse(str) ;    // 将字符串变为Date型数据
    61                 }catch(Exception e){}
    62                 flag = false ;    // 结束循环
    63             }else{
    64                 System.out.println(err) ;    // 打印错误信息
    65             }
    66         }
    67         return temp ;
    68     }
    69 };
    View Code

    Menu.java

     1 package com.ftl.testperson;
     2 
     3 public class Menu
     4 {
     5     public void start(){
     6         while(true){
     7             try {
     8                 Menu.show();
     9             } catch (Exception e) {
    10                 // TODO 自动生成的 catch 块
    11                 e.printStackTrace();
    12             }
    13         }
    14     }
    15     public static void show() throws Exception
    16     {
    17         System.out.println("===================个人系统===================");
    18         System.out.println("                  【1】、增加数据                                              ");
    19         System.out.println("                  【2】、删除数据                                              ");
    20         System.out.println("                  【3】、修改数据                                              ");
    21         System.out.println("                  【4】、查看数据                                              ");
    22         System.out.println("                  【0】、退出系统                                              ");
    23         InputData input = new InputData();
    24         int i = input.getInt("请选择:", "请输入正确的选项!");
    25         switch(i)
    26         {
    27             case 1:
    28             {
    29                 Operate.add();
    30                 break;
    31             }
    32             case 2:
    33             {
    34                 Operate.delete();
    35                 break;
    36             }
    37             case 3:
    38             {
    39                 Operate.update();
    40                 break;
    41             }
    42             case 4:
    43             {
    44                 Operate.find();
    45                 break;
    46             }
    47             case 0:
    48             {
    49                 System.exit(1);
    50                 break;
    51             }
    52             default:
    53             {
    54                 System.out.println("请输入正确的操作!!!");
    55             }
    56         }
    57     }
    58 }
    View Code

    Operate.java

     1 package com.ftl.testperson;
     2 public class Operate{
     3     public static void add(){    // 增加操作
     4         InputData input = new InputData() ;        // 实例化输入数据对象
     5         FileOperate fo = new FileOperate("E:\ test.txt") ;
     6         String name = input.getString("请输入姓名:") ;
     7         int age = input.getInt("请输入年龄:" , "年龄必须是数字!") ;
     8         Person per = new Person(name,age) ;    // 实例化Person对象
     9         try{
    10             fo.save(per) ;    // 保存对象
    11         }catch(Exception e){
    12             e.printStackTrace() ;
    13         }
    14         System.out.println("信息增加成功!") ;
    15     }
    16     public static void delete(){    // 删除操作
    17         FileOperate fo = new FileOperate("d:\test.per") ;
    18         try{
    19             fo.save(null) ;    // 保存对象
    20         }catch(Exception e){
    21             e.printStackTrace() ;
    22         }
    23         System.out.println("信息删除成功!") ;
    24     }
    25     public static void update(){    // 更新操作
    26         InputData input = new InputData() ;        // 实例化输入数据对象
    27         FileOperate fo = new FileOperate("d:\test.per") ;
    28         Person per = null ;
    29         try{
    30             per = (Person)fo.load() ;    // 读取对象
    31         }catch(Exception e){
    32             e.printStackTrace() ;
    33         }
    34         String name = input.getString("请输入姓名(原姓名:"+per.getName()+"):") ;
    35         int age = input.getInt("请输入年龄(原年龄:"+per.getAge()+"):" , "年龄必须是数字!") ;
    36         per = new Person(name,age) ;    // 实例化Person对象
    37         try{
    38             fo.save(per) ;    // 保存对象
    39         }catch(Exception e){
    40             e.printStackTrace() ;
    41         }
    42         System.out.println("信息修改成功!") ;
    43     }
    44     public static void find(){    // 查看操作
    45         FileOperate fo = new FileOperate("d:\test.per") ;
    46         Person per = null ;
    47         try{
    48             per = (Person)fo.load() ;    // 读取对象
    49         }catch(Exception e){
    50             e.printStackTrace() ;
    51         }
    52         System.out.println(per) ;
    53     }
    54 };
    View Code

    Person.java

     1 package singleperson;
     2 
     3 import java.awt.event.ActionEvent;
     4 import java.awt.event.ActionListener;
     5 import java.io.Serializable;
     6 
     7 import javax.swing.JFrame;
     8 
     9 public class Person implements Serializable {
    10     private String name;
    11     private int age;
    12     @Override
    13     public String toString() {
    14         return "姓名:"  + this.getName() + "	 " + "年龄:"   + this.getAge() + "
    ";
    15     }
    16     public Person(String name, int age) {
    17         super();
    18         this.name = name;
    19         this.age = age;
    20     }
    21     public String getName() {
    22         return name;
    23     }
    24     public void setName(String name) {
    25         this.name = name;
    26     }
    27     public int getAge() {
    28         return age;
    29     }
    30     public void setAge(int age) {
    31         this.age = age;
    32     }
    33 }
    View Code

    MainTest.java

    1 package com.ftl.testperson;
    2 
    3 public class MainTest {
    4     public static void main(String[] args) throws Exception {
    5         Menu menu = new Menu();
    6         menu.start();
    7     }
    8 }
    View Code

    程序截图:

    源码下载

    点击下载

  • 相关阅读:
    阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)
    CentOS 7配置成网关服务器
    Mac/Ubuntu下的数据建模工具PDMan,替代PowerDesigner
    Docker卸载高版本重装低版本后启动提示:driver not supported
    Redis连接出现Error: Connection reset by peer的问题是由于使用Redis的安全模式
    Mac流量监控/硬盘监控小工具
    CentOS 7创建自定义KVM模板(现有KVM迁移到另外一台机)
    vi显示行号
    阿里云与微软云的对照表
    CentOS下安装Jenkins(Docker/war/tomcat/java -jar)
  • 原文地址:https://www.cnblogs.com/ftl1012/p/singleperson.html
Copyright © 2011-2022 走看看