• 大小: 7.75MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2023-08-23
  • 语言: 其他
  • 标签: 银行排队  

资源简介

模拟银行排队的仿真系统,内含结构图,可以外部导入用户到达的时间和所选业务表,通过排队论安排最短时间。

资源截图

代码片段和文件信息

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

评论

共有 条评论