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

 更新时间:2017年08月20日 16:40:30   作者:杨鑫newlfe  
这篇文章主要介绍了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++ LeetCode1781题解所有子字符串美丽值之和

    C++ LeetCode1781题解所有子字符串美丽值之和

    这篇文章主要为大家介绍了C++ LeetCode1781题解所有子字符串美丽值之和,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • C++ vector的简单实现

    C++ vector的简单实现

    这篇文章主要为大家详细介绍了C++ vector的简单实现,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C语言一看就懂的选择与循环语句及函数介绍

    C语言一看就懂的选择与循环语句及函数介绍

    函数是一个功能模块,它把实现某个功能的代码块包含起来,并起一个函数名,供别人调用,如printf函数,如system函数。是程序运行当中包装起来的一个步骤;选择与循环是编程中最常用的结构,本篇文章用最简单的文字带你了解它们
    2022-04-04
  • C语言编程之三个方法实现strlen函数

    C语言编程之三个方法实现strlen函数

    本篇文章是C语言编程篇,主要为大家介绍C语言编程中实现strlen函数的三个方法讲解,有需要的朋友可以借鉴参考下,希望可以有所帮助
    2021-09-09
  • C++在C语言基础之上增强的几个实用特性总结

    C++在C语言基础之上增强的几个实用特性总结

    这篇文章主要介绍了C++在C语言基础之上增强的几个实用特性总结,包括C++中更强的类型约束以及结构体方面等一些更加高级的特性,需要的朋友可以参考下
    2016-03-03
  • 希尔排序算法的C语言实现示例

    希尔排序算法的C语言实现示例

    这篇文章主要介绍了希尔排序算法的C语言实现示例,希尔排序可以看作为一种高级的插入排序,需要的朋友可以参考下
    2016-04-04
  • c++ base64编解码使用示例

    c++ base64编解码使用示例

    这篇文章主要介绍了c++的base64编解码使用示例,需要的朋友可以参考下
    2014-02-02
  • 纯C语言:分治问题源码分享

    纯C语言:分治问题源码分享

    这篇文章主要介绍了纯C语言:分治问题源码,有需要的朋友可以参考一下
    2014-01-01
  • C语言中栈和队列实现表达式求值的实例

    C语言中栈和队列实现表达式求值的实例

    这篇文章主要介绍了C语言中栈和队列实现表达式求值的实例的相关资料,这里主要是对数据结构中栈和队列的理解和应用,需要的朋友可以参考下
    2017-08-08
  • C++中char[]能修改char*却不行

    C++中char[]能修改char*却不行

    本文主要介绍了C++中char[]能修改char*却不行,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论