欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

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

来源:本站原创|时间:2020-01-10|栏目: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语言数据结构实现银行模拟的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:windows系统下C++调用matlab程序的方法详解

栏    目:C语言

下一篇:C++带有指针成员的类处理方式详解

本文标题:C语言数据结构实现银行模拟

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/1236.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有