C++课件+案例十三+饮料自动售货机.ppt_第1页
C++课件+案例十三+饮料自动售货机.ppt_第2页
C++课件+案例十三+饮料自动售货机.ppt_第3页
C++课件+案例十三+饮料自动售货机.ppt_第4页
C++课件+案例十三+饮料自动售货机.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论