银行业务活动的模拟.doc

银行业务活动的模拟

数据结构课程设计报告 题目:银行业务的活动模拟 学生姓名: 学 号: 班 级: 指导教师: 2013年 1 月 10 日 数据结构课程设计任务书 一、需求分析说明 银行业务活动的模拟 二、总体设计 首先把银行一天的营业时间定为480。要计算一天中客户在银行的平均逗留时间则需要计算每个客户在银行的逗留时间,而客户在银行的逗留时间有他到达银行的时刻和离开银行的时刻决定。每个客户在银行逗留的时段与客户到达银行的时刻、在银行排队等候时间和顾客在窗口办理业务的时间,三部分组成。对于这三个时刻或时间段,客户在银行排队等候的时间由队列长短自然决定,也与其他客户的多少和办理业务的时间长短有关;而到达银行的时刻和客户在窗口办理业务的时间是独立随机的,只与客户本人有关,因此这两个事件的时刻和时间用随机数进行模拟。 三、详细设计 1、设计四个类 分别是QueueNode、QueueHeader、EventNode、EventList。 他们的组成形式为: (1) class QueueNode { public: int arrivetime; int duration; QueueNode *next; }; 该类中arrivetime指的是客户到达时间,duration指的是客 户的服务时间,next 指针指向下一个节点。 (2) class QueueHeader { public: QueueNode *front,*rear; int length; }; 该类中定义了两个QueueNode类的指针对象,分别指向队列的 头指针和尾指针;Length指的是当前队列的长度,即客户的数目。 (3) class EventNode { public: Int occurTime,eventType; EventNode *next; }; 该类中的occurTime指的是一个事件占用的时间,eventType指的是事件类型。定义了一个next指针指向下一个事件点。 (4) class EventList { public: EventNode *front,*rear; int eventNum; }; 该类中定义了两个EventNode类指针front和rear,分别指向队 头和队尾,eventNum指的是事件的总数目。 类图: 2、 (1).函数int generate(EventNode **p)用来分配事件点。 (2).函数void InsertEvent(EventList *eventlst,int occurTime,intetype)用来将客户插入到队列中 .函数voidDeleteEvent(EventList*eventlst, EventNode**event)作用是删除事件点。 .函数void random(int *durtime,int *intevatime) 是一个随机函用来随机的产生客户到达银行的时间。 四、实现部分 #includeiostream.h #includestdio.h #includestdlib.h #includewindows.h //时间函数头文件声明 #define CLOSETIME 480 //定义营业时间 #define M 4 //定义服务窗口数量 class QueueNode //类的定义 { public: int arrivetime; int duration; QueueNode *next; }; class QueueHeader { public: QueueNode *front,*rear; int length;

文档评论(0)

1亿VIP精品文档

相关文档