高分求助:计算机仿真题目(离散事件系统仿真),回答好再追加,拜托各位高手啦!!

超市收费模型(1)模型假设:一小超级市场有4个付款柜,每个柜台为一位顾客计算货款数的时间与顾客所购商品件数成正比(大约每件费时1s),20%的顾客用支票或信用卡支付,这需... 超市收费模型

(1)模型假设:一小超级市场有4个付款柜,每个柜台为一位顾客计算货款数的时间与顾客所购商品件数成正比(大约每件费时1s),20%的顾客用支票或信用卡支付,这需要1.5min,付款则仅需0.5min。有人倡议设一个快速服务台专为购买8个或8个以下商品的顾客服务,指定另外两个为“现金支付柜”。

     请你建立一个模拟模型,用于比较现有系统和倡议的系统的运转。假设顾客到达平均间隔时间是0.5min,顾客购买商品件数按如下频率表分布:
件数: ≤8 9-19 20-29 30-39 40-49 ≥50
相对频率: 0.12 0.10 0.18 0.28 0.20 0.12

(2)仿真要求
①定义系统模型即实体、属性、状态、活动和事件
②描述每个事件的处理过程
③利用事件调度法设计仿真算法
④请选择适当的数据结构管理事件表
⑤对涉及的随机数作必要地检验

拜托各位知道多少说多少,我自己是完全不晓得从哪儿下手
是数学建模,用matlab做
展开
 我来答
晨之子
2007-06-21 · TA获得超过979个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:0
展开全部
一个比较复杂但是并不高深的题目,类成员函数的具体实现我就不写了

1、建立顾客类,大体如下
class Consumer
{
private:
int count;//购买商品件数
bool cash;//是否是用现金
public:
int Quantity();//返回购买商品件数
bool Cash();//返回是否是用现金
int Time();//付款过程耗时
void Generate();//按照频率分布表生成此顾客信息
};

2、建立柜台类
class Counter
{
private:
queue< pair<Consumer,int> > Q;//记录该柜台前排队的顾客的队列
int last_come;//记录正在柜台前付款的那个顾客来到柜台的时刻
public:
Counter();//构造函数,把队列清空,last_come设置为0
void Consumer_Come(Consumer,int);//第一个形参为该顾客的信息,第二个形参为该顾客开始排队的时间
int Pay();//模拟柜台前的各个顾客的付款,并返回完成的时刻
};

3、对现有系统的模拟
首先生成随机数n表示一共有n个顾客到来,然后生成这n个顾客的信息,然后按照0.5min的间隔将这n个顾客随机塞到4个柜台,然后付款,并记录最终完成时间
代码近似如下
n=rand();
for (i=0;i<n;i++)
{
Consumer now;
now.Generate();
counters[rand()%4].Consumer_Come(now,i*30);
}
end=0;
for (i=0;i<4;i++)
{
int now=counters[i].Pay();
if (now>end) end=now;
}

最后end记录的就是完成时间

4、模拟倡议的系统的运转
类似3里面那样生成n个顾客的信息,假定柜台0是普通柜台,柜台1是8个或8个一下商品的,柜台2、3是现金
然后将这n个顾客用类似于3的过程按照倡议的要求塞入这四个柜台,然后付款,然后记录时间
北京康思
2018-09-20 广告
电压的测量利用示波器所做的任何测量,都是归结为对电压的测量。示波器可以测量各种波形的电压幅度,既可以测量直流电压和正弦电压,又可以测量脉冲或非正弦电压的幅度。更有用的是它可以测量一个脉冲电压波形各部分的电压幅值,如上冲量或顶部下降量等。这是... 点击进入详情页
本回答由北京康思提供
可爱的小知道
2007-07-01 · TA获得超过259个赞
知道答主
回答量:346
采纳率:0%
帮助的人:0
展开全部
收藏一下下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式