饮料自动售货机系统的分析与设计

  • 格式:doc
  • 大小:122.00 KB
  • 文档页数:6

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

饮料自动售货机系统的分析与设计

1.系统的分析

1.1 需求分析描述

自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。

自动售货机是一种无人售货系统。售货时,顾客投入硬币,售货机进行真假币的检查,若是假币拒绝接收,若是有效硬币则进行累加。售货机装有若干个含有相同价格货物的货物分配器。顾客可以通过货物分配器选择货物,如果有被选货物,并且顾客支付的货币值不小于货物的价格,货物将被传送给顾客,同时余额返回到退币口。如果货币值小于货物价格,则等待投币,此时如果顾客取消本次活动,那么之前所投的货币将从退币口中退出,返回给顾客。

1.2 系统功能结构图

图1 体统功能结构图

1.3 用例图

图2 饮料自动售货系统用例图

1.4 系统类图的建立

系统的类图揭示了系统的整个结构。分析时先产生问题域中的对象,再抽象出类。在本系统中,类有:自动售货机、顾客、货币、货币累加器、货物、货物分配器、显示屏、取消按钮、选择按钮、事务、更新。

货币顾客

图3 饮料自动售货系统类图

1.5 动态模型的建立

从系统模型的角度,静态模型定义了系统的结构和组成。任何实际的系统都是活动的,都通过系统元素间的互动来实现系统。面向对象的许多方法在建立动态模型时首先写各种情况时的交互行为脚本,通过对脚本的分析描绘动态模型。脚本是用例的一次具体执行过程,一般包括正常情况脚本和异常情况脚本。系统的卖货物用例中,顾客投入硬币,系统检查硬币的有效性,然后对有效硬币进行累加,顾客选择货物及其数量,系统送出货物;这系列步骤表示正常情况脚本。异常脚本为:顾客投入有效硬币,然后选择货物,若货物量不够,系统将投入的硬币从退币口退出。在UML中,可以利用序列图来表示脚本。下面是卖货物用例的一次具体交互的序列图。

对象1

图4 自动卖货物的顺序图

由于本系统中,自动售货机本身的状态比较复杂,因此建立其状态图。

检查硬币

空闲

退币

送货处理

处理买货

检查余额

检查货物数量

货物选择

投入硬币

无效硬币

有效硬币

取消

余额>0余额=0

余额≥0

余额<0

缺货

选择货物

图5 饮料自动售货机状态图

2.系统的设计

2.1 数据库设计

图6 数据库图

数据库的描述:钱币有面值和数量两种属性,其中,面值是主属性。送货员有用户名和密码两种属性,其中用户名是主属性,当添加新的送货员时,如果用户名已经存在,则会出错。饮料有类型、数量和价格三种属性。其中类型是主属性。数据库中按名称存储各种饮料

若干。送货员可以放置或取走若干钱币,也可以添加饮料。

2.2 用户界面设计:

图7 系统的欢迎界面

界面描述:用户选择任意一种身份,并确定,则会进入到相应的操作界面。

图8 送货员登陆界面

界面描述:送货员输入自己的用户名和密码,登陆成功之后则进入到送货员专区进行相应的操作。

图9 送货员功能区

界面描述:第一组中,送货员可以选择饮料,并可在右边的编辑框中输入饮料数量。第二组中,送货员先要选择对钱币的具体操作类型,然后选中钱币面值,输入钱币数量,则可以完成对钱币的操作。而第三组和第四组主要用来响应“查看按钮”和“查看钱币”,显示数据库中现存的饮料和钱币信息。第五组中,送货员可以输入用户名和密码,进行添加新的送货员。

图10 顾客功能区

界面描述:顾客每次可以选中一种饮料,并投入钱币。模拟投入钱币是用编辑框让顾客输入投入该种钱币的数量。