?? implement.cpp
字號:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "queue.cpp"
#include "implement.h"
#define M 2 //2 Queue
#define N 4 //4 persons per minute
void initQueue(Q queues[])
{
for (int i = 0; i < M; i++)
queues[i] = QUEUEinit(N);
}
void putQueue(Q queues[],int*total1,int*total2,int *Num)
{
for (int i = 0; i < *Num; i++){
int j=rand()%M;
switch(j){case 0:(*total1)++;break;case 1:(*total2)++;break;}
printf("\n Put into Queue %d is =>",j+1);
QUEUEput(queues[j], i);
}
if(*Num<=3)
*Num=N;
}
bool checkQueue(Q queues[],int*total1,int*total2,int*Nm )
{
if(QUEUEempty(queues[0])&&QUEUEempty(queues[1]))
{printf("\n Put into Queue 1 is =>");QUEUEput(queues[0],rand()%N);(*total1)++;
printf("\n Put into Queue 2 is =>");QUEUEput(queues[1],rand()%N);(*Nm)-=2;(*total2)++;return true;}
else if(QUEUEempty(queues[0]))
{printf("\n Put into Queue 1 is =>");QUEUEput(queues[0],rand()%N);(*Nm)--;(*total1)++;return true;}
else if(QUEUEempty(queues[1]))
{printf("\n Put into Queue 2 is =>");QUEUEput(queues[1],rand()%N);(*Nm)--;(*total2)++;return true;}
else
{putQueue(queues,total1,total2,Nm); return false;}
}
void getOnefromLongQueue(Q queues[],int*rest1,int*rest2,int*each3,int*total1,int*total2)
{
if(*rest1==*rest2) return;
else if(*rest1>*rest2)
{printf("\n Go to get Queue 1 (longer) element to Server 3=> No.%d element",QUEUEget(queues[0]));(*each3)++;}
else
{printf("\n Go to get Queue 2 (longer) element to Server 3=> No.%d element",QUEUEget(queues[1]));(*each3)++;}
}
void get2Queue(Q queues[],int*each1,int*each2,int*min)
{
for (int i=0;i<M;i++)
{printf("\n Get an element out of Queue %d=> No.%d element",i+1,QUEUEget(queues[i]));}
(*min)++;(*each1)++;(*each2)++;
}
void Calculate(int*each1,int*each2,int*total1,int*total2,int*rest1,int*rest2)
{
*rest1=(*total1)-(*each1);
*rest2=(*total2)-(*each2);
}
void outPutcalculate(int*rest1,int*rest2,float*avg,int*min)
{
if(*rest1!=0 && *rest2!=0)
*avg=(float(*min/(*rest1))+float(*min/(*rest2)))/2.0;
}
void Layout(int*rest1,int*rest2,int*each1,int*each2,int*each3,int*total1,int*total2,float*average)
{ printf("\nREPORT -----------------------------------------------");
printf("\n Number of elements waiting to be served in Queue1 =>%d elements",*rest1);
printf("\n Number of elements waiting to be served in Queue2 =>%d elements",*rest2);
printf("\n------------------------------------------------------");
printf("\n Served by Server 1 =>%d elements",*each1);
printf("\n Served by Server 2 =>%d elements",*each2);
printf("\n Served by Server 3 =>%d elements",*each3);
printf("\n------------------------------------------------------");
printf("\n Max Length of Queue1 is =>%d",*total1);
printf("\n Max Length of Queue2 is =>%d",*total2);
printf("\n------------------------------------------------------");
printf("\n Average waiting time of all customers served =>%f",*average);
printf("\n------------------------------------------------------");
printf("\n Total customers served is =>%d",*each1+*each2+*each3);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -