Java超詳細(xì)教你寫一個(gè)學(xué)籍管理系統(tǒng)案例
前言
學(xué)籍管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的領(lǐng)導(dǎo)人和管理者來說都至關(guān)重要,有助于提高整個(gè)學(xué)校的教育水平和管理水平,減少人力資源的浪費(fèi),適應(yīng)大量的學(xué)生信息變更。 本文所寫的學(xué)籍管理系統(tǒng)實(shí)現(xiàn)了學(xué)籍管理系統(tǒng)的主要功能,大家的小學(xué)期程序設(shè)計(jì)能用到的話,可以參考一下哦!當(dāng)然啦,也可以在此基礎(chǔ)上不斷完善!
一、學(xué)籍管理系統(tǒng)功能介紹
1.介紹
學(xué)籍管理系統(tǒng)首先有外部的主界面展示功能,進(jìn)入主界面后可以選擇想要的操作,如添加學(xué)生信息、修改學(xué)生信息、查找學(xué)生信息、刪除學(xué)生信息、查看學(xué)生信息和退出系統(tǒng)操作。
2.學(xué)籍管理系統(tǒng)的主要功能圖示
3.代碼編寫的思路
- 3.1 定義學(xué)生類
- 3.2 主界面的代碼編寫
- 3.3 添加學(xué)生的代碼編寫
- 3.4 查看學(xué)生的代碼編寫
- 3.5 刪除學(xué)生的代碼編寫
- 3.6 修改學(xué)生的代碼編寫
二、定義學(xué)生類
1.學(xué)生類名稱:
Student
2.包含的成員變量
- 學(xué)號(hào):num
- 姓名:name
- 年齡:age
- 地址:address
3.構(gòu)造方法
無參構(gòu)造
帶四個(gè)參數(shù)的構(gòu)造
4.成員方法
每個(gè)成員變量給出對(duì)應(yīng)的get/set方法
5.代碼示例
public class Student { private String num;//學(xué)生學(xué)號(hào) private String name;//學(xué)生姓名 private String age;//學(xué)生年齡 private String address;//學(xué)生地址 public Student() { }//無參構(gòu)造 public Student(String num, String name, String age, String address) { this.num = num; this.name = name; this.age = age; this.address = address; }//帶四個(gè)參數(shù)的構(gòu)造 public String getNum() { return num; } public void setNum(String num) { this.num = num; } 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 getAddress() { return address; } public void setAddress(String address) { this.address = address; }
三、主界面的代碼編寫
1.思路
- 新建一個(gè)主類(Studentdemo)
- 用輸出語句完成主界面的編寫
- 用
Scanner
實(shí)現(xiàn)鍵盤錄入數(shù)據(jù) - 用
switch
語句完成操作的選擇 - 用循環(huán)完成再次回到主界面
- 循環(huán)之中包含添加、查找、刪除、修改的方法
2.代碼示例
主類:主界面的編寫
public class Studentdemo { public static void main(String[] args){ ArrayList<Student> array=new ArrayList<>(); while(true) { 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.退出"); System.out.println("請選擇你需要的操作:"); Scanner sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": //**此處調(diào)用“添加學(xué)生方法”** break; case "2": //**此處調(diào)用“刪除學(xué)生方法”** break; case "3": //**此處調(diào)用“修改學(xué)生方法”** break; case "4": //**此處調(diào)用“查找學(xué)生方法”** break; case "5": System.out.println("謝謝使用!"); System.exit(0); } } } }
四、系統(tǒng)功能方法的實(shí)現(xiàn)
1.添加學(xué)生信息的代碼編寫
1.1 思路
鍵盤錄入選擇添加學(xué)生;
定義一個(gè)方法用于添加學(xué)生;
- 顯示提示信息
- 鍵盤錄入學(xué)生對(duì)象信息所需要的數(shù)據(jù)
- 創(chuàng)建學(xué)生對(duì)象,將錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量
- 將學(xué)生對(duì)象添加到集合中
- 給出添加成功提示
調(diào)用方法
1.2 添加學(xué)生信息的方法說明圖
1.3 代碼示例
添加學(xué)生方法
public static void Addstudent(ArrayList<Student> array){ // 定義一個(gè)方法用于添加學(xué)生; Scanner sc=new Scanner(System.in); System.out.print("請輸入學(xué)生學(xué)號(hào):"); String num=sc.nextLine(); System.out.print("請輸入學(xué)生姓名:"); String name=sc.nextLine(); System.out.print("請輸入學(xué)生年齡:"); String age=sc.nextLine(); System.out.print("請輸入學(xué)生地址:"); String address=sc.nextLine(); //創(chuàng)建學(xué)生對(duì)象,將鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量 Student s=new Student(); s.setNum(num); s.setName(name); s.setAge(age); s.setAddress(address); //將學(xué)生對(duì)象添加到集合中 array.add(s); //給出添加成功提示 System.out.println("添加學(xué)生成功!"); }
添加學(xué)生方法代碼寫完后,注意要在main
方法中調(diào)用:Addstudent(array);
2.查看學(xué)生信息的代碼編寫
2.1 思路
鍵盤錄入選擇查看所有學(xué)生信息;
定義一個(gè)方法,用于查看學(xué)生信息;
- 顯示表頭信息
- 將集合中數(shù)據(jù)取出按照對(duì)應(yīng)格式顯示學(xué)生信息
調(diào)用方法。
2.2 查看學(xué)生信息的方法說明圖
2.3 代碼示例
查看學(xué)生方法
// 定義一個(gè)方法,用于查看學(xué)生信息; public static void Findallstudent(ArrayList<Student> array){ if(array.size()==0){ System.out.println("無信息!"); return; } // 顯示表頭信息 // 將集合中數(shù)據(jù)取出按照對(duì)應(yīng)格式顯示學(xué)生信息 for(int i=0;i<array.size();i++){ Student s=array.get(i); System.out.println("學(xué)號(hào):"+s.getNum()); System.out.println("姓名:"+s.getName()); System.out.println("年齡:"+s.getAge()); System.out.println("地址:"+s.getAddress()); System.out.println(" "); } }
查看學(xué)生方法代碼寫完后,注意要在main
方法中調(diào)用:Findallstudent(array);
3.刪除學(xué)生信息的代碼編寫
3.1 思路
鍵盤錄入要?jiǎng)h除的學(xué)生信息;
定義一個(gè)方法,用于刪除學(xué)生信息;
- 顯示提示信息
- 鍵盤錄入要?jiǎng)h除的學(xué)生學(xué)號(hào)
- 遍歷集合將對(duì)應(yīng)學(xué)生對(duì)象從集合中刪除
- 給出刪除成功提示
調(diào)用方法
3.2 刪除學(xué)生信息的方法說明圖
3.3 代碼示例
刪除學(xué)生方法
// 定義一個(gè)方法,用于刪除學(xué)生信息; public static void Deletestudent(ArrayList<Student> array){ // 鍵盤錄入要?jiǎng)h除的學(xué)生信息,顯示提示信息 Scanner sc=new Scanner(System.in); System.out.println("請輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):"); String num=sc.nextLine(); int index = -1; // 遍歷集合將對(duì)應(yīng)學(xué)生對(duì)象從集合中刪除 for(int i=0;i<array.size();i++){ Student s=array.get(i); if(s.getNum().equals(num)){ index = i; break; } } if(index == -1){ System.out.println("學(xué)號(hào)有誤!"); }else{ array.remove(index); System.out.println("刪除學(xué)生信息成功!"); } }
刪除學(xué)生方法代碼寫完后,注意要在main
方法中調(diào)用:Deletestudent(array);
4.修改學(xué)生的代碼編寫
4.1 思路
鍵盤錄入選擇修改的學(xué)生信息;
定義一個(gè)方法,用于修改學(xué)生信息;
- 顯示提示信息
- 鍵盤錄入要修改的學(xué)生學(xué)號(hào)
- 遍歷集合修改對(duì)應(yīng)的學(xué)生信息
- 給出修改成功提示
調(diào)用方法
4.2 修改學(xué)生信息的方法說明圖
4.3 代碼示例
修改學(xué)生方法
// 定義一個(gè)方法,用于修改學(xué)生信息; public static void Updatestudent(ArrayList<Student> array){ // 鍵盤錄入選擇修改的學(xué)生信息,顯示提示信息 Scanner sc=new Scanner(System.in); System.out.print("請輸入要修改的學(xué)生學(xué)號(hào):"); String num=sc.nextLine(); // 鍵盤錄入要修改的學(xué)生信息 System.out.print("請輸入修改后的學(xué)生姓名"); String name=sc.nextLine(); System.out.print("請輸入修改后的學(xué)生年齡"); String age=sc.nextLine(); System.out.print("請輸入修改后的學(xué)生地址"); String address=sc.nextLine(); //創(chuàng)建學(xué)生對(duì)象 Student s=new Student(); s.setNum(num); s.setName(name); s.setAge(age); s.setAddress(address); //遍歷集合修改對(duì)應(yīng)的學(xué)生信息 for(int i=0;i<array.size();i++){ Student student=array.get(i); if(student.getNum().equals(num)){ array.set(i,s); break; } } //修改成功提示 System.out.println("修改成功!"); }
修改學(xué)生信息方法代碼寫完后,注意要在main
方法中調(diào)用:Updatestudent(array);
5.學(xué)號(hào)重復(fù)問題
5.1 思路
定義一個(gè)方法,對(duì)學(xué)號(hào)是否被使用進(jìn)行判斷;
- 如果與集合中的某一個(gè)學(xué)生學(xué)號(hào)相同,返回true
- 如果都不相同,返回false;
在添加學(xué)生錄入學(xué)號(hào)后調(diào)用該方法
- 如果返回true,提示重新輸入學(xué)號(hào)
- 如果返回false,正常添加學(xué)生對(duì)象
5.2 學(xué)號(hào)被占用的方法說明圖
5.3 代碼示例
判斷學(xué)號(hào)是否被使用方法
// 定義一個(gè)方法,對(duì)學(xué)號(hào)是否被使用進(jìn)行判斷; public static boolean Isused(ArrayList<Student> array,String num){ // 如果與集合中的某一個(gè)學(xué)生學(xué)號(hào)相同,返回true // 如果都不相同,返回false; boolean flag =false; for(int i=0;i<array.size();i++){ Student s=array.get(i); if(s.getNum().equals(num)){ flag = true; break; } } return flag; // 在添加學(xué)生錄入學(xué)號(hào)后調(diào)用該方法 // 如果返回true,提示重新輸入學(xué)號(hào) // 如果返回false,正常添加學(xué)生對(duì)象 }
5.4 代碼示例
改進(jìn)后的——添加學(xué)生信息方法
public static void Addstudent(ArrayList<Student> array){ // 定義一個(gè)方法用于添加學(xué)生; Scanner sc=new Scanner(System.in); String num; //為了讓程序回到這里,我們使用循環(huán)實(shí)現(xiàn) while(true){ System.out.print("請輸入學(xué)生學(xué)號(hào):"); num = sc.nextLine(); boolean flag=Isused(array,num); if(flag){ System.out.println("你輸入的學(xué)號(hào)已經(jīng)被使用,請重新輸入:"); }else{ break; } } System.out.print("請輸入學(xué)生姓名:"); String name=sc.nextLine(); System.out.print("請輸入學(xué)生年齡:"); String age=sc.nextLine(); System.out.print("請輸入學(xué)生地址:"); String address=sc.nextLine(); //創(chuàng)建學(xué)生對(duì)象,將鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量 Student s=new Student(); s.setNum(num); s.setName(name); s.setAge(age); s.setAddress(address); //將學(xué)生對(duì)象添加到集合中 array.add(s); //給出添加成功提示 System.out.println("添加學(xué)生成功!"); }
兩個(gè)方法代碼寫完后,注意要在main
方法中調(diào)用:
首先調(diào)用判斷學(xué)號(hào)被使用方法:Isused(array);
調(diào)用改進(jìn)后的添加學(xué)生信息方法:Addstudent(array);
(注意:如果之前有調(diào)用了標(biāo)題4中的方法,應(yīng)先刪去后在調(diào)用改進(jìn)后的添加學(xué)生信息方法?。?/p>
總結(jié)
文章中代碼的編寫使用的都是Java基礎(chǔ)知識(shí),多加練習(xí)熟能生巧。
到此這篇關(guān)于Java超詳細(xì)教你寫一個(gè)學(xué)籍管理系統(tǒng)案例的文章就介紹到這了,更多相關(guān)Java 學(xué)籍管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java+mysql實(shí)現(xiàn)學(xué)籍管理系統(tǒng)
- Java實(shí)現(xiàn)簡易學(xué)籍管理系統(tǒng)
- java實(shí)現(xiàn)簡易的學(xué)籍管理系統(tǒng)
- java實(shí)現(xiàn)學(xué)籍管理系統(tǒng)
- Java+Mysql學(xué)生管理系統(tǒng)源碼
- javaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- Java+MySQL實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)源碼
- java學(xué)生管理系統(tǒng)界面簡單實(shí)現(xiàn)(全)
- java學(xué)生信息管理系統(tǒng)源代碼
- java基于控制臺(tái)的學(xué)生學(xué)籍管理系統(tǒng)
相關(guān)文章
Spring中的HandlerMapping執(zhí)行流程詳解
這篇文章主要介紹了Spring中的HandlerMapping執(zhí)行流程詳解,HandlerMapping在Spring MVC框架的jar包下面,他是處理映射器,為用戶發(fā)送的請求找到合適的Handler Adapter,它將會(huì)把請求映射為HandlerExecutionChain對(duì)象,需要的朋友可以參考下2023-08-08Spring?Security權(quán)限注解啟動(dòng)及邏輯處理使用示例
這篇文章主要為大家介紹了Spring?Security權(quán)限注解啟動(dòng)及邏輯處理使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07springboot基于過濾器實(shí)現(xiàn)接口請求耗時(shí)統(tǒng)計(jì)操作
這篇文章主要介紹了springboot基于過濾器實(shí)現(xiàn)接口請求耗時(shí)統(tǒng)計(jì)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程2022-04-04Java Web使用POI導(dǎo)出Excel的方法詳解
這篇文章主要介紹了Java Web使用POI導(dǎo)出Excel的方法,結(jié)合實(shí)例形式詳細(xì)分析了Java Web使用POI導(dǎo)出Excel的具體操作步驟、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-06-06postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù)
這篇文章主要介紹了postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10關(guān)于Java中的mysql時(shí)區(qū)問題詳解
這篇文章主要給大家介紹了關(guān)于Java中mysql時(shí)區(qū)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05一文詳解SpringMVC中的@RequestMapping注解
@RequestMapping是一個(gè)用于映射HTTP請求到處理方法的注解,在Spring框架中使用,它可以用于控制器類和處理方法上,用來指定處理不同URL路徑的請求,并定義請求的方法等,本文小編將給大家詳細(xì)的介紹一下SpringMVC中的@RequestMapping注解,需要的朋友可以參考下2023-08-08