java對象數(shù)組實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
本文實(shí)例為大家分享了Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),供大家參考,具體內(nèi)容如下
一、功能需求
case 10:添加學(xué)生
case 11:查找一個學(xué)生
case 12:根據(jù)編號更新學(xué)生基本信息
case 13:根據(jù)編號刪除學(xué)生
case 14:根據(jù)編號錄入成績
case 15:根據(jù)某門成績排序
case 16:根據(jù)總成績排序
case 99:退出系統(tǒng)
二、代碼框架
一共有三個文件:
1、Student.java(學(xué)生類) //學(xué)生的基本信息
2、StudentAdmin.java(學(xué)生管理類) //用于對學(xué)生數(shù)組操作
3、StudentTest.java(主程序)
三、代碼
下面為具體的代碼:
1.學(xué)生類 Student.java
package com.studentadmin.test; /** * 學(xué)生類 */ public class Student { private int number; private String name; private int age; private int python; private int java; private int linux; private int sql; private int sum; private int avg; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge(){ return age; } public void setAge(int age) { this.age = age; } public int getPython() { return python; } public void setPython(int python) { this.python = python; } public int getJava() { return java; } public void setJava(int java) { this.java = java; } public int getLinux() { return linux; } public void setLinux(int linux) { this.linux = linux; } public int getSql() { return sql; } public void setSql(int sql) { this.sql = sql; } public int getSum() { return sum; } public void setSum() { this.sum = this.python+this.java+this.linux+this.sql; } public int getAvg() { return avg; } public void setAvg() { this.avg = this.sum/4; } public String toString(){ //學(xué)生信息 String str="\t\t"+this.number+"\t\t"+this.name+"\t\t"+this.age+"\t\t"+this.python+"\t\t" +this.java+"\t\t"+this.linux+"\t\t"+this.sql+"\t\t"+this.sum+"\t\t"+this.avg; return str; } }
2.學(xué)生管理類 StudentAdmin.java
package com.studentadmin.test; /** * 管理學(xué)生的類 */ public class StudentAdmin { static String msg="\t\t編號\t\t姓名\t\t年齡\t\tpython\tjava\tlinux\tsql\t\t總分\t\t平均分"; //功能菜單: public void menu(){ System.out.println("-----請選擇你要執(zhí)行的功能-----"); System.out.println("10:添加一個學(xué)生"); System.out.println("11:查找一個學(xué)生"); System.out.println("12:根據(jù)學(xué)生編號更新學(xué)生基本信息"); System.out.println("13:根據(jù)學(xué)生編號刪除學(xué)生"); System.out.println("14:根據(jù)學(xué)生編號輸入學(xué)生各門成績"); System.out.println("15:根據(jù)某門成績進(jìn)行排序"); System.out.println("16:根據(jù)總分進(jìn)行排序"); System.out.println("99:退出系統(tǒng)"); System.out.println("----------------------------"); } //返回?cái)?shù)組中元素為空的下標(biāo) public int index(Student[] arr){ for(int i=0;i<arr.length;i++){ if(arr[i]==null){ return i;//新學(xué)生的編號 } } return 999; //學(xué)生已滿員 } //打印所有學(xué)生的信息 public void print(Student[] arr){ System.out.println(msg); for(int i=0;i<arr.length;i++){ if(arr[i]!=null){ System.out.println(arr[i]); } } } //10:添加學(xué)生 public void create(String name,int age,Student[] arr){ int index=index(arr); //獲取新學(xué)生的位置 if(index!=999) { //如果還有空位置,可以添加學(xué)生 Student stu = new Student(); stu.setName(name); stu.setAge(age); stu.setNumber(index); arr[index] = stu; System.out.println("添加學(xué)生成功"); this.print(arr); }else{ System.out.println("班級學(xué)生已滿,無法再添加學(xué)生了"); } } //11:查找學(xué)生 public void select(int number,Student[] arr){ for(int i=0;i<arr.length;i++){ if(arr[i]!=null){ if(arr[i].getNumber()==number){ System.out.println(msg); System.out.println(arr[i]); return; } } } System.out.println("沒有這個編號的學(xué)生"); } //12:根據(jù)編號更新學(xué)生 public void update(int number,String name,int age,Student[] arr){ for(int i=0;i<arr.length;i++){ if(arr[i]!=null){ if(arr[i].getNumber()==number){ arr[i].setName(name); arr[i].setAge(age); System.out.println("更新學(xué)生信息成功"); this.print(arr); return; } } } System.out.println("沒有這個學(xué)生"); } //13:根據(jù)編號刪除學(xué)生 public void delete(int number,Student[] arr){ for(int i=0;i<arr.length;i++){ if(arr[i]!=null){ if(arr[i].getNumber()==number){ arr[i]=null; System.out.println("刪除成功"); this.print(arr); return; } } } System.out.println("沒有這個編號的學(xué)生"); } //14:根據(jù)編號錄入成績 public void input(int number, int python,int java,int linux,int sql,Student[] arr){ for(int i=0;i<arr.length;i++) { if (arr[i] != null) { if (arr[i].getNumber() == number) { arr[number].setPython(python); arr[number].setJava(java); arr[number].setLinux(linux); arr[number].setSql(sql); arr[number].setSum(); arr[number].setAvg(); System.out.println("錄入成績成功"); this.print(arr); return; } } } System.out.println("不存在這個學(xué)生"); } //15:根據(jù)某門成績排序 public void courseSort(int number,Student[] arr){ switch (number) { case 1: for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] != null && arr[j] != null) { if (arr[i].getPython() < arr[j].getPython()) { Student temp = arr[i];//比較某門成績,交換學(xué)生 arr[i] = arr[j]; arr[j] = temp; } } } } break; case 2: for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] != null && arr[j] != null) { if (arr[i].getJava() < arr[j].getJava()) { Student temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } break; case 3: for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] != null && arr[j] != null) { if (arr[i].getLinux() < arr[j].getLinux()) { Student temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } break; case 4: for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] != null && arr[j] != null) { if (arr[i].getSql() < arr[j].getSql()) { Student temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } break; } this.print(arr); } //16:根據(jù)總分排序 public void sumSort(Student[] arr){ for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] != null && arr[j] != null) { if (arr[i].getSum() < arr[j].getSum()) { Student temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } this.print(arr); } }
3.主程序 StudentTest.java
package com.studentadmin.test; import java.util.Scanner; /** * 主程序 */ public class StudentTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("請定義學(xué)生人數(shù)"); int stuNum=sc.nextInt(); //定義學(xué)生人數(shù) Student[] stuArr=new Student[stuNum]; //定義一個學(xué)生數(shù)組 StudentAdmin admin=new StudentAdmin(); //定義一個管理對象,用來調(diào)用管理學(xué)生的方法 while(true){ admin.menu();//功能菜單 int number=sc.nextInt(); //選擇的菜單選項(xiàng) if(number==10){ //10:添加一個學(xué)生 System.out.println("請輸入學(xué)生姓名"); String name=sc.next(); System.out.println("請輸入學(xué)生年齡"); int age=sc.nextInt(); admin.create(name,age,stuArr); }else if(number==11){//11:查找一個學(xué)生 System.out.println("請輸入你要查找的學(xué)生的編號"); int num=sc.nextInt(); admin.select(num,stuArr); }else if(number==12){//12:根據(jù)學(xué)生編號更新學(xué)生基本信息 System.out.println("請輸入你要更新的學(xué)生的編號"); int num=sc.nextInt(); System.out.println("請輸入學(xué)生姓名"); String name=sc.next(); System.out.println("請輸入學(xué)生年齡"); int age=sc.nextInt(); admin.update(num,name,age,stuArr); }else if(number==13){//13:根據(jù)學(xué)生編號刪除學(xué)生 System.out.println("請輸入你要刪除的學(xué)生編號"); int num=sc.nextInt(); admin.delete(num,stuArr); }else if(number==14){//14:根據(jù)編號輸入學(xué)生各門成績 System.out.println("請輸入學(xué)生編號"); int num=sc.nextInt(); System.out.println("請輸入學(xué)生python成績"); int python=sc.nextInt(); System.out.println("請輸入學(xué)生java成績"); int java=sc.nextInt(); System.out.println("請輸入學(xué)生linux成績"); int linux=sc.nextInt(); System.out.println("請輸入學(xué)生sql成績"); int sql=sc.nextInt(); admin.input(num,python,java,linux,sql,stuArr); }else if (number==15){//15:根據(jù)某門成績進(jìn)行排序 System.out.println("請選擇你要排序的課程(1:python 2:java 3:linux 4:sql)"); int courseNum=sc.nextInt(); admin.courseSort(courseNum,stuArr); }else if (number==16){//16:根據(jù)總分進(jìn)行排序 admin.sumSort(stuArr); }else if(number==99){//99:退出系統(tǒng) System.exit(0); }else{ System.out.println("請重新輸入"); } } } }
四、運(yùn)行結(jié)果
1.添加學(xué)生功能
2.查找學(xué)生功能
3.根據(jù)編號更新學(xué)生基本信息功能
4.根據(jù)學(xué)生編號刪除學(xué)生功能
5.根據(jù)學(xué)生編號錄入學(xué)生各門成績
6.根據(jù)某門成績進(jìn)行排序
7.根據(jù)總分進(jìn)行排序
8.退出系統(tǒng)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java編程之if-else的優(yōu)化技巧總結(jié)
說實(shí)話,其實(shí)我很討厭在代碼里大量使用if-else,一是因?yàn)樵擃惔a執(zhí)行方式屬于面向過程的,二嘛,則是會顯得代碼過于冗余.這篇筆記,主要記錄一些自己在工作實(shí)踐當(dāng)中針對if-else的優(yōu)化心得,將會不定期地長期更新,需要的朋友可以參考下2021-06-06java Array和Arrays的區(qū)別總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java Array和Arrays的區(qū)別總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-03-03Java中的FutureTask實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java中的FutureTask手寫代碼實(shí)例,FutureTask是Future的實(shí)現(xiàn),用來異步任務(wù)的獲取結(jié)果,可以啟動和取消異步任務(wù),查詢異步任務(wù)是否計(jì)算結(jié)束以及獲取最終的異步任務(wù)的結(jié)果,需要的朋友可以參考下2023-12-12MyBatis自定義resultMap三種映射關(guān)系示例詳解
這篇文章主要介紹了MyBatis自定義resultMap三種映射關(guān)系,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08MyBatis-Plus?updateById更新不了空字符串或null的解決方法
本文主要介紹了MyBatis-Plus?updateById更新不了空字符串或null的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03使用idea的database模塊繪制數(shù)據(jù)庫er圖的方法
這篇文章主要介紹了使用idea的database模塊繪制數(shù)據(jù)庫er圖,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Java設(shè)計(jì)模式之建造者模式實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-09-09