软件工程饮料自动售货机系统_第1页
软件工程饮料自动售货机系统_第2页
软件工程饮料自动售货机系统_第3页
软件工程饮料自动售货机系统_第4页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程课程大作业饮料自动售货机系统姓名:学号:班级专业:二零一一年十一月二十九日目录一、饮料自动售货机描述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 关于饮料自动售货机自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便

2、民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。1.2 饮料自动售货机的设计该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。与系统交涉的人有两类:送货员和顾客。送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况, 并根据计划适当添加饮料、钱币或取走适当的钱币。同时送货员也可以根据需要增加饮料的种类或修改饮料的价格。顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回顾客所投钱币,交易失败。否则,如果售货机中有该种饮料,则判断

3、顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回钱币。 如果顾客所投的钱币刚好够(不需要找零钱),则售出饮料,交易结束。如果需要找零钱,则判断是否有适当的零钱可以找,如果有,则售出饮料,找出零钱,交易结束。否则,退回钱币,交易失败。当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。二、需求分析2.1饮料自动售货机系统功能需求:自动售货机系统是一种无一元等3 个硬币投币口。 顾客确认购货后,售货机可根据硬币的面值进行累加。自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。

4、顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格, 货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的, 则和顾客支付的货币值相等的硬币将被送加到退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。2.2饮料自动售货机系统控制要求:根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括:计币系统、 比较系统、选择系统、饮料供应系统、退币系统和报警系统。1计币系统:当有顾额色买饮料时,投入的钱币经过感应器,感应器记忆投币的

5、个数关且传送到检测系统(即电子天平)和计币系统。只有当电子天平测量的重量少于误差值时,允许计币系统进行叠加钱币, 叠加的钱币数据存放在数据寄存器中。如果不正确时,认为是假币。既定出投币,既定出系统,等待新顾客。2比较系统:投入完毕后, 系统会把钱币数据和可以购买饮料的价格进行区间比较,当投入的钱币小于 2 元时, 指示灯亮,显示投入的钱币不足。此时可以再投币或选择退币。当投稿的钱币在23 元之间时,汔水选择指示灯长亮。当大于3 元时,汔水和咖啡的指示灯同时长亮。此时可以选择饮料或选择退币。3选择系统:比较电路完成后选择电路指示灯是长亮的,当按下汽水或咖啡选择时,相应的选择指示灯由长亮转为以1

6、秒为周期闪烁。当饮料供应完毕时,闪烁同时停止。4饮料供应系统:当按下选择按钮时,相应的电磁阀(Y4 或 Y6)和电机( Y3 或 Y5)同时启动。在饮料输出的同时, 减去相应的购买钱币数。当饮料输出达到8 秒时, 电磁阀首先关断,小电机继续工作 0.5 秒后停机。此小电机的作用是:在输出饮料时,加快输出。在电磁阀关断时,给电磁阀加压作用,加速电磁阀的关断。(注:由于该售货机是长期使用,电磁阀使用过多时,返回弹力减少, 不能完全关断会出现漏饮料的现象。此时电机Y3 和 Y5 延长工作0.5 秒起到电磁阀加压的作用,使电磁阀可以完好的关断。)5退币系统:当顾客购完饮料后,多余的钱币只要按下退币按钮

7、。系统就会把数据寄存器D2 内的钱币数首先除以10 得到整数部分, 是1 元钱需要退回的数量,存放在D10里。余数存放在D11里。再用D11 除以5 得到的整数部分是5 角钱需要退回的数量,存放在D12 里。余数存放在D13里。最后D13 里面的数值,就是1 角钱需要退回的数量。在选择退币的同时启动3 个退币电机。 3 个感应器开始计数,当感应器记录的个数等于数据寄存器退回的币数时,退币电机停止运转。6报警系统:报警系统如果是非故障报警,只要通过网络通知送液车或者送币车即可。但是如果是故障报警则需要通知维修人员到现声进行维修。同时停止服务,避免造成顾客的损失。2.3 业务流程图钱币记录仪对钱币

