数据结构-银行排队系统_第1页
数据结构-银行排队系统_第2页
数据结构-银行排队系统_第3页
数据结构-银行排队系统_第4页
数据结构-银行排队系统_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构-银行排队系统离散事件模拟——银行业务处理假设银行有4个窗口为客户服务,某一时刻每个窗口仅能接待一位客户,客户众多时需要排队等候。请模拟银行一天的业务活动,并统计客户在银行逗留的平均时间。题目分析根题目的要求,我们可以得到:使用队列的数据结构模拟银行中顾客的行为;利用一个指针数组来表示银行的四个窗口,并且再添加两个指针数组作为这四个队列的头指针与尾指针;加入时间线以确定何时顾客进入,何时离开;利用随机数生成顾客的进入与离开的时间;声明部分handle是用来对后续输出文本进行处理的;TIME是记录顾客在银行逗留的总时间的,用来求平均逗留时间。柜台节点中除了一个指针链表,还存有各个柜台实时的排队人数。辅助函数初始化窗口节点WinCreatWindows(WinW){for(inti=0;i<4;i++){W->PeoNum[i]=0;W->Que[i]=NULL;}returnW;}。创建顾客节点由于每次调用函数时,生成随机数的种子都会新生成一次,这是每次生成的随机数其实是一样的,我们这里在函数外生成随机数,并通过参数a和b传入,分别为到达时间与离开时间(以秒表示),num为此顾客的序号。之后分别申请顾客节点P与时间节点T,由于我们不关注顾客的到达时间,所以其中时间节点中只储存每个顾客的离开时间。最后将新生成的时间节点插入到离开时间线上合适的位置。PeoCreatPeople(inta,intb,intnum){PeoP=(Peo)malloc(sizeof(structNode));TlT=(Tl)malloc(sizeof(structTime)),q=Time;P->ArrTime=a;P->Departure=b;P->Num=num;P->Next=NULL;T->Note=b;T->Next=NULL;while(q->Next!=NULL){if(q->Next->Note>b)break;q=q->Next;}T->Next=q->Next;q->Next=T;returnP;}。比较四个窗口的排队人数输出离开顾客的信息这里主要是对输出信息进行了一个处理。voidReadInformation(PeoP){charc[4];//存序号intm[3],n[3],//m存开始时间,n存结束时间a=P->Num,b=P->ArrTime,d=P->Departure;for(inti=3;i>=0;i--){c[i]=48+a%10;a/=10;}m[0]=b/3600+8;//假设8点开始营业b%=3600;m[1]=b/60;m[2]=b%60;n[0]=d/3600+8;//假设8点开始营业d%=3600;n[1]=d/60;n[2]=d%60;SetConsoleTextAttribute(handle,FOREGROUND_INTENSITY|FOREGROUND_GREEN);//变绿printf("\n%c%c%c%c-ArriveTime%02d:%02d:%02d-Departure%02d:%02d:%02d\n",c[0],c[1],c[2],c[3],m[0],m[1],m[2],n[0],n[1],n[2]);//输出用户信息(绿色字体)}。主要函数首先申请窗口节点和离开时间线的头结点并初始化:WinW=(Win)malloc(sizeof(structTruck));Time=(Tl)malloc(sizeof(structTime));Tlpr;Time->Next=NULL;Time->Note

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论