1.8.6 练习 本科生学平均分绩点GPA计算(堆数组的应用)

news2024/11/24 4:49:45

C++自学精简教程 目录(必读)

上大学要考试

我们读大学也要上课,上课也要考试的。

基本上每门课也都是满分100分。

虽然选择一个专业要上很多门课,每门课也都是100分,但是这些课程的“价值”却是不一样的。

有的课程是核心专业课:比如数学专业的《数学分析》;计算机专业的《数据结构》。

有的课程是专业选修课:比如数学专业的《泛函分析》;计算机专业的《C++语言程序设计》。

修学分

虽然不同的课都是100分,但是分量它们是不一样的。这个呢,就用学分来表示。

比如,《数学分析》是核心专业课3个学分。《泛函分析》呢,是专业选修课就只有2个学分。

也就是说,这两门课都考满分,一个得到3个学分,一个得到2个学分。

这样以来,国内大部分计算机专业都规定,你毕业之前只要积累修满120个学分就可以毕业了。

但是同样是修了2个学分,一个学生靠了99,另一个学生考了60分。这是明显的不同。

同样是毕业,怎么样衡量谁更厉害呢?那就需要另外的指标:学分绩点

这种指标建立就同时考虑的考试成绩和课程的学分。

从下面的介绍中可以看出,这种学分绩点指标设计的是非常合理的。其本质就是加权平均数

学分绩点

既然每门课都是100分,而不同课程的100分的分量又不一样,那怎么算这个学生学到了多少价值呢?用绩点取代成绩。

学分绩点就是把这门课的考试成绩和这门课的学分综合起来考虑计算得到的一个数值。

简单的可以像下面这样计算:

课程绩点 = 课程成绩 × 课程学分

例如,《数学分析》这门课,3个学分,考试成绩为80分,那么学生得到的课程学分绩点可以像下面这样计算:

《数学分析》绩点= 80 × 3 = 240。

但是这样计算的话,很多们课加起来数值太大,看起来费劲,不方便。

为了让绩点数值看起来不是那么大,目前国内大部分高校通用的计算方法是:

课程绩点 = 课程成绩 / 10 - 5

可以看出来来59分,以及59分以下,课程绩点都是0。也就是不及格就啥也得不到。

类似的,3个学分的《数学分析》考88分,那么:

《数学分析》课程绩点 = 88 / 10 - 5 = 3.8

下面再把学分也考虑进来:

课程学分绩点 = 课程学分 × 课程绩点

所以,

《数学分析》的学分绩点 = 3 × 3.8 = 11.4

那么,我们休了很多门课,怎么样用一个数值来综合衡量我们的所有学分绩点呢?那就是加权平均。

平均学分绩点(Grade Point Average,即GPA)

GAP =(课程学分1*课程绩点1+课程学分2*课程绩点2+...+课程学分n*课程绩点)/(课程学分1+课程学分2+...+课程学分n)

GPA计算

题目:已知学生李白的各门课的成绩,以及各门课对应的学分,求张三的平均学分绩点GPA。

我们把,各门课的成绩放在数组score_list里,各门课的学分放在数组 credit_hour_list里。

李白总共修了10门课。求李白的平均学分绩点GPA。

前驱知识点: for循环语句 和堆数组 heap array

代码如下

#include <iostream>
using namespace std;

int main()
{
    //10门课
    int course_number = 10;
    //10门课的考试分数
    int* score_list = new int[course_number]{ 88, 95, 84, 89, 92, 79, 80, 96, 83, 80 };

    //10门课的学分
    int* credit_hour_list = new int[course_number]{ 3 , 4 , 1 , 3 , 3 , 2 , 2 , 4 , 3 ,  3 };
    
    //累加课程学分绩点=课程学分绩点1+课程学分绩点2+...+课程学分绩点n
    double total_credit_hour_point = 0;

    for (int i = 0; i < course_number; i++)
    {
        //课程绩点=课程成绩/10 -5
        double grade_point = score_list[i] / 10.0 - 5;//注意这里整数通过除以浮点数结果转换成了浮点数
        //课程学分绩点
        double credit_hour_point = credit_hour_list[i] * grade_point;
        //累加课程学分绩点
        //(1) your code
        
    }

    //平均学分绩点
    //各门课学分之和 sum_credit_hour 
    int sum_credit_hour = 0;
    for (int i = 0; i < course_number; i++)
    {
        //(2) your code  //累加
        
    }

    //平均学分绩点= 累加课程学分绩点/各门课学分之和
    double GPA = total_credit_hour_point / sum_credit_hour;

    cout << "李白的GPA = " << GPA << endl;

    //释放动态内存
    delete[] score_list;
    delete[] credit_hour_list;

    return 0;
}

正确结果为:

答案在此

C++自学精简教程 全部答案

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

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

相关文章

【python爬虫案例】用python爬豆瓣电影TOP250排行榜!

文章目录 一、爬虫对象-豆瓣电影TOP250二、python爬虫代码讲解三、同步视频四、获取完整源码 一、爬虫对象-豆瓣电影TOP250 前几天&#xff0c;我分享了一个python爬虫案例&#xff0c;爬取豆瓣读书TOP250数据&#xff1a;【python爬虫案例】用python爬豆瓣读书TOP250排行榜&a…

图像缩放、翻转、拼接的介绍与使用

目录 &#xff08;1&#xff09;图像缩放&#xff1a;resize() &#xff08;2&#xff09;图像翻转&#xff1a; flip() &#xff08;3&#xff09;图像拼接&#xff1a;hconcat() 和vconcat() &#xff08;1&#xff09;图像缩放&#xff1a;resize() 使用 cv2.resize() 函…

Next.js基础语法

