下载此文档

《自动售货机仿真》实验报告.docx


文档分类:通信/电子 | 页数:约26页 举报非法文档有奖
1/26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/26 下载此文档
文档列表 文档介绍

《自动售货机仿真》实验报告
《自动售货机仿真》实验报告 本文关键词:仿真,实验,售货机,报告
《自动售货机仿真》实验报告 本文简介:《自动售货机仿真》实验报告《自动售货机6 页









2、
程序设计过程
1.
从实际问题中抽象类
仿真过程关注的事物有:VM,商品(Goods),顾客(Customer),管理员(Administrator)。
程序设计过程中考虑过以下问题:
1
管理员类建立的必要性。若不设计管理员类,而是在VM类中设两变量TS,TM,VM自动计时,到时间后自动加货,可实现同样输出。从程序外观上看管理员类的建立与否没有影响。而考虑到自动加货并不是VM的本身属性,而是通过与管理员通信完成的,故建立管理员类。在VM中建立响应管理员加货的方法,而管理员的内部实现也正是调用了VM的此方法。
2
商品基类建立的必要性。曾考虑过将Goods类设计为虚基类,提供所有商品的共有接口,再从这个虚基类派生处各具体商品,最后运用多态性原理设计实现细节。考虑到这个问题中各商品所不同的地方只是商品名,价格等数据成员不同,类内部方法完全相同。且此程序中一个Goods对象代表一组同种商品,即找不到一个个单独的商品。在电梯程序中每个乘客有不同的属性:起始与终止楼层,而这正是程序关系的特征,故建立了一个个具体的乘客对象。此问题中我们关系的只是商品的数量,故没有一个个单独的商品对象。










2.
三个类之间的关系
Goods
投币
按按钮
补充货物
发送请求
包含若干
出货
找零
Customer
VM
Administrator
3.
程序的主框架
初始化
结束
打印报表










(未达结束条件时循环)
检查是否需要新建顾客对象
检查是否需要通知管理员
顾客执行一次操作
VM执行一次操作
管理员执行一次操作
此程序中关键是要处理各对象之间的通信。采用以下方法解决:
1
VM与顾客之间的通信:顾客有两种操作,即投币与按按钮。在VM中建立响应这两种操作的函数,顾客类中的两种操作内部实质是调用VM中的响应函数。只需向顾客的操作函数中传递一VM的指针即可实现两者之间的通信。
2
VM与管理员的通信:因VM管理员之间的通信存在时间差,即VM发出的信息需经TM后才能传递到管理员,故①中方法不再适用。采用一全局变量(CallAdmTimeLeft)来记录信息还需多长时间才能到达管理员,其值为-1表示VM为发出请求或上一个请求已被处理,值为0则通知管理员。这样便可通过主函数完成消息的传递。
4.
类的设计
1)
“Pbulic,h“中声明定义了各类共享的一些数据类型及运行时需要的一些参数。










类型:
enum
Coin{

《自动售货机仿真》实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数26
  • 收藏数0 收藏
  • 顶次数0
  • 上传人8872
  • 文件大小37 KB
  • 时间2022-08-13
最近更新