急求一个关于洗车仿真的编程代码,题目如下要用C语言做.5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 12:23:39

急求一个关于洗车仿真的编程代码,题目如下要用C语言做.5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生
急求一个关于洗车仿真的编程代码,题目如下要用C语言做.
5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生离散事件的方法.2.主要内容假设洗车站有三个洗车处,每个洗车处可构成一个等待队列.根据系统时间随机生成每辆车的到达时间,相邻两辆车的到达时间间隔为[2,15]分钟之间的随机值,每辆车接受服务的时间选项为10、15或25分钟其中之一(随机产生).第一辆车的到达时间在洗车站开门30分钟之内(随机产生).平均等待时间是将每辆车的等待时间加起来再除以车的数量.下面是关于车辆到达和离开的具体条件:(1)如果当队列为空且没有车被清洗时,到达了一辆车,那么就马上开始清洗这辆车;它无需进入队列.每当一辆车通过清洗后,它就马上离开洗车处,随之相应队头的车辆出队进入清洗过程.(2)每当一辆车到达时,它直接进入三个队列中等待时间最短的队列.(3)每个队列中每次至多有5辆车在等待洗车.当正在清洗并且三个队列中均有5辆车时,如果此时有一辆车到达,那么它将作为“溢出”不准入内且不计算在内.(4)每辆车的等待时间不含其接受服务的时间.3.设计要求(1)产生6个小时内车辆的随机到达时刻和接受服务时间.(2)列举出所有车辆(包括未能进队洗车的车辆)的洗车情况(到达时间、所处等待队列及等待时间、接受服务时间、离开时间等).(3)计算所有车辆的平均等待时间.

