《小狸猫的自动售货机》读后感300字(五篇范文)

时间:2020-07-14 14:40:30下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《小狸猫的自动售货机》读后感300字》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《小狸猫的自动售货机》读后感300字》。

第一篇:《小狸猫的自动售货机》读后感300字

《小狸猫的自动售货机》读后感300字(精选4篇)

读完一本经典名著后,你有什么领悟呢?何不静下心来写写读后感呢?那么如何写读后感才能更有感染力呢?以下是小编整理的《小狸猫的自动售货机》读后感300字,欢迎大家借鉴与参考,希望对大家有所帮助。

《小狸猫的自动售货机》读后感300字1

今天我读了一本书,名字叫《小狸猫的自动售货机》,这本书讲了一只小狸猫朋朋很厉害,它可以用叶子变成王冠、项链、治牙痛的药等东西,大家以为是自动售货机变出来的,都觉得很惊喜。可是来了一只小狸猫姑娘友友,她没有一个朋友,想要自动售货机给她变一个朋友。这下可把朋朋愁坏了,但是他想到了一个好主意,虽然有些害羞,但他还是勇敢地从自动售货机后面跳出来成为了友友的朋友。

在这个故事里,我很喜欢朋朋,因为很多人在交朋友的时候,都会害羞,朋朋克服了这些困难,勇敢地和友友成为了朋友。我和爸爸、妈妈出去参加聚会活动的时候,也会碰到一些陌生的小朋友,如果我多跟他们交流,慢慢地我就会和他们成为好朋友。

我希望这本书能让更多的小朋友看见,希望我和他们也能成为好朋友。

《小狸猫的自动售货机》读后感300字2

《小狸猫的自动售货机》讲的是一个温暖而简短的故事,配上萌萌的绘图,让整个故事更好看了。都说越长大越孤单,其实这主要是看一个人是怎么想的。你要是觉得世界很美好,它就很美好。你要是觉得世界很孤独,它就是很孤单。所以,其实世界很简单,人类很复杂。

故事很简短,但充满着小温馨。小狸猫因为好奇心,而做了一个自动售货机。在帮助别人的同时,自己也不断在成长。看到别人实现小心愿,自己也很开心,这就是简单而美好的小幸福。帮助别人,总会有收获的,所以,朋朋多了一个朋友,友友。朋友本来就是一起的,作者用朋朋和友友来取名字也恰到好处。

如果朋朋不愿意放下自动售货机,它就失去了一个朋友。虽然这其中朋朋失去自动售货机的乐趣,但是,朋朋得到了一个好朋友。这不也是一个很好的选择吗?故事里都是善良的小动物,很简单,不用思考太复杂的事情。小孩不也正是如此吗?现在大部分的家长都会给自己孩子报各种培训班,生怕孩子一开始就输在了起跑线上,可这些都是孩子们想要的吗?有些时候,我们也该听听孩子的想法,让他们快乐健康的成长才是最好的选择。

《小狸猫的自动售货机》读后感300字3

这本由日本作者加藤真纯写的《小狸猫的自动售货机》,由双螺旋童书馆为我们引进,由光明日报出版社出版。该绘本收录在日本最打动人心的经典绘本合集中,为四册中的一本。该绘本首页的淡绿色充满了希望,也让人心情愉悦,也意味着这是一个暖心的绘本。

自动售货机可以可以投钱后出来东西,对于孩子来说是非常有吸引力的。他们好奇,为什么按几下按钮,东西就能出来。正是作者抓住孩子的心理,而创作了这个绘本。由于水野二郎经历过战争,看到了人们最初对于这个机器的好奇,到慢慢接受,到普及,从最初使用的惊讶,初次购物的欣喜,到兴奋,到淡然使用。将这些融入到绘本绘制过程中,朋朋开心时,眯着小眼睛,小狮子吃惊的张大嘴巴,瞪着眼睛,得到心仪的.东西,开心的摇头跳起的样子;牙痛哭的小猴子,那流泪的样子,这些那么熟悉的表情,出现在小动物的身上。而帮助大家实现愿望的朋朋,最终也得到了最想要的东西。

