java对象数组实现学生信息管理系统

 更新时间:2021年06月29日 13:22:42   作者:龟的小号  
这篇文章主要为大家详细介绍了java对象数组实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现学生信息管理系统,供大家参考,具体内容如下

一、功能需求

case 10:添加学生
case 11:查找一个学生
case 12:根据编号更新学生基本信息
case 13:根据编号删除学生
case 14:根据编号录入成绩
case 15:根据某门成绩排序
case 16:根据总成绩排序
case 99:退出系统

二、代码框架

一共有三个文件:

1、Student.java(学生类) //学生的基本信息
2、StudentAdmin.java(学生管理类) //用于对学生数组操作
3、StudentTest.java(主程序)

三、代码

下面为具体的代码:

1.学生类 Student.java

package com.studentadmin.test;
/**
 * 学生类
 */
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(){ //学生信息
        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.学生管理类 StudentAdmin.java

package com.studentadmin.test;
/**
 * 管理学生的类
 */
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("-----请选择你要执行的功能-----");
        System.out.println("10:添加一个学生");
        System.out.println("11:查找一个学生");
        System.out.println("12:根据学生编号更新学生基本信息");
        System.out.println("13:根据学生编号删除学生");
        System.out.println("14:根据学生编号输入学生各门成绩");
        System.out.println("15:根据某门成绩进行排序");
        System.out.println("16:根据总分进行排序");
        System.out.println("99:退出系统");
        System.out.println("----------------------------");
    }

    //返回数组中元素为空的下标
    public int index(Student[] arr){
            for(int i=0;i<arr.length;i++){
                if(arr[i]==null){
                    return i;//新学生的编号
                }
            }
            return 999; //学生已满员
    }

    //打印所有学生的信息
    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:添加学生
    public void create(String name,int age,Student[] arr){
        int index=index(arr);  //获取新学生的位置
        if(index!=999) { //如果还有空位置,可以添加学生
            Student stu = new Student();
            stu.setName(name);
            stu.setAge(age);
            stu.setNumber(index);
            arr[index] = stu;
            System.out.println("添加学生成功");
            this.print(arr);
        }else{
            System.out.println("班级学生已满,无法再添加学生了");
        }
    }
    //11:查找学生
    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("没有这个编号的学生");
    }
    //12:根据编号更新学生
    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("更新学生信息成功");
                    this.print(arr);
                    return;
                }
            }
        }
        System.out.println("没有这个学生");
    }

    //13:根据编号删除学生
    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("没有这个编号的学生");
    }

    //14:根据编号录入成绩
    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("不存在这个学生");
    }

    //15:根据某门成绩排序
    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];//比较某门成绩,交换学生
                            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:根据总分排序
    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("请定义学生人数");
        int stuNum=sc.nextInt(); //定义学生人数
        Student[] stuArr=new Student[stuNum]; //定义一个学生数组
        StudentAdmin admin=new StudentAdmin(); //定义一个管理对象,用来调用管理学生的方法
        while(true){
            admin.menu();//功能菜单
            int number=sc.nextInt();  //选择的菜单选项
            if(number==10){ //10:添加一个学生
                System.out.println("请输入学生姓名");
                String name=sc.next();
                System.out.println("请输入学生年龄");
                int age=sc.nextInt();
                admin.create(name,age,stuArr);
            }else if(number==11){//11:查找一个学生
                System.out.println("请输入你要查找的学生的编号");
                int num=sc.nextInt();
                admin.select(num,stuArr);
            }else if(number==12){//12:根据学生编号更新学生基本信息
                System.out.println("请输入你要更新的学生的编号");
                int num=sc.nextInt();
                System.out.println("请输入学生姓名");
                String name=sc.next();
                System.out.println("请输入学生年龄");
                int age=sc.nextInt();
                admin.update(num,name,age,stuArr);
            }else if(number==13){//13:根据学生编号删除学生
                System.out.println("请输入你要删除的学生编号");
                int num=sc.nextInt();
                admin.delete(num,stuArr);
            }else if(number==14){//14:根据编号输入学生各门成绩
                System.out.println("请输入学生编号");
                int num=sc.nextInt();
                System.out.println("请输入学生python成绩");
                int python=sc.nextInt();
                System.out.println("请输入学生java成绩");
                int java=sc.nextInt();
                System.out.println("请输入学生linux成绩");
                int linux=sc.nextInt();
                System.out.println("请输入学生sql成绩");
                int sql=sc.nextInt();
                admin.input(num,python,java,linux,sql,stuArr);
            }else if (number==15){//15:根据某门成绩进行排序
                System.out.println("请选择你要排序的课程(1:python 2:java 3:linux 4:sql)");
                int courseNum=sc.nextInt();
                admin.courseSort(courseNum,stuArr);
            }else if (number==16){//16:根据总分进行排序
                admin.sumSort(stuArr);
            }else if(number==99){//99:退出系统
                System.exit(0);
            }else{
                System.out.println("请重新输入");
            }
        }
    }

}

四、运行结果

1.添加学生功能

2.查找学生功能

3.根据编号更新学生基本信息功能

4.根据学生编号删除学生功能

5.根据学生编号录入学生各门成绩

6.根据某门成绩进行排序

7.根据总分进行排序

8.退出系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解如何热更新线上的Java服务器代码

    详解如何热更新线上的Java服务器代码

    这篇文章主要介绍了详解如何热更新线上的Java服务器代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • SpringBoot + FFmpeg实现一个简单的M3U8切片转码系统

    SpringBoot + FFmpeg实现一个简单的M3U8切片转码系统

    使用大名鼎鼎的ffmpeg,把视频文件切片成m3u8,并且通过springboot,可以实现在线的点播。
    2021-05-05
  • Java中字符串的一些常见方法分享

    Java中字符串的一些常见方法分享

    这篇文章主要介绍了Java中字符串的一些常见方法,需要的朋友可以参考下
    2014-02-02
  • Lombok的@Data等注解无效的解决

    Lombok的@Data等注解无效的解决

    这篇文章主要介绍了Lombok的@Data等注解无效的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java基于jdbc实现的增删改查操作示例

    Java基于jdbc实现的增删改查操作示例

    这篇文章主要介绍了Java基于jdbc实现的增删改查操作,结合实例形式分析了java使用jdbc进行数据库的连接、增删改查等基本操作技巧,需要的朋友可以参考下
    2019-01-01
  • java多文件压缩下载的解决方法

    java多文件压缩下载的解决方法

    这篇文章主要为大家详细介绍了java多文件压缩下载的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Idea自动生成Entity实现过程详解

    Idea自动生成Entity实现过程详解

    这篇文章主要介绍了Idea自动生成Entity实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Spring Boot配置过滤器的2种方式示例

    Spring Boot配置过滤器的2种方式示例

    这篇文章主要给大家介绍了关于Spring Boot配置过滤器的2种方式,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Windows 10上JDK环境安装配置图文教程

    Windows 10上JDK环境安装配置图文教程

    这篇文章主要为大家详细介绍了Windows 10上JDK环境安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • SpringBoot如何自动生成API文档详解

    SpringBoot如何自动生成API文档详解

    网络程序正朝着移动设备的方向发展,前后端分离、APP,最好的交互交互方式莫过于通过API接口实现,这篇文章主要给大家介绍了关于SpringBoot如何自动生成API文档的相关资料,需要的朋友可以参考下
    2021-07-07

最新评论