- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武汉理工大学《软件综合课程设计-基于UML的饮料自动售货机系统设计》
PAGE 17
基于UML的饮料自动售货机系统设计
问题描述
1.1 关于自动售货机
自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。
1.2 饮料自动售货机的设计
该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。
与系统交涉的人有两类:送货员和顾客。
送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料、钱币或取走适当的钱币。同时,送货员也可以根据需要增加饮料的种类,或修改饮料的价格。
顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回顾客所投钱币,交易失败。否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回钱币。如果顾客所投的钱币刚好够(不需要找零钱),则售出饮料,交易结束。如果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售出饮料,找出零钱,交易结束。否则,退回钱币,交易失败。
当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。
用例模型及分析类图的描述;
2.1 系统功能模块划分
图1:模块划分
2.2 系统用例模型描述
系统涉及的角色有:顾客和送货员。
系统用例模型如下图:
图2:用例图
2.3 类分析
系统中涉及的类有Person类,主要实现viewPrice这个功能.Customer和Sender继承这个类,并且各自实现一定的功能,Drink类和Money类各有自己的属性,并可以通过一些操作将自己的信息显示出来.
设计类图、核心用例的顺序图与状态图、组件图等的描述;
3.1 类图
图3:类图
3.2 核心用例的顺序图
图4:“注册新的送货员”时序图
时序图分析:送货员输入新的用户名和密码,并确定。对话框控件接收输入,并将信息传到售货机系统,请求生成新的数据记录。系统检查该用户名是否有效。如果无效,则拒绝生成新的送货员。如果有效,则在数据库中添加一条新的记录,成功的生成一个送货员的用户名和密码。
图5:“查看价格”时序图
时序图分析:顾客或送货员请求查看饮料的价格。对话框控件接收输入,并请求售货机系统查询该价格信息。系统在数据库中浏览并通过饮料名称查出该饮料的价格,返回给对话框界面。
图6:顾客”购买饮料”顺序图
时序图分析:界面接收顾客的输入(包括饮料名称和钱币类型数量),并传递给售货机系统。系统访问数据库查看该种饮料是否已经卖完,如果已卖完,则提示并退回钱币。否则,在数据库中查询该种饮料的价格,并判断顾客所投钱币是否够买该饮料。如果足够,则计算需要找的零钱,并在数据库中查询是否有足够的零钱。如果没有适合的零钱,则提示并退回顾客所投钱币。如果有适合的零钱,则通知数据库更新饮料和钱币信息,并且售出饮料,找零。
图7:送货员“登陆”时序图
时序图分析:送货员输入用户名和密码登陆系统。UI界面将其传递给售货机系统,系统查询数据库中的送货员信息,并验证该用户名和密码是否正确,如果错误,提示用户。否则,将送货员专区界面显示给送货员。
图8:“添加饮料”时序图
时序图分析:UI界面接收送货员输入要添加的饮料类型和数量,并传递给售货机系统,系统生成一条新的数据记录,并通知数据库修改该饮料的数量信息。修改成功之后,向界面返回现在的饮料信息。
图9:“查看饮料”时序图
时序图分析:UI界面接受送货员点击“查看饮料”按钮,并将接收的消息传递给售货机系统,系统查询数据库中的饮料信息,并将其显示出来。
图10:“取走钱币”时序图
时序图分析:UI界面接收送货员输入的钱币类型和数量,并传递给售货机系统。系统访问数据库,查看是否可以取走该数量的该种钱币,如果不可以,则拒绝取走钱币,并通知UI界面提示送货员。否则,通知数据库修改钱币信息,并返回给界面修改后的新信息。
3.3 状态图
图11:状态图
信息代码设计、数据库设计、输入设计、输出设计的描述
4.1 信息代码设计
(1)设计用Microsoft Visual C++ 基于对话框的App Wizard实现。
(2)首先创建“欢迎”对话框,即初始界面。再根据用户身份分为顾客和送货员,这样分别创建两个“专区”。
(3)“顾客专区”为新建的对话框改造,所以需要创建一个类,称为class CCustomer,并且添加相应的控件。顾客可以每次选择一种饮料,所以用单选按钮实现,而在投入钱
文档评论(0)