《小狸猫的自动售货机》读后感300字4

《小狸猫的自动售货机》是一本很可爱的绘本书,把小狸猫画得聪明可爱又那么灵巧,真是太懂事了,而且非常爱思考。绘本书的纸质很好的,色彩非常鲜艳明丽,给人一真很美好很开心的感觉。孩子看这本书的时候,都把里面的故事翻熟了呢。

小狸猫在山下发现了人类的自动售货机,只要投进钱就能出来东西。小狸猫觉得很新奇,它想狸猫最善长变东西了,干脆在山上做个自动售货机吧。然后,这个叫朋朋的小狸猫躲在自动售货机后面等客人,来了一头狮子,它把树叶丢进了售货机上面的入口,然后小狸面变出了一个王冠从售货机口里的吐出来,小狮子高兴的手舞足蹈。

真是太难为朋朋了,它如此可爱,而且爱想爱做,这个自动售货机的实验是非常有趣并且它做成功了。虽然不能一直做下去,但是朋朋已经在其中找到了乐趣并明白了许多事情吧。这样的童书会带动孩子们一边思考一边玩一边做事,真的很棒的。

第二篇:软件工程_自动售货机

自动售货机

信息1101 施敏宇 18号

下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。

面向对象的分析

面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型),来获得关于问题域的全面认识。

这三个模型从不同的角度对系统进行描述,其中:对象模型描述了系统静态的、结构化的数据性质;动态模型描述了系统顺势的、行为化的控制性质;功能模型描述了变化的系统的功能性质。这三个模型都涉及到数据。控制和操作等共同的概念,但每种模型描述的侧重有所不同。它们各自以不同侧面反应系统的实质内容,综合起来则全面反映了目标系统的需求。

对象模型是三个模型中最关键的。它的作用是描述系统的静态结构,包括构成系统的类和对象、它们的属性和操作以及它们之间的联系。UML中类图适用于建立对象模型,状态图适用于建立动态模型。每个类的动态行为用一张状态图来表示,各个类的状态图通过事件合并起来,构成系统的动态模型。也就是说,动态模型是基于事件共享而相互关联的一组状态图的集合。建立对象模型大体上按照下列顺序进行:寻找问题域内的对象,识别出对象间的关系、定义属性和服务。事实上,分析工作不可能严格按照预定顺序进行,系统的模型往往需要反复构造多遍才能建成。

注:对象硬币计算器和对象硬币检测器可以作为对象自动售货器的一部分,它们的属性作为自动售货器的属性。

建立动态模型

对于仅存数静态数据的系统来说,动态模型并没有什么实际意义。然而在开发交互式系统时,动态模型却起着很重要的作用。如果收集输入信息是目标系统的一项主要工作,则在开发这类应用系统时建立正确的动态模型是至关重要的。

建立动态模型的步骤:

(1)编写典型的对话脚本;

(2)从脚本中提取出事件,联系该事件与其目标对象;

(3)组织事件的顺序和状态(采用状态图描绘);

(4)比较各个不同对象的状态图,检查对象之间的一致性,确保事件之间的匹配。

提示投币投币购买提示是假币,退币假币检查硬币否真币存储硬币,计算货币总值确认投完硬币是请求选择货物选择货物检测货物存量无货提示无货计算比较货币总值和货物价格确认确认顾客购买小于提示货物不足,确认顾客购买不购买送出货物,请求取货不购买退币请求取退币提示显示交易完毕

功能模型

功能模型描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。功能模型由多张数据流图组成。数据流图用来表示从源对象到目标对象的数据值的流向,它不包含控制信息,控制信息在动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。

数据流图中包含有处理、数据流、动作对象和数据存储对象。

