C++课件+案例十六+超市收银系统.ppt_第1页
C++课件+案例十六+超市收银系统.ppt_第2页
C++课件+案例十六+超市收银系统.ppt_第3页
C++课件+案例十六+超市收银系统.ppt_第4页
C++课件+案例十六+超市收银系统.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 案例十六超市收银系统 本案例知识要点格式化输出结构体的使用类的设计和使用类指针的使用函数重载向量的使用虚函数 2 一 案例需求 案例描述模拟 美特好 超市收款过程 根据货物清单 选定所购货物种类和数量 实现收银结账 案例效果图案例效果如图所示 3 超市收银系统案例效果图1 4 超市收银系统案例效果图2 5 功能说明显示超市库存商品信息 显示购物流程提示信息 实现收款过程 反复输入所购各种商品的索引号和购买数量 直到输入商品索引号 1 结束购物流程 实现收银 根据顾客所交现金 自动找零 6 二 案例分析 在本案例中 超市收银系统应具备四大基本功能 商品管理 货架管理 购物篮管理和收银管理 货架管理实现库中某种商品的入库 出库 查询及显示等功能 需要建立一个货架类 通过调用相应的函数来实现 每种商品有单价 条形码 商品名称等属性 商品管理类实现了设置 获取商品信息 复制商品信息等功能 购物篮管理就是一个小型的货架管理 可以用货架类来实现 收银管理实现商品的结账 找零等任务 需要建立一个收银台类 通过调用相应的函数来实现 7 其中 需要注意以下一些问题 从货架拿货时 应该将商品拿一部分出去 通过将商品 复制 一份出去来实现 货架 上有形形色色的商品 因此 这个类需要向量这个容器来容纳这些商品 向量中仅存储商品对象是不够的 因为商品没有量的概念 到底容器中包含多少件此类商品还需要用另外一个变量来表示 通过把商品对象和商品数量集成到一个结构体中来实现 如何构建购物篮对象 仔细想一下 购物篮 就是一个小型的货架 因此可以用 货架 类模拟一个购物篮 8 三 案例设计 1 类的设计根据上述的设计思想 设计了 商品类 货架类 和 收银台类 3个类 这3个类的声明部分在文件 counter h 中实现 3个类的成员函数的实现部分在文件 counter cpp 中完成 其中商品类 CGoods类 负责完成商品信息的存储 获取 复制等任务 货架类 CStore类 负责完成库中商品的入库 出库 查询及显示等任务 收银台类 CCounter类 负责完成商品的结账 找零等任务 另外在counter h文件中还定义了一个表示货架商品对象的结构SStoreElement 它有两个成员 一个是商品对象的指针 一个是此类商品的数量 货架中的每个商品都是这个结构类型的 9 10 CGoods类结构图 11 12 13 结构体tagStoreElement的结构 14 3 CStore类 货架类 的设计CStore类的结构如图所示 CStore类的结构 15 16 17 18 19 4 CCounter类 收银台类 的设计CCounter类的结构如图所示 CCounter类的结构 20 21 22 23 2 主程序设计开始显示超市所有商品的信息输入欲购买商品的索引号输入欲购买商品的数量继续购买商品吗 去收银台结账结束NY 1 函数设计CStore PrepareStore 该函数用于最初 进货 即向货架中存入一批商品 包括这些商品的商品索引 商品名称 数量及单价 即创建一个商店 返回值 CStore pStore为Cstore类的指针 代表一个货架 voidusage 该函数用于为用户显示操作提示 即告诉 客人 超市购物的购物流程 返回值 无 24 2 主函数设计在main 函数中 首先分别对3个类定义一个超市 一个购物篮和一个收银台对象 然后定义了一个顾客交钱的变量 并初始化为0 利用上诉类的其他成员函数来实现购物过程 具体流程如图所示 25 主程序调用流程图 26 四 案例实现 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 五 案例总结与提高 案例总结在本案例中 比较关键的一步是分析出超市货架这个类 有些读者可能会将 顾客 抽象为一个类 然后将购物篮放到顾客这个类中 这是不正确的 因为无法在顾客类中处理购买货物和清理货物的逻辑 实际上 在整个收银系统设计中 顾客并没有真正地参与进来 收银台处理的只是一个又一个的购物篮 顾客真正参与的部分是在main函数中 通过交互 顾客可以购买商品 可以结账等 另外一个难点是CGoods中的Clone 函数 为了从货架 超市 中选购一件商品 用户需要从CStore类中复制一件商品出来 而CStore类中存储的是各种商品的向量 因此 需要让商品类 CGoods 具有自我复制的功能 而在复制的过程中 商品的数量应该设为零 至于选购多少可以让用户调用CGoods类中的成员函数SetNum intiNum 来确定 67 案例提高这个案例只是简单地模拟了一个顾客去超市购物的过程 可以提高的地方还有很多 本案例为了简单起见 只是处理了一个购物篮 也就是说整个超市只有一个顾客 这不是一个对真实场景的模拟 真正的场景应该是有多个顾客 可能会同时去收银台结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论