1. 程式人生 > >課堂測試四(文件讀寫)

課堂測試四(文件讀寫)

upd select tag art main cor color -s ioe

學生信息管理系統

(本程序以文本方式存儲數據,不通過數組,直接對文件進行操作)

學生類

Student.java

 1 public class Student {
 2     private String stunumber;            //學號
 3     private String name;                //姓名
 4     private int age;                    //年齡
 5     private boolean sex;                //性別
 6     private double score;                //
分數 7 8 /***構造方法***/ 9 public Student(String num,String name,int age,boolean sex,double score){ 10 stunumber = num; 11 this.name = name; 12 this.age = age; 13 this.sex = sex; 14 this.score = score; 15 } 16 17 /***get函數***/ 18 public String getNum(){ //
取學號 19 return stunumber; 20 } 21 public String getName(){ //取姓名 22 return name; 23 } 24 public int getAge(){ //取年齡 25 return age; 26 } 27 public boolean getSex(){ //取性別 28 return sex; 29 } 30 public double score(){ //
取分數 31 return score; 32 } 33 34 /***set函數***/ 35 public void setNum(String num){ //設置學號 36 stunumber = num; 37 } 38 public void setName(String name){ //設置姓名 39 this.name = name; 40 } 41 public void setAge(int age){ //設置年齡 42 this.age = age; 43 } 44 public void setSex(boolean sex){ //設置性別 45 this.sex = sex; 46 } 47 public void score(double score){ //設置分數 48 this.score = score; 49 } 50 }

管理類

StudentManager.java

  1 import java.io.*;
  2 import java.util.Scanner;
  3 public class StudentManager {
  4     
  5     /***主函數***/
  6     public static void main(String[] args) throws IOException {
  7         Scanner in = new Scanner(System.in);
  8         while(true){
  9             menu();
 10             int n = in.nextInt();
 11             switch(n){
 12             case 1:showStudent();break;
 13             case 2:
 14                 System.out.println("請依次輸入學生的學號、姓名、年齡、性別(true/false)、分數:");
 15                 addStudent(in.next(),in.next(),in.nextInt(),in.nextBoolean(),in.nextDouble());
 16                 break;
 17             case 3:
 18                 System.out.println("輸入要刪除的學生的學號:");
 19                 deleteStudent(in.next());
 20                 break;
 21             case 4:
 22                 System.out.println("輸入要修改的學生的學號,及修改後的姓名、年齡、性別(true/false)、分數:");
 23                 updateStudent(in.next(),in.next(),in.nextInt(),in.nextBoolean(),in.nextDouble());
 24                 break;
 25             case 5:
 26                 System.out.println("輸入要查詢的學生的學號:");
 27                 selectStudent(in.next());
 28                 break;
 29             }
 30         }
 31     }
 32     
 33     /***顯示菜單***/
 34     public static void menu(){
 35         System.out.println("**********************************************************");
 36         System.out.println("                                           石家莊鐵道大學信息科學與技術學院");
 37         System.out.println("                                                        學生信息管理系統V2.0");
 38         System.out.println("**********************************************************");
 39         System.out.println("                     1.遍歷輸出學生信息;");
 40         System.out.println("                     2.新學生信息錄入;");
 41         System.out.println("                     3.刪除學生信息;");
 42         System.out.println("                     4.修改學生信息;");
 43         System.out.println("                     5.查詢學生信息;");
 44         System.out.println("**********************************************************");
 45     }
 46     
 47     /***顯示所有學生信息 ***/
 48     public static void showStudent() throws IOException{
 49         File file = new File("student.dat");
 50         BufferedReader reader = null;
 51         reader = new BufferedReader(new FileReader(file));
 52         String tempString = null;
 53         while ((tempString = reader.readLine()) != null) {
 54             System.out.println(tempString);
 55         }
 56     }
 57     
 58     /***添加學生信息***/
 59     public static void addStudent(String stunumber,String name,int age,boolean sex,double score) throws IOException{
 60         FileWriter writer = new FileWriter("student.dat",true);
 61         String s;
 62         if(sex)
 63             s = "女";
 64         else s = "男";
 65         writer.append(stunumber + " " + name + " " + age + " " + s + " " + score + "\r\n");
 66         writer.close();
 67         System.out.println("添加成功!");
 68     }
 69     
 70     /***刪除學生信息 ***/
 71     public static void deleteStudent(String stunumber) throws IOException{
 72         
 73         StringBuffer all = new StringBuffer();
 74         File file = new File("student.dat");
 75         String temp;
 76         BufferedReader reader = new BufferedReader(new FileReader(file));
 77         
 78         while((temp = reader.readLine()) != null){
 79             if(!temp.startsWith(stunumber))
 80                 all.append(temp + "\r\n");
 81         }
 82         reader.close();
 83         
 84         BufferedWriter writer = new BufferedWriter(new FileWriter(file));
 85         writer.write(all.toString());;
 86         writer.close();
 87         System.out.println("刪除成功!");
 88     }
 89     
 90     /***更新學生信息***/
 91     public static void updateStudent(String stunumber,String name,int age,boolean sex,double score) throws IOException{
 92         StringBuffer all = new StringBuffer();
 93         File file = new File("student.dat");
 94         String temp,s;
 95         if(sex)
 96             s = "女";
 97         else s = "男";
 98         BufferedReader reader = new BufferedReader(new FileReader(file));
 99         
100         while((temp = reader.readLine()) != null){
101             if(!temp.startsWith(stunumber))
102                 all.append(temp + "\r\n");
103             else all.append(stunumber + " " + name + " " + age + " " + s + " " + score + "\r\n");
104         }
105         reader.close();
106         
107         BufferedWriter writer = new BufferedWriter(new FileWriter(file));
108         writer.write(all.toString());;
109         writer.close();
110         System.out.println("修改成功!");
111     }
112     
113     /***查詢學生信息***/
114     public static void selectStudent(String stunumber) throws IOException{
115         File file = new File("student.dat");
116         BufferedReader reader = new BufferedReader(new FileReader(file));
117         String stuLine;
118         while((stuLine = reader.readLine()) != null)
119         {
120             if(stuLine.startsWith(stunumber))
121             {
122                 System.out.println(stuLine);
123                 return;
124             }
125         }
126         System.out.println("查詢結果為空!");
127     }
128 }

課堂測試四(文件讀寫)