使用Java计算课程绩点、课程学分绩点、总绩点

news2025/4/7 17:02:21

1、定义实体类
实体类中包括属性表

名称释义
xuefen该课程学分
chengji该课程取得的成绩
xuefenjidian该课程取得的学分绩点
xuefen该课程取得的学分

其中有式子:
j i d i a n = ( c h e n g j i − 50 ) 10.0 jidian = \frac{(chengji-50)}{10.0} jidian=10.0(chengji50)
x u e f e n j i d i a n = x u e f e n ∗ ( c h e n g j i − 50 ) 10.0 xuefenjidian =\frac{ xuefen * (chengji-50)}{10.0} xuefenjidian=10.0xuefen(chengji50)

定义实体类代码如下:

public class Grade {
    private double xuefen;
    private double chengji;
    private double xuefenjidian;
    private double jidian;

    public double getXuefen() {
        return xuefen;
    }

    public void setXuefen(double xuefen) {
        this.xuefen = xuefen;
    }

    public double getChengji() {
        return chengji;
    }

    public void setChengji(int chengji) {
        this.chengji = chengji;
    }

    public double getJidian() {
        return (this.chengji - 50) / 10.0;
    }

    public double getXuefenjidian() {
        return this.xuefen * getJidian();
    }

    public void setJidian(double jidian) {
        this.jidian = jidian;
    }

    public void setXuefenji(double xuefenji) {
        this.xuefenjidian = xuefenji;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Grade{");
        sb.append("xuefen=").append(xuefen);
        sb.append(", chengji=").append(chengji);
        sb.append(", xuefenjidian=").append(xuefenjidian);
        sb.append(", jidian=").append(jidian);
        sb.append('}');
        return sb.toString();
    }
}

测试实体类:

public class Main {
    public static void main(String[] args) {
        Grade grade = new Grade();
        grade.setXuefen(1.0);
        grade.setChengji(95);
        grade.setXuefenji(grade.getXuefenjidian());
        grade.setJidian(grade.getJidian());
        System.out.println(grade);
    }
}

在这里插入图片描述
计算总学分绩点:

public class Main {
    public static void main(String[] args) {
        int i = 1;
        List<Grade> gradeList = new ArrayList<>();
        while (true) {
            System.out.printf("【科目%d】输入课程学分:", i);
            Scanner scanner1 = new Scanner(System.in);
            double xuefen = scanner1.nextDouble();
            System.out.printf("【科目%d】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):", i);
            Scanner scanner2 = new Scanner(System.in);
            double chengji = scanner2.nextDouble();
            Grade grade = new Grade();
            grade.setXuefen(xuefen);
            grade.setChengji(chengji);
            grade.setXuefenji(grade.getXuefenjidian());
            grade.setJidian(grade.getJidian());
            System.out.print("是否输入下一个科目?y or n 》 ");
            Scanner scanner3 = new Scanner(System.in);
            String letter = scanner3.nextLine();
            letter = letter.toLowerCase(Locale.ROOT);
            gradeList.add(grade);
            if ("n".equals(letter) || "no".equals(letter)) {
                break;
            }
            i++;
        }
        double sumXuefenjidian = gradeList.stream().mapToDouble(Grade::getXuefenjidian).sum();
        double sumXuefen = gradeList.stream().mapToDouble(Grade::getXuefen).sum();
        System.out.println("总绩点:" + sumXuefenjidian/sumXuefen);
    }
}

在这里插入图片描述
在这里插入图片描述

E:\Coding\java\env\jdk\run\Java\jdk1.8.0_291\bin\java.exe " app.Main
【科目1】输入课程学分:2
【科目1】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):97
是否输入下一个科目?y or n 》 
【科目2】输入课程学分:2
【科目2】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):75
是否输入下一个科目?y or n 》 
【科目3】输入课程学分:2
【科目3】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目4】输入课程学分:2
【科目4】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目5】输入课程学分:2
【科目5】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目6】输入课程学分:3
【科目6】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目7】输入课程学分:1
【科目7】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):93
是否输入下一个科目?y or n 》 
【科目8】输入课程学分:2
【科目8】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):79
是否输入下一个科目?y or n 》 
【科目9】输入课程学分:2
【科目9】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目10】输入课程学分:2
【科目10】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):84
是否输入下一个科目?y or n 》 
【科目11】输入课程学分:2
【科目11】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目12】输入课程学分:2
【科目12】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):94
是否输入下一个科目?y or n 》 
【科目13】输入课程学分:2
【科目13】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):90
是否输入下一个科目?y or n 》 
【科目14】输入课程学分:2
【科目14】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):81
是否输入下一个科目?y or n 》 n
总绩点:3.5214285714285714

Process finished with exit code 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Azure】解析 Microsoft Defender for Cloud:云安全的保护与管理

你在使用自己的电脑的时候&#xff0c;作为安全防护你可能直接装个杀毒软件&#xff0c;或者什么xx管家之类的&#xff0c;那么你是否有想过&#xff0c;如果我有一套云服务之后&#xff0c;我应该如何进行安全防护呢&#xff1f;本文带你了解在 Azure 云中的安全防护体系&…

同余最短路

同余最短路就是把每一个同余类当成一个结点&#xff0c;在同余类之间建边&#xff0c;然后跑最短路 答案统计的时候对每个同余类单独计算贡献 题意&#xff1a; 思路&#xff1a; 答案可以对模X的所有同余类计算贡献 设dis[i]为在模X意义下&#xff0c;Y和Z之后%X余数为i的…

数据库练习

数据库练习 建立三张表&#xff0c;以及表中的联系 由于学生表中存在外键&#xff0c;所以我们需要先创建课程表和班级表 课程表 mysql> create table course(-> course_id int primary key auto_increment comment 课程编号,-> course_name varchar(10) not null…

