Java 實現(xiàn)完整功能的學(xué)生管理系統(tǒng)實例
一、前言
我們前面寫了通訊錄管理系統(tǒng),現(xiàn)在我們來寫個學(xué)生管理系統(tǒng),
其實主干代碼都一 不過,在學(xué)生管理系統(tǒng)中我添加和優(yōu)化了許多功能,
如【登錄密碼驗證,異常處理,非空判斷,,防止重復(fù)添加】等。
二、學(xué)生管理系統(tǒng)主要功能
- 增加學(xué)生信息
- 刪除學(xué)生信息
- 修改學(xué)生信息
- 查找學(xué)生信息
- 查看所有學(xué)生信息
- 退出學(xué)生管理系統(tǒng)
主干總覽圖:

我們分成了許多的方法模塊,便于調(diào)用。
在學(xué)生類下
就是普通的構(gòu)造方法和get和set方法,還有一個重寫的toString方法
(Alt+Insert可以快速生成上述的所有)
package 學(xué)生管理系統(tǒng);
public class Student {
private String name;
private String age;
private String sex;
private String number;
private String classroom;
public Student(){}
public Student(String name, String age, String sex, String classroom,String number) {
this.name = name;
this.age = age;
this.sex = sex;
this.classroom = classroom;
this.number=number;
}
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getClassroom() {
return classroom;
}
public void setClassroom(String classroom) {
this.classroom = classroom;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
重寫toString方法是為了讓我們設(shè)置好的方式去顯示:
@Override
public String toString() {
return "名字:"+name+" |性別:"+sex+" |年齡:"+age+" |學(xué)號:"+number+" |班級:"+classroom+"\n";
}
}
在學(xué)生總部類下:

main方法:
public static void main(String[] args) {
ArrayList<Student> arrayList=new ArrayList<Student>();
password();//密碼驗證
while(true){
menu();//菜單
Scanner sc=new Scanner(System.in);
try{
int num=sc.nextInt();
switch(num){
case 1:{
addStudent(arrayList);break;
}
case 2:{
deleteStudent(arrayList);break;
}
case 3:{
reviseStudent(arrayList);break;
}
case 4:{
oneStudent(arrayList);break;
}
case 5:{
checkStudent(arrayList);break;
}
case 6:{
System.out.println("退出成功");
System.exit(0);
}
default:{
System.out.println("輸入錯誤,輸入0-6之間的數(shù)字");break;
}
}}
catch(Exception e){
e.printStackTrace();
System.out.println("你的輸入是非數(shù)字,請輸入0-6的數(shù)字");
}
}
}//main方法
登錄密碼驗證:
public static void password(){
System.out.println("***歡迎來到學(xué)生管理系統(tǒng)***");
Scanner sc=new Scanner(System.in);
System.out.print("請輸入管理員密碼:");
String s="鍵盤敲爛";
int sum=3;
while(true){
String ss=sc.nextLine();
if(ss.equals(s)){
System.out.println("驗證成功!");break;
}else{sum--;
System.out.print("密碼錯誤,你還有"+sum+"次機會:");
}
if(sum==0){
System.out.println("輸入上限,再見!");
System.exit(0);
}
}}//密碼驗證
打印菜單:
public static void menu(){
System.out.println("-------歡迎來到學(xué)生管理系統(tǒng)-------");
System.out.println("1.增加學(xué)生");
System.out.println("2.刪除學(xué)生");
System.out.println("3.修改學(xué)生");
System.out.println("4.查找學(xué)生");
System.out.println("5.查看所有學(xué)生");
System.out.println("6.退出");
System.out.println("請選擇:");
}//打印菜單頁
增加學(xué)生信息:
public static void addStudent(ArrayList<Student> arrayList){
Scanner sc1=new Scanner(System.in);
System.out.print("請輸入姓名:");
String name=sc1.nextLine();
System.out.print("請輸入年齡:");
String age=sc1.nextLine();
System.out.print("請輸入性別:");
String sex=sc1.nextLine();
System.out.print("請輸入學(xué)號:");
String number=sc1.nextLine();
System.out.print("請輸入班級:");
String classroom=sc1.nextLine();
Student stu=new Student();
stu.setAge(age);
stu.setClassroom(classroom);
stu.setName(name);
stu.setSex(sex);
stu.setNumber(number);
int kong=0;//用來定義是否已經(jīng)存在的學(xué)號
for (int i=0;i<arrayList.size();i++){
Student s=arrayList.get(i);
if((arrayList.size())>1&&(s.getNumber().equals(number))&&(s.getClassroom().equals(classroom))){
System.out.println("添加失敗,你輸入的學(xué)號在同一班級已存在");kong++;//存在就加一
arrayList.remove(stu);
}
}
if(name.length()==0||age.length()==0||sex.length()==0||classroom.length()==0||number.length()==0||kong!=0){
System.out.println("有某項為空或?qū)W號在同一班已存在,添加失敗");
arrayList.remove(stu);//移除該項
} else{
arrayList.add(stu);
System.out.println("添加成功");}
}//加信息
查看學(xué)生信息:
public static void checkStudent(ArrayList<Student> array){
if(array.isEmpty()){
System.out.println("這里沒有任何信息,請?zhí)砑雍蟛榭矗?);
}else{
System.out.println(array);}
}//查信息
刪除學(xué)生信息:
public static void deleteStudent(ArrayList<Student> array){
if(array.isEmpty()){
System.out.println("這里沒有任何信息,請?zhí)砑雍笤谶M行操作!");
}else{
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你要刪除信息的名字");
String str=sc.nextLine();
int sum=0;
for(int i=0;i<array.size();i++){
Student s = array.get(i);
if(s.getName().equals(str)){
array.remove(i);sum++;
System.out.println("刪除成功");
}
}if(sum==0){
System.out.println("沒有該信息,刪除失?。?);
}
}
}//刪信息
修改學(xué)生信息:
public static void reviseStudent(ArrayList<Student> arrayList){
if(arrayList.isEmpty()){
System.out.println("沒有任何信息,請輸入后在進行操作!");
}else {
int sum=0;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要換信息的名字");
String name=sc.nextLine();
for(int i=0;i<arrayList.size();i++){
Student s1=arrayList.get(i);
if(s1.getName().equals(name)){
sum++;
}
}
if(sum!=0){
Scanner sc1=new Scanner(System.in);
System.out.print("請輸入姓名:");
String name1=sc1.nextLine();
System.out.print("請輸入年齡:");
String age=sc1.nextLine();
System.out.print("請輸入性別:");
String sex=sc1.nextLine();
System.out.print("請輸入學(xué)號:");
String number=sc1.nextLine();
System.out.print("請輸入班級:");
String classroom=sc1.nextLine();
Student stu=new Student();
stu.setAge(age);
stu.setClassroom(classroom);
stu.setName(name1);
stu.setSex(sex);
stu.setNumber(number);
for (int i = 0; i < arrayList.size(); i++) {
Student stu1 = arrayList.get(i);
if (stu1.getName().equals(name)) {
arrayList.set(i, stu);
System.out.println("修改成功");break;
}
}}if(sum==0){
System.out.println("修改失敗,沒有找到對應(yīng)的名字");
}
} }//改信息
查找學(xué)生信息:
public static void oneStudent(ArrayList<Student> arrayList){
if (arrayList.isEmpty()){
System.out.println("沒有學(xué)生信息,請?zhí)砑雍笤俨檎?);
}else{
Scanner sc=new Scanner(System.in);
System.out.print("請輸入你要查找學(xué)生的名字:");
String name=sc.nextLine();
int sum=0;
for(int i=0;i<arrayList.size();i++){
Student stu=arrayList.get(i);
if(stu.getName().equals(name)){sum++;
System.out.println("姓名:"+stu.getName()+" 年齡:"+stu.getAge()+" 性
別:"+stu.getSex()+" 班級:"+stu.getClassroom()+" 學(xué)號:"+stu.getNumber());
}
}if(sum==0){
System.out.println("你查找的學(xué)生不存在");
}
}
}//找信息
代碼效果演示圖:

到此這篇關(guān)于Java 實現(xiàn)完整功能的學(xué)生管理系統(tǒng)實例的文章就介紹到這了,更多相關(guān)Java 學(xué)生管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實現(xiàn)學(xué)生管理系統(tǒng)(控制臺版本)
- Java版學(xué)生管理系統(tǒng)
- Java畢業(yè)設(shè)計實戰(zhàn)之學(xué)生管理系統(tǒng)的實現(xiàn)
- java控制臺實現(xiàn)學(xué)生管理系統(tǒng)
- Java實現(xiàn)學(xué)生管理系統(tǒng)(IO版)
- JavaSwing實現(xiàn)小型學(xué)生管理系統(tǒng)
- java實現(xiàn)簡單的學(xué)生管理系統(tǒng)
- Java實現(xiàn)學(xué)生管理系統(tǒng)詳解
- Java實現(xiàn)學(xué)生管理系統(tǒng)詳解流程
相關(guān)文章
springboot開發(fā)flowable定時任務(wù)問題
這篇文章主要介紹了springboot開發(fā)flowable定時任務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Java實現(xiàn)解析JSON大文件JsonReader工具詳解
這篇文章主要介紹了Java實現(xiàn)解析JSON大文件的工具JsonReader使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
SpringCloud Feign如何在遠程調(diào)用中傳輸文件
這篇文章主要介紹了SpringCloud Feign如何在遠程調(diào)用中傳輸文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查
本文主要介紹了MyBatis的SQL執(zhí)行結(jié)果和客戶端執(zhí)行結(jié)果不一致問題排查,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04

