java學生管理系統

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());        }    }}
相關文章
相關標籤/搜索