好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件工程饮料自动售货机系统.doc

33页
  • 卖家[上传人]:人***
  • 文档编号:510753904
  • 上传时间:2023-12-21
  • 文档格式:DOC
  • 文档大小:482.50KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 软件工程课程大作业饮料自动售货机系统姓名: 学号: 班级 专业: 二零一一年十一月二十九日目录一、 饮料自动售货机描述 21.1关于饮料自动售货机 21.2饮料自动售货机的设计 2二、 需求分析 32.1饮料自动售货机系统功能需求: 32.2 饮料自动售货机系统控制要求: 32.3业务流程图 52.4数据流程图 6三、 各种UML图型及其分析 73.1用例图 73.2类图 83.3序列图 93.4协作图 143.5状态图 173.6活动图 19四、 结论 21五、 参考文献 21亠、饮料自动售货机描述1.1关于饮料自动售货机自动售货机像磁卡、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施 如今的自动售货机可以为顾客提供多种服务 顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品1.2饮料自动售货机的设计该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、 找零钱等功能 与系统交涉的人有两类:送货员和顾客 送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料、 钱币或取走适当的钱币。

      同时送货员也可以根据 需要增加饮料的种类或修改饮料的价格 顾客根据需要选择饮料,投入钱币,并等待售货机的响应售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回顾客 所投钱币,交易失败否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如 果不够,则提示顾客交易失败,并退回钱币如果顾客所投的钱币刚好够(不需要找零钱) ,则售出饮料,交易结束如果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售 出饮料,找出零钱,交易结束否则,退回钱币,交易失败 当然,实际生活中的售货机可能有更加强大的功能和更完善的处理, 这里只模拟一个售货机系统, 所以只实现其核心原理,并练习和提高分析问题能力和编程能力二、需求分析2.1饮料自动售货机系统功能需求:自动售货机系统是一种无一元等 3个硬币投币口顾客确认购货后,售货机可根据硬币 的面值进行累加自动售货机装有货物分配器 每个货物分配器中包含零个或多个价格相同的货物 顾客通过选择货物分配器来选择货物如果货物分配器中有货物,而且顾客支付的货币值不小于该货 物的价格,货物将被分配到货物传送孔送给顾客, 并将适当的零钱返回到退币孔如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到退币孔。

      如果顾客支付的货币值少于所选择的分配器中的货物的价格, 机器将等待顾客投进更多的货币 如果顾客决定不买所选择的货物,将所投硬币从退币孔退出2.2饮料自动售货机系统控制要求:根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括: 计币系统、比较系统、选择系统、饮料供应系统、退币系统和报警系统1 .计币系统:当有顾额色买饮料时,投入的钱币经过感应器,感应器记忆投币的个数关且传送到检测 系统(即电子天平)和计币系统只有当电子天平测量的重量少于误差值时,允许计币系统 进行叠加钱币,叠加的钱币数据存放在数据寄存器中如果不正确时, 认为是假币既定出投币,既定出系统,等待新顾客2. 比较系统:投入完毕后,系统会把钱币数据和可以购买饮料的价格进行区间比较, 当投入的钱币小于2元时,指示灯亮,显示投入的钱币不足 此时可以再投币或选择退币 当投稿的钱币在2~3元之间时,汔水选择指示灯长亮当大于 3元时,汔水和咖啡的指示灯同时长亮此时可以选择饮料或选择退币3. 选择系统:比较电路完成后选择电路指示灯是长亮的, 当按下汽水或咖啡选择时, 相应的选择指示灯由长亮转为以1秒为周期闪烁当饮料供应完毕时,闪烁同时停止。

      4. 饮料供应系统:当按下选择按钮时,相应的电磁阀( Y4或Y6)和电机(Y3或Y5)同时启动在饮料输出的同时,减去相应的购买钱币数 当饮料输出达到8秒时,电磁阀首先关断,小电机继续工作0.5秒后停机此小电机的作用是:在输出饮料时,加快输出在电磁阀关断时,给电 磁阀加压作用,加速电磁阀的关断注:由于该售货机是长期使用,电磁阀使用过多时, 返回弹力减少,不能完全关断会出现漏饮料的现象 此时电机Y3和Y5延长工作0.5秒起到电磁阀加压的作用,使电磁阀可以完好的关断5. 退币系统:当顾客购完饮料后,多余的钱币只要按下退币按钮系统就会把数据寄存器 D2内的钱币数首先除以10得到整数部分,是1元钱需要退回的数量, 存放在D10里余数存放在D11 里再用D11除以5得到的整数部分是 5角钱需要退回的数量, 存放在D12里余数存放在 D13里最后D13里面的数值,就是1角钱需要退回的数量在选择退币的同时启动 3个退币电机3个感应器开始计数,当感应器记录的个数等于数据寄存器退回的币数时,退币电 机停止运转6. 报警系统:报警系统如果是非故障报警,只要通过网络通知送液车或者送币车即可 但是如果是故障报警则需要通知维修人员到现声进行维修。

      同时停止服务,避免造成顾客的损失2.3业务流程图钱币记录仪对钱币S rr. z 、I Er d 前端接受顾客投的 币进行识别11rr退出钱币发送信息到分配器11T发送货物没有货物时发送信息到前端2.4数据流程图三、各种UML图型及其分析3.1用例图1. 顾客的用例图in putCo inchooseSodaCustomer2. 自动售货机的用例图SodaMach ineDispe nser3.2类图3.3序列图1. 理想状态(不找零钱)的序列图:Front:Register:Dispe nser:Customer1: i nputCoi n() >2: accept() ———3: getCustomerI nput()< 丨4: checkForSoda()5: returnSodaFree()6: displayPrompt(Av7: chooseSoda()8: sen dChooseToDis() 9: checkAvailability()10: releaseSoda()1: releaseSoda(2. 没有货物的序列图(1:Front :Register:Dispe nser:Customer1: i nputCoi n()'>JL2: accept() ——nl3: getCustomerI nput() V i 4: checkForSoda() > 5: returnSodaFree():displayPrompt(7: chooseSoda()8: sen dChooseToDis()9: checkAvailability()10: releaseSoda()11: displayPrompt()12:sen dReturnCoin()13etur nCoin ToFro nt()14: returnCoi n()~*-S.3. 需找零钱的序列图:Front:Dispe nser:Customer1: in putCoi n() >2: accept。

      3: getCustomerI nput()C I4: checkForSoda() 5: retur nSbdaFree():displayPrompt() 7: chooseSoda()8: sen dChooseToDis()9: checkAvailability()10: releaseSoda()12: che11: sen dSodaPrice()ckForChan ge()< >3:releaseCha nge()F 4: receiveSoda()15:receiveCha nge()4. 没有零钱找给顾客:Front:Register:Dispe nser:Customer1: i nputCoi n()2: accept()3: getCustomerI nput()V i4: checkForSoda()5: returnSodaFree():displayPrompt()7: chooseSoda()8: sen dChooseToDis()9: checkAvailability()10: releaseSoda()1? sen dSodaPrice()12: checkForCharge()13:retur nN oCharge(15: displayPrompt(17: returnCoi n()etur nCoin ToFro< t()16: returnSodaToDispe nser()5.完整的序列图:Customer:Front:Register:Dispenser1: i nputCoi n()2: accept。

      3: getCustomerInput()4: checkForSoda()5:retu rnN oCharge()displayPrompt()8: returnCoi n()9: En d()11 displayPrompt() chooseSoda()1216:□displayPrompt() 19: returnCoi n()20: En d()26:displayPrompt()28: returnCoi n()29: En d()31: receiveSoda()eceiveCharge()33: En d():receiveSoda()〜 35: En d()6: retir nCoi nToFro nt()10: retur nSodaF■ee()13: sen dChooseToDispen14: checkAvailability()15: retu rnUn availabiiity()17: se ndReturnCoi n()18: retirnCoi nToFro nt()21: relea。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.