C++旅行预算规划 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
C++旅行预算规划
全国信息素养大赛 C++复赛/决赛模拟训练题
博主推荐
- 所有考级比赛学习相关资料合集【推荐收藏】
1、C++专栏
- 电子学会C++一级历年真题解析
- 电子学会C++二级历年真题解析
- 蓝桥杯C++选拔赛真题解析
- 信息素养大赛C++算法编程挑战赛
2、Python专栏
- 蓝桥杯python选拔赛真题详解
- 蓝桥杯python省赛真题详解
- 蓝桥杯python国赛真题详解
- 信息素养大赛python编程挑战赛
- python等级一级真题解析【电子学会】
- python等级二级真题解析【电子学会】
- python等级三级真题解析【电子学会】
一、题目要求
1、编程实现
小李正在计划一次长途旅行,他需要一个程序来帮助他规划旅行预算。这个程序需要记录旅行中的各项预计费用,并能够根据实时的支出更新预算。编写一个程序,输入旅行的各项预算和实时支出。程序应能够计算剩余预算,并在超出预算时提醒用户。
2、输入输出
输入描述:输入一个正整数N,表示预算项目的数量。接下来N行,每行输入一个字符串和一个浮点数,分别代表预算项目和预算金额,输入一个特殊的命令行"SPENT",随后输入一个浮点数,表示实时支出的金额。
输出描述:输出当前的剩余预算。如果支出超出预算,输出一条警告消息。
输入样例:
5
交通 1000
住宿 1500
餐饮 800
门票 500
购物 700
SPENT 350
SPENT 1000
SPENT 2000
SPENT 1500
输出样例:
剩余预算: 4150
剩余预算: 3150
...
二、算法分析
- 从给定题目的初步分析可以看出,同样是需要对多组输入的数据进行处理
- 可以先对输入的项目和预算进行汇总统计,接着就不断检测输入的命令是不是SPENT
- 如果是就继续根据后面输入的支出金额计算出还剩下的预算,如果预算小于0就需要进行预警提示,提示信息可自行定义,意思大致为:“超出预算”即可;否则就输出当前剩余的预算
- 如果输入的命令不是SPENT,也需要进行提示
三、程序编写
#include<iostream>
#include<sstream>
using namespace std;
struct Tour{string name;float cost;
};int main()
{int n;cin >> n;Tour tour[n];float res = 0.0;for(int i = 0;i < n;i++){string s;float f;cin >> s >> f;tour[i].name = s;tour[i].cost = f;res += f;}string cmd;while(cin >> cmd){if(cmd == "SPENT"){float money;cin >> money;res -= money;if(res < 0){cout << "超出预算了哦!" << endl;res = 0;}else{cout << "剩余预算:" << res << endl;} }else{cout << "输入的命令有误,请输入SPENT命令!" << res << endl;}}return 0;
}
本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102
四、运行结果
5
交通 1000
住宿 1500
餐饮 800
门票 500
购物 700
SPENT 350
剩余预算:4150
SPENT 1000
剩余预算:3150
SPENT 2000
剩余预算:1150
SPENT 1500
超出预算了哦!
五、考点分析
难度级别:中等,这题相对而言在于循环处理,具体主要考察如下:
- 分析题目 找到解题思路
- 充分掌握数组的定义和使用
- 学会结构体的定义和使用,以及结构体数组的使用
- 学会输入流对象cin的使用,从键盘读入相应的数据
- 学会for循环的使用,在确定循环次数的时候推荐使用学会
- 学会while循环的使用,在不确定循环次数的时候推荐使用
- 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
- 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
- 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
- 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
- 充分掌握变量定义和使用、分支语句、循环语句和枚举算法知识的使用及输入输出的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!