C/C++计算邮资
2019年9月 C/C++编程等级考试一级编程题
一、题目要求
1、编程实现
根据邮件的重量和用户是否选择加急计算邮费。
计算规则:
重量在1000克以内(包括1000克),基本费8元。
超过1000克的部分每500克加收超重费4元,不足500克部分按500克计算;
如果用户选择加急,多收5元。
2、输入输出
输入描述:
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。
如果字符是y,说明选择加急;如果字符是n,说明不加急。
**输出描述:**输出一行,包含一个整数,表示邮费。
输入样例:
1200 y
输出样例:
17
二、解题思路
1、案例分析
- 从给定题目的初步分析可以看出,首先需要从键盘获取一个整数和字母
- 可以使用int和char类型进行变量的声明,用来保存键盘输入的数据
- 同时使用int类型声明一个费用的变量,用来保存最后的邮资费用
- 然后可以通过if分支条件语句进行判断,如果重量在1000及以内费用就是8,否则费用为8加上超出每500氪乘以4,不足按4元(可以使用cmath里面的ceil函数)
- 接着再判断一下是否需要加急,如果是费用在加5即可
- 最后利用cout语句将最终的费用输出即可
三、程序代码
cpp
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int weight,cost;
char c;
cin>>weight>>c;
if(weight<=1000)
{
cost = 8;
}
else
{
cost = 8 + ceil((weight-1000)/500.0)*4;
}
if(c == 'y')
{
cost += 5;
}
cout<<cost;
return 0;
}
四、程序说明
- 根据题目要求声明2个整形int变量和一个字符char变量
- 然后利用输入流对象cin,从键盘读取三个变量的值
- 按照邮资的资费规则利用if分支语句进行计算,同时利用ceil函数进行超重部分邮资的计算
- 最后利用输出流对象cout,输出最后邮资
五、运行结果
cpp
1200 y
17
六、考点分析
难度级别:容易,这题相对而言还是比较简单的,具体主要考查如下:
- 变量的声明和使用
- 输入流对象cin的使用,与流提取运算符 >>结合使用从键盘读取想要的数据
- 在计算邮资超重的时候将500写成500.0,这里之所以需要用500.0,是因为在c++中除法运算(/)如果两边都是整数返回的就是整数部分,这样计算的结果会有出入,所以需要将其中一个数转化成小数才可以
- ceil函数:是返回大于或者等于指定表达式的最小整数,通俗一点就是向上取整
- 输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
- 充分掌握变量定义和使用、ceil函数的使用、if分支语句及输入输出的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!