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 终止程序
来源:http://blog.csdn.net/u012965373/article/details/48420789
0
投稿
猜你喜欢
- 不同点:不能直接实例化接口。接口不包含方法的实现。接口可以多继承,类只能单继承。类定义可以在不同的源文件之间进行拆分。相同点:接口、类和结构
- Pre本篇博文我们开始梳理下Spring 提供的测试解决方案。对于 Web 应用程序而言, 一个应用程序中涉及数据层、服务层、Web 层,以
- 先看代码public class TestDemo1 { public static void main(String[] ar
- 一、前言又见面了哈,今天为大家介绍时钟、钟表的实现方法教程。实现的方法有很多,这里只是提供了一个思路,本着抛砖引玉的心态,希望能和大家共同学
- 1. 什么是单例模式单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的
- 面试中会经常遇到手撕代码的情况,而求TopK的是经常遇到的题目。下面我就用Java来实现。主要通过两种方法实现,快排思想以及堆排序的思想,两
- 由于Android项目开源所致,市面上出现了N多安卓软件市场。为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们
- Java 线程类也是一个 object 类,它的实例都继承自 java.lang.Thread 或其子类。 可以用如下方式用 java 中创
- 环境:maven+idea。1. 需要的jar包基本的spring和mybatis依赖包就不说了,在pom文件的build->plug
- 修改方法有两个1.方法1:点“编辑”-->“列选择模式”2.方法2:快捷键Shift+Alt+Insert修改后结果如下:来源:htt
- 这篇文章主要介绍了SpringBoot2整合activiti6环境搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
- 一、前言介绍:1.1 项目摘要 信息内容数据从传统到当今,一直在改变,忽然互联网技术让传统信息内容管理见到划时代的黎明
- 1. ObsoleteAttributeObsoleteAttribute 适用于除组件、模块、参数和返回值以外的所有程序元素。将元素标记为
- 在使用SpringBoot做接口访问如何做接口的限流,这里我们可以使用google的Guava包来实现,当然我们也可以自己实现限流,Guav
- c#调用surfer软件,添加应用的方法:1.在项目文件上右键->添加引用2.选择COM标签页3.找到Surfer 9 type li
- 本文主要介绍了关于单例模式的一些问题,想学习C#单例模式的同学们可以看一看,还是有些帮助c#中的单例模式单例模式是指在设计一个类时,保证在运
- 大多数开发人员现在还在使用if else的过程结构,曾看过jdon的banq大哥写的一篇文章,利用command,aop模式替代if els
- 类1.什么是类类是事物的属性(外在特征)和行为(具备的功能)的集合2.想要知道Java中类是什么我们要先知道现实生活中的类是什么,因为Jav
- 前言Java中容器对象主要用来存储其他对象,根据实现原理不同,主要有3类常用的容器对象:1、ArrayList 使用数组结构存储容器中的元素
- 聚星C#数字信号处理工具包频谱分析JXI C# DSP Tools, Spectrum Analysis聚星针对C#平台开发了数字信号处理工