1.处理

数据流图中的处理用来改变数据值。最低层处理是纯粹的函数,一张完整的数据流图是一个高层处理。

2.数据流

数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。在一个计算机中,用数据流来表示一中间数据值,数据流不能改变数据值。

3.动作对象

动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。

4.数据存储对象

数据流图中的数据存储是被动对象,它用来存储数据。它与动作对象不一样,数据存储本身不产生任何操作,它只响应存储和访问的要求。

有效币特征假币退假币假币检查硬币有效币硬币送入硬币储藏器计算面值货物价格有货货币总值硬币顾客投币顾客不足等待顾客投币顾客取消购买,退币顾客判断货币是否足够足够选择货物判断分配器货物存量无货分配货物,找零货物,硬币硬币退币

第三篇:自动售货机合作合同

自动售货机合作协议书

甲 方:南京威汀贸易有限公司

乙 方:

甲、乙双方本着平等、互惠的原则,经过友好协商,就合作放置自动售货机开展的服务

达成如下协议:

第一条 综合条款

1.甲方向乙方提供自动售货()机台,咖啡机经营。

2.乙方向甲方所提供场地指定在(地址)()共()处。

3.甲方所提供自动售货机编号为共台。咖啡机编号为共台

4.甲方在年月日前,将自动售货机调试后运送到位投入使用。

5.合作期间,放置于乙方处自动售货机的所有权归属于甲方。

第二条 服务内容

1.甲方保证所提供之自动售货机内销售的商品符合中华人民共和国国家卫生标准及企

业技术质量标准。

2.甲方负责自动售货机的日常运营工作,并承担运营成本(商品补给、设备保养、清

洁及日常维修)等费用。

3.甲方工作人员进入乙方区域,服从乙方负责人的管理。

4.乙方如因特殊情况需要移动自动售货机位置,必须事先通知甲方,由甲方工作人员

在3个工作日内迁移设备。

5.乙方对自动售货机协助保管,发现设备故障或消费者投诉应及时通知甲方,甲方应

及时处理解决,设400,000,2991投诉专线,遇卡货卡币投诉立即全额理赔并免费奉送所购商品。

第三条 协议条件、期限

1.本协议自签定之日起即刻生效,协议期限以一年为准,协议期满,如双方无异议,本协议自动延续至下一年同月日。

2.协议期内甲方按装置自动售货机前双方商定的费用元,付给乙方,一季度

结算一次。

第四条 协议解除

1.如果乙方场地另有用途需提前15日通知甲方撤走.2.如自动售货机持续销售状况不佳,甲方提前10天告知乙方,在结算清相关费用后,解除协议。

其他约定:。

第五条本协议一式二份,双方各执一份,具有同等法律效力。

甲方盖章:南京威汀贸易有限公司

代表签字:

代表签字:乙方盖章:联系电话: 025-85552178联系电话:

地址: 地址: 南京市栖霞区金尧路19-5

日期:

第四篇:软件工程课程设计(自动售货机)

《软件工程》课程设计报告

一、问题描述

(一)关于自动售货机

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

(二)自动售货机的设计

自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币和一分币。其它货币都被认为是假币。机器拒收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。

自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。

二、需求分析

(一)UML自动售货机系统功能需求:

自动售货机系统是一种无一元等3个硬币投币口。顾客确认购货后,售货机可根据硬币的面值进行累加。

自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过 1 选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。

(二)UML自动售货机系统控制要求:

根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括:计币系统、比较系统、选择系统、饮料供应系统、退币系统和报警系统。

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.报警系统:

报警系统如果是非故障报警,只要通过网络通知送液车或者送币车即可。但是如果是故障报警则需要通知维修人员到现声进行维修。同时停止服务,避免造成顾客的损失。

(三)业务流程图

钱币记录仪对钱币前端接受顾客投的进行识别币判断退出钱币发送信息到分配器判断没有货物时发送信息到前端发送货物4

