Java 版学生成绩管理系统,附源码

简介: Java 版学生成绩管理系统,附源码

前言

对于计算机专业的学生来讲,一定对于学生成绩管理系统课程设计十分印象深刻。设计、上机、编码、写报告、答辩等一系列流程,虽然很简单,但也可以综合运用我们所学的一些知识了。


今天就来复习以下这个课题,用 Java SE 来实现该课题,也算是补上当初上课的时候没有好好写的遗憾吧。


虽然很简单,但是对于刚涉足编程学习的人来讲,还是有一定难度的,既要考虑界面打印,也要考虑条件判断、循环语句、输入输出控制等等技巧,所以在这里简单地实现一下,方便给初学的小伙伴们一个参考(对于我的界面比较丑的问题,就不要过于纠结了,下去可以自己调整😂,我们只关注功能实现🤣)。


对于学生成绩管理系统,主要可以分为如下几个功能:


录入学生成绩

统计学生成绩

查找学生成绩

修改学生成绩

删除学生成绩

按平均分排序

显示所有成绩

退出管理系统


image.png进入系统之后,我们应该有系统菜单,然后根据提示选择我们所要进行的操作。

image.pngimage.png

  • 统计学生成绩

主要是对学生的成绩进行统计,然后输出平均分,并打印出对应信息;

image.png

  • 修改学生成绩

根据输入的学号来对对应学生的成绩进行修改;image.png

  • 删除学生成绩

根据输入的学生学号,删除对应学生的成绩信息;

image.pngimage.pngimage.png

功能设计与实现

主界面

主要是打印出来系统功能的选择菜单,然后根据我们的输入进入不同的子功能模块;

package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
 * @author : cunyu
 * @version : 1.0
 * @className : Manager
 * @date : 2021/4/4 23:54
 * @description : 管理系统
 */
public class Manager {
    public static Scanner scanner = new Scanner(System.in);
    public static ArrayList<Student> students = new ArrayList<>();
    public static void main(String[] args) {
        while (true) {
            System.out.println("----------欢迎使用学生成绩管理系统-----------");
            System.out.println("-------------【1】录入学生成绩-------------");
            System.out.println("-------------【2】显示统计数据-------------");
            System.out.println("-------------【3】查找学生成绩-------------");
            System.out.println("-------------【4】修改学生成绩-------------");
            System.out.println("-------------【5】删除学生成绩-------------");
            System.out.println("-------------【6】按平均分排列-------------");
            System.out.println("-------------【7】显示所有成绩-------------");
            System.out.println("-------------【0】退出管理系统-------------");
            Student student = new Student();
            System.out.println("输入你的选择【0-7】");
            String choice = scanner.next();
            switch (choice) {
                case "1":
                    // 录入成绩
                    student.addScore(students);
                    break;
                case "2":
                    // 统计信息
                    student.showAvg(students);
                    break;
                case "3":
                    // 查找成绩
                    student.lookupStudent(students);
                    break;
                case "4":
                    // 修改成绩
                    student.modifyStudent(students);
                    break;
                case "5":
                    // 删除成绩
                    student.deleteStudent(students);
                    break;
                case "6":
                    // 按照平均分排序
                    student.sortStudent(students);
                    break;
                case "7":
                    // 显示所有成绩
                    student.showAllStudent(students);
                    break;
                case "0":
                    System.exit(0);
                default:
                    break;
            }
        }
    }
}

主类设计

系统主要是针对学生成绩信息管理的,所以我们设计一个学生类,包括一系列属性(也就是简单的个人信息和各科成绩);

package com.cunyu;
/**
 * @author : cunyu
 * @version : 1.0
 * @className : Student
 * @date : 2021/4/4 23:31
 * @description : 学生类
 */
public class Student {
    //    班级
    private String grade;
    //    学号
    private long id;
    //    姓名
    private String name;
    //    高数
    private float math;
    //    英语
    private float english;
    //    体育
    private float sport;
    //    Java
    private float java;
    //    C++
    private float cPlusPlus;
    //    政治
    private float polity;
    //    算法
    private float algorithm;
    //    平均分
    private double average;
    // 各种 setter/getter 以及构造函数
}

