用Java实现简单的学生管理系统
生活随笔
收集整理的這篇文章主要介紹了
用Java实现简单的学生管理系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? 大家好,今天我和大家分享一下用Java中的數組和ArrayList集合分別來實現簡單的學生管理系統。過幾期,我和大家分享一下用Java和數據庫來實現學生管理系統。
? ? ? ?一個簡單的學生管理系統應該包括:學生對象,對學生對象的操作(管理):添加學生信息、刪除學生信息、修改學生信息和顯示學生信息,還有一個界面顯示。在進行增刪改查操作時,我們可以返回一個boolean類型的值來判斷增刪改查操作是否成功。
首先我先用數組來實現簡單的學生管理系統:
? ? ?學生類:就是一個實體類,只有學生的屬性和相應的setter和getter方法還有構造器。這里我就只寫學生屬性。
public class Stu { //學生學號 private int sno; //學生姓名 private String name; //學生性別 private String sex; //學生年齡 private int age; //學生學科 private String major; }? ? ? ?學生管理類:我們對于數組的操作都是基于數組的索引,添加學生信息時,想要實現學生信息添加后,數組的索引要指向數組的下一個位置,我們就需要定義一個索引,在添加學生信息后索引就加1。
public class StuManage { //儲存學生對象的數組 private Stu[] stus = new Stu[10]; //數組的索引 private int index;添加操作:因為我們定義的是一個定長的數組,所以要將考慮它是否已經裝滿數據。
//添加學生功能 public boolean addStu(Stu s) { //判斷數組是否已滿 if (index > stus.length - 1) {return false; } stus[index++] = s; return true; }刪除操作:由于不知道給定學號的學生在數組中的索引,所以我們要把數組中所有學生的學號拿出來和給定的學號來對比,找到給定學號的學生然后把他刪除。刪除數組的功能是基于數組拷貝,我們可以把要刪除的地方后面的部分向前移動。注意要把數組的最后一位設置為空。
//根據學生學號刪除學生功能 public boolean deleteStu(int sno) { for (int i = 0; i < stus.length; i++) {Stu s = stus[i];if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {System.arraycopy(stus, i + 1, stus, i, stus.length - i - 1);index--;stus[stus.length-1]=null;return true;} } return false; }顯示所有學生信息操作:就是把數組給遍歷出來,在學生類中要重寫toString方法,不然輸出的會是地址。
//顯示所有學生信息功能 public void showAllStu() { for (Stu student : stus) {if (Objects.nonNull(student)) {System.out.println(student);} } }修改操作:修改和刪除一樣,要根據學生的學號找到學生在數組中的索引,再修改學生信息。
//根據學生學號修改學生學科功能 public boolean modifyStu(int sno, String major) { for (int i = 0; i < stus.length; i++) {Stu s = stus[i];if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {s.setMajor(major);return true;} } return false; }顯示單個學生信息操作:顯示單個學生信息和修改還有刪除一樣。
//根據學生學號顯示學生信息功能 public boolean showStuFromID(int sno) { for (int i = 0; i < stus.length; i++) {Stu s = stus[i];if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {System.out.println(s);return true; } } return false; }測試類:
public class TestStu { static Scanner sc = new Scanner(System.in); //新建一個StuManage對象,后面方便調用里面的方法 static StuManage sm = new StuManage(); //下面用的輸出語句多,我把它包裝成方法 private static void msg(String msg) {System.out.println(msg); } public static void main(String[] args) {start(); }顯示界面:用switch來判斷指令然后執行相應方法。
private static void start() { msg("======學生成績管理系統====="); msg("[1] 添加學生信息"); msg("[2] 學生信息列表"); msg("[3] 刪除指定學生信息"); msg("[4] 查詢指定學生信息"); msg("[5] 修改指定學生的學科"); msg("[0] 退出系統"); msg("========================"); msg("請輸入指令:"); int i = sc.nextInt(); switch (i) {case 1:addStu();break;case 2:showAll();break;case 3:delStu();break;case 4:showStuFromID();break;case 5:modify();break;case 0:msg("謝謝使用,再見!");System.exit(0);break;default:msg("指令錯誤,請重新輸入");start();break; } }輸入指令后執行的方法:
/** * 添加學生信息 */ private static void addStu() { msg("請輸入學號:"); int sno = sc.nextInt(); msg("請輸入姓名"); String name = sc.next(); msg("請輸入性別"); String sex = sc.next(); msg("請輸入年齡"); int age = sc.nextInt(); msg("請輸入學科"); String major = sc.next(); //根據讀取的學生信息創建學生對象 Stu s = new Stu(sno, name, sex, age, major);if (sm.addStu(s)) {msg("添加成功");} else {msg("容量存儲不足");} start(); /** * 學生信息列表 */ private static void showAll() {sm.showAllStu();start(); } } ? /** * 刪除指定學號的學生信息 */ private static void delStu() { msg("輸出你想刪除的學生學號"); int sno = sc.nextInt();if (sm.deleteStu(sno)) {msg("刪除成功");} else {msg("刪除失敗");} start(); } /** * 顯示指定學號的學生信息 */ private static void showStuFromID() { msg("輸出你想顯示的學生學號"); int sno = sc.nextInt();if (sm.showStuFromID(sno)) {msg("顯示成功");} else {msg("沒有這名學生,顯示失敗");} start(); } /** * 修改指定學號學生的學科 */ private static void modify() { msg("輸出你想修改的學生學號"); int sno = sc.nextInt(); msg("輸出你想修改的學科"); String major = sc.next();if (sm.modifyStu(sno,major)) {msg("修改成功");} else {msg("沒有這名學生,修改失敗");} start(); }使用ArrayList集合來實現簡單的學生管理系統:學生類和測試類都和用數組實現的方法一樣。
學生管理類:ArrayList集合的增刪改查和數組的原理一樣,只不過ArrayList集合做添加功能用add方法就行了(它的索引會自動加1),刪除功能用remove方法(內部的實現還是基于數組的拷貝)。
public class StudentManage { List<Stu> stus = new ArrayList<>(); ? //添加學生功能 public boolean addStu(Stu s) {stus.add(s);return true; } ? //根據學生學號刪除學生功能 public boolean deleteStu(int sno) { if (Objects.nonNull(stus)) {for (int i = 0; i < stus.size(); i++) {if (Objects.equals(sno, stus.get(i).getSno())) {stus.remove(i);return true;}} } return false; }//顯示所有學生信息功能 public void showAllStu() { if (Objects.nonNull(stus)) {for (Stu Stu : stus) {System.out.println(Stu);} } } ? //根據學生學號修改學生學科功能 public boolean modifyStu(int sno, String major) { if (Objects.nonNull(stus)) {for (int i = 0; i < stus.size(); i++) {if (Objects.equals(sno, stus.get(i).getSno())) {stus.get(i).setMajor(major);return true;}} } return false; } ? //根據學生學號顯示學生信息功能 public boolean showStuFromID(int sno) { if (Objects.nonNull(stus)) {for (int i = 0; i < stus.size(); i++) {if (Objects.equals(sno, stus.get(i).getSno())) {System.out.println(stus.get(i));return true;}} } return false; } }運行結果:
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的用Java实现简单的学生管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给div拼接html 拼接字符串
- 下一篇: java信息管理系统总结_java实现科