(四)数据流程图

钱币钱币记录仪对分配器反钱币钱币进行计算与货物价格进货物发放行比较取走零钱与购买的货物

三、各种UML图型及其分析

(一)用例图

1.顾客的用例图

inputCoinchooseSodaCustomer

2.自动售货机的用例图

RegisterDispenserFrontSodaMachine

(二)类图

(三)序列图

理想状态(不找零钱)的序列图

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

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

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForChange()13: releaseChange()14: receiveSoda()15: receiveChange()10

没有零钱找给顾客

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

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()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: returnCoinToFront()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()12

(四)协作图

1.理想状态的协作图

3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer8: sendChooseToDis()2: accept()5: returnSodaFree()1: inputCoin()10: releaseSoda()7: chooseSoda():Front : Customer6: displayPrompt()11: releaseSoda()2.没有货物的协作图

1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()11: displayPrompt()14: returnCoin()13: returnCoinToFront()8: sendChooseToDis()2: accept()5: returnSodaFree()12: sendReturnCoin()10: releaseSoda()3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer 3.需找零钱的协作图

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

1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()15: displayPrompt()17: returnCoin()13: returnNoCharge()14: returnCoinToFront()8: sendChooseToDis()16: returnSodaToDispenser()2: accept()5: returnSodaFree()3: getCustomerInput()10: releaseSoda()12: checkForCharge()9: checkAvailability()4: checkForSoda():Registe:Dispensrer11: sendSodaPrice()

完整的协作图

29: End()33: End()35: End()1: inputCoin()12: chooseSoda():Front : Customer7: displayPrompt()8: returnCoin()11: displayPrompt()16: displayPrompt()19: returnCoin()26: displayPrompt()28: returnCoin()31: receiveSoda()13: sendChooseToDispenser()32: receiveCharge()27: returnSodaToDispenser()34: receiveSoda()10: returnSodaFree()5: returnNoCharge()15: returnUnavailability()6: returnCoinToFront()21: releaseSoda()18: returnCoinToFront()24: returnNoCharge()14: checkAvailability()25: returnCoinToFront()30: releaseCharge()2: accept()17: sendReturnCoin():Dispenser4: checkForSoda()3: getCustomerInput()22: sendSodaFrice()23: checkForCharge():Register15 5.(五)状态图

提示投币do/ 请求投币do/ 提示是假币假币do/ 检查硬币真币否购买do/ 存储硬币,计算货币总值do/ 确认投完硬币有do/ 请求选择商品选择货品do/ 提示无货无货do/ 检测货品存量有货计算小于do/ 比较货币总值和货物价值do/ 提示货币不足不小于确认do/ 确认顾客购买do/ 送出货品,请求取货有零钱退币无零钱do/ 请求退币不购买显示do/ 提示交易完成17

(六)活动图

1.投币的活动图

投币确认投币完成2.选择货物的活动图

请求选择输入货物确认选择货物ID 3.前端的活动图

接受货币显示可购显示面值货物过小显示没有该货物接受饮料显示没有零钱找零钱退货币 19

货币记录仪的活动图

接受从前端来的钱币判断钱币发送信息给分配仪发送货物金额给前端返回钱币计算零钱20 4.5.分配器的活动图

接受货币启示录仪的信息发送货物提示没有该货物 21

(七)组件图

CustomerSodaMachineFrontRegisterDispenserDB_0

(八)配置图

Clint数据库

(九)数据模型图

第五篇:自动售货机系统程序

Coin类:

#include #include #include

using namespace std;

class Coin { public: /** Constructs a coin with a given name and value @param n the coin name @param v the coin value */ Coin(string n, double v);/** Gets the coin name.@return the name */ string get_name()const;/** Gets the coin value @return the value */ double get_value()const;private: string name;double value;};

Coin::Coin(string n, double v){ name = n;value = v;}