Next.js 目录结构 入口App组件&#xff08;_app.tsx&#xff09; _app.tsx是项目的入口组件&#xff0c;主要作用&#xff1a; 可以扩展自定义的布局&#xff08;Layout&#xff09;引入全局的样式文件引入Redux状态管理引入主题组件等等全局监听客户端路由的切换 ts.config…

1.7 完善自定位ShellCode

在之前的文章中&#xff0c;我们实现了一个正向的匿名管道ShellCode后门&#xff0c;为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能&#xff0c;此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用&#xff0c;接下来将实现通过PEB获取GetProcAddre…

手写RPC——数据序列化工具protobuf

手写RPC——数据序列化工具protobuf Protocol Buffers&#xff08;protobuf&#xff09;是一种用于结构化数据序列化的开源库和协议。下面是 protobuf 的一些优点和缺点&#xff1a; 优点&#xff1a; 高效的序列化和反序列化&#xff1a;protobuf 使用二进制编码&#xff0c…

QTableWidget实现鼠标悬停整行高亮显示

一、最终效果 二、 重写QTableWidget类 mytablewidget.h #ifndef MYTABLEWIDGET_H #define MYTABLEWIDGET_H#include <QTableWidget>class MyTableWidget : public QTableWidget { public:explicit MyTableWidget(QWidget* parent nullptr);protected:void leaveEve…

一页纸吃透PMP常考知识点!

我是胖圆~需要文档可留言 或者移步公众号【胖圆说PM】找我

根据身高重建队列【贪心算法】

根据身高重建队列 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返…

色温曲线坐标轴的选取:G/R、G/B还是R/G、B/G ?

海思色温曲线坐标 Mstar色温曲线坐标 高通色温曲线坐标 联咏色温曲线坐标 查看各家白平衡调试界面&#xff0c;比如海思、Mstart、高通等调试资料&#xff0c;白平衡模块都是以R/G B/G作为坐标系的两个坐标轴&#xff0c;也有方案是以G/R G/B作为坐标系的两个坐标轴。 以G/R G…

考生作弊行为分析算法

考生作弊行为分析系统利用pythonyolo系列网络模型算法框架&#xff0c;考生作弊行为分析算法利用图像处理和智能算法对考生的行为进行分析和识别&#xff0c;经过算法服务器的复杂计算和逻辑判断&#xff0c;算法将根据考生行为的特征和规律&#xff0c;判定是否存在作弊行为。…

Vue中如何为Echarts统计图设置数据

在前端界面接收后端数据后&#xff0c;将数据赋值给ECharts中的data时出现了&#xff0c;数据读取失败的问题&#xff08;可能是由于数据渲染的前后顺序问题&#xff09;。后通过如下方式进行了解决&#xff1a; 1、接下来将介绍UserController中的countUsers方法&#xff0c;…

为什么2G、3G、4G成功了,5G却?

你可能已经多年来一直听到关于闪电般的5G的炒作。虽然新的无线网络在美国仍然没有普及&#xff0c;但5G正在波士顿和西雅图到达拉斯和堪萨斯城等城市慢慢出现。随着连接速度的加快&#xff0c;用户的安全性和隐私保护将增加&#xff0c;因为无线行业试图改善3G和4G的防御。但是…

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(下)

温故知新 &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kubectl&#xff08;可直接跳转到安装kubeadm章节&#xff0c;直接全部安装了&#xff09;&#x1f4d5;下载kubectl安装包&#x1f4d5;执行kubectl安装&#x1f4d5;验证kubectl &#x1f4d7;安装kubead…

文件上传漏洞复现(CVE-2018-2894)

文章目录 搭建环境启动环境漏洞复现 前提条件&#xff1a; 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub 搭建环境 进入vulhb目录下的weblogic&#xff0c;复现CVE-2018-289…

修改linux中tomcat的端口

随便修改一个 以8055为例子 开放8081端口 firewall-cmd --permanent --add-port8081/tcp firewall-cmd --reload firewall-cmd --list-all

three.js(七):内置的二维几何体

二维几何体 PlaneGeometry 矩形平面CircleGeometry 圆形平面RingGeometry 圆环平面 PlaneGeometry 矩形平面 PlaneGeometry(width : Float, height : Float, widthSegments : Integer, heightSegments : Integer) width — 平面沿着X轴的宽度。默认值是1。height — 平面沿着Y…

从格灵深瞳中报稳定盈利,看AI公司的核心竞争力

2023年过半&#xff0c;人工智能产业话题不断。大模型和AIGC掀起热潮&#xff0c;让众多AI公司开始进入新一轮竞赛。但与此同时&#xff0c;不少AI公司依然处于亏损中&#xff0c;研发投入和商业产出难以实现正循环。如何形成健康的商业模式&#xff0c;仍是一大挑战。 AI公司…

【Linux操作系统】文件缓冲区

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️林 子       &#x1f6f0;️博客专栏&#xff1a;✈️ Linux       &#x1f6f0;️社区 :✈️ 进步学堂       &#x1f6f0…

设计模式--代理模式(Proxy Pattern)

一、什么是代理模式&#xff08;Proxy Pattern&#xff09; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理&#xff09;充当另一个对象&#xff08;真实对象&#xff09;的接口&#xff0c;以控制对该对象的…

DSP_TMS320F28377D_算法加速方法2_添加浮点运算快速补充库rts2800_fpu32_fast_supplement.lib

继上一篇博客DSP_TMS320F28377D_算法加速方法1_拷贝程序到RAM运行_江湖上都叫我秋博的博客-CSDN博客之后&#xff0c;本文讲第二种DSP算法加速的方法&#xff0c;该方法的加速效果很明显&#xff0c;但是加速范围仅限于32位浮点数下面这几种函数: 1 工程师的关注点 下面稍微解…