ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:24.43KB ,
资源ID:16634981      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16634981.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言编写 银行取票排队系统Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言编写 银行取票排队系统Word下载.docx

1、/无密码登陆客服系统void call();/客服呼叫客户 客服要输入值班窗口号void callfree(int mywin);/窗口为空闲时呼叫客户 客服不用再输入值班窗口号elementtype dequeue(queue q);int num = 0; /客户编号变量 全局变量queue vip,nor; /定义2个队列 一个存普通客户,一个存vip客户int winallwin+1 = 0; /用数组下标表示窗口号,元素值表示窗口状态,值为0表示空闲,值1表示忙碌。【+1考虑到 0】idtype cardid50;/存储帐户卡号的一个数组 全局变量 不能定义得太小 因为如果输入的字符

2、超过数组长度,程序会出错 退出! idtype cardid250;/临时保存cardid的数据int list2*n = 0; / 按 “vip优先 vip客户间先来后到 普通客户间先来后到” 的规则排列好的服务顺序 数组元素数量为2个队列的长度time_t tgett,tint,toutt; /取票时间 进入窗口时间 离开窗口时间;指定time_t变量的大小 t在上面有宏定义/*/void yourid() /客户插入、确认银行卡 /int i; printf(t【请插入您的银行卡】: t); scanf(%s,cardid); / 这种赋值方法有漏洞 如果输入的字符超过数组长度,程序会出

3、错 退出! if(strcmp(cardid2,cardid) != 0) if(strlen(cardid) size = 0;int isfull(queue q)/检测队列是否已满 return(q-size = q-capacity ); /q的size(队列里的元素个数) 等于capacity(容量) 时意味着队列已满/*/queue createqueue( int maxelements ) /建立队列,maxelements 定义队列容量 queue q; if( maxelements array = (elementtype*)malloc( sizeof( element

4、type ) * maxelements );/强制转换格式 if( q-array = NULL )capacity = maxelements; makeempty(q); return q;void makeempty(queue q)size = 0;front = 1;/不是零rear = 0;/*/static int succ(int value,queue q) /此函数让rear回到队列最开始的位置 if(+value = q-capacity ) value = 0; return value;void enqueue(elementtype x,queue q) /入队函

5、数 if(isfull(q)full queue! q-size+; /队列增加一个队员 所以size要+1rear = succ(q-rear,q); /如果rear+1后 等于 容量(capacity),则rear变为0,否则rear+1arrayq-rear = x;elementtype dequeue( queue q ) elementtype x = 0; if( isempty( q ) ) printf( t【队列为空!size-; x = q-array q-front ;front = succ( q-front, q); return x;/*/void showfre

6、ewin() /显示空闲窗口 int i; for(i = 0;i=allwin-1;i+) / -1 因为窗口号比数组下标大1 if(wini = 0)t%d,i+1);/*/int checkfreewin() /检测有没有空闲窗口 没有的话返回值比窗口总数大1 int i,j = 0; i = allwin-1;i+) j+; /break; /return (i+1); /+1 因为数组下标与窗口号是不对应的 要用到返回值6(窗口数 + 1) return (j);/返回空闲的窗口总数void entrywin() /进入空闲窗口i (vip-size - 1)/空闲窗口数比队列里除本

7、客户外的人 多t【尊敬的VIP客户:%s,您的编号为:%d,客服马上呼叫您,请留意!,cardid,num);t【%d号客户取票时间】:%sn,yournum,ctime(&tgetyournum); nt【尊敬的VIP客户:%d 服务窗口全忙!】nt【您的前面有%d位客户正在等待,请稍等! ,cardid,num),(vip-size - 1);/vip队列里的人数减去客户本人 您当前不是vip客户!请选择“1、客户取票”服务】n cardid20 = 0;/没有取票成功 所以cardid2 不能和cardid 相等。把字符串结束符存到字符串第一个位置/*/void getnor() /普通

8、客户取票 num = number(); enqueue(num,nor); yournum = num; time(&/记录客户开始等待的时间 不需要强制转换变量类型 数组也需要&? resettx()函数返回一个合适的值/检测窗口数 if(winback size + nor-size - 1)/空闲窗口数 比排在前面的人数多t【尊敬的客户,您的编号为:%d 客服马上呼叫您,请留意!,num); ,num,(vip-size - 1) ); /*/void managewin() /管理窗口的开与关 char x; /开启窗口 关闭窗口 返回客服系统 int winx;/要开启或关闭的窗口

9、号 while(1) /选择1 或 2 之后才能跳出此循环 printf(t【当前空闲窗口】: showfreewin();t【请选择】:ttt1.开启窗口t2.关闭窗口nttt3.返回nt【您的选择】: scanf(x); / %s 比%c可靠 if(x = 1) /x为字符类型t【请输入要开启的窗口】: scanf(%dwinx); if(winx = allwin) if(winwinx - 1 = 0) printf(t【第%d号窗口当前为开启状态,无需再开启!,winx); else openwin(winx);t【第%d号窗口已成功打开! else printf(t【没有这个窗口!

10、 if(x = 2)t【请输入要关闭的窗口】: scanf( if(winx size; i+) %d ,(vip-array(vip-front) + i) );/显示vip listi = (vip-front) + i);/把客户编号按vip队列的顺序存到list数组中 for(j = 0; j j+) /显示普通客户编号的服务顺序,(nor-array(nor-front) + j) ); listi+j = (nor-front) + j);/把客户编号按nor队列的顺序存到list数组中 并且从listi开始 void callfree(int mywin)/值班窗口为空闲状态时呼

11、叫客户 char next1;/标记客户是否已成功办理业务 char next2;/标记是否关闭本窗口 char reach;/客户是否按时到达窗口 FILE *fp;/ 一定要大写的t【请%d号客户到第%d号窗口!,list0,mywin);/此前必须执行一次showqueue() list0会改变t【%d号客户是否已到达窗口?,list0);ttt1.客户已到达t2.客户已离开nreach); if(reach = tinlist0); /客户进入窗口的时间 不需要强制转换变量类型 数组也需要& resettx()函数 返回一个合适的值 winmywin- 1 = 1;/把刚才呼叫用户的窗

12、口置为忙碌 记住 -1 if(list0 = vip-arrayvip-front) /判断list数组的第一个元素 是属于vip 还是nor队列 dequeue(vip); dequeue(nor);t【客户已成功办理业务请按 Y 】: while(1) /直到按 Y后 才跳出循环next1); if(next1 = | next1 = time(&toutlist0);/服务结束的时间 客户离开窗口 不需要强制转换变量类型 数组也需要&nttt0.设置第%d号窗口为空闲nttt1.设置第%d号窗口为忙碌nt【您的选择】:,mywin,mywin); while(1) /如果不是按 1或 0 就重复执行下面的语句 直到按了1 或0才跳出循环 scanf(next2); if(next2 = winmywin - 1 = 1;nt【第%

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1