• 大小: 9KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: C/C++
  • 标签:

资源简介

C语言写的银行业务模拟代码,使用队列,动态存储结构。

资源截图

代码片段和文件信息

#include  
#include  
#include
#include
#include 
#define OK  1    //离开事件
#define ERROR  0
#define OVERFLOW 2
//全局变量:
int total_money;//银行现存资金总额
int total_time=0; //客户逗留总时间
float use_time;//每个顾客平均所用时间
int money;//每个顾客办理的款数
int close_time;//银行营业时问
int space_time;//下一用户到达的时间间隔
int spend_time;//办理业务所需时间
int event_Type;//事件类型
int number=1;//办理业务的次序
SYSTEMTIME sys;//获取时间的变量

struct Line1//队列1元素(表示前来办理业务的客户)
{
int arrive_time;//到达时间
int event_Type;//事件类型,0表示存款,1表示取款。
int spend_time;//办理业务时间
int money;//交易金额
}come;
struct Line2//队列2元素 (表示取款不能被满足,等待队列里的客户)
{
    int arrive_time;//到达时间
    int spend_time;//办理业务时间
    int money;//交易金额
}wait;
struct Node1//使队列1的个体成为链块结构
{
struct Line1 data;//存储元素个体信息
struct Node1 *next;
}Node1;
struct Node2//使队列2的个体成为链块结构
{
struct Line2 data;
struct Node2 *next;
}Node2;
struct Point1//用于连接队列1
{
struct Node1 *front;//队头
struct Node1 *rear;//队尾
}link1;
struct Point2//用于连接队列2
{
struct Node2 *front;//队头
struct Node2 *rear;//队尾
}link2;
void time_now() //获取当前系统时间

GetLocalTime(&sys); 
}
void print_time()//打印系统时间
{
if(sys.wDayOfWeek==0)
{
sys.wDayOfWeek=7;
}
printf(“\n\n\n\n\n\n\n\n\n\n\n\n“);
printf(“\n\n▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃“);
printf(“\n\n◆◆◆◆◆◆◆◆◆◆◆◆【 %4d/%02d/%02d %02d:%02d:%02d 星期%1d 】◆◆◆◆◆◆◆◆◆◆◆◆“sys.wYearsys.wMonthsys.wDaysys.wHoursys.wMinutesys.wSecondsys.wDayOfWeek);
printf(“\n\n▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃“);
printf(“\n\n\n\n\n\n\n\n\n“);
printf(“按任意键开始模拟...“);
getch();
}
void srandd()
{
srand(time(NULL));
}
void at_random()//产生随机数
{
money=rand()%10000+100;//设置客户要办理的款额为50~100050元
space_time=rand()%5; //设置下一个客户到达的时间为0~5分钟
spend_time=rand()%25+5;//设置办理业务所需时间为5~30分钟
event_Type=rand()%2;//设置办理业务为取或存中随机一种
}


int InitLine1()//初始化 申请空间
{
link1.front=link1.rear=(struct Node1*)malloc(sizeof(struct Node1));
    if(!link1.front) exit(OVERFLOW);
    link1.front->next=NULL;
    return OK;
}
int InitLine2()
{
link2.front=link2.rear=(struct Node2*)malloc(sizeof(struct Node2));
    if(!link2.front) exit(OVERFLOW);
    link2.front->next=NULL;
    return OK;
}
int destoryLine1()//释放空间
{
while(link1.front)
    { 
link1.rear=link1.front->next;
free(link1.front);
link1.front=link1.rear=NULL;//把不用的指针指向NULL
}
return OK;
}
int destoryLine2()
{
while(link2.front)
    { 
link2.rear=link2.front->next;
free(link2.front);
link2.front=link2.rear=NULL;
}
return OK;
}

int flag1=0;
void comingLine1()
{
struct Node1 *new_come;//用于模拟新进入银行的客户
new_come=(struct Node1*)malloc(sizeof(struct Node1));
if(!new_come) exit(OVERFLOW);
at_random();//调用随机数函数,产生所需随机数
new_come->data.arrive_time=total_time;//将产生的随机数传给新到客户
total_time += space_time;//该客户到达时间即为当前银行已运营时间
new_come->data.event_Type=event_Type;
new_come->data.spend_time=spend_time;
if(event_Type==1)
{
new_come->data.money=money-(2

评论

共有 条评论

相关资源