案例2-1 饮料自动售货机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第25页 共35页
目录
目录 退出
案例提高 本案例只是简单地模拟一个自动售货机 的售货流程,读者可以在本案例的基础 上对其加以修改: 可以更改程序,实现一次购买多种商 品的功能。 对于自动售货机的商家而言,还应该 有一个交互的界面,可以让商家来更 改自动售货机中货物的品种、单价、 数量等信息。
第26页 共35页
案例2 饮料自动售货机
本案例知识要点 数组的使用 类的设计和使用 类间调用
第1页 共35页
目录
目录 退出
一、案例需求
案例描述 本案例模拟饮料自动售货机的销售过程。 首先由顾客投币,机器显示投币金额。 接下来顾客选择要购买的饮料,如果投 币金额足够并且所购饮料存在,则提示 用户在出口处取走饮料,同时找零。如 果投币金额不足,则显示提示信息。如 果所购饮料已经售完,显示售完信息。 案例效果图 饮料自动售货机案例效果如图所示。
第6页 共35页
目录
目录 退出
三、案例设计
第7页 共35页
目录
目录 退出
MoneyCounter类图
第8页 共35页
目录
目录 退出
第9页 共35页
目录
目录 退出
第10页 共35页
目录
目录 退出
GoodsInfo类图
第11页 共35页
目录
目录 退出
第12页 共35页
目录
目录 退出
第13页 共35页
第16页 共35页
目录
目录 退出
四、案例实现
第17页 共35页
目录
目录 退出
第18页 共35页
目录
目录 退出
第19页 共35页
目录
目录 退出
第20页 共35页
目录
目录 退出
第21页 共35页
目录
目录 退出
第22页 共35页
目录
目录 退出
第23页 共35页
目录
目录 退出
第24页 共35页
目录
目录 退出
目录
目录 退出
五、案例总结与提高
案例总结 本案例设计了3个类,一个处理货币信息的类、 一个商品类、还有一个售货机类。这3个类彼此 间并非并列关系,在售货机类中包含了货币类 和商品类的数据成员,通过这种方式间接调用 这两个类的成员函数,完成程序任务。读者在 学习本案例时一定要理解并掌握这种类的调用 关系。 在案例设计中要注意一些细节,例如饮料售完 时的处理、连续多次交钱时的处理、钱不足时 的处理等,设计的程序要注意考虑到多种可能 性。
目录
目录 退出
DrinkMachine类图
DrinkMachine -moneyctr : MoneyCounter -v_goods[5] : GoodsInfo +DrinkMachine() +~DrinkMachine() +showchoices() +inputmoney() +goodsitem() : bool +return_allmoney()
第2页 共35页
目录
目录 退出
饮料自动售货机案例效果图
第3页 共35页
目录
目录 退出
程序流程图
第4页 共35页
目录
目录 退出
Baidu Nhomakorabea
功能说明 只接受10元、5元、2元、1元和0.5元的纸币和硬 币。 顾客一次只能投入一种上述金额的纸币或硬币, 当用户重复投入时货币金额累加。 销售的饮料包括5种:可口可乐(2元)、百事可 乐(2元)、橙汁(3元)、咖啡(5元)、纯净 水(1.5元)。 系统通过必要的提示信息,提示用户完成相应的 操作。 若顾客所购买的饮料已经售完,则进行提示并询 问用户是否购买其他饮料。 完成一次售货后,系统自动进行结算找零。
第5页 共35页
目录
目录 退出
二、案例分析
根据系统功能要求,首先设计处理钱币的类和商 品信息类。处理钱币的类主要完成与钱币相关的 任务,如给顾客找零等。商品信息类主要用来处 理与商品相关的任务,如获得商品信息等。 还需要设计一个自动售货机类来实现饮料的售货 过程。在这个类中,将钱币类和商品信息类作为 其数据成员。同时定义了包含5个GoodsInfo对象 的数组,负责保存饮料的3个信息:名称、价格和 库存量,并且可以反馈这些信息。 案例需要用到类与类之间的一种关系,即has-a拥 有关系。has-a关系是指一个对象包含另一个对象, 即一个对象是另一个对象的成员。
第14页 共35页
目录
目录 退出
第15页 共35页
目录
目录 退出
2.主程序设计 在主函数中,首先定义了一个DrinkMachine类 (自动售货机类)的对象dri,并未显式地定义 MoneyCounter类和GoodsInfo类的对象。但是在 DrinkMachine类中含有MoneyCounter类和 GoodsInfo类的数据成员。 然后设计一个两重循环,外循环的持续条件是顾 客继续购买,内循环的持续条件是顾客继续重复 投币,即顾客可以反复投币,直至投够为止。当 顾客购买成功或不再继续购买时,流程中止。程 序流程如图所示。
目录
目录 退出
案例提高 本案例只是简单地模拟一个自动售货机 的售货流程,读者可以在本案例的基础 上对其加以修改: 可以更改程序,实现一次购买多种商 品的功能。 对于自动售货机的商家而言,还应该 有一个交互的界面,可以让商家来更 改自动售货机中货物的品种、单价、 数量等信息。
第26页 共35页
案例2 饮料自动售货机
本案例知识要点 数组的使用 类的设计和使用 类间调用
第1页 共35页
目录
目录 退出
一、案例需求
案例描述 本案例模拟饮料自动售货机的销售过程。 首先由顾客投币,机器显示投币金额。 接下来顾客选择要购买的饮料,如果投 币金额足够并且所购饮料存在,则提示 用户在出口处取走饮料,同时找零。如 果投币金额不足,则显示提示信息。如 果所购饮料已经售完,显示售完信息。 案例效果图 饮料自动售货机案例效果如图所示。
第6页 共35页
目录
目录 退出
三、案例设计
第7页 共35页
目录
目录 退出
MoneyCounter类图
第8页 共35页
目录
目录 退出
第9页 共35页
目录
目录 退出
第10页 共35页
目录
目录 退出
GoodsInfo类图
第11页 共35页
目录
目录 退出
第12页 共35页
目录
目录 退出
第13页 共35页
第16页 共35页
目录
目录 退出
四、案例实现
第17页 共35页
目录
目录 退出
第18页 共35页
目录
目录 退出
第19页 共35页
目录
目录 退出
第20页 共35页
目录
目录 退出
第21页 共35页
目录
目录 退出
第22页 共35页
目录
目录 退出
第23页 共35页
目录
目录 退出
第24页 共35页
目录
目录 退出
目录
目录 退出
五、案例总结与提高
案例总结 本案例设计了3个类,一个处理货币信息的类、 一个商品类、还有一个售货机类。这3个类彼此 间并非并列关系,在售货机类中包含了货币类 和商品类的数据成员,通过这种方式间接调用 这两个类的成员函数,完成程序任务。读者在 学习本案例时一定要理解并掌握这种类的调用 关系。 在案例设计中要注意一些细节,例如饮料售完 时的处理、连续多次交钱时的处理、钱不足时 的处理等,设计的程序要注意考虑到多种可能 性。
目录
目录 退出
DrinkMachine类图
DrinkMachine -moneyctr : MoneyCounter -v_goods[5] : GoodsInfo +DrinkMachine() +~DrinkMachine() +showchoices() +inputmoney() +goodsitem() : bool +return_allmoney()
第2页 共35页
目录
目录 退出
饮料自动售货机案例效果图
第3页 共35页
目录
目录 退出
程序流程图
第4页 共35页
目录
目录 退出
Baidu Nhomakorabea
功能说明 只接受10元、5元、2元、1元和0.5元的纸币和硬 币。 顾客一次只能投入一种上述金额的纸币或硬币, 当用户重复投入时货币金额累加。 销售的饮料包括5种:可口可乐(2元)、百事可 乐(2元)、橙汁(3元)、咖啡(5元)、纯净 水(1.5元)。 系统通过必要的提示信息,提示用户完成相应的 操作。 若顾客所购买的饮料已经售完,则进行提示并询 问用户是否购买其他饮料。 完成一次售货后,系统自动进行结算找零。
第5页 共35页
目录
目录 退出
二、案例分析
根据系统功能要求,首先设计处理钱币的类和商 品信息类。处理钱币的类主要完成与钱币相关的 任务,如给顾客找零等。商品信息类主要用来处 理与商品相关的任务,如获得商品信息等。 还需要设计一个自动售货机类来实现饮料的售货 过程。在这个类中,将钱币类和商品信息类作为 其数据成员。同时定义了包含5个GoodsInfo对象 的数组,负责保存饮料的3个信息:名称、价格和 库存量,并且可以反馈这些信息。 案例需要用到类与类之间的一种关系,即has-a拥 有关系。has-a关系是指一个对象包含另一个对象, 即一个对象是另一个对象的成员。
第14页 共35页
目录
目录 退出
第15页 共35页
目录
目录 退出
2.主程序设计 在主函数中,首先定义了一个DrinkMachine类 (自动售货机类)的对象dri,并未显式地定义 MoneyCounter类和GoodsInfo类的对象。但是在 DrinkMachine类中含有MoneyCounter类和 GoodsInfo类的数据成员。 然后设计一个两重循环,外循环的持续条件是顾 客继续购买,内循环的持续条件是顾客继续重复 投币,即顾客可以反复投币,直至投够为止。当 顾客购买成功或不再继续购买时,流程中止。程 序流程如图所示。