- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告
题目: 银行业务活动的模拟
学生姓名:
学 号:
班 级:
指导教师:
2012年 6 月 15 日
需求分析说明
题目要求
假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间
实现功能
功能要求:
1).实现数据的输入;
2).各个窗口数据的访问和输出;
3)当前窗口的人员分布情况动态显示。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:运用类存储结构,进行存储。
总体设计
从题目要求不难得出,银行排队是典型的队列操作,4个窗口就是四个队列,客户的进出就是出队,入队操作,客户窗口的选择,以及平均逗留时间可以对队列的长度进行相应计算得出。
因此,可以设计两个类,一个队列类,四个窗口就是四个队列对象,一个数据类,用于对客户排队编号的文件读取,写入,计算逗留时间。通过两个类的连接,实现数据的输入,动态显示。
详细设计
#ifndef _BHEAD_H_
#define _BHEAD_H_
#define SIZE 50
template class T
class queue
{
private:
T list[SIZE];
int front,rear,count;
public:
queue();
void ccust(const T item);//客¨a户?ì进?队¨?
T ocust();//出?队¨?
void clear();
const T getFront() const;
int getlength() const;
bool isEmpty() const;
bool isFull() const;
T find(T item);
void print();
};
#endif
建立一个队列的类模版Bhead.h;包括读取,存储,删除,查询等功能。
实现代码
//队列功能的实现
//Bhead.cpp
#includeBhead.h
#includeiostream
#includecassert
template class T
queueT::queue():front(0),rear(0),count(0)
{}
templateclass T
void queueT::ccust(const T iteam)
{
assert(count!=SIZE);
count++;
list[rear] = iteam;
rear = (rear+1)%SIZE;
}
templateclass T
T queueT::ocust(){
assert(count!=0);
int temp=front;
count--;
front=(front+1)%SIZE;
return list[temp];
}
templateclass T
const T queueT::getFront() const
{
return list[front];
}
templateclass T
int queueT::getlength() const
{
return count;
}
templateclass T
bool queueT::isEmpty() const
{
return count==0;
}
templateclass T
bool queueT::isFull() const
{
return count==SIZE;
}
templateclass T
void queueT::clear()
{
count=0;
front=0;
rear=0;
}
templateclass T
T queueT::find(T item){
int w=0;
int k=0;
if(count!=0)
{
for(k; k50; k++)
{
if(item == list[k])
{
w=k*5;
cout前??方¤?还1有?Dk位?在¨2排?队¨?哦?预?è计?排?队¨?时o?à间?为aw分¤?钟¨?!ê?亲?á。?êendl;
break;
}
else
文档评论(0)