数据结构银行排队系统.docx

上传人:b****2 文档编号:1959516 上传时间:2023-05-02 格式:DOCX 页数:11 大小:155.26KB
下载 相关 举报
数据结构银行排队系统.docx_第1页
第1页 / 共11页
数据结构银行排队系统.docx_第2页
第2页 / 共11页
数据结构银行排队系统.docx_第3页
第3页 / 共11页
数据结构银行排队系统.docx_第4页
第4页 / 共11页
数据结构银行排队系统.docx_第5页
第5页 / 共11页
数据结构银行排队系统.docx_第6页
第6页 / 共11页
数据结构银行排队系统.docx_第7页
第7页 / 共11页
数据结构银行排队系统.docx_第8页
第8页 / 共11页
数据结构银行排队系统.docx_第9页
第9页 / 共11页
数据结构银行排队系统.docx_第10页
第10页 / 共11页
数据结构银行排队系统.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构银行排队系统.docx

《数据结构银行排队系统.docx》由会员分享,可在线阅读,更多相关《数据结构银行排队系统.docx(11页珍藏版)》请在冰点文库上搜索。

数据结构银行排队系统.docx

数据结构银行排队系统

宁波大红鹰学院

信息工程学院

项目名称:

银行排队系统

项目组长:

白钰琦

项目成员:

项鸿伟、徐海域、徐程凯

班级名称:

10计科1

专业名称:

计算机科学与技术

完成时间:

2012年11月27日

信息工程学院制

 

一、系统总体描述

银行排队系统是利用现代网络通信技术和计算机信息管理技术来代替传统排队的系统,从本质上改善传统排队管理所存在的拥挤、嘈杂、混乱现象,避免各种不必要的纠纷。

通过使用排队系统,由传统的客户站立排队改变为取票进队、排队等待、叫好服务,由传统物理的多个队列变为一个逻辑队列,使“先来先服务”的思想得到更好地贯彻。

本系统可以实现银行排队的主要业务活动。

本系统分为以下6个功能模块:

(1)顾客到达。

分为VIP客户和普通客户进行排队拿号,普通客户进入逻辑队列。

(2)顾客离开。

顾客离开时将客户从队列中删除,并提供让客户对银行窗口职员评价的平台。

(3)查看业务办理。

可以查看每个业务窗口正在给第几号顾客办理业务。

(4)查看排队情况。

可以查看当前顾客有多少个顾客在排队等候。

(5)系统查询。

可以查询本系统为多少个普通用户和VIP客户办理过业务。

(6)退出。

退出整个银行排队系统。

二、模块设计(包括文档设计、项目流程设计)

本程序包含主程序模块、菜单选择模块和队列操作模块,调用关系如下图:

模块调用示意图

2、系统子程序及功能设计

(1)voidInitshuzu();//初始化数组(银行业务窗口)

(2)voidprint1();//输出数组(银行业务窗口)界面

(3)voidprint1();//输出排队等候队列界面

(4)voiddaoda(intx);//解决客户到达事件算法,调用(11)

(5)voidlikai(intx);//解决客户到达事件算法,调用(12)

(6)intguitai();//判断输入的柜台号是否正确

(7)intpingfen();//判断输入的分数是否正确

(8)voidmygrade();//主评分函数,调用(6)和(7)

(9)voidVIP(intx);//VIP用户认真认证

(10)voidtime();//时间函数

(11)voidEnqueue(Linkqueue*Q,intelem);//进队列

(12)intDlqueque(Linkqueue*Q);//出队列

(13)voidInitqueue();//主函数。

设定界面颜色和大小,

调用工作区模块函数。

3、函数主要调用关系图

 

系统函数调用关系图

 

三、程序设计(界面设计、后台详细设计)

主界面

四、设计总结

#include"stdio.h"

#include"conio.h"

#defineMAXSIZE100

/******************************************

定义数据结构

*******************************************/

typedefstruct_CUSTOMER_INFO{

intnNO;

}CUSTOMER_INFO,*CUSTOMER_INFO_PTR;

typedefstruct{

CUSTOMER_INFO_PTRbase;

intfront;

intrear;

}QUEUE;

boolInitQueue(QUEUE&Q)

{

Q.base=newCUSTOMER_INFO[MAXSIZE];

if(Q.base==NULL)

returnfalse;

else{

Q.front=Q.rear=0;

returntrue;

}

}

intEnterQueue(QUEUE&Q,intm)

