虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言数据结构实现银行模拟

C语言数据结构实现银行模拟
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了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语言数据结构实现银行模拟 C语言银行模拟