C++实现的自动售货机源代码解析
3星 · 超过75%的资源 需积分: 50 178 浏览量
更新于2024-09-16
8
收藏 6KB TXT 举报
"这是一个简单的C++实现的自动售货机模拟程序,包含了商品信息类`goodsinfo`和货币处理类`money`。"
在自动售货机系统中,`goodsinfo`类是用于存储和展示商品信息的核心部分。它包含了以下几个关键属性:
1. `name`: 商品的名称,类型为字符指针,用于存储商品的名字。
2. `price`: 商品的单价,类型为浮点数,表示每件商品的价格。
3. `count`: 商品的库存量,类型为整数,表示当前自动售货机中该商品的数量。
4. `length`: 商品名称的长度,用于动态分配内存存储商品名称。
`goodsinfo`类提供了以下方法:
- 构造函数:接收商品名称、价格和库存作为参数,动态分配内存存储商品名称,并初始化其他属性。
- `shown()`:用于显示商品信息,包括欢迎语和商品列表的布局,但具体商品数据并未在此处填充,可能需要在外部完成。
- 析构函数:释放存储商品名称的内存,遵循C++中的内存管理原则。
另一方面,`money`类则处理与货币相关的操作,如投币、找零等。它包含以下方法:
1. `enter(float ps)`:检查用户投币的有效性。如果投币金额为10元、5元、2元、1元或5角,返回`'t'`表示有效,否则返回`'f'`。
2. `select(goodsinfo& ob)`:根据商品实例判断用户选择的商品是否还有库存。如果有库存,返回`'t'`,否则返回`'f'`。
3. `compare(float p, goodsinfo& ob)`:比较投币金额`p`与商品价格`ob.price`,如果投币金额大于或等于商品价格,返回`'t'`,否则返回`'f'`。
4. `zhaoling(float p, goodsinfo& ob)`:计算找零金额,将投币金额`p`减去商品价格,返回找零的浮点数值。
5. `addmoney(float p)`:用于用户再次投币,直接返回新的投币总额。
这个C++程序的基本工作流程可能是这样的:首先,用户通过控制台界面选择商品,然后投币,系统会检查投币金额是否足够购买所选商品,如果足够,执行交易并更新商品库存,找零后结束交易;如果不足,则提示用户继续投币。整个过程由这两个类的实例协同完成,体现了面向对象编程的思想,将商品信息和货币处理逻辑封装在各自的对象中,提高了代码的可读性和可维护性。
2022-03-16 上传
2010-01-30 上传
2024-01-21 上传
120 浏览量
2010-06-06 上传
2010-09-16 上传
2021-03-15 上传
2022-09-24 上传
晨智毅_Czy
- 粉丝: 10
- 资源: 28
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录