- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计 银行系统
一、具体任务
1、编写链式队列的基本操作:初始化链式队列、入队、判队空、出队等函数。
2、客户排队登记子程序:客户进入银行后,首先首先要根据自己所办的业务登记排队,如果是办理团体业务的客户则进qa队,如果是办理证券业务的客户则进qb队,如果是办理个人业务的客户则进qc队。
3、窗口柜员叫号子程序:排在与本窗口中业务类相同的客户到窗口柜员处办理业务。
4、汇总每个窗口所办理业务的情况。
二、软件环境
?VC++ 6.0?? WIN-TC
三、设计思想
(1)基本思想:银行业务模拟:设银行窗口办理的业务类型有团体业务、证券业务和个人业务。假设银行对每种业务设置两个窗口,每个来到的顾客发一个号码,如果哪个柜台空闲了,就由柜员叫号码,然后为最靠前的顾客办理业务。最后要对每个窗口进行业务量的简单汇总。
设团体业务用a表示、证券业务用b表示,个人业务用c表示。
由于三种业务类型(团体业务、证券业务和个人业务),每位顾客进入银行后根据办理的业务类型领取不同类别的号码,相当于排进了三支不同的队列。
设银行对每种业务设置两个窗口,如果哪个柜员空闲了,就叫持有相应类型号码并且排在队列最前面的顾客办理业务。
当工作结束后,要对每个窗口办理的业务量进行简单汇总。
根据上述分析,每位顾客的信息包括顾客号码、业务类型、队列前面的人数等,顾客信息描述如下:
typedef struct elm
{ int No;????
? char classify;??
int pre;???
}ElemType;
用qa、qb、qc分别代表团体业务、证券业务和个人业务队列,顾客进入银行时进行登记,领取相应号码,进入相应业务队列。
为了在工作结束后对每个窗口办理的业务量进行简单汇总,在办理业务时,将办理的情况在记录,不妨也用队列实现,6个窗口分别用qa1、qa2、qb1、qb2、qc1、qc2表示。
链队列结点描述如下:
typedef struct node
{ ElemType data;
struct node *next;??
}QNode;????
?
(2)具体算法:
void ManEnbar()???????????????????????????????
{
? do
? {
?? printf(请输入柜员号0-6:\n);
?? scanf(%d,y);
?if(y0||y6)
? printf(柜员号错误,请重新输入!\n);
?else
?{ switch(y)
? {
?? case 1:
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
??????? EnQueue(qa1,e);Printele(e);i1--;}
???? else
?????? printf(没有任何等待办理业务的顾客了!\n);
?????? break;
?? case 2:
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
?????? EnQueue(qa2,e);Printele(e);i1--;}
???? else
?????? printf(没有任何等待办理业务的顾客了!\n);
?????? break;
?? case 3:
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
??????? EnQueue(qb1,e);Printele(e);i1--;}
???? else
? ?????printf(没有任何等待办理业务的顾客了!\n);
?????? break;
?? case 4:
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
??????? EnQueue(qb2,e);Printele(e);i1--;}
???? else
?????? printf(没有任何等待办理业务的顾客了!\n);
?????? break;
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
?????? ?EnQueue(qc1,e);Printele(e);i1--;}
???? else?
?????? printf(没有任何等待办理业务的顾客了!\n);
?????? break;
?? case 6:
??? if(OutQueue(qa,e)==OK)
?????? {pre1--;
??????? EnQueue(qc2,e);Printele(e);i1--;}
???? else
?????? printf(没有任何等待办理业务的顾客了!\n);
?????? break;
? ?default:break;
? }
?}
}while(y!=0);
}
i
文档评论(0)