1、 数据结构课程设计报告数据结构课程设计报告 题目:题目: 银行业务活动的模拟银行业务活动的模拟 学生姓名:学生姓名: 学学 号:号: 班班 级:级: 指导教师:指导教师: 2012 年年 6 月月 15 日日 一、一、 需求分析说明需求分析说明 1. 题目要求 假设某银行有 4 个窗口对外接待客户,从早晨银行开门起不断有客户进入银 行, 由于每个窗口在某个时刻只能接待一个客户。 因此在客户人数众多时需要在每 个窗口前顺次排队,对于刚进入银行的客户。如果某个窗口的业务员正空闲,则可 上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编 制一个程序模拟银行的这种业务活动并计算一
2、天中客户在银行的平均逗留时间。 2. 实现功能 功能要求: 1).实现数据的输入; 2).各个窗口数据的访问和输出; 3)当前窗口的人员分布情况动态显示。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功 能要求。 存储结构:运用类存储结构,进行存储。 二、二、 总体设计总体设计 从题目要求不难得出,银行排队是典型的队列操作,4 个窗口就是四个队列,客户 的进出就是出队,入队操作,客户窗口的选择,以及平均逗留时间可以对队列的长度进 行相应计算得出。 因此,可以设计两个类,一个队列类,四个窗口就是四个队列对象,一个数据类, 用于对客户排队编号的文件读取,写入,计算逗留时间
3、。通过两个类的连接,实现数据 的输入,动态显示。 三、三、 详细设计详细设计 #ifndef _BHEAD_H_ #define _BHEAD_H_ #define SIZE 50 template class queue private: T listSIZE; int front,rear,count; public: queue(); void ccust(const T /客户进?队 T ocust();/出?队 void clear(); const T int getlength() const; bool isEmpty() const; bool isFull() const;
4、 T find(T item); void print(); ; #endif 建立一个队列的类模版 Bhead.h;包括读取,存储,删除,查询等功能。 四、四、 实现代码实现代码 /队列功能的实现 /Bhead.cpp #include“Bhead.h“ #include #include template queue:queue():front(0),rear(0),count(0) template void queue:ccust(const T count+; listrear = iteam; rear = (rear+1)%SIZE; template T queue:ocust
5、() assert(count!=0); int temp=front; count-; front=(front+1)%SIZE; return listtemp; template const T template int queue:getlength() const return count; template bool queue:isEmpty() const return count=0; template bool queue:isFull() const return count=SIZE; template void queue:clear() count=0; front
6、=0; rear=0; template T queue:find(T item) int w=0; int k=0; if(count!=0) for(k; kj; switch(j) char s; case 1: couts; if(s=y|s=Y) a=q0.getlength(); b=q1.getlength(); c=q2.getlength(); d=q3.getlength(); if(am; switch (m) case 1: if(q0.getlength()!=0) int num; q0.print(); couts; if(s=y|s=Y) coutnum; aa = q0.find(num); couts; if(s=y|s=Y) coutnum; aa