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

发布网友 发布时间:2022-04-23 17:20

我来回答

2个回答

热心网友 时间:2023-10-10 17:12

一个比较复杂但是并不高深的题目,类成员函数的具体实现我就不写了

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的过程按照倡议的要求塞入这四个柜台,然后付款,然后记录时间

热心网友 时间:2023-10-10 17:12

收藏一下下.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com