案例十三料自动售货机.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
案例十三料自动售货机

案例十三 饮料自动售货机 本案例知识要点 数组的使用 类的设计和使用 类间调用 一、案例需求 案例描述 本案例模拟饮料自动售货机的销售过程。首先由顾客投币,机器显示投币金额。接下来顾客选择要购买的饮料,如果投币金额足够并且所购饮料存在,则提示用户在出口处取走饮料,同时找零。如果投币金额不足,则显示提示信息。如果所购饮料已经售完,显示售完信息。 案例效果图 饮料自动售货机案例效果如图所示。 饮料自动售货机案例效果图 功能说明 只接受10元、5元、2元、1元和0.5元的纸币和硬币。 顾客一次只能投入一种上述金额的纸币或硬币,当用户重复投入时货币金额累加。 销售的饮料包括5种:可口可乐(2元)、百事可乐(2元)、橙汁(3元)、咖啡(5元)、纯净水(1.5元)。 系统通过必要的提示信息,提示用户完成相应的操作。 若顾客所购买的饮料已经售完,则进行提示并询问用户是否购买其他饮料。 完成一次售货后,系统自动进行结算找零。 二、案例分析 根据系统功能要求,首先设计处理钱币的类和商品信息类。处理钱币的类主要完成与钱币相关的任务,如给顾客找零等。商品信息类主要用来处理与商品相关的任务,如获得商品信息等。 还需要设计一个自动售货机类来实现饮料的售货过程。在这个类中,将钱币类和商品信息类作为其数据成员。同时定义了包含5个GoodsInfo对象的数组,负责保存饮料的3个信息:名称、价格和库存量,并且可以反馈这些信息。 案例需要用到类与类之间的一种关系,即has-a拥有关系。has-a关系是指一个对象包含另一个对象,即一个对象是另一个对象的成员。 三、案例设计 MoneyCounter类图 GoodsInfo类图 DrinkMachine类图 2.主程序设计 在主函数中,首先定义了一个DrinkMachine类(自动售货机类)的对象dri,并未显式地定义MoneyCounter类和GoodsInfo类的对象。但是在DrinkMachine类中含有MoneyCounter类和GoodsInfo类的数据成员。 然后设计一个两重循环,外循环的持续条件是顾客继续购买,内循环的持续条件是顾客继续重复投币,即顾客可以反复投币,直至投够为止。当顾客购买成功或不再继续购买时,流程中止。程序流程如图所示。 程序流程图 四、案例实现 五、案例总结与提高 案例总结 本案例设计了3个类,一个处理货币信息的类、一个商品类、还有一个售货机类。这3个类彼此间并非并列关系,在售货机类中包含了货币类和商品类的数据成员,通过这种方式间接调用这两个类的成员函数,完成程序任务。读者在学习本案例时一定要理解并掌握这种类的调用关系。 在案例设计中要注意一些细节,例如饮料售完时的处理、连续多次交钱时的处理、钱不足时的处理等,设计的程序要注意考虑到多种可能性。 案例提高 本案例只是简单地模拟一个自动售货机的售货流程,读者可以在本案例的基础上对其加以修改: 可以更改程序,实现一次购买多种商品的功能。 对于自动售货机的商家而言,还应该有一个交互的界面,可以让商家来更改自动售货机中货物的品种、单价、数量等信息。 第*页 共35页 目录 退出 目录 * 第*页 共35页 目录 退出 目录

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档