string Coin::get_name()const { return name;}

double Coin::get_value()const { return value;}

Product类: #include #include #include

using namespace std;

class Product { public: /** Constructs a product with a given name, price and quantity @param n the product name @param p the price @param q the quantity */ Product(string n, double p, int q);/** Gets the product name @return the name */ string get_name()const;/** Gets the product price @return the price */ double get_price()const;/** Gets the product quantity @return the quantity */ int get_quantity()const;/** Adds to the product quantity @param amount the amount to add */ void add_quantity(int amount);private: string name;double price;int quantity;};

Product::Product(string n, double p, int q){ name = n;price = p;quantity = q;}

string Product::get_name()const { return name;}

double Product::get_price()const { return price;}

int Product::get_quantity()const { return quantity;}

void Product::add_quantity(int amount){ quantity = quantity + amount;}

VendingMachine类:

class VendingMachine { public: /** Constructs a vending machine with no current product selection.*/ VendingMachine();/** Adds product to the machine.@param p the product to add */ void add_product(Product p);/** Sets the currently selected product @param name the product name @return true if the machine has a product with the given name */ bool select_product(string name);void chaxun_product();//查询当前售货机内的商品

/** Adds a coin to pay for the currently selected product.@param c the coin to add @return true if sufficient coins have been added to pay for the selected product.*/ bool add_coin(vector current_pay);/** Removes all coins that were added to pay for the current product.@return the value of the returned coins */ double return_coins();/** Removes all money that was paid for products.@return the value of the money */ double remove_money();double add_coinbijiao(vector current_pay);//对投入的金钱和所购买的商品的价格进行比较

double return_yiyoucoins();//统计售货机中已有的货款 void setcurrent_product();//把当前选择的商品代号置为-1 int getcurrent_product();//得到当前选择的商品代号 private: vector

products;int current_product;vector current_payment;vector coins;};

VendingMachine::VendingMachine(){ current_product =-1;}

void VendingMachine::add_product(Product p)//添加商品 { for(int i = 0;i < products.size();i++){ if(products[i].get_name()== p.get_name()&& products[i].get_price()== p.get_price()){ products[i].add_quantity(p.get_quantity());cout<<“添加成功!”<

{

cout<<“已存在该商品,与您输入的价格不同!”<

return;

} } products.push_back(p);cout<<“添加成功!”<

bool VendingMachine::select_product(string name)//选择商品 {

int i;for(i = 0;i < products.size();i++){

if(products[i].get_name()== name && products[i].get_quantity()> 0){ current_product = i;return true;} else { if(products[i].get_name()== name && products[i].get_quantity()== 0){ cout << “对不起,该商品已售完!n”;return false;} } } if(i==products.size()){ cout<<“对不起,不存在该商品!”<

double VendingMachine::return_yiyoucoins()//统计售货机当前的金钱总额 { double total = 0;for(int i = coins.size()1;i >= 0;i--){ coins.push_back(current_payment[i]);current_payment.pop_back();} products[current_product].add_quantity(-1);current_product =-1;cout<<“交易成功!”<

{ return false;} }

double VendingMachine::add_coinbijiao(vector current_pay){ if(current_product ==-1)return false;double total = 0;for(int k=0;k < current_pay.size();k++){ total = total + current_pay[k].get_value();

} double m=products[current_product].get_price()-total;if(m>0)return m;else return-1;}

double VendingMachine::return_coins()//统计当前投入的金钱总额 { double total = 0;for(int i = current_payment.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

