JAVA项目-学生成绩管理系统

要求:

编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、其中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能:
(1)列出某个学生的所有成绩;
(2)列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分;
(3)分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。

分析:

(1)存放学生信息的类
属性:姓名、学号、年龄、所学课程集合
操作:设置课程的方法、其他属性的设置以及获取方法、获取自身信息的字符串表示、构造方法(对所有属性的初始化)
(2)代表课程的类
属性:课程名、平时成绩、期中成绩、实习成绩、期末成绩、总评成绩
操作:构造方法(对所有属性初始化)、所有属性的get/set方法、toString方法(返回代表自身信息的字符串方法)
(3)具体功能实现类
属性:学生集合
操作:根据名字搜索学生信息、列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分、分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。
(4)测试类
功能:创建系统菜单
1——创建学生集合(学生相关信息可以从键盘录入也可以直接初始化)
2——查询学生信息
3——列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分
4——分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等
根据用户输入的选项,调用功能类相关操作。

部分代码展示:
(由于代码文件数量较多,此处仅给出部分源码,完整源码可通过下方链接下载)
学生成绩管理系统源码链接
学生类Student

import java.util.List;

public class Student {
    private String stuName;
    private String stuNo;
    private int stuAge;
    List<Course> courses;

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public int getStuAge() {
        return stuAge;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public List<Course> getCourses() {
        return courses;
    }

    public void setCourses(List<Course> courses) {
        this.courses = courses;
    }

    public Student(String stuName, String stuNo, int stuAge, List<Course> courses) {
        this.stuName = stuName;
        this.stuNo = stuNo;
        this.stuAge = stuAge;
        this.courses = courses;
    }

    public Student() {
    }

    @Override
    public String toString() {
        return "Student[" +
                "stuName='" + stuName + '\'' +
                ", stuNo='" + stuNo + '\'' +
                ", stuAge=" + stuAge +
                ", courses=" + courses +
                ']';
    }
}

课程类Course

public class Course {
    private String courseName;//课程名称
    private double dailyGrade;//平时成绩
    private double midGrade;//期中成绩
    private double doGrade;//实习成绩
    private double endGrade;//期末成绩
    private double sumGrade;//总评成绩

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public double getDailyGrade() {
        return dailyGrade;
    }

    public void setDailyGrade(double dailyGrade) {
        this.dailyGrade = dailyGrade;
    }

    public double getMidGrade() {
        return midGrade;
    }

    public void setMidGrade(double midGrade) {
        this.midGrade = midGrade;
    }

    public double getDoGrade() {
        return doGrade;
    }

    public void setDoGrade(double doGrade) {
        this.doGrade = doGrade;
    }

    public double getEndGrade() {
        return endGrade;
    }

    public void setEndGrade(double endGrade) {
        this.endGrade = endGrade;
    }

    public double getSumGrade() {
        return sumGrade;
    }

    public void setSumGrade(double sumGrade) {
        this.sumGrade = sumGrade;
    }

    public Course(String courseName, double dailyGrade, double midGrade, double doGrade, double endGrade, double sumGrade) {
        this.courseName = courseName;
        this.dailyGrade = dailyGrade;
        this.midGrade = midGrade;
        this.doGrade = doGrade;
        this.endGrade = endGrade;
        this.sumGrade = sumGrade;
    }

    @Override
    public String toString() {
        return "Course[" +
                "courseName='" + courseName + '\'' +
                ", dailyGrade=" + dailyGrade +
                ", midGrade=" + midGrade +
                ", doGrade=" + doGrade +
                ", endGrade=" + endGrade +
                ", sumGrade=" + sumGrade +
                ']';
    }
}

按名字查询学生

public void selectName(String name) {
        boolean temp = false;
        for (int i = 0; i < studentList.size(); i++) {
            if (name.equals(studentList.get(i).getStuName())){
                temp = true;
                System.out.println("姓名:"+studentList.get(i).getStuName()+",学号:"+studentList.get(i).getStuNo()+",年龄:"+studentList.get(i).getStuAge());
                System.out.println("该学生的成绩是:");
                for (int j = 0; j < studentList.get(i).getCourses().size(); j++) {
                    System.out.println(studentList.get(i).getCourses().get(j).toString());
                }
            }
        }
        if (!temp){
            System.out.println("很抱歉没有找到该学生信息!");
        }
    }

某门课程每个学生的总评成绩,及所有学生总评成绩的总评分

    public void selectCourse(String courseName) {
        boolean temp = false;
        double sumGrade = 0;
        for (int i = 0; i < studentList.size(); i++) {
            for (int j = 0; j < studentList.get(i).getCourses().size(); j++) {
                if (courseName.equals(studentList.get(i).getCourses().get(j).getCourseName())){
                    temp = true;
                    sumGrade += studentList.get(i).getCourses().get(j).getSumGrade();
                    System.out.println(studentList.get(i).getStuName()+"总评分是:"+studentList.get(i).getCourses().get(j).getSumGrade());
                }
            }
        }
        if(!temp) {
            System.out.println("很抱歉没有找到该课程信息!");
        }else {
            System.out.println("所有学生的总评分是:"+sumGrade);
        }

    }

分区段统计学生总评成绩的总评分

    public void selectCourseGrade(String course) {
        int excellent = 0;//优秀:90-100
        int fine = 0;//良好:70-89
        int qualified = 0;//合格:60-69
        int disqualification = 0;//不合格:0-59
        for (int i = 0; i < studentList.size(); i++) {
            for (int j = 0; j < studentList.get(i).getCourses().size(); j++) {
                if (studentList.get(i).getCourses().get(j).getSumGrade()>=90 ){
                    excellent++;
                }else if (studentList.get(i).getCourses().get(j).getSumGrade()>=70){
                    fine++;
                }else if (studentList.get(i).getCourses().get(j).getSumGrade()>=60){
                    qualified++;
                }else if (studentList.get(i).getCourses().get(j).getSumGrade()>=0){
                    disqualification++;
                }
            }
        }
        System.out.println("优秀:90-100分的有:"+excellent+"人");
        System.out.println("良好:70-89分的有:"+fine+"人");
        System.out.println("合格:60-69分的有:"+qualified+"人");
        System.out.println("不合格:0-59分的有:"+disqualification+"人");
    }

运行截图
JAVA项目-学生成绩管理系统_第1张图片
JAVA项目-学生成绩管理系统_第2张图片
JAVA项目-学生成绩管理系统_第3张图片
JAVA项目-学生成绩管理系统_第4张图片
JAVA项目-学生成绩管理系统_第5张图片

你可能感兴趣的:(java基础,java项目,java,intellij,idea)