Java实例---简单的个人管理系统

代码分析

FileOperate.java

 1 package singleperson;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.ObjectInputStream;
 9 import java.io.ObjectOutputStream;
10 import java.io.Serializable;
11 
12 public class FileOperate implements Serializable {
13     /**
14      * 
15      */
16     private static final long serialVersionUID = -4304337775560097887L;
17     private File file;
18     private String path; 
19 
20     public FileOperate(String path)
21     {
22         this.path = path; 
23         this.file = new File(this.path);
24     }
25     
26     /**
27      * 保持文件
28      * @param obj
29      * @return
30      */
31     public boolean save(Object obj){
32         boolean flag = false;
33         ObjectOutputStream oos = null;
34         try {
35             oos = new ObjectOutputStream(new FileOutputStream(this.file));
36             oos.writeObject(obj);
37         } catch (Exception e) {
38             e.printStackTrace();
39         } finally{
40             if(oos!=null)
41             {
42                 try {
43                     oos.close();
44                 } catch (IOException e) {
45                     // TODO 自动生成的 catch 块
46                     e.printStackTrace();
47                 }
48             }
49         }
50         
51         return flag;
52     }
53     
54     /**
55      * 读取文件
56      * @return
57      */
58     public Object load(){
59         Object obj = null;
60         ObjectInputStream ois = null;
61         try {
62             ois = new ObjectInputStream(new FileInputStream(this.file));
63             obj = ois.readObject();
64         } catch (Exception e) {
65             // TODO 自动生成的 catch 块
66             e.printStackTrace();
67         }finally{
68             if(ois!=null)
69             {
70                 try {
71                     ois.close();
72                 } catch (IOException e) {
73                     // TODO 自动生成的 catch 块
74                     e.printStackTrace();
75                 }
76             }
77         }
78         
79         return obj;
80     }
81 }
View Code

InputData.java

  1 package singleperson;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.FileInputStream;
  5 import java.io.InputStreamReader;
  6 import java.text.ParseException;
  7 import java.text.SimpleDateFormat;
  8 import java.util.Date;
  9 
 10 public class InputData {
 11     private BufferedReader buf;
 12     
 13     public InputData()
 14     {
 15         this.buf = new BufferedReader(new InputStreamReader(System.in));
 16     }
 17     
 18     public String getString(String info){
 19     
 20     String str = null;
 21     System.out.println(info);
 22     try {
 23             str = this.buf.readLine();
 24             
 25     } catch (Exception e) {
 26         // TODO 自动生成的 catch 块
 27         e.printStackTrace();
 28     }
 29     return str;
 30     };
 31     
 32     public int getInt(String info, String error)
 33     {
 34         int temp = 0;
 35         String str = null;
 36         boolean flag = true;
 37         while(flag)
 38         {
 39             try {
 40                 str = this.getString(info);
 41                 if(str.matches("\\d+"))
 42                 {
 43                     temp = Integer.parseInt(str);
 44                     flag = false;
 45                 }else{
 46                     System.out.println(error);
 47                 }
 48                 
 49             } catch (Exception e) {
 50                 // TODO: handle exception
 51             }
 52         }
 53         
 54         return temp;
 55     }
 56     
 57     public float getFloat(String info, String error)
 58     {
 59         float temp = 0;
 60         String str = null;
 61         boolean flag = true;
 62         while(flag)
 63         {
 64             str = this.getString(info);
 65             if(str.matches("\\d+.?\\d+"))
 66             {
 67                 temp = Float.parseFloat(str);
 68                 flag = false;
 69             }else
 70             {
 71                 System.out.println(error);;
 72             }
 73         }
 74         return temp;
 75     }
 76     
 77     public Date getDate(String info, String error)
 78     {
 79         Date date = null;
 80         String str = null;
 81         boolean flag = true;
 82         while(flag){
 83             if(str.matches("\\d{4}-\\d{2}-\\d{2}")){
 84                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 85                 try {
 86                     date = sdf.parse(str);
 87                 } catch (ParseException e) {
 88                     // TODO 自动生成的 catch 块
 89                     e.printStackTrace();
 90                 }
 91             }else
 92             {
 93                 System.out.println(error);;
 94             }
 95                 
 96         }
 97         return date;
 98     }
 99     
100 };
View Code

Menu.java

 1 package singleperson;
 2 
 3 public class Menu {
 4     public Menu()
 5     {
 6         while(true)
 7         {
 8             this.show();
 9         }
10     }
11     
12     public void show()
13     {
14         System.out.println("===== FTL个人管理系统 =====") ;
15         System.out.println("    [1]、增加数据") ;
16         System.out.println("    [2]、删除数据") ;
17         System.out.println("    [3]、修改数据") ;
18         System.out.println("    [4]、查看数据") ;
19         System.out.println("    [0]、系统退出\n");
20         InputData input = new InputData();
21         int i = input.getInt("请选择:", "请重新选择:");
22         switch (i) {
23         case 1:
24         {
25             Operate.add();
26             break;
27         }
28 
29         case 2:
30         {
31             Operate.delete();
32             break;
33         }
34         case 3:
35         {
36             Operate.update();
37             break;
38         }
39         case 4:
40         {
41             Operate.find();
42             break;
43         }
44         default:{
45             System.out.println("请选择正确的操作!") ;
46         }
47 
48         }
49                 
50                 
51     }
52     
53 }
View Code

Operate.java

 1 package singleperson;
 2 
 3 import java.io.File;
 4 
 5 public class Operate {
 6     
 7     public static void add(){
 8         InputData input = new InputData();
 9         FileOperate file = new FileOperate("E:" + File.pathSeparator + "hhh.txt");
10         String name = input.getString("请输入姓名:");
11         int age = input.getInt("请输入年龄:", "年龄必须是整数");
12         Person per = new Person(name,age);
13         file.save(per);
14         System.out.println("添加信息成功");
15     };
16     
17     public static void delete(){
18         FileOperate file = new FileOperate("E:" + File.pathSeparator + "hhh.txt");
19         file.save(null);
20         System.out.println("删除信息成功");
21     };
22     
23     public static void update(){
24         InputData input = new InputData();
25         FileOperate file = new FileOperate("E:" + File.pathSeparator + "hhh.txt");
26         Person per = null;
27         per = (Person) file.load();
28         String name = input.getString("请输入姓名(原姓名:"+per.getName()+"):") ;
29         int age = input.getInt("请输入年龄(原年龄:"+per.getAge()+"):" , "年龄必须是数字!") ;
30         Person per1 = new Person(name,age);
31         file.save(per1);
32         System.out.println("更新信息成功");
33         
34     };
35     
36     public static void find(){
37         FileOperate file = new FileOperate("E:" + File.pathSeparator + "hhh.txt");
38         Person per = null;
39         per = (Person)file.load();
40         System.out.println(per);
41         
42     };
43 }
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() + "\t " + "年龄:"   + this.getAge() + "\n";
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

Test.java

1 package singleperson;
2 
3 public class Test {
4     public static void main(String[] args) {
5 
6         new Menu();
7     }
8 }
View Code

程序截图:

源码下载

点击下载

猜你喜欢

转载自www.cnblogs.com/ftl1012/p/singleperson.html