简陋学生管理操作

【该类只是测试类】

1
//测试类 2 package studenttest; 3 4 import view.View; 5 6 public class Test { 7 public static void main(String[] args) { 8 new View().show(); 9 } 10 }

=================================================================================

 
【该类为学生信息属性类】


1
//创建学生信息 2 package data; 3 4 public class Student { 5 private int id; 6 private int age; 7 private String name; 8 9 public int getId() { 10 return id; 11 } 12 13 public void setId(int id) { 14 this.id = id; 15 } 16 17 public int getAge() { 18 return age; 19 } 20 21 public void setAge(int age) { 22 this.age = age; 23 } 24 25 public String getName() { 26 return name; 27 } 28 29 public void setName(String name) { 30 this.name = name; 31 } 32 33 @Override  
34 public String toString() { 35 return "Student [id=" + id + ", age=" + age + ", name=" + name + "]"; 36 } 37 38 }

=================================================================================

  
【该类只用于在控制台显示的内容】

1
//学生管理操作_显示 2 package view; 3 4 import java.util.List; 5 import java.util.Scanner; 6 7 import operate.Operate; 8 import data.Student; 9 10 public class View { 11 Scanner sc = new Scanner(System.in); 12 13 public void show() { 14 while (true) { // 无限循环 15 System.out 16 .println("请选择需要的操作:1.添加学生信息;2.查找学生信息;3.删除学生信息;4.查看全部学生信息;5.修改学生信息;6.退出"); 17 int temp = sc.nextInt(); // 对选择的操作进行临时储存 18 switch (temp) { // 进行对应的操作 19 case 1: 20 add(); // 进行添加操作 21 break; 22 case 2: 23 find(); // 进行查找单个学生操作 24 break; 25 case 3: 26 del(); // 进行删除单个学生的操作 27 break; 28 case 4: 29 findAll(); // 进行查看全部信息的操作 30 break; 31 case 5: 32 dataup(); // 进行修改某个学生信息的操作 33 break; 34 case 6: 35 exit(); // 进行退出操作 36 break; 37 38 } 39 } 40 } 41 42 private void exit() { 43 // TODO Auto-generated method stub 44 Operate op = new Operate(); 45 op.exit(); 46 } 47 48 private void dataup() { 49 // TODO Auto-generated method stub 50 System.out.println("请输入要修改学生的id" ); 51 int id = sc.nextInt(); 52 System.out.println("请输入要修改学生的age"); 53 int age = sc.nextInt(); 54 System.out.println("请输入要修改学生的name"); 55 String name = sc.next(); 56 Operate op = new Operate(); 57 Student st = new Student(); 58 st.setId(id); 59 st.setAge(age); 60 st.setName(name); 61 if(op.dataup(st)){ 62 //修改成功 63 System.out.println("修改成功"); 64 }else{ 65 System.out.println("修改失败"); 66 } 67 } 68 69 private void findAll() { 70 // TODO Auto-generated method stub 71 Operate op = new Operate(); 72 // System.out.println(op.findAll() + "\r\n"); //可以打印出,但是不能分行 73 List<Student> l = op.findAll(); 74 for(Student s : l){ 75 System.out.println(s); 76 } 77 } 78 79 private void del() { 80 // TODO Auto-generated method stub 81 System.out.println("请输入要删除的学生id"); 82 int id = sc.nextInt(); 83 Operate op = new Operate(); 84 if (op.del(id)) { 85 // 删除成功 86 System.out.println("删除成功"); 87 } else { 88 System.out.println("删除失败"); 89 } 90 } 91 92 private void find() { 93 // TODO Auto-generated method stub 94 System.out.println("请输入要查找学生的id"); 95 int id = sc.nextInt(); 96 Operate op = new Operate(); 97 if (op.find(id) != null) { 98 System.out.println(op.find(id)); 99 } else { 100 System.out.println("没有该学生"); 101 } 102 } 103 104 private void add() { 105 // TODO Auto-generated method stub 106 System.out.println("请输入要添加的学生id"); 107 int id = sc.nextInt(); 108 System.out.println("请输入要添加学生的age"); 109 int age = sc.nextInt(); 110 System.out.println("请输入要添加的学生name"); 111 String name = sc.next(); 112 Student st = new Student(); 113 st.setId(id); 114 st.setAge(age); 115 st.setName(name); 116 Operate op = new Operate(); 117 if (op.add(st)) { 118 System.out.println("录入成功"); 119 } else { 120 System.out.println("已存在该id"); 121 } 122 } 123 }

