- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C项目实训指导书创新
《》实训指导书
项目一 饮料自动贩卖机模拟程序
一、项目需求
1.项目描述
本项目模拟饮料自动售卖机的销售过程。顾客首先进行投币,机器显示投币金额。接下来顾客选择要购买的饮料,如果投币金额足够并且所购饮料存在,则提示用户在出口处取走饮料,同时找零。如果投币金额不足,显示提示信息。如果所购饮料已经售完,显示售完信息。
2.效果图
图1-1 饮料自动贩卖机项目效果图
3.功能说明
(1)只接受10元、5元、2元、1元和0.5元的纸币和硬币。
(2)顾客一次只能投入上述一种金额的纸币或硬币,当用户重复投入时货币金额累加。
(3)销售的饮料包括5种:可口可乐(2元)、百事可乐(2元)、橙汁(3元)、咖啡(5元)、纯净水(1.5元)。
(4)系统通过必要的提示信息,提示用户完成相应的操作。
(5)若顾客所购买的饮料已经售完,则进行提示并询问用户是否购买其它的饮料。
(6)完成一次售卖后,系统自动进行结算找零。?
二、项目分析
根据系统功能要求,首先设计处理钱币的类和商品信息类。处理钱币的类主要完成与钱币相关的工作,如给顾客找零等过程。商品信息类主要用来处理与商品相关的工作,如获得商品信息等操作。
还需要设计一个自动贩卖机类来实现饮料的售卖过程。在这个类里面,将钱币类和商品信息类作为其数据成员。同时定义了包含5个GoodsInfo对象的数组,负责保存饮料的三个信息:名称、价格和库存量,并且可以反馈这些信息。
项目需要用到类与类之间的一种关系:has-a 拥有关系,has-a关系是指一个对象包含另一个对象,即一个对象是另一个对象的成员。
三、项目设计
1.类的设计
根据上述的设计思想,设计了“MoneyCounter类”、“GoodsInfo 类”和“DrinkMachine类”3个类。
(1) MoneyCounter类的设计
图1-2 MoneyCounter类图
数据成员
float input_money; 用于记录顾客投币金额
函数成员
MoneyCounter(); 构造函数,初始化顾客投币金额为0.00
~MoneyCounter() {} ??????? 析构函数
void getmoney(); ?????? ? 提示顾客投币
float money_from_buyer(); ?????? 返回投币金额
void clear();??? ??????? 清空,准备下一轮投币
void return_money(float); 返回找的零钱
(2)GoodsInfo 类的设计
图1-3 GoodsInfo类图
数据成员
string name ; 用于记录饮料名称
float price; 用于记录饮料的单价
int? total; 用于记录饮料的总库存数
函数成员
GoodsInfo(); 构造函数,初始化饮料信息
?~GoodsInfo() {} ?????? 析构函数
void set_goods(string, float, int);??? ??????? 设置每种饮料的属性:名称,价格,数量
string goods_name();???????返回饮料的名称
float goods_price();??????? 返回饮料的价格
int goods_number(); 返回饮料的数量
(3)DrinkMachine类的设计
图1-4 DrinkMachine类图
数据成员
MoneyCounter moneyctr;??????? 定义MoneyCounter的对象,实现投币、找零等功能?
GoodsInfo v_goods[5]; 定义GoodsInfo的对象,实现商品信息的维护,此处设计了5种饮料,详见该类的实现
函数成员
DrinkMachine();??????? 构造函数,初始化自动售货机中的商品信息
~DrinkMachine()??????? 析构函数
void showchoices();? 显示饮料选择信息
void inputmoney();? 获取顾客投入钱币
bool goodsitem(int); 检查饮料状况
void return_allmoney();??? 返回钱数
2.主程序设计
在主函数中,首先定义了一个DrinkMachine类(自动售货机类)的对象dri,并未显式地定义MoneyCounter类和GoodsInfo类的对象。但是在DrinkMachine类中含有MoneyCounter类和GoodsInfo类的数据成员。
其次设计一个两重循环,外循环的持续条件是顾客继续购买,内循环的持续条件是顾客继
文档评论(0)