
分析问题
同学们,大家好!今天我们来解决一个关于计算成绩的问题。牛牛学习了 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。
计算总成绩的步骤很简单:
- 把每部分成绩乘以它的权重:A × 20、B × 30、C × 50。
- 把三个乘积加起来:A×20 + B×30 + C×50。
- 最后除以总权重 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;
}