*学生管理系统java面向对象版本
生活随笔
收集整理的這篇文章主要介紹了
*学生管理系统java面向对象版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學生管理系統java面向對象版本
鑒于初學者都在用學生管理系統練習業務邏輯,本人也提供一個java寫的面向對象版本技術能力有限,僅供新手學習參考。大神略過。
+++++++++學生類+++++++++++++
學生容器類
package studentmanagementsystem; import java.util.*; public class StuSystem {//容器類private Scanner sc = new Scanner(System.in);ArrayList<Student> list = new ArrayList();//添加學生private Student st;public void addstudent (Student st){//判斷id重復for (int i = 0; i < list.size(); i++) {if (list.get(i).getID() == st.getID()) {System.out.println("已注冊過該賬號");}}list.add(st);System.out.println("注冊成功+++");}//設置public void setInformation(int temp) {a:while (true) {System.out.println("正在查詢");//加入sleep等待if (list.size()==0) {System.out.println("沒有找到該學生");break a;}for (int i = 0; i < list.size(); i++) {if (list.get(i).getID()==temp) {System.out.println(list.get(i).toString());list.remove(i);list.add(i,getConsoleString());//把封裝好的對象直接給了System.out.println("\t\t" + "設置成功");break a;}}if (true) {System.out.println("沒有該學生,請重新輸入");break;}}}public void referAll() {for (int i = 0; i < list.size(); i++) {Collections.sort(list);System.out.println(list.get(i).toString());}}public void referStudent(int id) {a:while (true) {System.out.println("正在查詢");//加入sleep等待if (list.size()==0) {System.out.println("沒有找到該學生");break a;}for (int i = 0; i < list.size(); i++) {if (list.get(i).getID()==id) {System.out.println(list.get(i).toString());break a;}}if (true) {System.out.println("沒有該學生,請重新輸入");break;}}}public void removeInformation(int id) {a:while (true) {System.out.println("正在查詢");//可加入sleep等待if (list.size()==0) {System.out.println("沒有找到該學生");break a;}for (int i = 0; i < list.size(); i++) {if (list.get(i).getID()==id) {System.out.println(list.get(i).toString());System.out.println("是否刪除,y/n");String temp=sc.next();if (temp.equals("y")) {list.remove(i);} else if (temp.equals("n")) {break a;}//把封裝好的對象直接給了System.out.println("\t\t" + "刪除成功");break a;}}if (true) {System.out.println("沒有該學生,請重新輸入");break;}}}/*抽取控制臺*/public Student getConsoleString(){//定義學生對象儲存信息Student xin = new Student();//定義新的對象,來接收新的對象信息System.out.println("==================================================");System.out.println("請輸入學生信息");System.out.println("請輸入姓名");try {String name = sc.next();xin.setName(name);} catch (Exception e) {System.out.println("輸入錯誤");}while (true) {System.out.println("請輸入年齡");try {int age =sc.nextInt();xin.setAge(age);} catch (Exception e) {System.out.println("輸入錯誤");break ;}if (xin.flag==true) {break;}}xin.flag=false;System.out.println("請輸入學號");try {int id =sc.nextInt();xin.setID(id);} catch (Exception e) {System.out.println("輸入錯誤");int id =sc.nextInt();}while (true) {System.out.println("請輸入性別");String sex = sc.next();xin.setSex(sex);if (xin.flag==true) {break;}}System.out.println("=================================================");return xin;} }主方法界面及調用
package studentmanagementsystem; import javax.sound.midi.Soundbank; import java.util.*; /*** @auther sunguangyuan*@version 1.0* 1.添加 2.修改 3.刪除 4.按學號查詢 5.查詢所有學員 6.退出"); 2一共三個類,學生類 、系統類(容器類)、主方法類(界面類) 3界面信息也應該封裝起來,并暴露接口,為后期拓展方便*/ public class StudentManageStudent {public static void main(String[] args) {StuSystem tank = new StuSystem();Scanner sc = new Scanner(System.in);title:while (true) {System.out.println("請輸入要執行的功能");System.out.println("1.添加 2.修改 3.刪除 4.按學號查詢 5.查詢所有學員 6.退出");try {int temp = sc.nextInt();switch (temp) {case 1://添加 此處封裝性不好if (tank.list.size() == 0) {tank.list.add(tank.getConsoleString());System.out.println("注冊成功");break;} else if (tank.list.size() >= 1) {tank.addstudent(tank.getConsoleString());break;}break;case 2://修改 :根據學號確定要設置的對象System.out.println("請輸入你的學號");int setid = sc.nextInt();tank.setInformation(setid);break;case 3://刪除System.out.println("請輸入您的學號");int removeid = sc.nextInt();tank.removeInformation(removeid);break;case 4://查詢System.out.println("請輸入您的學號");int referid = sc.nextInt();tank.referStudent(referid);break;case 5:System.out.println("========================");System.out.println("========================");//查詢所有學生tank.referAll();System.out.println("========================");System.out.println("========================");break;case 6://退出System.out.println("歡迎使用,再見");System.exit(0);default:System.out.println("¥¥¥輸入有誤,請重新輸入¥¥¥");break;}} catch (Exception e) {System.out.println("輸入有誤");break title;}}}}功能:常見業務的增刪改查,以及根據學號的排序功能等
已知bug: 由于為新手練習用,沒有引入io,針對Scanner的異常僅僅是簡單的捕獲
未作處理,主方法體的title標簽為僅為退出用
功能拓展:主界面還應該提供接口,拓展功能
主界面封裝不夠良好,還可以優化
容器類的arrylist屬性應該封裝起來,提高安全性(時間緊,沒來及改良)
還有名字字符數不等會出現對齊錯亂
關于這個主界面的封裝和接口的暴露如果有大神瀏覽,懇請指教,謝謝
總結
以上是生活随笔為你收集整理的*学生管理系统java面向对象版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AS 中 Plugin for Grad
- 下一篇: java宿舍管理系统代码_JAVA学生宿