void VendingMachine::chaxun_product(){

if(products.size()==0){ cout<<“暂时没有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

int VendingMachine::getcurrent_product(){ return current_product;}

Main函数:

#include #include #include #include“coin.h” #include“product.h” #include“machine.h” using namespace std;

void main(){ vector coins;vector current_pay;coins.push_back(Coin(“nickel”, 0.05));coins.push_back(Coin(“dime”, 0.1));coins.push_back(Coin(“quarter”, 0.25));coins.push_back(Coin(“rmb”, 1.00));

VendingMachine machine;bool more = true;machine.chaxun_product();while(more){ cout << “a)添加商品 x)查询商品 s)选择商品 p)投币 c)取消 e)查询当前金额 r)取款 q)退出: ”;string command;cin>>command;if(command == “a”){ cout << “商品名: ”;string name;cin>>name;

cout << “价格: ”;double price;cin >> price;cout << “数量: ”;int quantity;cin >> quantity;machine.add_product(Product(name, price, quantity));} else if(command == “s”){

double total1;

total1=machine.return_yiyoucoins();

if(total1>=5000)//当售货机中的货款大于等于5000时,暂停售货

{

cout<<“对不起,现在暂停售货!”<

}

else

{ machine.setcurrent_product();cout << “商品名: ”;string name;cin>>name;machine.select_product(name);

} } else if(command == “p”){

if(machine.getcurrent_product()!=-1)//如果当前已选择商品,才可以投币

{ bool panduan=false;while(!panduan)//多次投币的实现

{ cout << “所投钱币名称(以 # 结束投币过程):”;string name;cin>>name;while(name!=“#”){ bool found = false;for(int i = 0;!found && i < coins.size();i++){ if(coins[i].get_name()== name){ current_pay.push_back(coins[i]);found=true;} } if(!found){ cout << “不存在该货币,请重新投入:n”;} cin>>name;

}

double k=machine.add_coinbijiao(current_pay);if(k==-1)

{ machine.add_coin(current_pay);for(int i = current_pay.size()1;i >= 0;i--){ total = total + current_pay[i].get_value();current_pay.pop_back();} cout << “Returned(退还)” <

else

cout<<“您还没有选择商品!”<

{

machine.setcurrent_product();

double total=0;

for(int i = current_pay.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

void VendingMachine::chaxun_product(){

if(products.size()==0){ cout<<“暂时没有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

int VendingMachine::getcurrent_product(){ return current_product;} }

JAVA

import Input.touqian;import java.*;class shangpin {

} class fenpeiqi {

}

class xianshichanpin {

fenpeiqi fpq[]=new fenpeiqi[3];public xianshichanpin(){

fpq[0]=new fenpeiqi(3.0);fpq[0].sp[0]=new shangpin(“玉米烤肠

”,10);fpq[0].sp[1]=new shangpin(“可口可乐

”,15);fpq[0].sp[2]=new shangpin(“百事可乐

”,10);fpq[1]=new fenpeiqi(5.0);fpq[1].sp[0]=new shangpin(“哈德门香烟”,10);fpq[1].sp[1]=new shangpin(“将军香烟

”,15);fpq[1].sp[2]=new shangpin(“红梅香烟

”,10);fpq[2]=new fenpeiqi(10.0);fpq[2].sp[0]=new shangpin(“一支笔香烟”,10);fpq[2].sp[1]=new shangpin(“红塔山香烟”,10);fpq[2].sp[2]=new shangpin(“泰山香烟

”,15);double price;shangpin sp[]=new shangpin[3];public fenpeiqi(double price){ } this.price=price;String name;int num;public shangpin(String name,int num){

} this.name=name;this.num=num;

#“);#”);#“);#”);#“);

} } void show(){ System.out.println(”===============

System.out.println(“#

System.out.println(”#

System.out.println(“#

欢迎使用自动售货机

System.out.println(”#

System.out.println(“#

=================”);System.out.println(“===============

System.out.println();System.out.println(”编号tt“+”名称ttt“+”价格tt“+”数量t“);for(int i=0;i

} if(fpq[i]!=null){

} for(int j=0;j

} } if(fpq[i].sp[j]!=null){ =================”);System.out.println((i+1)*10+j+1+“tt”+fpq[i].sp[j].name+“tt”+fpq[i].price+“tt”+fpq[i].sp[j].num);System.out.println(“=============== } =================”);class panduan { boolean ying()

} {

} boolean zhi(){

}

int z=touqian.in();

if(z==5||z==10){ } else { } return false;return true;double y=touqian.dou();if(y==1||y==0.5){ } else { } return false;return true;class jiabi {

switch(touqian.in())void ceshi(){ System.out.println(“请选择投放钱的类型 ”);System.out.println(“1 表示投放 硬币”);System.out.println(“2 表示投放 纸币”);System.out.println(“请输入您选择的钱的类型 :”);

panduan pd=new panduan();

{ case 1:

System.out.println(“请您投入有效的面值”);

if(pd.ying())

{

System.out.println(“您投入的是有效地硬币”);

System.out.println();

// System.out.println(“^_^ 请选择您所需要的物品^_^”);

}

else

}

class chanpin {

{

System.out.println(“您投入的不是有效地硬币,请您重新投入”);

}

break;

case 2 :

System.out.println(“请您投入有效的面值”);

if(pd.zhi())

{

//

}

else

{

}

break;

default :

System.out.println(“请您重新投入有效地货币”);

} }

System.out.println(“您投入的不是有效的纸币,请您重新投入”);System.out.println(“您投入的是有效的纸币”);System.out.println();System.out.println(“^_^ 请选择您所需要的物品^_^”);

} } public static void main(String args[]){

System.out.println(“请输入您想要产品的编码:”);int bianma;bianma=touqian.in();System.out.println(“请输入您想要产品的数量:”);int shuliang;shuliang=touqian.in();System.out.println(“您一共要付:”);double sumjine;sumjine= xianshichanpin xscp=new xianshichanpin();xscp.show();

下载《小狸猫的自动售货机》读后感300字(五篇范文)word格式文档
下载《小狸猫的自动售货机》读后感300字(五篇范文).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    自动售货机联营合作协议

    自动售货机联营合作协议 甲方: 乙方:*********地有限公司 甲.乙双方本着平等、互惠的原则,经过友好协商,就通过自动售货机开展经营活动达成如下协议: 第一条综合条款 1. 2. 3.......

    c语言自动售货机实验报告

    课程设计 课程名称 C语言高级程序设计 xxx XXX XXX XXX XXX 学 院 小组成员1 小组成员2 小组成员3 任课教师 2016——2017学年 第1学期 1 一. 所选题目与要求 自动售货......

    自动售货机测试用例

    题目:有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机......

    2012EDA课设自动售货机

    基于VHDL自动售货机的设计 摘要 基于FPGA的自动售货机的设计,主要完成的任务是使用VHDl语言,在MAX+PLUSSII上完成电路的设计,程序的编译,基本功能的完善、模拟整个自动售货机的......

    自动售货机合作协议书(共5篇)

    自动售货机合作协议书 甲方: 乙方: 本着平等互利、友好协商的原则,甲、乙双方根据《中华人民共和国合同法》、《食品安全法》及其相关规定,就自动售货机合作项目达成如下协议:......

    基于自动售货机的软件工程(精)

    面向对象分析实践大作业(40% 下面是自动售货机系统的需求陈述,请 你: 1. 编写分析和设计报告; 2. 报告分需求分析、 系统设计和对象设 计三部分编撰, 各部分应按相应的格式......

    毕业论文-自动售货机汇总[5篇材料]

    毕业设计说明书 自动售货机控制系统的设计与仿真 自动售货机控制系统的设计与仿真 摘 要 随着社会的进步,科学的发展,生活水平的提高,单一传统的生活方式已经不能满足现代居民......

    自动售货机PLC控制系统背景概述

    自动售货机PLC控制系统背景概述 ----- 0920332--26 陈锦 自动售货机是台机电一体化的自动化装置,在接受到货币已输入的前提下,靠触摸控制按 扭输入信号使控制器启动相关位置......