C++饮料自动售卖机模拟系统[2023-03-08]

10.4 饮料自动售卖机模拟系统的设计与实现
10.4.1 系统描述和要求

模拟饮料自动售卖机的销售过程。顾客首先进行投币,机器显示投币金额。接下来顾客选择要购买的饮料,如果投币金额足够并且所购饮料存在,则提示用户在出口处取走饮料,同时找零。如果投币金额不足,显示提示信息。如果所购饮料已经售完,显示售完信息。

功能说明:
(1)只接受 10 元、5 元、2 元、1 元和 0. 元的纸币和硬币。
(2)顾客一次只能投入上述一种金额的纸币或硬币,当用户重复投入时货币金额累加。
(3)销售的饮料包括 5 种:可口可乐 (2 元百事可乐(2 元)汁 (3 元)、咖啡(5 元)、纯净水 (1.5 元)。
(4)系统通过必要的提示信息,提示用户完成相应的操作。
(5)若顾客所购买的饮料已经售完,则进行提示并询问用户是否购买其它的饮料。
(6)完成一次售卖后,系统自动进行结算找零。

10.4.2 系统分析与设计
根据系统功能要求,首先设计处理钱币的类和商品信息类。处理钱币的类主要完成与钱币相关的工作,如给顾客找零等过程。商品信息类主要用来处理与商品相关的工作,如获得商品信息等操作。
还需要设计一个自动贩卖机类来实现饮料的售卖过程。在这个类里面,将钱币类和商品信息类作为其数据成员。同时定义了包含5个GoodsInfo 对象的数组,负责保存饮料的三个信息:名称、价格和库存量,并且可以反馈这些信息。
案例需要用到类与类之间的一种关系: has-a 拥有关系,has-a 关系是指一个对象包含另一个对象,即一个对象是另一个对象的成员。