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.退出系统

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

相关文章

  • Springboot整合mqtt服务的示例代码

    Springboot整合mqtt服务的示例代码

    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。本文为大家分享了Springboot整合mqtt服务的示例代码,需要的可以参考一下
    2022-03-03
  • Mac下安装配置Maven并在IDEA中配置的详细教程

    Mac下安装配置Maven并在IDEA中配置的详细教程

    这篇文章主要介绍了Mac下安装配置Maven并在IDEA中配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java返回可变引用对象问题整理

    Java返回可变引用对象问题整理

    在本篇文章里小编给大家分享的是关于Java返回可变引用对象问题整理内容,需要的朋友们可以学习下。
    2020-04-04
  • SpringBoot实现发送QQ邮件的示例代码

    SpringBoot实现发送QQ邮件的示例代码

    这篇文章主要介绍了SpringBoot如何实现发送QQ邮件功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 详解Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)

    详解Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-mav

    这篇文章主要介绍了Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Maven之导入thymeleaf依赖飘红问题及解决

    Maven之导入thymeleaf依赖飘红问题及解决

    这篇文章主要介绍了Maven之导入thymeleaf依赖飘红问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法

    IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法

    这篇文章主要介绍了IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法,帮助大家更好的利用IDEA进行Java的开发学习,感兴趣的朋友可以了解下
    2021-01-01
  • springboot集成测试里的redis

    springboot集成测试里的redis

    这篇文章主要介绍了springboot集成测试里的redis,本文给大家分享了源码,添加依赖添加mock的方法,需要的朋友可以参考下
    2018-11-11
  • Java中的字符型文件流FileReader和FileWriter详细解读

    Java中的字符型文件流FileReader和FileWriter详细解读

    这篇文章主要介绍了Java中的字符型文件流FileReader和FileWriter详细解读,与字节型文件流不同,字节型文件流读取和写入的都是一个又一个的字节,而字符型文件流操作的单位是一个又一个的字符,字符型流认为一个字母是一个字符,而一个汉字也是一个字符,需要的朋友可以参考下
    2023-10-10
  • Java实现线程的暂停和恢复的示例详解

    Java实现线程的暂停和恢复的示例详解

    这几天的项目中,客户给了个需求,希望我可以开启一个任务,想什么时候暂停就什么时候暂停,想什么时候开始就什么时候开始,所以本文小编给大家介绍了Java实现线程的暂停和恢复的示例,需要的朋友可以参考下
    2023-11-11

最新评论