日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

*学生管理系统java面向对象版本

發布時間:2023/12/9 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 *学生管理系统java面向对象版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學生管理系統java面向對象版本

鑒于初學者都在用學生管理系統練習業務邏輯,本人也提供一個java寫的面向對象版本

技術能力有限,僅供新手學習參考。大神略過。
+++++++++學生類+++++++++++++

package studentmanagementsystem; /* 學生類: 屬性:姓名、年齡、學號(ID)、性別 方法:復寫toString()、equals()、compareto()、get()set()等*/ import java.util.Objects; public class Student<e> implements Comparable {private String name;private int age;private int ID;private String sex;boolean flag=false;//退出判斷年齡的循環標記public Student() {}public Student(String name, int age, int ID, String sex) {this.name = name;this.age = age;this.ID = ID;this.sex = sex;}@Overridepublic String toString() {return "學生"+"姓名:"+name+"\t\t"+"年齡:"+age+"\t\t"+"學號:"+ID+"\t\t"+"性別:"+sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int ages) {if (ages > 0 && ages < 80) {this.age = ages;flag=true;} else {System.out.println("輸入年齡錯誤");}}public int getID() {return ID;}public void setID(int ID) {this.ID = ID;}public String getSex() {return sex;}public void setSex(String sex) {if (sex.equals("男") || sex .equals("女") ) {this.sex = sex;flag=true;} else {System.out.println("輸入錯誤");}}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass())return false;Student student = (Student) o;return age == student.age &&ID == student.ID &&flag == student.flag &&Objects.equals(name, student.name) &&Objects.equals(sex, student.sex);}@Overridepublic int hashCode() {return Objects.hash(ID);}@Overridepublic int compareTo(Object o) {Student st = (Student) o;return this.getID()-((Student) o).getID();} }

學生容器類

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面向对象版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。