软件编程
位置:首页>> 软件编程>> C语言>> C语言数据结构实现银行模拟

C语言数据结构实现银行模拟

作者:杨鑫newlfe  发布时间:2023-04-16 17:25:49 

标签:C语言,数据结构,银行模拟

C语言数据结构实现银行模拟

实现代码:


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define MAX_WIN 20
#define MAX_STAY 100
typedef struct customer *link;
struct customer
{
 int stay;
 link next;
};

link GUY(int stay, link next)
{
 link c = malloc(sizeof *c);
 c->stay = stay;
 c->next = next;
 return c;
}

link win[MAX_WIN];
void morning()
{
 int i;
 for(i = 0; i < MAX_WIN; i++)
 {
   win[i] = NULL;
 }
}

void come(int w, int stay)
{
 if(win[w] == NULL)
 {
       win[w] = GUY(stay, NULL);
       win[w]->next = win[w];
 }
 else
     win[w] = win[w]->next = GUY(stay, win[w]->next);
}

void leave(int w)
{
 if(win[w]->next == win[w])
 {
   free(win[w]);
   win[w] = NULL;
 }
 else
 {
   link t = win[w]->next;
   win[w]->next = t->next;
   free(t);
 }

}

void guys()
{
 int i;
 link t;
 system("clear");
 for(i = 0; i < MAX_WIN; i++, puts(" "))
 {
     printf("WIN%3d:_", i);
     if((t = win[i]) == NULL)
         continue;
     for(; t->next != win[i]; t = t->next)
     {
       printf("%4d", t->next->stay);
     }
 }
 Sleep(1);
}  

void later()
{
 int i;
 for(guys(), i = 0; i < MAX_WIN; i++)
 {  
   if(win[i] == NULL)
       continue;
   if(win[i]->next->stay > 0)
       (win[i]->next->stay)--;
   else
       leave(i);
 }
}

int main()
{
 srand(time(NULL));
 for(morning; ;later())
 {
   come(rand()%MAX_WIN, rand()%MAX_STAY+1);
 }
 return 0;
}

     由于这里是生成的随机数,所以程序会一直在变化。按住ctrl +c 终止程序

C语言数据结构实现银行模拟

C语言数据结构实现银行模拟

来源:http://blog.csdn.net/u012965373/article/details/48420789

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com