当前位置: 首页 > news >正文

C++旅行预算规划 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析

C++旅行预算规划

全国信息素养大赛 C++复赛/决赛模拟训练题

博主推荐

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、C++专栏 

  1. 电子学会C++一级历年真题解析
  2. 电子学会C++二级历年真题解析
  3. 蓝桥杯C++选拔赛真题解析
  4. 信息素养大赛C++算法编程挑战赛

 2、Python专栏

  1. 蓝桥杯python选拔赛真题详解
  2. 蓝桥杯python省赛真题详解
  3. 蓝桥杯python国赛真题详解
  4. 信息素养大赛python编程挑战赛
  5. python等级一级真题解析【电子学会】
  6. python等级二级真题解析【电子学会】
  7. python等级三级真题解析【电子学会】

一、题目要求

1、编程实现

小李正在计划一次长途旅行,他需要一个程序来帮助他规划旅行预算。这个程序需要记录旅行中的各项预计费用,并能够根据实时的支出更新预算。编写一个程序,输入旅行的各项预算和实时支出。程序应能够计算剩余预算,并在超出预算时提醒用户。

2、输入输出

输入描述:输入一个正整数N,表示预算项目的数量。接下来N行,每行输入一个字符串和一个浮点数,分别代表预算项目和预算金额,输入一个特殊的命令行"SPENT",随后输入一个浮点数,表示实时支出的金额。

输出描述:输出当前的剩余预算。如果支出超出预算,输出一条警告消息。

输入样例:

5
交通 1000
住宿 1500
餐饮 800
门票 500
购物 700
SPENT 350
SPENT 1000
SPENT 2000
SPENT 1500

输出样例:

剩余预算: 4150
剩余预算: 3150
...

二、算法分析

  1. 从给定题目的初步分析可以看出,同样是需要对多组输入的数据进行处理
  2. 可以先对输入的项目和预算进行汇总统计,接着就不断检测输入的命令是不是SPENT
  3. 如果是就继续根据后面输入的支出金额计算出还剩下的预算,如果预算小于0就需要进行预警提示,提示信息可自行定义,意思大致为:“超出预算”即可;否则就输出当前剩余的预算
  4. 如果输入的命令不是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
超出预算了哦!

五、考点分析

难度级别:中等,这题相对而言在于循环处理,具体主要考察如下:

  1. 分析题目 找到解题思路
  2. 充分掌握数组的定义和使用
  3. 学会结构体的定义和使用,以及结构体数组的使用
  4. 学会输入流对象cin的使用,从键盘读入相应的数据
  5. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  6. 学会while循环的使用,在不确定循环次数的时候推荐使用
  7. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  8. 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
  9. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  10. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  11. 充分掌握变量定义和使用、分支语句、循环语句和枚举算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

相关文章:

  • C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件
  • 题解:洛谷 P12672 「LAOI-8」近期我们注意到有网站混淆视听
  • Wireshark 使用教程:让抓包不再神秘
  • DeepSeek-R1-0528,官方的端午节特别献礼
  • Go语言中的布尔类型详解
  • 【算法】贪心算法
  • 深拷贝和浅拷贝
  • C++ list数据删除、list数据访问、list反转链表、list数据排序
  • C++23 已弃用特性
  • C++ 建造者模式:简单易懂的设计模式解析
  • 【Linux 学习计划】-- 进程地址空间
  • kafka学习笔记(三、消费者Consumer使用教程——消费性能多线程提升思考)
  • 使用 HTML + JavaScript 实现一个日历任务管理系统
  • 乐观锁:高效并发无锁方案
  • SpringBoot如何实现一个自定义Starter?
  • 华为云Flexus+DeepSeek征文|华为云 Flexus X 加速 Dify 平台落地:高性能、低成本、强可靠性的云上选择
  • 第304个Vulnhub靶场演练攻略:digital world.local:FALL
  • springboot集成websocket给前端推送消息
  • 生活小记啊
  • AWTK 嵌入式Linux平台实现多点触控缩放旋转以及触点丢点问题解决
  • 视频拍摄剪辑培训/关键词优化哪家好
  • 做门户网站代码质量方面具体需要注意什么/搜狗seo培训
  • 大型网站制作教程/seo公司软件
  • 环评在那个网站做/关键词排名零芯互联排名
  • 政府网站登录界面模板/搜索引擎成功案例分析
  • b2b网站做网络推广有用吗/域名检测