问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言模拟ATM机工作流程编程

发布网友 发布时间:2022-04-23 09:46

我来回答

1个回答

热心网友 时间:2023-10-10 00:31

#include
"stdio.h"对ATM机器的模拟就是一个对队列的模拟下面代码在VC6环境下调试已经通过了其中有个缺陷就是因为代码执行速度过快导致二次执行根据时间随机出来的数字都是一样的因此你可以自己加上一个延迟子程序部分功能已经注释了#include
"stdlib.h"#include
"time.h"#define
OK
1#define
ERROR
0
typedef
struct
node{
int
number;
struct
node*
next;}*Lnode;
typedef
struct
list{
node
*head,*rear;}*Plist;
//模拟
ATM开业bool
ListInit(Plist
list){
Lnode
p;
p
=
(Lnode)malloc(sizeof(Lnode));
list->head
=
p;
list->rear
=
list->head;
list->head->next
=
NULL;
if(list->head!=NULL)
return
ERROR;
else
return
OK;}
//模拟
有客户排队bool
ListInsert(Plist
list,int
number){
Lnode
p;
p
=
(Lnode)malloc(sizeof(Lnode));
if(p==NULL)
return
ERROR;
else
{
p->number
=
number;
p->next
=
NULL;
list->rear->next
=
p;
list->rear
=
p;
return
OK;
}}
//模拟
客户办完事离开bool
ListDelete(Plist
list){
Lnode
p;
if(list->head
==list->rear)
return
ERROR;
else
{
p
=
list->head->next;
list->head->next
=
p->next;
list->rear
=
list->head;
//
free(p);
return
OK;
}}
void
sand(int*
gettime,int*
needtime){
srand(time(NULL))
;
*gettime
=
rand()%100;
srand(time(NULL))
;
*needtime
=rand()%100;}
//模拟客户到达事件void
CustomerArrived(Plist
list,int
gettime,int
needtime,int
kehu,int
time){
int
nextgettime,nextneedtime;
sand(&nextgettime,&nextneedtime);
while(needtime>0
&&
nextgettime>0
&&
time>0)
{
needtime
--;
nextgettime
--;
time
--;
}
if(nextgettime
==
0
&&
needtime>0
&&time>0)
{
kehu++;
ListInsert(list,kehu);
while(needtime>0
&&
time>0)
{
needtime--;
time
--;
}
ListDelete(list);
CustomerArrived(list,nextgettime,nextneedtime,kehu,time);
}
if(needtime
==0
&&
nextgettime>0
&&
time>0)
{
ListDelete(list);
while(nextgettime>0
&&
time>0)
{
nextgettime--;
time
--;
}
kehu++;
ListInsert(list,kehu);
//未删除
,list未传递进去
CustomerArrived(list,nextgettime,nextneedtime,kehu,time);
}
if(time
==0)
{
printf("ATM关门,请明天在来!\n");
return;
}}
main(){
list
list;
int
i
=
10000;
//ATM机器每天工作时间
int
kehu
=
0;
//客户标号
int
gettime,needtime;
ListInit(&list);
//ATM开业
sand(&gettime,&needtime);
ListInsert(&list,kehu);
CustomerArrived(&list,gettime,needtime,kehu,i);
getchar();
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 吃糖醋生姜有什么好处 求C语言编写ATM机程序的,几个调用函数,小弟谢谢诸位大哥 一直喝醋泡姜有哪些好处 冬天吃醋泡姜好吗 用C语言编程ATM的简单取款过程,越简单越好 坚持每天吃醋泡的生姜有什么好处,或者坏处呢!!! C语言编写ATM机模拟系统 姜泡醋可以天天吃吗?对身体有什么影响? 怎么用C语言编写模拟ATM机 有的人每天都吃姜泡醋,长期下来不会对身体有影响吗? 用C语言怎么编写ATM机的程序 编写一个C语言程序模拟银行ATM机的账户管理功能,系统主要实现以下功能... 每天吃醋泡生姜有什么好处和坏处 在英文中百分比如何表示? 姜泡醋可以天天吃吗?对身体有什么影响呢? 百分数与分数在意义上的相同点和不同点 C语言编程,模拟银行的ATM机 苹果百分比在哪设置 天天吃泡醋姜,对身体有什么影响? 用c语言编写ATM自动取款机 不要c++的 磬棋书画诗酒花茶樽 以此九字做副对联,横批是淇心小筑。在景区用 武夷山春淇茶业有限公司怎么样? 华为手机怎么更改密码密码? 五大连池指的是什么? 华为手机怎么更换开机密码? 五大连池在那个省市 五大连池景点简介 华为手机密码忘了怎么改新密码? 谁能告诉我五大连池是什么? 黑龙江省的“五大连池”什么时候什么原因形成的? 五大连池是哪个市 五大连池在哪里 五大连池在哪,值得去玩吗? 五大连池因何而得名? 五大连池市属于哪个市 五大连池有什么好玩的地方?哪些景点必去? 五大连池 五大连池旅游攻略必玩的景点 五大连池是怎么形成的 五大连池有什么好玩的地方?