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