急求一个关于洗车仿真的编程代码,题目如下要用C语言做.5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生
#include
#include
#include
#include
#define QUENELEN 6
#define QUENENUM 3
#define MAXTIME 360
struct cCar
{
int num;
int waitTime;
int serverTime;
int arriveTime;
int leaveTime;
int quene;
struct cCar * next;
} ;
struct cQuene
{
\x05int quene;
int queneNum;
int num[QUENELEN];
int waitTime[QUENELEN];
int serverTime[QUENELEN];
};
void initCar(struct cCar * s)
{
s->num = 0;
s->waitTime = 0;
s->serverTime = 0;
s->arriveTime = 0;
s->leaveTime = 0;
s->quene = 0;
s->next = NULL;
}
void printQuene(struct cQuene * s)
{
\x05int i;
\x05printf("%d\t%d\n",s->queneNum ,s->quene );
\x05for(i=0;iserverTime [i]);
\x05printf("\n");
\x05for(i=0;iwaitTime [i]);
\x05printf("\n");
\x05for(i=0;inum [i]);
\x05printf("\n");
\x05printf("\n");
}
void initQuene(struct cQuene * s,int n)
{
int i;
\x05s->quene = n;
s->queneNum = 0;
for(i = 0; i < QUENELEN; i++)
{
s->num[i] = 0;
s->waitTime[i] = 0;
s->serverTime[i] = 0;
}
}
int curTime=0,Num=1;
struct cCar firstCar;
struct cQuene Quene[QUENENUM];
void initQuene()
{
\x05int i;
\x05for(i=0; iserverTime[i];
return count;
}
void updataQuene(struct cQuene * s)
{
int i;
\x05struct cCar *p = &firstCar;
s->serverTime[0]--; //洗车时间减1
if(s->serverTime[0] next)
\x05\x05\x05{
\x05\x05\x05\x05if(p->num == s->num [0]) break;
\x05\x05\x05\x05p = p ->next ;
\x05\x05\x05}
\x05\x05}
\x05\x05if(p)
\x05\x05{
\x05\x05\x05p->leaveTime = curTime+1; //记录离开时间
\x05\x05\x05p->waitTime = s->waitTime[0]; //记录等待时间
\x05\x05}
\x05\x05else printf("没有找到编号为%d的车",s->num [0]);
for(i = 0; i < s->queneNum; i++) //队列移动
{
s->num[i] = s->num[i+1];
s->waitTime[i] = s->waitTime[i+1];
s->serverTime[i] = s->serverTime[i+1];
}
s->num[i] = 0;
s->waitTime[i] = 0;
s->serverTime[i] = 0;
if(s->queneNum>0) s->queneNum--; //队列数减1
}
\x05for(i = 1; i queneNum; i++) s->waitTime[i]++; //等待时间加1
}
void updataQuene()
{
\x05int i;
\x05for(i=0;i 0) updataQuene(&Quene[i]);
\x05\x05//printQuene(&Quene[i]);
\x05}
}
void addCar()
{
\x05const int serverTime[3] = {10,15,25};
\x05struct cCar * p = &firstCar;
\x05int i,j,queneWait[QUENENUM],index[QUENENUM],minpos,tmp;
\x05while(p->next) p = p ->next ; //最后一条记录
\x05p->next = (struct cCar *)malloc(sizeof(struct cCar)); //添加新车
\x05p = p ->next;
\x05p->arriveTime = curTime; //车到达时间
\x05p->num = Num++; //到达序号
\x05p->next = NULL;
\x05p->serverTime = serverTime[rand() % 3]; //服务时间
\x05p->leaveTime = curTime;
\x05p->waitTime = 0;
\x05p->quene = -1;
\x05
\x05for(i=0; iquene = index[i];
\x05\x05\x05\x05break;
\x05\x05\x05}
\x05\x05}
\x05}
}
void main()
{
\x05int i,num=0,count=0;
\x05int wait = rand() % 30;
\x05struct cCar * p = &firstCar,*p2;
\x05srand(time(NULL));
\x05initQuene();
\x05while(curTimenext ;
\x05printf("编号\t队列号\t到达\t离开\t服务\t等待\n");
\x05while(p)
\x05{
\x05\x05printf("%d\t%d\t%d\t%d\t%d\t%d\n",p->num ,p->quene ,p->arriveTime ,p->leaveTime ,p->serverTime ,p->waitTime );
\x05\x05if( p->arriveTime != p->leaveTime)
\x05\x05{
\x05\x05\x05num ++;
\x05\x05\x05count += p->waitTime;
\x05\x05}
\x05\x05p = p->next ;
\x05}
\x05printf("平均等待时间%f\n",(double) count / (num+1));
\x05p = firstCar.next ;
\x05while(p )//释放空间
\x05{
\x05\x05p2 = p;
\x05\x05p = p->next ;
\x05\x05free(p2);
\x05}
}

急求一个关于洗车仿真的编程代码,题目如下要用C语言做.5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生 求教一道VB代码编程题目:取随机函数[20,300]中50个能被6整除的数据,要求每行输出4个.急求!谢谢各位 C语言解不等式的一个编程问题,只要代码 求解一题关于数据结构的编程题,请用C编些5.5 课题C5:洗车仿真1.设计目的(1)复习队列的存储和实现方法.(2)进一步掌握队列的实际应用.(3)掌握利用时间函数模拟产生离散事件的方 急求信道容量matlab编程代码!已知一个信道的信道转移矩阵为 p用Matlab编写函数求信道容量.已知一个信道的信道转移矩阵为 p,p为一个两行三列矩阵 急求C语言编程 求如下分段函数的值求求大神们 跪谢 编程求如下分段函数的值 求一复杂对数方程的解答在仿真的时候碰到一个对数方程,求高手解答,题目如下:3*(x^2)*ln(x)-(4*x-1)*(x-1)=0 一道C语言的题目求代码 求CNC手工编程G,M代码, 急!急!急!C语言 题目1、 编程实现将从键盘输入的大写字母改成小写字母并输出.题目题目二:编程实现将237转换成小时和分钟输出.题目三:已知一个圆柱体的半径和高分别为1.5和4.5,求圆的周 关于富春江作文的题目,急求! C语言题目:编程输出如下图案 一个* 三个* 五个* 七个* 五个* 三个* 一个* 关于一个傣族小女孩帮助一个苗族的老婆婆的作文 急求!题目:胜似亲人 老师给的一个编写服从泊松分布的随机数的算法程序(Matlab编程,在r=2时,分别产生10个随机数.代码如下:r=2;k=1;while k C语言循环的问题,求编程的代码以下这些C语言循环的题目帮我解一下,甲乙丙3人同时放鞭炮,各21炮,甲每隔5秒放一个,乙每隔6秒放一个,丙每隔7秒放一个,问共能听到多少响?2.有一本书被人撕了 想做一个能实现计算表达式的计算器 就是输入表达式能计算出值得 代码如下 求指正 求编一个MATLAB的代码,要求计算几个公式新手,什么都不会,求一个完整的代码,复制进去直接可以运行的那种,急,剩余财富不多了,就这点,还希望大神不吝赐教!公式如下:k=100/∑(P(λ)y(λ))X=k*∑(P(