成绩(score)

分析问题

同学们,大家好!今天我们来解决一个关于计算成绩的问题。牛牛学习了 C++ 入门课程,他的总成绩由三部分组成:

  • 作业成绩(用 A 表示)
  • 小测成绩(用 B 表示)
  • 期末考试成绩(用 C 表示

总成绩的计算规则是:

  • 作业成绩占总成绩的 20%(也就是作业成绩的 20% 计入总分)
  • 小测成绩占总成绩的 30%(小测成绩的 30% 计入总分)
  • 期末考试成绩占总成绩的 50%(期末成绩的 50% 计入总分)

我们需要写一个程序,输入 A、B、C 三个数,输出总成绩(也是一个整数)。

举个例子:

  • 如果作业成绩是 100 分,小测成绩是 100 分,期末成绩是 80 分:
  • 作业部分:100 × 20% = 100 × 0.2 = 20 分
  • 小测部分:100 × 30% = 100 × 0.3 = 30 分
  • 期末部分:80 × 50% = 80 × 0.5 = 40 分
  • 总成绩 = 20 + 30 + 40 = 90 分(输出 90)

另一个例子:

  • 如果作业成绩是 60 分,小测成绩是 90 分,期末成绩是 80 分:
  • 作业部分:60 × 20% = 12 分
  • 小测部分:90 × 30% = 27 分
  • 期末部分:80 × 50% = 40 分
  • 总成绩 = 12 + 27 + 40 = 79 分(输出 79)

建立模型(给五年级学生)

我们可以把总成绩想象成一个“加权平均”的计算。每个部分都有一个“权重”,表示它的重要性:

  • 作业的权重是 20(因为 20%)
  • 小测的权重是 30(因为 30%)
  • 期末的权重是 50(因为 50%)

总权重是 20 + 30 + 50 = 100。

计算总成绩的步骤很简单:

  1. 把每部分成绩乘以它的权重:A × 20、B × 30、C × 50。
  2. 把三个乘积加起来:A×20 + B×30 + C×50。
  3. 最后除以总权重 100:(A×20 + B×30 + C×50) ÷ 100。

因为输入成绩都是 10 的倍数(比如 10、20、30……),所以计算出的总成绩一定是整数,没有小数。这样,我们就可以用整数运算来解决问题,不需要担心小数。

模型总结公式:
总成绩 = (A × 20 + B × 30 + C × 50) ÷ 100

编写 C++ 程序

根据上面的模型,我们可以写一个简单的 C++ 程序。程序会读取三个整数(A、B、C),然后用公式计算总成绩,最后输出整数结果。

#include <bits/stdc++.h>
using namespace std;

int main() {
    // 定义三个变量,用于存储作业成绩(A)、小测成绩(B)、期末成绩(C)
    int A, B, C;
    // 从输入读取三个整数
    cin >> A >> B >> C;
    // 计算总成绩:(A*20 + B*30 + C*50) / 100
    int total = (A * 20 + B * 30 + C * 50) / 100;
    // 输出总成绩
    cout << total << endl;
    return 0;
}

保存 编译 运行