编写银行业务模拟程序。

来源:百度知道 编辑:UC知道 时间:2024/06/27 10:47:12
假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进和银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。

main()
#include <stdio.h>
#include <stdlib.h>
#include "header/bank_sim.h"

extern EventList ev; /* 事件表 */
extern Event en; /* 事件 */
extern size_t TotalTime, CustNum; /* 累计客户逗留时间,客户数 */

int main( void )
{
if ( !bank_open() ) {
return EXIT_FAILURE; /* 初始化失败,退出 */
}
while ( ev->next ) {
DelFirst(); /* 删除事件表第一个节点,并把值赋给en */
if ( en.NType == ARRIVAL ) {
if ( !CustArr() ) {
return EXIT_FAILURE;
}
} else if ( !CustDepart() ) {
return EXIT_FAILURE;
}
}
printf( "Average Stay Time:%.2f minutes\n", (float)TotalTime / CustNum );

puts( "Press ENTER to quit..." );
getchar();
DestroyAll();

return EXIT_SUCCESS;
}

#ifndef BANK_SIM_H
#define BANK_SIM_H

#include <stddef.h>

#define COUNTER