{

if((Q.rear+1)%MAXSIZE==Q.front)

{

printf("队满!

\n");

return0;

}

Q.base[Q.rear].nNO=m;

Q.rear=(Q.rear+1)%MAXSIZE;

return1;

}

intLeaveQueue(QUEUE&Q)

{

if(Q.front==Q.rear){

printf("队空!

\n");

return0;

}

else{

intn;

n=Q.base[Q.front].nNO;

Q.front=(Q.front+1)%MAXSIZE;

returnn;

}

}

intQlength(QUEUEQ)

{

return(Q.rear-Q.front+MAXSIZE)%MAXSIZE;

}

intmain(intargc,char*argv[])

{

intnChoice;

intnCount=1;

intnIteration=1;

intnum;

intlength;

QUEUEQ[4];

CUSTOMER_INFOcustomer;

printf("****************农村信用社排队系统*************\n");

for(inti=0;i<4;i++)

InitQueue(Q[i]);

for(;;){

printf("\n\n==========第%d次模拟处理============\n",nIteration++);

for(intj=0;j<4;j++){

if(j==0)

printf("正在等待服务的顾客:

");

else

printf("%d号柜台已服务顾客:

",j);

length=Qlength(Q[j]);

customer=Q[j].base[Q[j].front];

for(intk=1;k<=length;k++){

printf("%3d",customer.nNO);

customer=Q[j].base[Q[j].front+k];

}

printf("\n");

}

printf("\n");

printf("1----1号柜台服务\n");

printf("2----2号柜台服务\n");

printf("3----3号柜台服务\n");

printf("4----新客户取号等待服务\n");

printf("0----退出银行排队系统\n");

printf("请选择:

");

scanf("%d",&nChoice);

if(nChoice<0||nChoice>4){

getchar();

printf("\n>>>输入非法!

\n");

}

if(nChoice==0)

break;

elseif(nChoice==4){

customer.nNO=nCount;

nCount=nCount+1;

EnterQueue(Q[0],customer.nNO);

}

elseif(nChoice>=1&&nChoice<=3){

num=LeaveQueue(Q[0]);

if(num){

customer.nNO=num;

EnterQueue(Q[nChoice],customer.nNO);

}

else{

printf("\n>>>当前没有等待客户!

\n");

}

}

}

return0;

}

五、设计总结

1、完成情况

这次是数据结构的第二个项目,我们小组基本还是能顺利完成本次项目内容,组长分工明确,各成员能按时并保质保量完成各自模块,但是在拼接时候出现很多问题,有的是细节,有的是源程序本身存在的错误,通过大家齐心协力,多次修改整合之后,最终上交了一份我们自己的成果。

虽然最后的功能创新点不是很多,但是我们在完善课本的内容时,解决困难也可以更加巩固所学到的知识,将学习到的知识运用到设计软件的代码里。

2、心得体会

白钰琦:

通过此次的银行排队系统的设计开发,让我对数据结构中链式队列结构有了更多的理解,对列是限定仅在一端进行插入,而在另一端进行删除操作的线性表,在此次实验中,我们才用的是链式队列的存储结构,该存储模式合适增删,但不适合查找,次程序可采用循环模式,但容易溢出。

同时,此次的设计让我更多的理解了c语言编程的规则,对以后的项目有了更好的基础。

徐程凯:

我这次负责的项目主要是视频的制作。

这次的项目是关于队列与栈的。

我们小组最后决定是用的是链式链表,因为这个项目不需要我们进行修改和查找只需要添加删除,所以我们觉得使用链式列表是最为科学的方法。

这次课程设计使我加强了自身的编程能力的同时,也让我认识到要将所学灵活的应用到实际生活中去,不可以凭空想象,要着眼实际,找到生活所需,理论里联系实际,才可以编写出真正有价值的程序。

徐海域:

课程设计不同于平时的编程实验,它的要求更多更全面,需要程序编写者在前期做出准确的需求分析,还有后期全面的程序测试,这些都是在过去的学习中很少接触到的。

通过老师的讲解和自身在编程中的实践,我深刻体会到需求分析可以使得程序更贴近生活,更具实用性,而全面到位的程序设计则可以保证程序的实用性和健壮性。

项鸿伟:

通过这次课程设计,我学到了不少东西,对大型的编写有了一丁点额了解,更重要的是断了了我的自学能力,这对我们的学习很有好处。

但是也存在很多问题,程序调试的时候出了很多问题,但是在同学的帮助下还是顺利的完成了这个程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2