用c语言完成银行排号系统,【分享】C语言 银行取票排队系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
void call() //客服呼叫客户
{
int mywin;//客服所在窗口号 自动分配窗口改为手工分配
char mywinchar;//字符型的窗口号 0的ascii码为48
char setfree;
printf("\t【当前空闲窗口】:");
showfreewin();
printf("\t【当前客户队列情况】:");
showqueue();
printf("\n");
if(vip->size == 0 && nor->size == 0)
{
printf("\t【暂时没有客户等待服务!】\n");
service();
}
else
{printf("\t【请输入您值班的窗口号】:");
scanf("%s",&mywinchar);
mywin = mywinchar -48;//这样做可以避免输入非数字引起程序错误 但是窗口总数不能大于9!!0的ascii码为48
if(mywin >= 1 && mywin <= allwin)
{
if(win[mywin - 1] ==0) //值班的窗口为空闲状态
{
callfree(mywin);//将值班的窗口号 mywin传递给callfree函数
}
else
{
printf("\t【第%d号窗口当前为忙碌状态!】\n",mywin);
printf("\t【是否设置第%d号窗口为空闲,并继续呼叫客户?】\n",mywin);
printf("\t【请选择】:\n");
printf("\t\t\tY.是\tN.否\n");
printf("\t【您的选择】:");
scanf("%s",&setfree);
if(setfree ==*Y* ||setfree ==*y*)
{
win[mywin - 1] = 0;
callfree(mywin);//不用再次输入窗口号 将当前窗口号传递到callfree()函数 按原来的窗口号呼叫客户
}
else
{
if(setfree == *N* || setfree == *n*)
{
call();//选择其他窗口号来呼叫客户
}
else
{
printf("\t【没有这个选项!】\n");
}
}
}
}
else
{
if(mywin >= 1 && mywin <= 9)
{
printf("\t【第%d号窗口暂未开设,请确认您所在值班的窗口号!】\n",mywin);
call();
}
else
{
printf("\t【请正确输入您值班的窗口号!】\n");
call();
}
}
}
}
/*************************************************************/
void servicelogin() //登陆客服系统
{
char password[] = "1";
char pass[20]; //记录输入的密码
printf("\t【请输入登陆密码】:\t");
scanf("%s",pass);//pass是数组 不需要&
while(strcmp(pass,password) == 0) //strcmp为字符串比较函数,返回值为0表示两字符串相同
{
service();//service()函数里有跳出循环的语句 所以这里不是死循环
}
printf("\t【登陆密码错误!】\n");
hugemenu();
}
/*************************************************************/
void service()
{char menu; //客服系统里的菜单变量 若此处设置为整型 万一输入的不是数字会造成死循环 所以设置为字符型
printf("\n\t【请选择】:\n");
printf("\t\t\t1.呼叫客户\t2.队列情况\n\t\t\t3.管理窗口\t4.返回\n");
while(1)
{printf("\t【您的选择】:");
scanf("%s",&menu); // %s 比%c可靠
switch(menu)
{
case *1*:call();service();break;//文单引号表示是字符型
case *2*:printf("\t【当前队列情况】:");showqueue();service();break;
case *3*:managewin();break;
case *4*:hugemenu();break;
default:
{
printf("\t【请正确选择您的服务项目!】\n");
printf("\t\t\t1.呼叫客户\t2.队列情况\n\t\t\t3.管理窗口\t4.返回\n");
}
}
}
}
/*************************************************************/
void turnoff()
{
char password[] ="1";
char pass[30];//定义大一点 因为如果输入的字符超过数组长度,程序会出错 退出!
char sure;//确定不确定关闭
printf("\t【请输入登陆密码】: ");
scanf("%s",pass);//输入密码时 如果输入的字符超过数组长度,程序会出错 退出!属于漏洞!
if(strcmp(pass,password) == 0)//对比字符串 返回值等于意味着密码正确
{
printf("\t【关闭系统后,客户将不能排队取票!】\n\t【您确定要关闭吗?】\n\n");
printf("\t\t\tY.关闭\t\tN.保持\n");
while(1)
{printf("\t【您的选择】:");
scanf("%s",&sure); //不应该用%c 因为用%c的话 回车时会影响
if(sure == *y* || sure == *Y* ) //注意不是sure == *y* || *Y* !!!
{
printf("\t【系统关闭中...】\n");
Beep(800,300); Beep(800,300); Beep(800,800); //声音 beep(调子,时间)
exit(0);//关闭系统
}
else
{if(sure == *n* || sure == *N*)
{
printf("\t【系统未关闭 依然正常运行!】\n");
break;
}
else
{
printf("\t【关闭请按 Y 保持请按 N】\n");
}
}
}
}
else
{
printf("\t【密码错误!请重新输入!】\n");
}
}
/************************************************************/
void hugemenu()//最大的菜单
{
char menu; //服务项目菜单 采用字符型比较可靠!因为如果定义成整型,万一输入了字符,可能会造成死循环错误
while(1) //系统将一直运行 直到运行 turnoff()函数
{
printf("\n\t********************欢迎您使用本系统********************\n\n");
printf("\t【请选择服务项目】:\n");
printf("\t\t\t1.客户取票\t2.VIP服务\n\t\t\t3.客服系统\t4.关闭系统\n");
printf("\t【您的选择】:");
scanf("%s",&menu); //用%s 比%c好 %c会记录字符 而且比如输入111 就会执行getnor() 3次!如果用%s。也输入111,不同的是只执行一遍getnor 后面两个1与回车都不起作用。
switch(menu)
{
case *1*:getnor(); printf("\n\t^^^^^^^^^^^^^^^^^^^^感谢您使用本系统^^^^^^^^^^^^^^^^^^^^\n\n");break;
case *2*:getvip(); printf("\n\t^^^^^^^^^^^^^^^^^^^^感谢您使用本系统^^^^^^^^^^^^^^^^^^^^\n\n");break;
case *3*:servicelogin();break;
case *4*:turnoff();break;
default:printf("\t【暂时没有这个选项!】\n");
}
}
}
/***********************************************************/
int main()
{
vip = createqueue(n);//创建vip客户队列
nor = createqueue(n);//创建普通股客户队列
hugemenu();//调用主界面 //hugemenu()函数是无限循环函数,内部有跳出循环的语句
return 0;
}
用c语言完成银行排号系统,【分享】C语言 银行取票排队系统相关推荐
- 火锅店的排号系统c语言代码,【分享】C语言 银行取票排队系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void call() //客服呼叫客户 { int mywin;//客服所在窗口号 自动分配窗口改为手工分配 char mywinchar;//字符型的 ...
- c语言排队系统,【分享】C语言 银行取票排队系统
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void call() //客服呼叫客户 { int mywin;//客服所在窗口号 自动分配窗口改为手工分配 char mywinchar;//字符型的 ...
- C语言-实现一个简易的银行排号叫号系统
这两天在网上看到这个题目,感觉挺有意思,就做了一下.我在网上看到其他人都是用C++做的,因为不懂C++语言,没看懂,尝试着用C语言做了该题.希望能来看该题的大神指点指点,估计还有些bug没找出来. 本 ...
- java毕业设计——基于java+Socket+Java GUI的银行排号系统设计与实现(毕业论文+程序源码)——排号系统
基于java+Socket+Java GUI的银行排号系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Socket+Java GUI的银行排号系统设计与实现,文章末尾附有本毕 ...
- Java银行排号系统
技术:Java等 摘要: 银行排号系统是为解决一些服务业营业大厅排队问题而设计的,它能够有效地提高工作人员的工作效率,也能够使顾客合理的安排等待时间,让顾客感到服务的公平公正.论文首先讨论了排号系统的 ...
- 数据结构——数据结构模拟银行排号叫号系统参考
数据结构模拟银行排号叫号系统参考 4/27.作业三 用队列的简单操作实现,代码较简单,提示信息易懂 定义一个结构体SqQueue 判断队列是否为空 判断队列是否已满 向队列中插入元素 元素e出队,并用 ...
- 毕业设计 银行排号系统的设计与实现
文章目录 一.项目设计 1. 模块设计 (1) 服务器端 (2) 客户端 2. 实现效果 二.部分源码 项目源码 一.项目设计 1. 模块设计 该系统功能从服务器端和客户端角度来说可分以下两大模块,具 ...
- c语言字母加单引号和不加,C语言单引号和双引号的区别
C语言单引号和双引号的区别 导语:C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们来看看C语言单引号和双引号的`区别 ...
- 12306订票排队系统效率低下 被指存在多处漏洞
9月18日凌晨消息,铁道部唯一的官方订票网站12306.cn周日完成了新一轮升级,但是多位用户反映,升级后用户购票可能会被强制排队,由于系统存在多处漏洞,排队后购买失败的概率很大. 家住北京亚运村的刘 ...
最新文章
- nginx:413 Request Entity Too Large 及 修改 PHP上传文件大小配置
- mybatis 无法初始化类_从零开始手写 mybatis(一)MVP 版本
- pythonsklearn教学_Python使用sklearn实现的各种回归算法示例
- Android 百度地图之全局搜索周边搜索全国搜索城市路线规划(升级版附源码)
- 密码机项目安装软件时候出现的问题以及对应的解决办法
- 工程师误删了公司生产数据库,如何看待数据安全架构的脆弱性?
- python 线程池 map_python 线程池 map_python ThreadPoolExecutor线程池使用-阿里云开发者社区...
- SAP License:为什么新一代的财务产品不能从传统erp企业里长出来?
- ShardingSphere-Proxy 主从读写 入门使用
- 客户端验证的极品--jQuery.validator
- java se mac 10.9_jdk9mac下载|jdk8(Java SE Development Kit)8 mac2017 最新版_ - 极光下载站
- h264和h265视频流SDP描述详解
- JavaWeb 图书管理系统
- HOJ 1276 士兵队列训练问题(stl, 水题)
- 晶振选型需要注意哪些事项?-台湾TST嘉硕
- 2062【例1.3】电影票-一 c++语言入门-c++语言
- PgAdmin3 F7
- 【Web技术】前端水印实现方案
- java version 1.8下载_JDK1.8下载、安装和环境配置教程
- LeetCode每日一题打卡组队监督!刷题群!
热门文章
- 0x00000000 处有未经处理的异常: 0xC0000005: 在位置 0x0000000000000000 发生访问冲突
- 【c++】48.g++编译opencv、多线程
- 7 Steps for becoming Deep Learning Expert
- Netty入门官方例子
- Vue.js 渲染函数 JSX
- 使用基于注解的mybatis时,利用反射和注解生成sql语句
- 深度网络的设计与可视化工具
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
- Mahout推荐算法API详解
- 机器学习的数学基础(1)--Dirichlet分布