• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: c语言  

资源简介

c语言银行业务模拟 银行业务模拟 银行业务模拟 银行业务模拟 银行业务模拟 银行业务模拟

资源截图

代码片段和文件信息

#include
#include
 
    /*随机数初始值*/
#define MONEY  200000     /*个人业务值*/
#define TRUE  1
#define FALSE 0
#define OK   1
#define ERROR  0
#define OVERFLOW -2
#define CK  1    /*离开事件1:办理存款*/

typedef int status;

typedef struct{
 int arrivetime;   /*到达时间*/
 int OccurTime;   /*事件发生时间*/
 int NType;      /*事件类型*/
 int duration;   /*办理业务时间*/
 long int money;      /*数额*/
}EventElemType1;

typedef struct{
 int arrivetime;
 int duration;
 long int money;
}waitElemType2;       /*等待队列元素*/

typedef struct QNode1{
ElemType1 data;
struct QNode1 *next;
}QNode1*Queue1;

typedef struct QNode2{
ElemType2 data;
struct QNode2 *next;
}QNode2*Queue2;

typedef struct{
 Queue1 front;
 Queue1 rear;
}linkQueue1;

typedef struct{
 Queue2 front;
 Queue2 rear;
}linkQueue2;


/*全局变量*/
long int total_money;
int total_time;
int use_time;/*每个顾客所用时间*/
int money;/*每个顾客办理的款数*/
int closetime;/*银行营业时间*/
int INTERTIME; /*下一用户到达的时间间隔*/
int DURATION; /*办理业务所需时间*/
int pe_num;   /*办理业务的次序*/
int time1;/*系统现在时间*/


linkQueue1 Q1;
linkQueue2 Q2;
Event en;     /*事件*/
wait en1;    /*列表2元素*/

/*初始化队列1*/
status InitQueue1()
{Q1.front=Q1.rear=(Queue1)malloc(sizeof(QNode1));
 if(!Q1.front)exit(OVERFLOW);
 Q1.front->next=NULL;
 return OK;
}

/*初始化队列2*/

status InitQueue2()
{Q2.front=Q2.rear=(Queue2)malloc(sizeof(QNode2));
 if(!Q2.front)exit(OVERFLOW);
 Q2.front->next=NULL;
 return OK;
}

/*销毁队列1*/
status destroyqueue1()
{while(Q1.front)
    {Q1.rear=Q1.front->next;
     free(Q1.front);
     Q1.front=Q1.rear;
    }
return OK;
}

/*销毁队列2*/
status destroyqueue2()
{while(Q2.front)
    {Q2.rear=Q2.front->next;
     free(Q2.front);
     Q2.front=Q2.rear;
    }
return OK;
}

/*队列1,2 入队列*/
status EnQueue1()
{Queue1 prr1;
 p=(Queue1)malloc(sizeof(QNode1));
 if(!p)exit(OVERFLOW);

p->data.arrivetime=en.arrivetime;
p->data.OccurTime=en.OccurTime;
p->data.NType=en.NType;
p->data.duration=en.duration;
p->data.money=en.money;

 r=Q1.front->next;
 while(r)
    {if(p->data.OccurTime < r->data.OccurTime)      /*当队列*/
       { if(r==Q1.front->next)
             {p->next=r;
              Q1.front->next=p;
              }
         else{r1->next=p;
              p->next=r;
              }

        }
       r1=r;r=r->next;
      }
  if(!r)
    { if(Q1.front->next==NULL)
         {Q1.front->next=p;
          Q1.rear=p;
          Q1.rear->next=NULL;
          }
      else{
       p->next=NULL;
       Q1.rear->next=p;
       Q1.rear=p;}
    }

return OK;
}


status EnQueue2()
{Queue2 p;
 p=(Queue2)malloc(sizeof(QNode2));
 if(!p)exit(OVERFLOW);
 p->data.arrivetime=en1.arrivetime;
 p->data.duration=en1.duration;
 p->data.money=en1.money;
 p->next=NULL;
 Q2.rear->next=p;
 Q2.rear=p;
return OK;
}

/*队列1,2 出队列并用en返回值*/
status DeQueue1()
{  Queue1 p;
if(Q1.front==Q1.rear)return ERROR;
 p=Q1.front->next;
 en.arrivetime=p->data.arrivetime;
 en.Oc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11498  2008-01-16 23:05  bank.c

----------- ---------  ---------- -----  ----

                11498                    1


评论

共有 条评论