面向对象分析实践大作业(40%)下面是自动售货机系统的需求陈述,请你:1.编写分析和设计报告;2.报告分需求分析、系统设计和对象设计三部分编撰,各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等;3.大作业的结构为:A项目需求说明B需求分析报告C系统设计报告D对象设计报告E分析设计过程说明:这部分介绍分析和设计过程中使用了什么技术需求陈述:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、五分币、二分币、一分币。
其他货币被认为是假币。
机器拒绝接受假币,并将其从退币孔退出。
当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。
顾客支付的货币根据硬币的面值进行累加。
自动售货机装有货物分配器。
每个货物分配器中包含零个或多个价格相同的货物。
顾客通过选择货物分配器来选择货物。
如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。
如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。
如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。
如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。
参考资料:《软件工程》张海藩清华大学出版社 2009年第一版下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、五分币、二分币、一分币。
其他货币被认为是假币。
机器拒绝接受假币,并将其从退币孔退出。
当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。
顾客支付的货币根据硬币的面值进行累加。
自动售货机装有货物分配器。
每个货物分配器中包含零个或多个价格相同的货物。
顾客通过选择货物分配器来选择货物。
如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。
如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。
如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。
如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。
参考资料:《软件工程》张海藩清华大学出版社 2009年第一版面向对象的分析面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型),来获得关于问题域的全面认识。
这三个模型从不同的角度对系统进行描述,其中:对象模型描述了系统静态的、结构化的数据性质;动态模型描述了系统顺势的、行为化的控制性质;功能模型描述了变化的系统的功能性质。
这三个模型都涉及到数据。
控制和操作等共同的概念,但每种模型描述的侧重有所不同。
它们各自以不同侧面反应系统的实质内容,综合起来则全面反映了目标系统的需求。
对象模型是三个模型中最关键的。
它的作用是描述系统的静态结构,包括构成系统的类和对象、它们的属性和操作以及它们之间的联系。
UML中类图适用于建立对象模型,状态图适用于建立动态模型。
每个类的动态行为用一张状态图来表示,各个类的状态图通过事件合并起来,构成系统的动态模型。
也就是说,动态模型是基于事件共享而相互关联的一组状态图的集合。
建立对象模型大体上按照下列顺序进行:寻找问题域内的对象,识别出对象间的关系、定义属性和服务。
事实上,分析工作不可能严格按照预定顺序进行,系统的模型往往需要反复构造多遍才能建成。
注:对象硬币计算器和对象硬币检测器可以作为对象自动售货器的一部分,它们的属性作为自动售货器的属性。
建立动态模型对于仅存数静态数据的系统来说,动态模型并没有什么实际意义。
然而在开发交互式系统时,动态模型却起着很重要的作用。
如果收集输入信息是目标系统的一项主要工作,则在开发这类应用系统时建立正确的动态模型是至关重要的。
建立动态模型的步骤:(1) 编写典型的对话脚本;(2) 从脚本中提取出事件,联系该事件与其目标对象;(3) 组织事件的顺序和状态(采用状态图描绘);(4) 比较各个不同对象的状态图,检查对象之间的一致性,确保事件之间的匹配。
提示投币检查硬币提示是假币,退币存储硬币,计算货币总值确认投完硬币请求选择货物检测货物存量提示无货计算比较货币总值和货物价格确认确认顾客购买送出货物,请求取货退币请求取退币提示显示交易完毕提示货物不足,确认顾客购买否假币投币真币是选择货物无货小于不购买购买不购买功能模型功能模型描述了系统的所有计算。
功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。
功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。
功能模型由多张数据流图组成。
数据流图用来表示从源对象到目标对象的数据值的流向,它不包含控制信息,控制信息在动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。
数据流图中包含有处理、数据流、动作对象和数据存储对象。
1.处理数据流图中的处理用来改变数据值。
最低层处理是纯粹的函数,一张完整的数据流图是一个高层处理。
2.数据流数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。
在一个计算机中,用数据流来表示一中间数据值,数据流不能改变数据值。
3.动作对象动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。
4.数据存储对象数据流图中的数据存储是被动对象,它用来存储数据。
它与动作对象不一样,数据存储本身不产生任何操作,它只响应存储和访问的要求。
等待顾客投币检查硬币退币退假币分配货物,找零货物价格有效币特征顾客投币顾客取消购买,退币送入硬币储藏器计算面值判断货币是否足够判断分配器货物存量顾客假币顾客假币有效币货币总值硬币选择货物无货有货足够不足硬币货物,硬币硬币C 语言课程设计 需求分析与系统设计报告目录1 引言 (13)1.1背景 (13)1.2定义 (13)1.3参考资料 (13)2 需求分析 (14)2.1需求分析 (14)2.2运行环境 (4)3 系统设计 (5)3.1功能需求描述 (5)3.2软件结构 (7)3.3 程序模块划分 (8)4 组员分工及时间安排 (9)4.1 组员分工 (9)4.2 时间安排 (9)1 引言1.1背景自动售货机是能根据投入的钱币自动付货的机器。
自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。
是一种全新的商业零售形式,又被称为24小时营业的微型超市。
自动售货机能够充分补充人力资源的不足,适应消费环境和消费模式的变化,可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。
1.2定义课程设计中用到的专门术语的定义(暂定)。
English Menu InsertC Consumer Shipment Drink Admin中文菜单投币顾客出货饮料管理员English OddCh Replenish Consult Error Cancel Exit中文找零补货查询错误取消退出1.3参考资料1.王士元. C高级实用程序设计. 北京: 清华大学出版社. 19962.潭浩强. C语言程序设计. 北京: 清华大学出版社, 20003.百度2 需求分析2.1需求分析说明:本自动售货机图形模拟系统为模拟饮料自动售货机。
(1)包含实体1,顾客实体2,物品管理系统实体(饮料)3,记币管理器实体4,管理员实体5,故障系统实体(2)关系模式1,顾客:投币,选择饮料,购买数量,取货,取零钱;2,物品管理系统:饮料名称,饮料价格,饮料数量,出货;3,记币管理系统:顾客投钱数,总金额 ,饮料单价,投币金额不足,找零金额;4, 管理员:补货,查询,统计;5, 故障系统:故障显示,报警;2.2运行环境本自动售货机图形模拟系统是对自动售货机工作行为及工作环境的模拟实现,因此,对此系统的运行环境将是在计算机上面进行,即在电脑上模拟实现。
根据自动售货机图形模拟系统设计环境要求,即在DOS环境下,用C语言编译实现,使用TC或BC开发软件,因此,此模拟系统可在绝大多数现形计算机系统上运行,包括最常见的windows xp 操作系统以及windows 7 32位机上运行,但由于兼容性问题,此自动售货机图形模拟系统在含windows 7 64位操作系统的计算机上运行可能出现意想不到的问题或根本不能运行,因而,不推荐在包含64位操作系统的计算机上测试本自动售货机图形模拟系统。
3 系统设计3.1 功能需求描述(1)自动售货机能销售三种饮料:罐装可乐(2元)、果汁(3.5元)、牛奶(4元),设饮料数量无限。
(2)自动售货机允许投入5角、1元硬币,5元纸币,只找出5角、1元硬币。
(3)ⅰ.当总币值等于顾客需要的饮品单价时,机器显示交易金额并送出需要的商品;ⅱ.当总币值大于顾客需要的饮品单价时,机器显示交易金额并除提供所需饮品外,还提供找零:A.若机内5角硬币不足时,当投入5元纸币购买2元、4元或3.5元饮料时,2元4元饮料卖,并正常找零,3.5元饮料不卖并退回5元;B.若机内5角、1元硬币都不足时,当投入5元纸币购买2元4元或3.5元的饮料时,均不卖,并退回5元;ⅲ.当总币值小于顾客需要的商品单价时,机器会退出顾客投入的硬币,并显示投币金额不足的提示。
(4)当投入的硬币总值达到或大于饮品的最低单价时,物品管理系统自动接入,并提供能够选择的饮品类型,交易金额将输出到显示屏。
(5)每次投币时间有限制,设定每次投币时间不超过30秒,在时间到时,总币值不足顾客购买的饮品单价时,自动售货机按不足钱数处理,输出投币金额不足提示,并自动计时10秒,10秒内若金额还不足,系统则自动取消交易并退还全部硬币。
(6)设置取消键,当交易过程中顾客输入错误时,按下取消键系统自动终止交易,返回到初始状态并退出全部金额。
(7)当顾客完成一次购买后系统自动恢复到初始状态。
(8)顾客一次只能购买一种饮品的一个,若需要更多饮品,需要重复操作。
3.2软件结构规 系统流程图开始界面投币计数器工作,判断 是否投币不足退币,计数器工作饮品管理模块启动,提供与完成饮品选择操作错误,按下取消键外部端口,出货、补货、查询、统计功能选择完成,出货,是否找零模拟选择过程YNNY外部端口,退币3.3 程序模块划分计数模快显示模块判断 选择 否出货管理模块外部接口是否 剩余是退币模块显示模块外部接口投币状态购买状态 退币状态 初始状态4 组员分工及时间安排4.1 组员分工内部商定,协调安排。