您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Java如何實現實現IO版學生管理系統,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
具體內容如下
圖解:
cade:
student.java
/* * 這是我的學生類 */ 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; } }
studentmangager類
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 = "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; //遍歷集合 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 { array.remove(index); //把集合中的數據重新寫回到文件 writeData(fileName, array); 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()); } } }
關于“Java如何實現實現IO版學生管理系統”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。