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+"人");
    }

运行截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 41
    点赞
  • 424
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 55
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芋头乖乖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值