Java学生管理系统-增删改查
㈠、Student類,有構造、封裝等操作。??
在創建成員變量后,可以通過
?
快捷鍵:Alt Insert
快速完成無參構造函數,有參構造函數,以及成員變量的get,set封裝函數哦~
?
package Student; public class Student {private String age;private String name;public Student(){};public void show(){System.out.println(age+name); }public Student(String age,String name){this.name=name;this.age=age; }public void setAge(String age){this.age=age;}public String getAge(){return age; }public void setName(String name){this.name=name; }public String getName(){return name; } }
?㈡、StudentTest測試類,也是運行的類。
大概思路就是:
一個主函數通過Switch功能選擇,四個方法zeng(),shan(),gai(),cha()分別進行功能實現。
*其中用到了ArrayList<E>集合a來存儲學生信息,不同于數組,它的長度可自由更改,具體用法參照另一篇文章:
我用#CSDN#這個app發現了有技術含量的博客,小伙伴們求同去《Java速成(8/30)-集合類ArrayList<E>、泛型、增刪查改》, 一起來圍觀吧 https://blog.csdn.net/m0_68079241/article/details/123625776?utm_source=app&app_version=5.2.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
我們在增刪改查學生信息時,一般通過new一個student類,創建對象s,令s=a.(i),以s為媒介執行一系列操作,而不用a(i),不方便*
[a.add(s)將s加入集合中。
a.remove(s)把集合中的s刪掉。
a.set(j,s)替換j處s的信息。
s.getAge()? ? s.getName()獲取對象s的信息。]
[寫到這里我才發現我代碼全程輸入錯誤年紀打的年級,還有就是對象s我有的時候打的ss]
①在主函數中:
while(true)循環語句,避免執行一次系統就結束掉。再通過default中的:System.exit(0);實現退出循環,終止程序。
②在增加功能zeng()中:
如果集合a.size()==0,說明暫無學生信息,可以直接添加。a.size()不為0,則通過for循環遍歷集合a,判斷學生信息是否已經存在,不存在繼續添加,已存在報錯提示!
③在刪除,修改,查詢功能中,先看a.size()是否為0,為0提醒暫無學生信息,先去添加。
④刪除修改功能大同小異,通過for循環,遍歷集合,對比鍵盤錄入的信息i和集合里的每個對象的s.getAge()信息,找到集合a里j處的對象:
student s=a.get(j);
if(i.equals(s.getAge()) );
這里用到了equals,不同于“==”的是:
==對比地址,equals對比內容。
package Student;import java.util.ArrayList; import java.util.Scanner;public class StudentTest {public static void main(String[] args) {ArrayList<Student> a = new ArrayList<>();Scanner sc = new Scanner(System.in);while (true) {System.out.println("------學生管理系統---------");System.out.println("--1增2刪3改4查5退出 --");System.out.println("--選擇是: --");System.out.println("------------------------");int choice = sc.nextInt();switch (choice) {case 1:zeng(a);break;case 2:shan(a);break;case 3:gai(a);break;case 4:cha(a);break;default:System.out.println("感謝使用!");System.exit(0);//java虛擬機退出break;}}}public static void zeng(ArrayList<Student> a) {Student s = new Student();Scanner sc = new Scanner(System.in);System.out.println("你要錄入的學生的年級:");String ag = sc.nextLine();System.out.println("姓名:");String na = sc.nextLine();if (a.size() == 0) {s.setAge(ag);s.setName(na);a.add(s);} else {for (int j = 0; j < a.size(); j++) {Student ss = a.get(j);if (ag.equals(ss.getAge())) {System.out.println("該年級已存在");break;} else if (j == a.size() - 1) {s.setAge(ag);s.setName(na);a.add(s);System.out.println("學生信息已添加成功!");break;}}}System.out.println("繼續增加請按1,退出增加請按2:");int c = sc.nextInt();if (c == 1) {zeng(a);}}public static void shan(ArrayList<Student> a) {if (a.size() != 0) {System.out.println("你要刪除的學生的年級:");Scanner sc = new Scanner(System.in);String i = sc.nextLine();for (int j = 0; j < a.size(); j++) {Student ss = a.get(j);if (i.equals(ss.getAge())) {System.out.println("該學生的信息存在:年級和姓名是:" + ss.getAge() + "," + ss.getName());a.remove(ss);System.out.println("已刪除!");break;} else if (j == a.size() - 1) {System.out.println("該學生的信息不存在");break;}}System.out.println("繼續刪除請按1,退出刪除請按2:");int c = sc.nextInt();if (c == 1) {shan(a);}} else {System.out.println("學生信息數據庫為空,請先增加學生信息!");}}public static void gai(ArrayList<Student> a) {if (a.size() != 0) {System.out.println("你要修改的學生的年級:");Scanner sc = new Scanner(System.in);String i = sc.nextLine();for (int j = 0; j < a.size(); j++) {Student ss = a.get(j);{if (i.equals(ss.getAge())) {System.out.println("該學生的信息存在:年級和姓名是:" + ss.getAge() + "," + ss.getName());System.out.println("請輸入更改后的年級:");String g = sc.nextLine();System.out.println("請輸入更改后的姓名:");String n = sc.nextLine();ss.setName(n);ss.setAge(g);a.set(j, ss);System.out.println("更改成功!");break;} else if (j == a.size() - 1) {System.out.println("該學生的信息不存在");break;}}}System.out.println("繼續修改請按1,退出修改請按2:");int c = sc.nextInt();if (c == 1) {gai(a);}} else {System.out.println("暫無學生信息,請先增加錄入!");}}public static void cha(ArrayList<Student> a) {if (a.size() != 0) {System.out.println("年級:");Scanner sc = new Scanner(System.in);String i = sc.nextLine();for (int j = 0; j < a.size(); j++) {Student ss = a.get(j);if (i.equals(ss.getAge())) {System.out.println("該學生的信息存在:年級和姓名是:" + ss.getAge() + "," + ss.getName());break;} else if (j == a.size() - 1) {System.out.println("該學生的信息不存在");break;}}System.out.println("繼續查詢請按1,退出查詢請按2:");int c = sc.nextInt();if (c == 1) {cha(a);} else {}} else {System.out.println("暫無數據");}} }
在每一個功能結束后我都會問是否重復這個功能,所以還有一個if語句。
另外代碼寫完一定很亂,怎么辦?
全選,快捷鍵Ctrl+Alt+L可以幫你格式化~
他們是在同一個package--Student下的兩個類,學生類和測試類。
運行軟件為IDEA。環境java8
運行結果示意圖:
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Java学生管理系统-增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云计算机系统有限公司,网易云音乐官方
- 下一篇: win10下如何安装vb6.0sp6_M