录入学生成绩

首先录入学号,判断是否可用,不可用则重新输入,可用则输入其他信息;

然后将信息赋值到学生对象,最后将该学生对象加入集合就可以了。

/**
* @param students 学生对象集合
* @return
* @description 显示简单统计数据
* @date 2021/4/5 10:08
* @author cunyu1943
* @version 1.0
*/
public void showAvg(ArrayList<Student> students) {
    System.out.println("----------输出学生统计数据----------");
    if (students.size() == 0) {
        System.out.println("当前无数据,请先添加数据!");
    } else {
        System.out.println("班级\t\t学号\t\t姓名\t\t平均分");
        System.out.println("---------------------------------");
        for (Student student : students) {
            System.out.format("%s\t\t%d\t\t%s\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getAvg(student));
        }
    }
}
 
         
/**
* @param students 学生对象列表
* @return
* @description 录入学生信息
* @date 2021/4/5 9:14
* @author cunyu1943
* @version 1.0
*/
public void addScore(ArrayList<Student> students) {
    System.out.println("----------录入学生数据----------");
    System.out.println("请依次输入如下数据:");
    long id;
    while (true) {
        System.out.println("学号");
        id = scanner.nextInt();
        if (isValid(students, id)) {
            System.out.println("学号重复,请重新输入");
        } else {
            break;
        }
    }
    System.out.println("年级");
    String grade = scanner.next();
    System.out.println("姓名");
    String name = scanner.next();
    System.out.println("数学");
    float math = scanner.nextFloat();
    System.out.println("英语");
    float english = scanner.nextFloat();
    System.out.println("体育");
    float sport = scanner.nextFloat();
    System.out.println("Java");
    float java = scanner.nextFloat();
    System.out.println("C++");
    float cPlusPlus = scanner.nextFloat();
    System.out.println("政治");
    float polity = scanner.nextFloat();
    System.out.println("算法");
    float algorithm = scanner.nextFloat();
    //        创建对象,并设置属性,然后将其加入学生对象集合
    Student student = new Student();
    student.setId(id);
    student.setGrade(grade);
    student.setName(name);
    student.setMath(math);
    student.setAlgorithm(algorithm);
    student.setEnglish(english);
    student.setcPlusPlus(cPlusPlus);
    student.setJava(java);
    student.setSport(sport);
    student.setPolity(polity);
    //        获取平均分
    double avg = getAvg(student);
    student.setAverage(avg);
    //        添加到集合
    students.add(student);
    //        提示信息
    System.out.println("添加成功");
}

统计学生成绩

主要实现对于各学生平均成绩的统计,然后打印出信息;

/**
* @param students 学生对象集合
* @return
* @description 显示简单统计数据
* @date 2021/4/5 10:08
* @author cunyu1943
* @version 1.0
*/
public void showAvg(ArrayList<Student> students) {
    System.out.println("----------输出学生统计数据----------");
    if (students.size() == 0) {
        System.out.println("当前无数据,请先添加数据!");
    } else {
        System.out.println("班级\t\t学号\t\t姓名\t\t平均分");
        System.out.println("---------------------------------");
        for (Student student : students) {
            System.out.format("%s\t\t%d\t\t%s\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getAvg(student));
        }
    }
}

查找学生成绩

先判断是否有数据,有数据再进行后续操作。然后通过对输入的学号进行匹配,找到对应学号的学生成绩信息并打印;

/**
* @param students 学生对象集合
* @return
* @description 查找对应学号学生的成绩信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void lookupStudent(ArrayList<Student> students) {
    System.out.println("----------查找学生成绩----------");
    if (students.size() == 0) {
        System.out.println("当前无数据,请添加后重试");
    } else {
        System.out.println("请输入要查找学生的学号:");
        long id = scanner.nextLong();
        int flag = -1;
        Student student = new Student();
        //        查找对应学号,找到就退出
        for (int i = 0; i < students.size(); i++) {
            student = students.get(i);
            if (student.getId() == id) {
                flag = i;
                break;
            }
        }
        if (flag == -1) {
            System.out.println("未找到对应学号的学生,请确认后重新输入!");
        } else {
            System.out.println("对应学号的学生成绩如下:");
            System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
            System.out.format("%s\t\t%d\t\t%s\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
            System.out.println("查找信息成功!");
        }
    }
}

修改学生成绩

先判断是否有数据,有数据再进行后续操作。然后通过对输入的学号进行匹配,找到对应学号的学生,然后对其成绩信息进行修改,但不修改个人其他信息;

/**
* @param students 学生对象集合
* @return
* @description 修改对应学号学生的信息
* @date 2021/4/5 12:59
* @author cunyu1943
* @version 1.0
*/
public void modifyStudent(ArrayList<Student> students) {
    System.out.println("----------修改学生成绩----------");
    if (students.isEmpty()) {
        System.out.println("当前无数据,请添加后重试");
    } else {
        System.out.println("请输入要修改学生的学号:");
        long id = scanner.nextLong();
        for (Student student : students) {
            if (id == student.getId()) {
                System.out.println("请重新输入该学生的成绩");
                System.out.println("数学");
                float math = scanner.nextFloat();
                System.out.println("英语");
                float english = scanner.nextFloat();
                System.out.println("体育");
                float sport = scanner.nextFloat();
                System.out.println("Java");
                float java = scanner.nextFloat();
                System.out.println("C++");
                float cPlusPlus = scanner.nextFloat();
                System.out.println("政治");
                float polity = scanner.nextFloat();
                System.out.println("算法");
                float algorithm = scanner.nextFloat();
                student.setMath(math);
                student.setAlgorithm(algorithm);
                student.setEnglish(english);
                student.setcPlusPlus(cPlusPlus);
                student.setJava(java);
                student.setSport(sport);
                student.setPolity(polity);
                //                获取平均分
                double avg = getAvg(student);
                student.setAverage(avg);
                System.out.println("修改成功!");
            } else {
                System.out.println("未找到对应学号的学生,请确认后重新输入!");
            }
            break;
        }
    }
}

删除学生成绩

先判断是否有数据,有数据再进行后续操作。然后通过对输入的学号进行匹配,找到对应学号的学生,然后将其从集合中删除即可;

/**
     * @param students 学生对象集合
     * @return
     * @description 删除学生成绩
     * @date 2021/4/5 14:28
     * @author cunyu1943
     * @version 1.0
     */
public void deleteStudent(ArrayList<Student> students) {
    System.out.println("----------删除学生成绩----------");
    if (students.isEmpty()) {
        System.out.println("当前无数据,请添加后重试");
    } else {
        System.out.println("输入要删除学生成绩的学号");
        long id = scanner.nextLong();
        int index = -1;
        for (int i = 0; i < students.size(); i++) {
            Student student = students.get(i);
            if (student.getId() == id) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("未找到对应学号学生信息,请确认后再删除!");
        } else {
            students.remove(index);
            System.out.println("----------删除成功----------");
        }
    }
}

按平均分排序

先判断是否有数据,有数据再进行后续操作。然后对集合中的学生的平均成绩进行排序,然后依次从高到低打印出学生信息;

/**
* @param students 学生对象集合
* @return
* @description 按照平均分排序
* @date 2021/4/5 14:29
* @author cunyu1943
* @version 1.0
*/
public void sortStudent(ArrayList<Student> students) {
    if (students.isEmpty()) {
        System.out.println("当前无数据,请添加后重试");
    } else {
        for (int i = 0; i < students.size() - 1; i++) {
            if (students.get(i).getAvg(students.get(i)) < students.get(i + 1).getAvg(students.get(i + 1))) {
                Student tmp = students.get(i);
                students.set(i, students.get(i + 1));
                students.set(i + 1, tmp);
            }
        }
        System.out.println("排序后的学生成绩");
        System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
        for (Student student : students) {
            System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
        }
    }
}

显示所有成绩

先判断是否有数据,有数据再进行后续操作。遍历学生对象集合,然后打印出各个学生的成绩信息。

/**
* @param students 学生对象集合
* @return
* @description 显示所有学生成绩
* @date 2021/4/5 14:30
* @author cunyu1943
* @version 1.0
*/
public void showAllStudent(ArrayList<Student> students) {
    if (students.isEmpty()) {
        System.out.println("当前无数据,请先添加数据");
    } else {
        System.out.println("----------所有学生成绩如下----------");
        System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
        for (Student student : students) {
            System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
        }
    }
}

总程序

将上述所有模块整合之后,我们得到最终的程序;

  1. Manager.java
package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
 * @author : cunyu
 * @version : 1.0
 * @className : Manager
 * @date : 2021/4/4 23:54
 * @description : 管理系统
 */
public class Manager {
    public static Scanner scanner = new Scanner(System.in);
    public static ArrayList<Student> students = new ArrayList<>();
    public static void main(String[] args) {
        while (true) {
            System.out.println("----------欢迎使用学生成绩管理系统-----------");
            System.out.println("-------------【1】录入学生成绩-------------");
            System.out.println("-------------【2】显示统计数据-------------");
            System.out.println("-------------【3】查找学生成绩-------------");
            System.out.println("-------------【4】修改学生成绩-------------");
            System.out.println("-------------【5】删除学生成绩-------------");
            System.out.println("-------------【6】按平均分排列-------------");
            System.out.println("-------------【7】显示所有成绩-------------");
            System.out.println("-------------【0】退出管理系统-------------");
            Student student = new Student();
            System.out.println("输入你的选择");
            String choice = scanner.next();
            switch (choice) {
                case "1":
                    student.addScore(students);
                    break;
                case "2":
                    student.showAvg(students);
                    break;
                case "3":
                    student.lookupStudent(students);
                    break;
                case "4":
                    student.modifyStudent(students);
                    break;
                case "5":
                    student.deleteStudent(students);
                    break;
                case "6":
                    student.sortStudent(students);
                    break;
                case "7":
                    student.showAllStudent(students);
                    break;
                case "0":
                    System.exit(0);
                default:
                    break;
            }
        }
    }
}
  1. Student.java
package com.cunyu;
import java.util.ArrayList;
import java.util.Scanner;
/**
 * @author : cunyu
 * @version : 1.0
 * @className : Student
 * @date : 2021/4/4 23:31
 * @description : 学生类
 */
public class Student {
    public static Scanner scanner = new Scanner(System.in);
    //    班级
    private String grade;
    //    学号
    private long id;
    //    姓名
    private String name;
    //    高数
    private float math;
    //    英语
    private float english;
    //    体育
    private float sport;
    //    Java
    private float java;
    //    C++
    private float cPlusPlus;
    //    政治
    private float polity;
    //    算法
    private float algorithm;
    //    平均分
    private double average;
    public Student() {
    }
    public Student(String grade, long id, String name, float math, float english, float sport, float java, float cPlusPlus, float polity, float algorithm, double average) {
        this.grade = grade;
        this.id = id;
        this.name = name;
        this.math = math;
        this.english = english;
        this.sport = sport;
        this.java = java;
        this.cPlusPlus = cPlusPlus;
        this.polity = polity;
        this.algorithm = algorithm;
        this.average = average;
    }
    public String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getMath() {
        return math;
    }
    public void setMath(float math) {
        this.math = math;
    }
    public float getEnglish() {
        return english;
    }
    public void setEnglish(float english) {
        this.english = english;
    }
    public float getSport() {
        return sport;
    }
    public void setSport(float sport) {
        this.sport = sport;
    }
    public float getJava() {
        return java;
    }
    public void setJava(float java) {
        this.java = java;
    }
    public float getcPlusPlus() {
        return cPlusPlus;
    }
    public void setcPlusPlus(float cPlusPlus) {
        this.cPlusPlus = cPlusPlus;
    }
    public float getPolity() {
        return polity;
    }
    public void setPolity(float polity) {
        this.polity = polity;
    }
    public float getAlgorithm() {
        return algorithm;
    }
    public void setAlgorithm(float algorithm) {
        this.algorithm = algorithm;
    }
    public double getAvg(Student student) {
        return (student.getAlgorithm() + student.getcPlusPlus() + student.getEnglish() + student.getSport() + student.getJava() + student.getPolity() + student.getMath()) / 7;
    }
    public void setAverage(double average) {
        this.average = average;
    }
    /**
     * @param students 学生对象列表
     * @return
     * @description 录入学生信息
     * @date 2021/4/5 9:14
     * @author cunyu1943
     * @version 1.0
     */
    public void addScore(ArrayList<Student> students) {
        System.out.println("----------录入学生数据----------");
        System.out.println("请依次输入如下数据:");
        long id;
        while (true) {
            System.out.println("学号");
            id = scanner.nextInt();
            if (isValid(students, id)) {
                System.out.println("学号重复,请重新输入");
            } else {
                break;
            }
        }
        System.out.println("年级");
        String grade = scanner.next();
        System.out.println("姓名");
        String name = scanner.next();
        System.out.println("数学");
        float math = scanner.nextFloat();
        System.out.println("英语");
        float english = scanner.nextFloat();
        System.out.println("体育");
        float sport = scanner.nextFloat();
        System.out.println("Java");
        float java = scanner.nextFloat();
        System.out.println("C++");
        float cPlusPlus = scanner.nextFloat();
        System.out.println("政治");
        float polity = scanner.nextFloat();
        System.out.println("算法");
        float algorithm = scanner.nextFloat();
        //        创建对象,并设置属性,然后将其加入学生对象集合
        Student student = new Student();
        student.setId(id);
        student.setGrade(grade);
        student.setName(name);
        student.setMath(math);
        student.setAlgorithm(algorithm);
        student.setEnglish(english);
        student.setcPlusPlus(cPlusPlus);
        student.setJava(java);
        student.setSport(sport);
        student.setPolity(polity);
        //        获取平均分
        double avg = getAvg(student);
        student.setAverage(avg);
        //        添加到集合
        students.add(student);
        //        提示信息
        System.out.println("添加成功");
    }
    /**
     * @param students 学生对象集合
     * @param id       学号
     * @return true,学号重复;false 学号可用
     * @description 判断学号是否可用
     * @date 2021/4/5 9:19
     * @author cunyu1943
     * @version 1.0
     */
    public boolean isValid(ArrayList<Student> students, long id) {
        for (Student student : students) {
            if (student.getId() == id) {
                return true;
            }
        }
        return false;
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 显示简单统计数据
     * @date 2021/4/5 10:08
     * @author cunyu1943
     * @version 1.0
     */
    public void showAvg(ArrayList<Student> students) {
        System.out.println("----------输出学生统计数据----------");
        if (students.size() == 0) {
            System.out.println("当前无数据,请先添加数据!");
        } else {
            System.out.println("班级\t\t学号\t\t姓名\t\t平均分");
            System.out.println("---------------------------------");
            for (Student student : students) {
                System.out.format("%s\t\t%d\t\t%s\t\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getAvg(student));
            }
        }
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 查找对应学号学生的成绩信息
     * @date 2021/4/5 12:59
     * @author cunyu1943
     * @version 1.0
     */
    public void lookupStudent(ArrayList<Student> students) {
        System.out.println("----------查找学生成绩----------");
        if (students.size() == 0) {
            System.out.println("当前无数据,请添加后重试");
        } else {
            System.out.println("请输入要查找学生的学号:");
            long id = scanner.nextLong();
            int flag = -1;
            Student student = new Student();
            //        查找对应学号,找到就退出
            for (int i = 0; i < students.size(); i++) {
                student = students.get(i);
                if (student.getId() == id) {
                    flag = i;
                    break;
                }
            }
            if (flag == -1) {
                System.out.println("未找到对应学号的学生,请确认后重新输入!");
            } else {
                System.out.println("对应学号的学生成绩如下:");
                System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
                System.out.format("%s\t%d\t\t%s\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
                System.out.println("查找信息成功!");
            }
        }
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 修改对应学号学生的信息
     * @date 2021/4/5 12:59
     * @author cunyu1943
     * @version 1.0
     */
    public void modifyStudent(ArrayList<Student> students) {
        System.out.println("----------修改学生成绩----------");
        if (students.isEmpty()) {
            System.out.println("当前无数据,请添加后重试");
        } else {
            System.out.println("请输入要修改学生的学号:");
            long id = scanner.nextLong();
            for (Student student : students) {
                if (id == student.getId()) {
                    System.out.println("请重新输入该学生的成绩");
                    System.out.println("数学");
                    float math = scanner.nextFloat();
                    System.out.println("英语");
                    float english = scanner.nextFloat();
                    System.out.println("体育");
                    float sport = scanner.nextFloat();
                    System.out.println("Java");
                    float java = scanner.nextFloat();
                    System.out.println("C++");
                    float cPlusPlus = scanner.nextFloat();
                    System.out.println("政治");
                    float polity = scanner.nextFloat();
                    System.out.println("算法");
                    float algorithm = scanner.nextFloat();
                    student.setMath(math);
                    student.setAlgorithm(algorithm);
                    student.setEnglish(english);
                    student.setcPlusPlus(cPlusPlus);
                    student.setJava(java);
                    student.setSport(sport);
                    student.setPolity(polity);
                    //                获取平均分
                    double avg = getAvg(student);
                    student.setAverage(avg);
                    System.out.println("修改成功!");
                } else {
                    System.out.println("未找到对应学号的学生,请确认后重新输入!");
                }
                break;
            }
        }
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 删除学生成绩
     * @date 2021/4/5 14:28
     * @author cunyu1943
     * @version 1.0
     */
    public void deleteStudent(ArrayList<Student> students) {
        System.out.println("----------删除学生成绩----------");
        if (students.isEmpty()) {
            System.out.println("当前无数据,请添加后重试");
        } else {
            System.out.println("输入要删除学生成绩的学号");
            long id = scanner.nextLong();
            int index = -1;
            for (int i = 0; i < students.size(); i++) {
                Student student = students.get(i);
                if (student.getId() == id) {
                    index = i;
                    break;
                }
            }
            if (index == -1) {
                System.out.println("未找到对应学号学生信息,请确认后再删除!");
            } else {
                students.remove(index);
                System.out.println("----------删除成功----------");
            }
        }
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 显示所有学生成绩
     * @date 2021/4/5 14:30
     * @author cunyu1943
     * @version 1.0
     */
    public void showAllStudent(ArrayList<Student> students) {
        if (students.isEmpty()) {
            System.out.println("当前无数据,请先添加数据");
        } else {
            System.out.println("----------所有学生成绩如下----------");
            System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
            for (Student student : students) {
                System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
            }
        }
    }
    /**
     * @param students 学生对象集合
     * @return
     * @description 按照平均分排序
     * @date 2021/4/5 14:29
     * @author cunyu1943
     * @version 1.0
     */
    public void sortStudent(ArrayList<Student> students) {
        if (students.isEmpty()) {
            System.out.println("当前无数据,请添加后重试");
        } else {
            for (int i = 0; i < students.size() - 1; i++) {
                if (students.get(i).getAvg(students.get(i)) < students.get(i + 1).getAvg(students.get(i + 1))) {
                    Student tmp = students.get(i);
                    students.set(i, students.get(i + 1));
                    students.set(i + 1, tmp);
                }
            }
            System.out.println("排序后的学生成绩");
            System.out.println("班级\t\t学号\t\t姓名\t\t数学\t\t英语\t\t体育\t\tJava\t\tC++\t\t政治\t\t算法\t\t平均分");
            for (Student student : students) {
                System.out.format("%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", student.getGrade(), student.getId(), student.getName(), student.getMath(), student.getEnglish(), student.getSport(), student.getJava(), student.getcPlusPlus(), student.getPolity(), student.getAlgorithm(), student.getAvg(student));
            }
        }
    }
}

总结

虽然功能比较简陋,但还是需要一定时间来完成的。此外,本设计只是针对一次运行过程,一旦程序终止,录入的数据就无法保存了,这一点需要注意。后续考虑加入文件写入或者数据库的方式来实现该课程设计,以保存我们所录入的数据。

目录
相关文章
|
10天前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
10天前
|
安全 Cloud Native Java
Java 模块化系统(JPMS)技术详解与实践指南
本文档全面介绍 Java 平台模块系统(JPMS)的核心概念、架构设计和实践应用。作为 Java 9 引入的最重要特性之一,JPMS 为 Java 应用程序提供了强大的模块化支持,解决了长期存在的 JAR 地狱问题,并改善了应用的安全性和可维护性。本文将深入探讨模块声明、模块路径、访问控制、服务绑定等核心机制,帮助开发者构建更加健壮和可维护的 Java 应用。
72 0
|
16天前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
106 1
|
1月前
|
Java 数据库 前端开发
分享44个java系统,总有一款适合您
分享44个微信小程序,总有一款适合您
37 0
|
1月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
156 7
|
1月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
181 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
2月前
|
存储 Java 数据库连接
java 初学者必看的系统知识结构图详解
本文详解Java知识结构图,涵盖Java语言基础、JVM原理、集合框架、并发编程、网络通信及主流框架(如Spring Boot、MyBatis),并结合学生信息管理系统实例,帮助初学者构建完整知识体系,提升实战开发能力。
90 0
|
2月前
|
存储 Java 关系型数据库
Java Swing 开发的五星级酒店客房预订与管理系统源码
本文介绍了基于Java Swing的酒店管理系统开发方案。系统采用Java Swing构建GUI界面,结合MySQL数据库,实现预订管理、前台服务、客房管理、客户关系维护等功能模块。文章详细展示了登录界面、开房操作等核心功能的代码实现,包括数据验证和业务逻辑处理。该系统具有跨平台性,能有效提升酒店运营效率,为开发者提供GUI设计和数据库开发的实践案例。技术方案涵盖IntelliJ IDEA开发环境、Jform Designer插件辅助设计等工具链,适合中小型酒店管理需求。
139 0
|
3月前
|
NoSQL Java Shell
2025服务端java搭建篇:蜻蜓I即时通讯系统私有化部署深度指南-优雅草卓伊凡|麻子|贝贝
2025服务端java搭建篇:蜻蜓I即时通讯系统私有化部署深度指南-优雅草卓伊凡|麻子|贝贝
168 8
2025服务端java搭建篇:蜻蜓I即时通讯系统私有化部署深度指南-优雅草卓伊凡|麻子|贝贝
|
3月前
|
Java 调度 流计算
基于Java 17 + Spring Boot 3.2 + Flink 1.18的智慧实验室管理系统核心代码
这是一套基于Java 17、Spring Boot 3.2和Flink 1.18开发的智慧实验室管理系统核心代码。系统涵盖多协议设备接入(支持OPC UA、MQTT等12种工业协议)、实时异常检测(Flink流处理引擎实现设备状态监控)、强化学习调度(Q-Learning算法优化资源分配)、三维可视化(JavaFX与WebGL渲染实验室空间)、微服务架构(Spring Cloud构建分布式体系)及数据湖建设(Spark构建实验室数据仓库)。实际应用中,该系统显著提升了设备调度效率(响应时间从46分钟降至9秒)、设备利用率(从41%提升至89%),并大幅减少实验准备时间和维护成本。
255 0