<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Java實現學生管理系統的具體程式碼,供大家參考,具體內容如下
圖解:
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("學號tt姓名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()); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45