student類java
package cn.itheima.Manag;
/**
*
*標準類
*
**/
public class Student {
//學號
private String id;
//姓名
private String name;
//年齡
private String age;
//居住地
private String address;
public Student() {
}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
StudentManagerTest類
package cn.itheima.Manag;/** * * * **/import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner;/* * 這是個人學生管理系統的主類 * * 步驟以下: * A:定義學生類 * B:學生管理系統的主界面的代碼編寫 * C:學生管理系統的查看全部學生的代碼編寫 * D:學生管理系統的添加學生的代碼編寫 * E:學生管理系統的刪除學生的代碼編寫 * F:學生管理系統的修改學生的代碼編寫 */public class StudentManagerTest { public static void main(String[] args) throws IOException{ //定義文件路徑 String fileName = "day_10\\students.txt"; //爲了讓程序可以回到這裏來,咱們使用循環 while(true) { //這是學生管理系統的主界面 System.out.println("--------歡迎來到學生管理系統--------"); System.out.println("1 查看全部學生"); System.out.println("2 添加學生"); System.out.println("3 刪除學生"); System.out.println("4 修改學生"); System.out.println("5 退出"); System.out.println("請輸入你的選擇:"); //建立鍵盤錄入對象 Scanner sc = new Scanner(System.in); String choiceString = sc.nextLine(); //用switch語句實現選擇 switch(choiceString) { case "1": //查看全部學生 findAllStudent(fileName); break; case "2": //添加學生 addStudent(fileName); break; case "3": //刪除學生 deleteStudent(fileName); break; case "4": //修改學生 updateStudent(fileName); break; case "5": default: System.out.println("謝謝你的使用"); System.exit(0); //JVM退出 break; } } } // 從文件中讀數據到集合 public static void readData(String fileName, ArrayList<Student> array) throws IOException { // 建立輸入緩衝流對象 BufferedReader br = new BufferedReader(new FileReader(fileName)); String line; while ((line = br.readLine()) != null) { String[] datas = line.split(","); Student s = new Student(); s.setId(datas[0]); s.setName(datas[1]); s.setAge(datas[2]); s.setAddress(datas[3]); array.add(s); } br.close(); } // 把集合中的數據寫入文件 public static void writeData(String fileName, ArrayList<Student> array) throws IOException { // 建立輸出緩衝流對象 BufferedWriter bw = new BufferedWriter(new FileWriter(fileName)); for (int x = 0; x < array.size(); x++) { Student s = array.get(x); StringBuilder sb = new StringBuilder(); sb.append(s.getId()).append(",").append(s.getName()).append(",") .append(s.getAge()).append(",").append(s.getAddress()); bw.write(sb.toString()); bw.newLine(); bw.flush(); } bw.close(); } //修改學生 public static void updateStudent(String fileName) throws IOException { //建立集合對象 ArrayList<Student> array = new ArrayList<Student>(); //從文件中把數據讀取到集合中 readData(fileName, array); //修改學生的思路:鍵盤錄入一個學號,到集合中去查找,看是否有學生使用的是該學號,若是有就修改該學生 //建立鍵盤錄入對象 Scanner sc = new Scanner(System.in); System.out.println("請輸入你要修改的學生的學號:"); String id = sc.nextLine(); //定義一個索引 int index = -1; //遍歷集合 for(int x=0; x<array.size(); x++) { //獲取每個學生對象 Student s = array.get(x); //拿學生對象的學號和鍵盤錄入的學號進行比較 if(s.getId().equals(id)) { index = x; break; } } if(index == -1) { System.out.println("很差意思,你要修改的學號對應的學生信息不存在,請回去從新你的選擇"); }else { System.out.println("請輸入學生新姓名:"); String name = sc.nextLine(); System.out.println("請輸入學生新年齡:"); String age = sc.nextLine(); System.out.println("請輸入學生新居住地:"); String address = sc.nextLine(); //建立學生對象 Student s = new Student(); s.setId(id); s.setName(name); s.setAge(age); s.setAddress(address); //修改集合中的學生對象 array.set(index, s); //把集合中的數據從新寫回到文件 writeData(fileName, array); //給出提示 System.out.println("修改學生成功"); } } //刪除學生 public static void deleteStudent(String fileName) throws IOException { //建立集合對象 ArrayList<Student> array = new ArrayList<Student>(); //從文件中把數據讀取到集合中 readData(fileName, array); //刪除學生的思路:鍵盤錄入一個學號,到集合中去查找,看是否有學生使用的是該學號,若是有就刪除該學生 //建立鍵盤錄入對象 Scanner sc = new Scanner(System.in); System.out.println("請輸入你要刪除的學生的學號:"); String id = sc.nextLine(); //咱們必須給出學號不存在的時候的提示// //定義一個索引 int index = -1;// boolean flag = false; //遍歷集合 for(int x=0; x<array.size(); x++) { //獲取到每個學生對象 Student s = array.get(x); //拿這個學生對象的學號和鍵盤錄入的學號進行比較 if(s.getId().equals(id)) { index = x;// flag = true; break; } } if(index!=-1) { array.remove(index); //把集合中的數據從新寫回到文件 writeData(fileName, array); System.out.println("刪除學生成功"); }else { System.out.println("很差意思,你要刪除的學號對應的學生信息不存在,請回去從新你的選擇"); } } //添加學生 public static void addStudent(String fileName) throws IOException { //建立集合對象 ArrayList<Student> array = new ArrayList<Student>(); //從文件中把數據讀取到集合中 readData(fileName, array); //建立鍵盤錄入對象 Scanner sc = new Scanner(System.in); //爲了讓id可以被訪問到,咱們就把id定義在了循環的外面 String id; //爲了讓代碼可以回到這裏,用循環 while(true) { System.out.println("請輸入學生學號:"); //String id = sc.nextLine(); id = sc.nextLine(); //判斷學號有沒有被人佔用 //定義標記 boolean flag = false; //遍歷集合,獲得每個學生 for(int x=0; x<array.size(); x++) { Student s = array.get(x); //獲取該學生的學號,和鍵盤錄入的學號進行比較 if(s.getId().equals(id)) { flag = true; //說明學號被佔用了 break; } } if(flag) { System.out.println("你輸入的學號已經被佔用,請從新輸入"); }else { break; //結束循環 } } System.out.println("請輸入學生姓名:"); String name = sc.nextLine(); System.out.println("請輸入學生年齡:"); String age = sc.nextLine(); System.out.println("請輸入學生居住地:"); String address = sc.nextLine(); //建立學生對象 Student s = new Student(); s.setId(id); s.setName(name); s.setAge(age); s.setAddress(address); //把學生對象做爲元素添加到集合 array.add(s); //把集合中的數據從新寫回到文件 writeData(fileName, array); //給出提示 System.out.println("添加學生成功"); } //查看全部學生 public static void findAllStudent(String fileName) throws IOException { //建立集合對象 ArrayList<Student> array = new ArrayList<Student>(); //從文件中把數據讀取到集合中 readData(fileName, array); //首先來判斷集合中是否有數據,若是沒有數據,就給出提示,並讓該方法不繼續往下執行 if(array.size() == 0) { System.out.println("很差意思,目前沒有學生信息可供查詢,請回去從新選擇你的操做"); return; } //\t 其實就是一個tab鍵的位置 System.out.println("學號\t\t姓名\t年齡\t居住地"); for(int x=0; x<array.size(); x++) { Student s = array.get(x); System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } }}