《案例超市收银系统》PPT课件

上传人:xiao****017 文档编号:16377661 上传时间:2020-09-30 格式:PPT 页数:67 大小:1.10MB
收藏 版权申诉 举报 下载
《案例超市收银系统》PPT课件_第1页
第1页 / 共67页
《案例超市收银系统》PPT课件_第2页
第2页 / 共67页
《案例超市收银系统》PPT课件_第3页
第3页 / 共67页
资源描述:

《《案例超市收银系统》PPT课件》由会员分享,可在线阅读,更多相关《《案例超市收银系统》PPT课件(67页珍藏版)》请在装配图网上搜索。

1、第1页 共#页,案例十六 超市收银系统,本案例知识要点 格式化输出 结构体的使用 类的设计和使用 类指针的使用 函数重载 向量的使用 虚函数,第2页 共#页,一、案例需求,案例描述 模拟“美特好”超市收款过程,根据货物清单,选定所购货物种类和数量,实现收银结账。 案例效果图 案例效果如图所示。,第3页 共#页,超市收银系统案例效果图1,第4页 共#页,超市收银系统案例效果图2,第5页 共#页,功能说明 显示超市库存商品信息。 显示购物流程提示信息。 实现收款过程,反复输入所购各种商品的索引号和购买数量,直到输入商品索引号“1”,结束购物流程。 实现收银,根据顾客所交现金,自动找零。,第6页 共

2、#页,二、案例分析,在本案例中,超市收银系统应具备四大基本功能:商品管理、货架管理、购物篮管理和收银管理。 货架管理实现库中某种商品的入库、出库、查询及显示等功能。需要建立一个货架类,通过调用相应的函数来实现。 每种商品有单价、条形码、商品名称等属性。商品管理类实现了设置、获取商品信息、复制商品信息等功能。 购物篮管理就是一个小型的货架管理,可以用货架类来实现。 收银管理实现商品的结账、找零等任务。需要建立一个收银台类,通过调用相应的函数来实现。,第7页 共#页,其中,需要注意以下一些问题: 从货架拿货时,应该将商品拿一部分出去,通过将商品“复制”一份出去来实现。 “货架”上有形形色色的商品,

3、因此,这个类需要向量这个容器来容纳这些商品。向量中仅存储商品对象是不够的,因为商品没有量的概念,到底容器中包含多少件此类商品还需要用另外一个变量来表示,通过把商品对象和商品数量集成到一个结构体中来实现。 如何构建购物篮对象?仔细想一下,“购物篮”就是一个小型的货架,因此可以用“货架”类模拟一个购物篮。,第8页 共#页,三、案例设计,1类的设计 根据上述的设计思想,设计了“商品类”、“货架类”和“收银台类”3个类,这3个类的声明部分在文件“counter.h”中实现,3个类的成员函数的实现部分在文件“counter.cpp”中完成。其中商品类(CGoods类)负责完成商品信息的存储、获取、复制等

4、任务;货架类(CStore类)负责完成库中商品的入库、出库、查询及显示等任务;收银台类(CCounter类)负责完成商品的结账、找零等任务。 另外在counter.h文件中还定义了一个表示货架商品对象的结构SStoreElement,它有两个成员,一个是商品对象的指针,一个是此类商品的数量。货架中的每个商品都是这个结构类型的。,第9页 共#页,第10页 共#页,CGoods类结构图,第11页 共#页,第12页 共#页,第13页 共#页,结构体tagStoreElement的结构,第14页 共#页,(3)CStore类(货架类)的设计 CStore类的结构如图所示。,CStore类的结构,第15

5、页 共#页,第16页 共#页,第17页 共#页,第18页 共#页,第19页 共#页,(4)CCounter类(收银台类)的设计 CCounter类的结构如图所示。,CCounter类的结构,第20页 共#页,第21页 共#页,第22页 共#页,第23页 共#页,2主程序设计开始显示超市所有商品的信息输入欲购买商品的索引号输入欲购买商品的数量继续购买商品吗?去收银台结账结束NY (1)函数设计 CStore* PrepareStore() 该函数用于最初“进货”,即向货架中存入一批商品,包括这些商品的商品索引、商品名称、数量及单价,即创建一个商店。 返回值:CStore *pStore为Csto

6、re类的指针,代表一个货架。 void usage() 该函数用于为用户显示操作提示,即告诉“客人”超市购物的购物流程。 返回值:无。,第24页 共#页,(2)主函数设计 在main()函数中,首先分别对3个类定义一个超市、一个购物篮和一个收银台对象,然后定义了一个顾客交钱的变量,并初始化为0。利用上诉类的其他成员函数来实现购物过程。具体流程如图所示。,第25页 共#页,主程序调用流程图,第26页 共#页,四、案例实现,第27页 共#页,第28页 共#页,第29页 共#页,第30页 共#页,第31页 共#页,第32页 共#页,第33页 共#页,第34页 共#页,第35页 共#页,第36页 共#

7、页,第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页 共#页,五、案例总结与提高,案例总结 在本案例中,比较关键的一步

8、是分析出超市货架这个类,有些读者可能会将“顾客”抽象为一个类,然后将购物篮放到顾客这个类中。这是不正确的,因为无法在顾客类中处理购买货物和清理货物的逻辑。实际上,在整个收银系统设计中,顾客并没有真正地参与进来,收银台处理的只是一个又一个的购物篮。顾客真正参与的部分是在main函数中,通过交互,顾客可以购买商品,可以结账等。 另外一个难点是CGoods中的Clone()函数,为了从货架(超市)中选购一件商品,用户需要从CStore类中复制一件商品出来,而CStore类中存储的是各种商品的向量,因此,需要让商品类(CGoods)具有自我复制的功能,而在复制的过程中,商品的数量应该设为零,至于选购多少可以让用户调用CGoods类中的成员函数SetNum(int iNum)来确定。,第67页 共#页,案例提高 这个案例只是简单地模拟了一个顾客去超市购物的过程,可以提高的地方还有很多。 本案例为了简单起见,只是处理了一个购物篮,也就是说整个超市只有一个顾客。这不是一个对真实场景的模拟,真正的场景应该是有多个顾客,可能会同时去收银台结账,因此收银台处理的应该是一个购物篮队列,应该单独创建一个线程来追加这个队列,然后由收银台分别为每个购物篮结账,结完一个删除一个。 对于超市的店主来说,还应该有一个交互的界面,可以让店主来完成更改货物的单价、追加货物等操作。,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!