java對(duì)象數(shù)組實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
本文實(shí)例為大家分享了Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),供大家參考,具體內(nèi)容如下
一、功能需求
case 10:添加學(xué)生
case 11:查找一個(gè)學(xué)生
case 12:根據(jù)編號(hào)更新學(xué)生基本信息
case 13:根據(jù)編號(hào)刪除學(xué)生
case 14:根據(jù)編號(hào)錄入成績(jī)
case 15:根據(jù)某門成績(jī)排序
case 16:根據(jù)總成績(jī)排序
case 99:退出系統(tǒng)
二、代碼框架
一共有三個(gè)文件:
1、Student.java(學(xué)生類) //學(xué)生的基本信息
2、StudentAdmin.java(學(xué)生管理類) //用于對(duì)學(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編號(hào)\t\t姓名\t\t年齡\t\tpython\tjava\tlinux\tsql\t\t總分\t\t平均分";
//功能菜單:
public void menu(){
System.out.println("-----請(qǐng)選擇你要執(zhí)行的功能-----");
System.out.println("10:添加一個(gè)學(xué)生");
System.out.println("11:查找一個(gè)學(xué)生");
System.out.println("12:根據(jù)學(xué)生編號(hào)更新學(xué)生基本信息");
System.out.println("13:根據(jù)學(xué)生編號(hào)刪除學(xué)生");
System.out.println("14:根據(jù)學(xué)生編號(hào)輸入學(xué)生各門成績(jī)");
System.out.println("15:根據(jù)某門成績(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é)生的編號(hào)
}
}
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("班級(jí)學(xué)生已滿,無(wú)法再添加學(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("沒(méi)有這個(gè)編號(hào)的學(xué)生");
}
//12:根據(jù)編號(hào)更新學(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("沒(méi)有這個(gè)學(xué)生");
}
//13:根據(jù)編號(hào)刪除學(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("沒(méi)有這個(gè)編號(hào)的學(xué)生");
}
//14:根據(jù)編號(hào)錄入成績(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("錄入成績(jī)成功");
this.print(arr);
return;
}
}
}
System.out.println("不存在這個(gè)學(xué)生");
}
//15:根據(jù)某門成績(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];//比較某門成績(jī),交換學(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("請(qǐng)定義學(xué)生人數(shù)");
int stuNum=sc.nextInt(); //定義學(xué)生人數(shù)
Student[] stuArr=new Student[stuNum]; //定義一個(gè)學(xué)生數(shù)組
StudentAdmin admin=new StudentAdmin(); //定義一個(gè)管理對(duì)象,用來(lái)調(diào)用管理學(xué)生的方法
while(true){
admin.menu();//功能菜單
int number=sc.nextInt(); //選擇的菜單選項(xiàng)
if(number==10){ //10:添加一個(gè)學(xué)生
System.out.println("請(qǐng)輸入學(xué)生姓名");
String name=sc.next();
System.out.println("請(qǐng)輸入學(xué)生年齡");
int age=sc.nextInt();
admin.create(name,age,stuArr);
}else if(number==11){//11:查找一個(gè)學(xué)生
System.out.println("請(qǐng)輸入你要查找的學(xué)生的編號(hào)");
int num=sc.nextInt();
admin.select(num,stuArr);
}else if(number==12){//12:根據(jù)學(xué)生編號(hào)更新學(xué)生基本信息
System.out.println("請(qǐng)輸入你要更新的學(xué)生的編號(hào)");
int num=sc.nextInt();
System.out.println("請(qǐng)輸入學(xué)生姓名");
String name=sc.next();
System.out.println("請(qǐng)輸入學(xué)生年齡");
int age=sc.nextInt();
admin.update(num,name,age,stuArr);
}else if(number==13){//13:根據(jù)學(xué)生編號(hào)刪除學(xué)生
System.out.println("請(qǐng)輸入你要?jiǎng)h除的學(xué)生編號(hào)");
int num=sc.nextInt();
admin.delete(num,stuArr);
}else if(number==14){//14:根據(jù)編號(hào)輸入學(xué)生各門成績(jī)
System.out.println("請(qǐng)輸入學(xué)生編號(hào)");
int num=sc.nextInt();
System.out.println("請(qǐng)輸入學(xué)生python成績(jī)");
int python=sc.nextInt();
System.out.println("請(qǐng)輸入學(xué)生java成績(jī)");
int java=sc.nextInt();
System.out.println("請(qǐng)輸入學(xué)生linux成績(jī)");
int linux=sc.nextInt();
System.out.println("請(qǐng)輸入學(xué)生sql成績(jī)");
int sql=sc.nextInt();
admin.input(num,python,java,linux,sql,stuArr);
}else if (number==15){//15:根據(jù)某門成績(jī)進(jìn)行排序
System.out.println("請(qǐng)選擇你要排序的課程(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("請(qǐng)重新輸入");
}
}
}
}
四、運(yùn)行結(jié)果
1.添加學(xué)生功能

2.查找學(xué)生功能

3.根據(jù)編號(hào)更新學(xué)生基本信息功能

4.根據(jù)學(xué)生編號(hào)刪除學(xué)生功能

5.根據(jù)學(xué)生編號(hào)錄入學(xué)生各門成績(jī)

6.根據(jù)某門成績(jī)進(jìn)行排序

7.根據(jù)總分進(jìn)行排序

8.退出系統(tǒng)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java編程之if-else的優(yōu)化技巧總結(jié)
說(shuō)實(shí)話,其實(shí)我很討厭在代碼里大量使用if-else,一是因?yàn)樵擃惔a執(zhí)行方式屬于面向過(guò)程的,二嘛,則是會(huì)顯得代碼過(guò)于冗余.這篇筆記,主要記錄一些自己在工作實(shí)踐當(dāng)中針對(duì)if-else的優(yōu)化心得,將會(huì)不定期地長(zhǎng)期更新,需要的朋友可以參考下2021-06-06
java Array和Arrays的區(qū)別總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java Array和Arrays的區(qū)別總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-03-03
Java中的FutureTask實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了Java中的FutureTask手寫代碼實(shí)例,FutureTask是Future的實(shí)現(xiàn),用來(lái)異步任務(wù)的獲取結(jié)果,可以啟動(dòng)和取消異步任務(wù),查詢異步任務(wù)是否計(jì)算結(jié)束以及獲取最終的異步任務(wù)的結(jié)果,需要的朋友可以參考下2023-12-12
MyBatis自定義resultMap三種映射關(guān)系示例詳解
這篇文章主要介紹了MyBatis自定義resultMap三種映射關(guān)系,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
java-list創(chuàng)建的兩種常見(jiàn)方式
本文給大家分享Java-list創(chuàng)建的兩種常見(jiàn)方式,每種方式結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2022-11-11
MyBatis-Plus?updateById更新不了空字符串或null的解決方法
本文主要介紹了MyBatis-Plus?updateById更新不了空字符串或null的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
使用idea的database模塊繪制數(shù)據(jù)庫(kù)er圖的方法
這篇文章主要介紹了使用idea的database模塊繪制數(shù)據(jù)庫(kù)er圖,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Java設(shè)計(jì)模式之建造者模式實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-09-09

