资源简介
模拟银行排队的仿真系统,内含结构图,可以外部导入用户到达的时间和所选业务表,通过排队论安排最短时间。
代码片段和文件信息
extern int T;
extern event *EVENT;
extern windowQueue *A*B*C;
void InitQueue(windowQueue*&q); //建立链队列
void EnQueue(windowQueue *qevent *x); //入队,x为读入的事件
int DeQueue(windowQueue *qint &temnumint &temE); //出队,以temnum和temE传回队头事件的用户序号和结束时间
int service_information(void); //读取业务表函数
int st(int a); //st=service_time 所选业务对应的时间
int mintime(windowQueue *awindowQueue *bwindowQueue *c); //计算三个窗口队尾最短的结束时间
int MINTIME(windowQueue *awindowQueue *bwindowQueue *c); //计算三个窗口队头最短的结束时间
int Empty(windowQueue *q); //判空队列
int Empty(windowQueue *q)
{
if(q->front==q->rear) return(1);
else return(0);
}
void InitQueue(windowQueue*&q)
{
q=(windowQueue*)malloc(sizeof(windowQueue));
q->front=q->rear=(window*)malloc(sizeof(window));
q->front->next=NULL;
}
void EnQueue(windowQueue *qevent *x)
{
window *temp = (window*)malloc(sizeof(window));
if(temp)
{
temp->eve=x;
temp->next = NULL;
q->rear->next = temp;
}
}
int DeQueue(windowQueue *qint &temnumint &temE){
window *s;
if(q->front==q->rear){
printf(“队列下溢“);
return(0);
}
else{
s=q->front->next;
if(s->next==NULL){
q->front->next=NULL;
q->rear=q->front;
}
else{
q->front->next=s->next;
}
temnum=s->eve->number;
temE=s->eve->E;
free(s);
return(1);
}
}
int service_information(void)
{
int key=1;
system(“CLS“);
printf(“|---------------------------------------|\n|----------------业 务 表---------------|\n“);
printf(“|---------------------------------------|\n“);
printf(“| 序 号 名 称 耗 时 |\n“);
printf(“|---------------------------------------|\n“);
printf(“| 1 存款业务 3 |\n“);
printf(“| 2 取款业务 2 |\n“);
printf(“| 3 贷款业务 5 |\n“);
printf(“| 4 基金业务 4 |\n“);
printf(“| 5 其他业务 6 |\n“);
printf(“|---------------------------------------|\n“);
flag:printf(“Please input 0 to return.\n“);
scanf(“%d“&key);
if(key==0) return 0;
else
{
printf(“\nWrong input! Please try again.\n\n“);
goto flag;
}
}
int mintime(windowQueue *awindowQueue *bwindowQueue *c){
if(a->rear->eve->E<=b->rear->eve->E){
if(a->rear->eve->E<=c->rear->eve->E)return(1);
else return(3);
}
else if(b->rear->eve->E>=c->rear->eve->E){
return(3);
}
else return(2);
}
int MINTIME(windowQueue *awindowQueue *bwindowQueue *c){
if(a->front->next->eve->E<=b->front->next->eve->E){
if(a->front->next->eve->E<=c->front->next->eve->E)return(1);
else return(3);
}
else if(b->front->next->eve->E>=c->front->next->eve->E){
return(3);
}
else return(2);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-02 14:24 Bank Queuing System\
文件 2991 2018-01-02 14:24 Bank Queuing System\data.cpp
文件 580 2018-01-02 14:09 Bank Queuing System\define.h
文件 37845508 2018-01-01 16:55 Bank Queuing System\define.h.gch
文件 1843 2018-01-02 14:12 Bank Queuing System\input.cpp
文件 105 2018-01-02 14:02 Bank Queuing System\input.txt
文件 10265 2018-01-02 14:24 Bank Queuing System\main.cpp
文件 1125448 2018-01-02 14:24 Bank Queuing System\main.exe
- 上一篇:unity用于制作绳索的插件Rope
- 下一篇:时间序列分析183646
评论
共有 条评论