银行排队仿真系统


模拟银行排队的仿真系统,内含结构图,可以外部导入用户到达的时间和所选业务表,通过排队论安排最短时间。
资源截图
代码片段和文件信息
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(“|---------------------------------------|
|----------------业 务 表---------------|
“);   
   printf(“|---------------------------------------|
“);
printf(“|      序 号      名 称       耗 时     |
“);
printf(“|---------------------------------------|
“);
printf(“|        1       存款业务       3       |
“);
printf(“|        2       取款业务       2       |
“);
printf(“|        3       贷款业务       5       |
“);
printf(“|        4       基金业务       4       |
“);
printf(“|        5       其他业务       6       |
“);
printf(“|---------------------------------------|
“);

flag:printf(“Please input 0 to return.
“);
scanf(“%d“&key);

if(key==0) return 0;
else
{
printf(“
Wrong input! Please try again.

“);
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 Systemdata.cpp
     文件         580  2018-01-02 14:09  Bank Queuing Systemdefine.h
     文件    37845508  2018-01-01 16:55  Bank Queuing Systemdefine.h.gch
     文件        1843  2018-01-02 14:12  Bank Queuing Systeminput.cpp
     文件         105  2018-01-02 14:02  Bank Queuing Systeminput.txt
     文件       10265  2018-01-02 14:24  Bank Queuing Systemmain.cpp
     文件     1125448  2018-01-02 14:24  Bank Queuing Systemmain.exe

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)