=================================================================================

  1 //学生管理操作_操作
  2 package operate;
  3 
  4 import java.io.BufferedReader;
  5 import java.io.BufferedWriter;
  6 import java.io.File;
  7 import java.io.FileFilter;
  8 import java.io.FileNotFoundException;
  9 import java.io.FileReader;
 10 import java.io.FileWriter;
 11 import java.io.IOException;
 12 import java.util.ArrayList;
 13 import java.util.List;
 14 
 15 import data.Student;
 16 
 17 public class Operate {
 18     private File file = new File("StudentData"); // 创建用于存储学生信息的文件夹
 19 
 20     // 查找学生id是否已存在
 21     public boolean check(int id) {
 22         File f = new File(file, id + ".st");
 23         return f.exists(); // 返回是否已存在该id
 24     }
 25 
 26     // 修改某个学生信息
 27     public boolean dataup(Student st) {
 28         // TODO Auto-generated method stub
 29         if (check(st.getId())) {
 30             // 学生id存在
 31             BufferedWriter bw = null;
 32             try {
 33                 bw = new BufferedWriter(new FileWriter(new File(file,
 34                         st.getId() + ".st")));
 35                 bw.write(String.valueOf(st.getId()));
 36                 bw.newLine();
 37                 bw.write(String.valueOf(st.getAge()));
 38                 bw.newLine();
 39                 bw.write(st.getName());
 40                 bw.flush();
 41                 
 42             } catch (IOException e) {
 43                 // TODO Auto-generated catch block
 44                 e.printStackTrace();
 45                 
 46             } finally {
 47                 if (bw != null) {
 48                     try {
 49                         bw.close();
 50                     } catch (IOException e) {
 51                         // TODO Auto-generated catch block
 52                         e.printStackTrace();
 53                     }
 54                 }
 55             }
 56             return true;
 57         }
 58         else{
 59             return false;
 60         }
 61     }
 62 
 63     // 查看全部学生信息
 64     public List<Student> findAll() {
 65         // TODO Auto-generated method stub
 66         // 创建一个Student类型的学生集合
 67         List<Student> list = new ArrayList<Student>();
 68         // 筛选要添加到集合中的“.st”文件
 69         File[] f = file.listFiles(new FileFilter() {
 70 
 71             @Override
 72             public boolean accept(File pathname) {
 73                 // TODO Auto-generated method stub
 74                 return pathname.getName().endsWith(".st");
 75             }
 76         });
 77         // 遍历File[]并添加到List集合中
 78         for (File fs : f) {
 79             Student s = new Student();// 要添加到List集合中必须是Student类型
 80             BufferedReader br = null;
 81             try {
 82                 br = new BufferedReader(new FileReader(fs));
 83                 s.setId(Integer.parseInt(br.readLine()));// 须将“.st”文件中String类型转换成int类型读出
 84                 s.setAge(Integer.parseInt(br.readLine()));// readLine()为读取一行
 85                 s.setName(br.readLine());
 86             } catch (NumberFormatException e) {
 87                 // TODO Auto-generated catch block
 88                 e.printStackTrace();
 89             } catch (IOException e) {
 90                 // TODO Auto-generated catch block
 91                 e.printStackTrace();
 92             } finally {
 93                 if (br != null) {
 94                     try {
 95                         br.close();
 96                     } catch (IOException e) {
 97                         // TODO Auto-generated catch block
 98                         e.printStackTrace();
 99                     }
100                 }
101             }
102             list.add(s);
103         }
104         return list;
105     }
106 
107     // 删除某个学生
108     public boolean del(int id) {
109         // TODO Auto-generated method stub
110         File f = new File(file, id + ".st");
111         if (check(id)) {
112             // 存在该学号
113             f.delete();
114             return true;
115         } else {
116             return false;
117         }
118     }
119 
120     // 查找某一个学生信息操作
121     public Student find(int id) {
122         // TODO Auto-generated method stub
123         Student s = new Student();
124         if (check(id)) {
125             // 该学生存在
126             BufferedReader br = null;
127             try {
128                 br = new BufferedReader(new FileReader(new File(file, id
129                         + ".st")));
130                 s.setId(Integer.parseInt(br.readLine()));// Integer.parseInt是将字符串变成int
131                 s.setAge(Integer.parseInt(br.readLine()));
132                 s.setName(br.readLine());
133             } catch (NumberFormatException e) {
134                 // TODO Auto-generated catch block
135                 e.printStackTrace();
136             } catch (IOException e) {
137                 // TODO Auto-generated catch block
138                 e.printStackTrace();
139             } finally {
140                 try {
141                     if (br != null) {
142                         br.close();
143                     }
144                 } catch (IOException e) {
145                     // TODO Auto-generated catch block
146                     e.printStackTrace();
147                 }
148             }
149             return s;
150         } else {
151             // 不存在该学生id
152             return null;
153         }
154     }
155 
156     // 添加学生信息操作
157     public boolean add(Student st) {
158         // TODO Auto-generated method stub
159         BufferedWriter bw = null;// 包装一个写入流
160         if (!check(st.getId())) {// 检查要添加的学生id是否已经存在
161             // 该学生不存在则可以被添加
162             File f = new File(file, st.getId() + ".st"); // 在StudentDate文件夹中创建一个学生信息文件,并以学生学号+“.st”命名
163             try {
164                 bw = new BufferedWriter(new FileWriter(f));
165                 bw.write(String.valueOf(st.getId())); // 向文件中写入学生的学号
166                 bw.newLine(); // 写入一个换行
167                 bw.write(String.valueOf(st.getAge())); // 向文件中写入学生的年龄
168                 bw.newLine();
169                 bw.write(st.getName());
170                 bw.flush(); // 刷新写入后的文件
171             } catch (IOException e) {
172                 // TODO Auto-generated catch block
173                 e.printStackTrace();
174             } finally { // 不论执行try还是catch,都执行finally
175                 try {
176                     if (bw != null) {
177                         bw.close(); // 关闭流
178                     }
179                 } catch (IOException e) {
180                     // TODO Auto-generated catch block
181                     e.printStackTrace();
182                 }
183             }
184             return true;
185         } else {
186             // 存在该学生id不能创建
187             return false;
188         }
189     }
190 
191     //停止操作
192     public void exit() {
193         // TODO Auto-generated method stub
194         System.exit(0);
195     }
196 
197 }

 

posted @ 2014-05-27 12:19  泡沫__opt  阅读(584)  评论(0编辑  收藏  举报