simulatedDatabase

  1 import java.awt.BorderLayout;
  2 import java.awt.Frame;
  3 import java.awt.GridLayout;
  4 import java.awt.Label;
  5 import java.awt.TextArea;
  6 import java.awt.TextField;
  7 import java.awt.event.ActionEvent;
  8 import java.awt.event.ActionListener;
  9 import java.io.BufferedReader;
 10 import java.io.BufferedWriter;
 11 import java.io.FileReader;
 12 import java.io.FileWriter;
 13 import java.io.IOException;
 14 import java.util.ArrayList;
 15 import java.util.Scanner;
 16 
 17 import javax.swing.JButton;
 18 import javax.swing.JFrame;
 19 import javax.swing.JOptionPane;
 20 import javax.swing.JPanel;
 21 
 22 public class Main {
 23     public static TextField ta1=new TextField();
 24     public static TextField ta2=new TextField();
 25     public static TextField ta3=new TextField();
 26     public static TextField ta4=new TextField();
 27     public static JPanel panelTwo=new JPanel();
 28     public static String fileName="student.txt";
 29     Main(){        
 30         JFrame f=new JFrame("管理系统");
 31         f.setSize(468,120);
 32         f.setLocation(800,400);
 33         f.setVisible(true);        
 34         panelTwo.setLayout(new GridLayout(3, 4));
 35         ActionListener al=new Listener();
 36         Label la1=new Label("学号");
 37         Label la2=new Label("姓名");
 38         Label la3=new Label("年龄");
 39         Label la4=new Label("地址");
 40         panelTwo.add(la1);
 41         panelTwo.add(la2);
 42         panelTwo.add(la3);
 43         panelTwo.add(la4);
 44         panelTwo.add(ta1);
 45         panelTwo.add(ta2);
 46         panelTwo.add(ta3);
 47         panelTwo.add(ta4);
 48         JButton bInsert=new JButton("增加");
 49         JButton bDelete=new JButton("删除");
 50         JButton bAlter=new JButton("修改");
 51         JButton bSearch=new JButton("查询");
 52         bInsert.addActionListener(al);
 53         bDelete.addActionListener(al);
 54         bAlter.addActionListener(al);
 55         bSearch.addActionListener(al);
 56         panelTwo.add(bInsert);
 57         panelTwo.add(bDelete);
 58         panelTwo.add(bAlter);
 59         panelTwo.add(bSearch);
 60         f.add(panelTwo);
 61     }
 62     public static void main(String args[]) {
 63         new Main();
 64     }
 65     public static void readData(String fileName, ArrayList<Student> array) throws IOException{  
 66         //创建输入缓冲流对象  
 67         BufferedReader br=new BufferedReader(new FileReader(fileName));  
 68            
 69         String line;  
 70         //获得每一行的字符串,赋值给line  
 71         while((line=br.readLine())!=null){  
 72             //截取字符数组  
 73             String [] str=line.split(",");  
 74             //创建学生对象接收数据  
 75             Student s=new Student();  
 76             s.setId(str[0]);  
 77             s.setName(str[1]);  
 78             s.setAge(str[2]);  
 79             s.setAdress(str[3]);  
 80             //将获取到的数据存储到集合中  
 81             array.add(s);  
 82         }  
 83         br.close();  
 84     }  
 85        
 86     //把集合中的数据存储到文件中  
 87     public static void writeData(String fileName, ArrayList<Student> array) throws IOException{  
 88         //创建输出缓冲流对象  
 89         BufferedWriter bw=new BufferedWriter(new FileWriter(fileName));  
 90         //遍历集合,获取到数据  
 91         for(int x=0;x<array.size();x++){  
 92             //将集合中的每一行数据赋值给学生对象  
 93             Student s=array.get(x);  
 94                
 95             //创建StringBuilder对象用来拼接字符串  
 96             StringBuilder sb= new StringBuilder();  
 97             sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAdress());  
 98             //写入文件中  
 99             bw.write(sb.toString());  
100             bw.newLine();  
101             bw.flush();  
102         }  
103             bw.close();  
104     }  
105        
106     //查看所有学生的代码编写  
107     public static void findAllStudent(String fileName) throws IOException{  
108         //首先创建集合对象  
109         ArrayList<Student> array=new ArrayList<>();  
110         //获取到学生信息  
111         readData(fileName,array);  
112            
113         //判断是否有数据  
114         if(array.size()==0){  
115 //            System.out.println("当前没有学生信息,请重新您的选择");  
116             JOptionPane.showMessageDialog(panelTwo, "当前没有学生信息,请重新您的选择");
117             return;  
118         }  
119 //        System.out.println("学号\t\t\t姓名\t年龄\t地址");  
120         //遍历集合获取数据  
121         JFrame frame=new JFrame("查询结果");
122         frame.setVisible(true);
123         frame.setSize(468,200);
124         frame.setLocation(800,150);
125         TextArea ta5=new TextArea();
126         frame.add(ta5);
127         for(int x=0;x<array.size();x++){  
128             //定义学生对象,用来存储学生信息  
129             Student s=array.get(x);  
130 //            System.out.println(s.getId()+"\t\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdress());  
131             ta5.appendText(s.getId()+"\t\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdress()+"\n");
132         }  
133            
134            
135     }  
136        
137     //添加学生代码编码  
138     public static void addStudent(String fileName) throws IOException{  
139         //创建集合对象  
140         ArrayList<Student> array=new ArrayList<>();  
141         //从文件中读取数据  
142         readData(fileName, array);  
143         //创建键盘录入对象  
144         Scanner sc= new Scanner(System.in);  
145         //定义字符串类型的id,后面也需要使用,所以定义到循环外面  
146         String id;  
147         while(true){  
148 //            System.out.println("请输入新的学生学号:");  
149 //            id=sc.nextLine();  
150             id=ta1.getText();
151             //定义布尔那类型的变量,用来判断  
152             boolean flag=false;  
153                
154             //判断学号是否存在  
155             //遍历集合获取元素  
156             for(int x=0;x<array.size();x++){  
157                 //定义学生对象,获取到每一个学生  
158                 Student s=array.get(x);  
159                 //判断这个输入的id在学生对象中是否存在  
160                 if(s.getId().equals(id)){  
161                     flag=true;  
162                     break;//跳出for循环  
163                 }  
164             }  
165             if(flag){  
166 //                System.out.println("学号已存在,请重新您的选择:");  
167                 JOptionPane.showMessageDialog(panelTwo, "学号已存在,请重新您的选择:");
168                 break;
169             }else{  
170                 break;  
171             }  
172         }  
173         //System.out.println("请输入新的姓名:");  
174         String name=ta2.getText();  
175         //System.out.println("请输入新的年龄:");  
176         String age=ta3.getText();
177         //System.out.println("请输入新的地址:");  
178         String address=ta4.getText();             
179         //创建学生对象存储输入的信息  
180         Student s=new Student();  
181         s.setId(id);  
182         s.setName(name);  
183         s.setAge(age);  
184         s.setAdress(address);  
185            
186         //将学生对象存储到集合  
187         array.add(s);  
188         //将集合中的重新存储到文件中  
189         writeData(fileName, array);  
190         //System.out.println("添加成功!"); 
191         ta1.setText("");
192         ta2.setText("");
193         ta3.setText("");
194         ta4.setText("");
195         JOptionPane.showMessageDialog(panelTwo, "添加成功!");
196     }  
197        
198     //删除学生代码的编写  
199     public static void deleteStudent(String fileName) throws IOException{  
200         //首先定义一个集合  
201         ArrayList<Student> array=new ArrayList<>();  
202         //读取出学生信息  
203         readData(fileName, array);  
204            
205         while(true){  
206         //创建键盘录入对象  
207 //        Scanner sc=new Scanner(System.in);  
208 //        System.out.println("请输入您要删除的学号:"); 
209         //JOptionPane.showMessageDialog(panelTwo, "请输入您要删除的学号:");
210 //        String id=sc.nextLine();  
211         String id=ta1.getText();
212         //定义一个索引  
213             int index=-1;  
214                
215             //遍历集合获取到元素  
216             for(int x=0;x<array.size();x++){  
217                 Student s=array.get(x);  
218                 if(s.getId().equals(id)){  
219                     index=x;  
220                     break;  
221                 }  
222             }  
223             if(index==-1){  
224                 //System.out.println("您所需要删除的学员信息不存在,请重新您的选择!");  
225                 JOptionPane.showMessageDialog(panelTwo, "您所需要删除的学员信息不存在,请重新您的选择!");
226                 break;
227             }else{  
228                 array.remove(index);  
229                 //把集合中的文件重新写回到文件  
230                 writeData(fileName, array);  
231                 //System.out.println("删除学生成功!"); 
232                 ta1.setText("");
233                 ta2.setText("");
234                 ta3.setText("");
235                 ta4.setText("");
236                 JOptionPane.showMessageDialog(panelTwo, "删除学生成功!");
237                 break;  
238             }  
239                
240     }  
241            
242 }         
243     //修改学生代码的编写  
244     public static void updateStudent(String fileName) throws IOException{  
245         //创建集合对象  
246         ArrayList<Student> array=new ArrayList<>();  
247         //读取文件  
248         readData(fileName, array);  
249         //定义索引  
250         int index=-1;  
251         //创建键盘输入对象  
252 //        Scanner sc=new Scanner(System.in);  
253         String id;  
254 //        JFrame frame=new JFrame("输入待修改学生学号");
255 //        frame.setVisible(true);
256 //        frame.setSize(468,200);
257 //        frame.setLocation(800,150);
258 //        TextField ta5=new TextField();
259 //        frame.add(ta5);   
260         while(true){  
261 //            System.out.println("请输入您要修改的学生ID:"); 
262             //JOptionPane.showMessageDialog(panelTwo, "请输入您要修改的学生ID:");
263                 //id=sc.nextLine();  
264             id=ta1.getText();
265             //遍历集合获取元素  
266             for(int x=0;x<array.size();x++){  
267                 Student s=array.get(x);  
268                 if(s.getId().equals(id)){  
269                     index=x;  
270                     break;  
271                 }     
272             }                 
273             if(index==-1){  
274                 //System.out.println("您输入的不存在,请重新您的选择!");  
275                 JOptionPane.showMessageDialog(ta1, "输入不合法");
276                 break;
277             }
278             else{  
279 //                System.out.println("请输入新的姓名:");  
280 //                String name=sc.nextLine();  
281 //                System.out.println("请输入新的年龄:");  
282 //                String age=sc.nextLine();  
283 //                System.out.println("请输入新的地址:");  
284 //                String address=sc.nextLine();  
285                    
286                 //创建学生对象  
287                 String name=ta2.getText();  
288                 //System.out.println("请输入新的年龄:");  
289                 String age=ta3.getText();
290                 //System.out.println("请输入新的地址:");  
291                 String address=ta4.getText();
292                 Student s=new Student();  
293                 s.setId(id);  
294                 s.setName(name);  
295                 s.setAge(age);  
296                 s.setAdress(address);  
297                    
298                 //修改集合中的学生对象  
299                 array.set(index, s);  
300                 //将集合写入到文件中  
301                 writeData(fileName, array);  
302                 //给出提示  
303 //                System.out.println("修改成功!");
304                 ta1.setText("");
305                 ta2.setText("");
306                 ta3.setText("");
307                 ta4.setText("");
308                 JOptionPane.showMessageDialog(panelTwo, "修改成功!");
309                 break;  
310             }  
311         }  
312     }
313 private class  Listener implements ActionListener{
314         @Override
315         public void actionPerformed(ActionEvent e) {
316             // TODO Auto-generated method stub
317             String input = e.getActionCommand();
318              if(input.equals("增加")){
319                  try {
320                     addStudent(fileName);
321                 } catch (IOException e1) {
322                     // TODO Auto-generated catch block
323                     e1.printStackTrace();
324                 }
325              }
326              if(input.equals("删除")){
327                  try {
328                     deleteStudent(fileName);
329                 } catch (IOException e1) {
330                     // TODO Auto-generated catch block
331                     e1.printStackTrace();
332                 }
333              }
334              if(input.equals("修改")){
335                  try {
336                     updateStudent(fileName);
337                 } catch (IOException e1) {
338                     // TODO Auto-generated catch block
339                     e1.printStackTrace();
340                 }
341              }
342              if(input.equals("查询")){
343                  try {
344                     findAllStudent(fileName);
345                 } catch (IOException e1) {
346                     // TODO Auto-generated catch block
347                     e1.printStackTrace();
348                 }
349              }
350         }
351     }
352 }
353 
354 class Student{
355     String id;
356     String name;
357     String age;
358     String address;
359     String getId(){
360         return this.id;
361     }
362     String getName(){
363         return this.name;
364     }
365     String getAge(){
366         return this.age;
367     }
368     String getAdress(){
369         return this.address;
370     }
371     void setId(String id){
372         this.id=id;
373     }
374     void setName(String name){
375         this.name=name;
376     }
377     void setAge(String age){
378         this.age=age;
379     }
380     void setAdress(String address){
381         this.address=address;
382     }
383  
384 }

 

posted @ 2018-07-21 15:44  f--  阅读(223)  评论(0编辑  收藏  举报