日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用Java实现简单的学生管理系统

發布時間:2023/12/9 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用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实现简单的学生管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。