8、进行识别前端接受顾客投的币判断退出钱币发送信息到分配器判断没有货物时发送信发送货物息到前端2.4 数据流程图钱币分配器反钱币钱币记录仪对与货物价格进货物发放钱币进行计算行比较取走零钱与购买的货物三、各种 UML 图型及其分析3.1 用例图1. 顾客的用例图chooseSodainputCoinCustomer2. 自动售货机的用例图RegisterDispenserFrontSodaMachine3.2 类图3.3 序列图1. 理想状态(不找零钱)的序列图:Front:Register:Dispenser: Customer1: inputCoin()2: accept()3: getCust

9、omerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: releaseSoda()2. 没有货物的序列图:Front:Register:Dispenser: Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt

10、()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: displayPrompt()12: sendReturnCoin()13: returnCoinToFront()14: returnCoin()3. 需找零钱的序列图:Front:Register:Dispenser: Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()

11、7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForChange()13: releaseChange()14: receiveSoda()15: receiveChange()4. 没有零钱找给顾客:Front:Register:Dispenser: Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: d

12、isplayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForCharge()13: returnNoCharge()14: returnCoinToFront()15: displayPrompt()16: returnSodaToDispenser()17: returnCoin()5. 完整的序列图:Front:Register:Dispenser: Customer1: inputCoin()2: accept(

13、)3: getCustomerInput()4: checkForSoda()5: returnNoCharge()6: returnCoinToFront()7: displayPrompt()8: returnCoin()9: End()10: returnSodaFree()11: displayPrompt()12: chooseSoda()13: sendChooseToDispenser()14: checkAvailability()15: returnUnavailability()16: displayPrompt()17: sendReturnCoin()18: retur

14、nCoinToFront()19: returnCoin()20: End()21: releaseSoda()22: sendSodaFrice()23: checkForCharge()24: returnNoCharge()25: returnCoinToFront()26: displayPrompt()27: returnSodaToDispenser()28: returnCoin()29: End()30: releaseCharge()31: receiveSoda()32: receiveCharge()33: End()34: receiveSoda()35: End()3

15、.4 协作图1. 理想状态的协作图3: getCustomerInput()9: checkAvailability()4: checkForSoda():Register:Dispenser8: sendChooseToDis()2: accept()5: returnSodaFree()10: releaseSoda()1: inputCoin()7: chooseSoda():Front6: displayPrompt(): Customer 11: releaseSoda()2. 没有货物的协作图1: inputCoin()7: chooseSoda():Front6: display

16、Prompt(): Customer11: displayPrompt()14: returnCoin()13: returnCoinToFront()8: sendChooseToDis()2: accept()5: returnSodaFree()12: sendReturnCoin()10: releaseSoda()3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer3. 需找零钱的协作图1: inputCoin()7: chooseSoda():Front6: displayPr

17、ompt(): Customer14: receiveSoda()15: receiveChange()13: releaseChange()8: sendChooseToDis()2: accept()5: returnSodaFree()10: releaseSoda()3: getCustomerInput()12: checkForChange()9: checkAvailability():Registe4: checkForSoda():Dispensrer11: sendSodaPrice()4. 没有零钱找给顾客的协作图1: inputCoin()7: chooseSoda()

18、:Front: Customer6: displayPrompt()15: displayPrompt()17: returnCoin()13: returnNoCharge()8: sendChooseToDis()14: returnCoinToFront()16: returnSodaToDispenser()2: accept()5: returnSodaFree()3: getCustomerInput()10: releaseSoda()12: checkForCharge()9: checkAvailability()4: checkForSoda():Register:Disp

19、enser11: sendSodaPrice()5. 完整的协作图29: End()33: End()35: End(): Customer1: inputCoin()12: chooseSoda():Front7: displayPrompt()8: returnCoin()11: displayPrompt()16: displayPrompt()19: returnCoin()26: displayPrompt()28: returnCoin()13: sendChooseToDispenser()31: receiveSoda()32: receiveCharge()27: returnSodaToDispenser()34: receiveSoda()10: returnSodaFree()5: returnNoCharge()15: returnUnavailability()21: releaseSoda()6: returnCoinToFront()18: returnCoinToFront()14: checkAvailability()24: returnNoCharge()25: returnCoinToFront

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论