【C++初阶】C++入门——引用

文章目录 一、引用的概念二、共用同一块空间验证三、引用的特性3.1 引用在定义时必须初始化3.2 一个变量可以有多个引用3.3 引用不能改变 四、引用的使用场景4.1 做参数4.2 做返回值 五、传值、传引用效率比较六、常引用6.1 权限放大——不被允许6.2 权限平移6.3 权限缩小6.4 赋…

MYSQL索引为啥要用B+树储存数据呢

首先我们来分析一下需求 MYSQL索引需要怎样的数据结构 为了防止数据因为特(duan)殊(kai)情(dian)况(yuan)丢失,我们的数据肯定是要持久化的,也就是保存在硬件(磁盘)里面,而我们知道 磁盘相对于内存来讲 速度要慢了几万倍 甚至即使万倍 所以我们必须减少磁盘的I/O操作 再有呢…

电子时钟制作(瑞萨RA)(10)----电容触摸配置

概述 这篇文档将创建一个使用 e2 studio 集成 QE 的电容式触摸应用示例。 硬件准备 首先需要准备一个开发板&#xff0c;这里我准备的是芯片型号R7FA2E1A72DFL的开发板&#xff1a; 视频教程 https://www.bilibili.com/video/BV14h4y1E7py/ 电子时钟制作(10)----电容触摸配…

python接口自动化(二十三)--unittest断言——上(详解)

简介 在测试用例中&#xff0c;执行完测试用例后&#xff0c;最后一步是判断测试结果是 pass 还是 fail&#xff0c;自动化测试脚本里面一般把这种生成测试结果的方法称为断言&#xff08;assert&#xff09;。用 unittest 组件测试用例的时候&#xff0c;断言的方法还是很多的…

MyBatis查询数据库(1)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 经过前⾯的学习咱们 Spring 系列的基本操作已经实现的差不多了&#xff0…

DEJA_VU3D - Cesium功能集 之 111-风场(局部)效果

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码…

LeetCode-每日一题【2095.删除链表的中间节点】

题目 给你一个链表的头节点 head 。删除 链表的 中间节点 &#xff0c;并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点&#xff08;下标从 0 开始&#xff09;&#xff0c;其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、…

event.stopPropagation()和event.preventDefault()之间的联系

目录 阻止事件冒泡&#xff0c;阻止默认事件&#xff0c;event.stopPropagation()和event.preventDefault()&#xff0c;return false的区别 今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法&#xff0c;不让事件向documen上…

数据集托管平台汇总比较

目录 引言数据集托管平台需要满足的条件&#xff1a;☆☆☆ Hugging Face Dataset☆☆ 魔搭平台☆ OpenDataLab总结 引言 最近考虑构建一些测试数据集评测基准&#xff0c;用于评测算法在数据集上的效果。不同于论文中用到的公开数据集&#xff0c;这里构建的数据集更有针对性…

电影天堂.

提取 最新综艺资源推荐 的电影名字和下载链接 """ 1、先从首页网址定位 2、在定位的的位置找到子页面的链接地址 3、请求子页面的链接地址&#xff0c;拿到我们想要的下载地址 """"""1、定位到最新综艺资源推荐""&quo…

惊!ChatGPT处理文章仅需一秒钟,提取大纲、重写不在话下!

前言 在上篇文章中&#xff0c;我们实现了批量抓取到微信公众号文章的链接地址&#xff0c;那么这篇文章将继续为大家介绍&#xff0c;如何根据链接爬取到文章内容&#xff0c;并且利用chantGPT对文章进行处理。 爬取文章内容 我们已经有了很多文章的链接&#xff0c;这些链…

2023全新UI 哈希玛特HashMart全开源盲盒系统源码下载

ashMart&#xff08;哈希玛特&#xff09;是首款开源的面向生产的高性能、易开发的盲盒系统。它包含&#xff1a;首页看板、商品管理、订单管理、盲盒管理、系统管理、会员管理、权限管理、记录管理&#xff0c;并且拥有完善的搭建使用手册和接口文档。是帮助您快速落地盲盒商城…

tarjan算法(相关概念、Tarjan求最大强连通分量、割点、求桥、缩点)

什么是连通分量 无向图 G 的最大连通子图称为 G 的连通分量。 注&#xff1a;这里的最大连通子图的含义为&#xff1a;此图为 G 的连通子图&#xff0c;将 G 的任意一个点加到盖子图中之后&#xff0c;此子图将不再连通。 比如这一张图中&#xff0c;很显然&#xff0c;我用…

如何识别网站是否有WAF

使用工具识别&#xff1a;wafw00f https://github.com/EnableSecurity/wafw00f 前提&#xff1a;本地配置好python环境安装&#xff1a;在此目录下创建CMD窗口&#xff0c;输入 python setup.py install 。安装成功后&#xff0c;显示版本信息. 使用&#xff1a;进入wafw00…

QSystemTrayIcon简单使用

效果&#xff1a; 关键程序&#xff1a; trayIcon new QSystemTrayIcon(this);trayIcon->setIcon(QIcon(":/images/开心果.png"));trayIcon->show();trayIcon->showMessage(ui->title->text(),ui->msg->toPlainText(),QIcon(":/images/睡眠…

路径规划算法:基于堆优化优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于堆优化优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于堆优化优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

雅思考试报名条件及时间是什么时候?

雅思考试&#xff08;IELTS&#xff09;是国际英语语言测试系统&#xff0c;是著名的国际性英语标准化水平测试之一。想要出国留学或者就业都是需要有语言成绩的&#xff0c;其中雅思考试也是大家参加的比较多的语言考试之一&#xff0c;那么雅思考试报名条件及时间是什么时候呢…