基于链队列的银行叫号系统
程序所能达到的功能:
- 可视化操作界面。
- 客户和工作人员共用同一个虚拟队列,客户取编号后的信息及时更新给工作人员。
- VIP客户和普通客户有设立不同窗口
- 派号功能:客户可根据自己的情况进行操作领取编号,同时可知道当前有多少人正在排队。
- 叫号功能:工作人员通过客户的排队情况进行叫号,在显示器上显示出来。
- 以及其他相关的人性化设计辅助功能
#define _CRT_SECURE_NO_WARNINGS
/* Bank System */#include<ctime>
#include "queue.h"
#include<windows.h>
#define VIP 0
#define COMMON 1
#define WORKER 1
#define CLIENT 0
time_t now;/*系统时间*///#include "queue_queue.h"//#define Line_ModeLinkQueue *common, *vip;//对象/* printf_func */
void printf_func(int flag)
{system("cls");if (flag) {printf(" *╭╮ ╭╮ ╭╮ \n");printf(" ││ ││ │└ ╮ \n ");printf(" ╭ ┴┴ ─ ┴┴Ⅲ ╮ ~└─ ╯ \n");printf(" | ﹋ ﹋ | ------------------------------ \n");printf(" | ∩ ∩ | ○ ☆ 请根据具体情况进行选择哦!☆ \n");printf(" | ▽ | O ------------------------------- \n");printf(" ╰ ─ m∞m─ ╯ \n");printf("\n\n -------------------------------------------------------\n ");printf(" | 中文 English | \n"); printf(" |1.呼叫vip用户的编号------One.Back call VIP number | \n");//呼叫的号码printf(" |2.呼叫普通用户的编号-----Two.Back call COMMON number | \n");//呼叫的号码printf(" |3.结束-------------------Three.Exit | \n");//通道printf(" ------------------------------------------------------ \n");printf("\n 请选择[1-3]--------------Please Select[one-three]:");//选择1-3窗口}else {printf(" *╭╮ ╭╮ ╭╮ \n");printf(" ││ ││ │└ ╮ \n ");printf(" ╭ ┴┴ ─ ┴┴Ⅲ ╮ ~└─ ╯ \n");printf(" | ﹋ ﹋ | ------------------------------ \n");printf(" | ∩ ∩ | ○ ☆ 请根据你的情况进行选择哦!☆ \n");printf(" | ▽ | O ------------------------------- \n");printf(" ╰ ─ m∞m─ ╯ \n");printf("\n\n --------------------------------------------------\n");printf(" | 中文 English |\n"); printf(" | 1.vip用户获取号----One.vip user get number | \n");printf(" | 2.普通用户获取号---Two.common user get number | \n");printf(" | 3.结束------------Three.Exit | \n");//结束的通道printf(" -------------------------------------------------- \n");printf("\n 请选择[1-3]:--------Please Select[one-three]:");//选择1-3窗口}
}/*
select_num
*/
int select_num(int flag)
{int num = 0;while (num < 1 || num > 3){printf_func(flag);scanf("%d", &num);}return num;
}/*
* Bank System Init 初始化
*/
int Bank_Sys_Init(void)
{vip = new LinkQueue;common = new LinkQueue;InitQueue(*vip);InitQueue(*common);return 0;
}/*
Bank System Quit退出程序
*/
int Bank_Sys_Term(void)
{DestoryQueue(*vip);DestoryQueue(*common);return 0;
}/*
Bank Get One ID
*/
int Bank_Sys_Get_Id(int flag)
{static int vip_id = 0;static int common_id = 0;//Line Modeif (flag == 0){if (0 == EnQueue(*vip, vip_id)){vip_id++;return vip_id;}elsereturn -1;}else{if (0 == EnQueue(*common, common_id)){common_id++;return common_id;}elsereturn -1;}}/***************************************************************
* Bank Call One ID
****************************************************************/
int Bank_Sys_Call_Id(int flag)
{int id, state;if (!flag) {state = DeQueue(*vip, id);}else {state = DeQueue(*common, id);}if (state == -1)return -1;return id;
}/***************************************************************
* Bank Get All Users Number
****************************************************************/
unsigned int Bank_Get_User_Num(int flag)
{unsigned int num;if (flag == 0)num = getLeft(*vip);//获得队列的长度elsenum = getLeft(*common);return num;
}
//bank--logo
void User_dispaly()
{printf("\n\n");printf(" 谢谢您的使用,欢迎下次再来!\n");printf("-------------------------------< bank--logo >---------------------------------\n\n");printf(" ``╭╮ ╭╮ ╭╮\n");printf(" ``││ ││ │└ ╮ \n");printf(" ╭┴┴———————┴┴╮~└—╯\n");printf(" │ │\n");printf(" │ ● ● │ \n");printf(" │ ○ ○│ \n");printf(" │ ╰—╯ │ \n");printf(" │ │ \n");printf(" ╰—┬o— — —o┬—╯ \n");printf(" ╭╮努力╭╮ \n");printf(" ╰┴————┴╯ \n");printf(" ══════════════════ \n");printf(" ║ 韶关学院银行 ║ \n");printf(" ║ 制作:陈玲珑 ║ \n");
}
void Worker_dispaly()
{printf("\n\n");printf(" 辛苦您啦,下次再见!\n");printf("-------------------------------< bank--logo >---------------------------------\n\n");printf(" ``╭╮ ╭╮ ╭╮\n");printf(" ``││ ││ │└ ╮ \n");printf(" ╭┴┴———————┴┴╮~└—╯\n");printf(" │ │\n");printf(" │ ● ● │ \n");printf(" │ ○ ○│ \n");printf(" │ ╰—╯ │ \n");printf(" │ │ \n");printf(" ╰—┬o— — —o┬—╯ \n");printf(" ╭╮努力╭╮ \n");printf(" ╰┴————┴╯ \n");printf(" ══════════════════ \n");printf(" ║ 韶关学院银行 ║ \n");printf(" ║ 制作:陈玲珑 ║ \n");
}
void introduce() {printf("\n 韶关学院银行系统启动中…… \n\n");Sleep(1000);system("cls");printf(" ``╭╮ ╭╮ ╭╮ \n");printf(" ``││ ││ │└ ╮ ∩------------------------------∩ \n");printf(" ╭┴┴———————┴┴╮~└—╯ | 您好,请根据您的需求进行操作,| \n");printf(" │ │ | 小白将会为您服务! | \n");printf(" │ ● ● │ ○ ∪------------------------------∪ \n");printf(" │ ○ ○│ ○ \n");printf(" │ ╰—╯ │ \n");printf(" │ │ \n");printf(" ╰—┬o— — —o┬—╯\n");printf(" ╭╮小白╭╮\n");printf(" ╰┴————┴╯\n");
}int login() {FILE *fp1, *fp2;int state;char str1[20], str2[20], str_z[20], str_m[20];//printf(" now time is %s\n", ctime(&now));//introduce();if ((fp1 = fopen("admin.txt", "rb")) == NULL){introduce();printf("\n 韶关学院银行欢迎您的使用! \n\n");printf(" -------------------------创建管理员账号----------------------\n");printf(" | 本系统没有您的工作后,请创建! |\n");printf(" -------------------------------------------------------------\n");now = time(NULL);printf(" Now time is %s\n", ctime(&now));printf(" -------------------------------------------------------------\n");printf(" ☆ 请输入管理员账号:");scanf("%s", str_z);printf(" ☆ 请输入密码: ");scanf("%s", str_m);printf(" -------------------------------------------------------------\n");fp2 = fopen("admin.txt", "wb");fprintf(fp2, "%s%c", str_z, '\n');fprintf(fp2, "%s%c", str_m, ' ');fclose(fp2);}fp1 = fopen("admin.txt", "rb");fscanf(fp1, "%s", str1);fscanf(fp1, "%s", str2);fclose(fp1);while (1){system("cls");introduce();printf("\n 韶关学院银行欢迎您的使用! \n\n");printf(" ----------------------------使用方式-------------------------\n");printf(" | |\n");printf(" | 1.工作人员模式 0.用户模式 |\n");printf(" | One.Worker mode zero.user mode |\n");printf(" -------------------------------------------------------------\n");now = time(NULL);printf(" Now time is %s\n", ctime(&now));printf(" -------------------------------------------------------------\n");printf(" * 请你选择(0-1):");scanf("%d", &state);printf(" -------------------------------------------------------------\n");if (state == 0)return 0;else if (state == 1){system("cls");printf(" *╭╮ ╭╮ ╭╮ \n");printf(" ││ ││ │└ ╮ \n ");printf(" ╭ ┴┴ ─ ┴┴Ⅲ ╮ ~└─ ╯ \n");printf(" | ﹋ ﹋ | ------------------------------------- \n");printf(" | ∩ ∩ | ○ ☆用您的专属工号进行登录才能工作哦!☆ \n");printf(" | ▽ | O ------------------------------------- \n");printf(" ╰ ─ m∞m─ ╯ \n");//printf("\n ------------------------------------------------------------ \n");printf(" → 请输入账号:");scanf("%s", str_z);printf(" → 请输入密码:");scanf("%s", str_m);printf(" -------------------------------------------------------------\n");if (strcmp(str1, str_z) == 0 && strcmp(str2, str_m) == 0){getchar();getchar();return 1;}else{printf(" -------------------------------------------------------------\n");printf(" | 账号或密码错误!!! |\n");printf(" -------------------------------------------------------------\n");system("PAUSE");system("cls");}}else{printf(" -------------------------------------------------------------\n");printf(" | 输入不合法!!! |\a \n");printf(" -------------------------------------------------------------\n");system("PAUSE");system("cls");}/*printf(" ."". ."". 您 \n");printf(" | | / / 已 \n");printf(" | | / / 成 \n");printf(" | | / / 功 \n");printf(" | |/ ;-._ 取 \n");printf(" } ` _/ / ; 编 \n");printf(" | /` ) / / 号 \n");printf(" | / / _/\_/\ , \n");printf(" | / / \ 请 \n");printf(" ( ' \ '- | 耐 \n");printf(" \ ` . / 心 \n");printf(" | | 等 \n");printf(" | | 候 \n");*/}
}
//选择VIP窗口
int SelectVIPWindow() {printf("\n请输入你所负责的窗口号:\n");printf("请选择[1-2]:");//选择1-2窗口int num;cin >> num;while (num < 1 || num>2) {printf("\n错误!!\n");printf("请再次输入你所负责的窗口号:\n");printf("请选择[1-2]:");//选择1-2窗口cin >> num;}return num;
}int SelectCommonWindow() {printf("\n请输入你所负责的窗口号:\n");printf("请选择[3-10]:");//选择1-4窗口int num;cin >> num;while (num < 3 || num>10) {printf("\n错误!!\n");printf("请再次输入你所负责的窗口号:\n");printf("请选择 [3-10]:");//选择1-4窗口cin >> num;}return num;
}/***************************************************************
* main
****************************************************************/
int main(int argc, char**argv)
{int id, Vip;//id-用户排队号码,vip-会员排队号码unsigned int num;//前面有num个人在排队int role;role = login();system("cls");Bank_Sys_Init();//dispaly();if (role == WORKER) {//工作人员叫号while (1){switch (select_num(WORKER)){case 1:int VIPWindowNumber;//VIP窗口号VIPWindowNumber = SelectVIPWindow();Bank_Sys_Init();load(*vip, VIP);num = Bank_Get_User_Num(VIP);id = Bank_Sys_Call_Id(VIP);write(*vip, VIP);Bank_Sys_Term();if (id == -1)printf("\n没有人在排队---there are no people in wait\n\n");else{printf("\n您应该叫VIP %d 来窗口号 %d ------you should call VIP %d,and go to window %d\n", id + 1, VIPWindowNumber, id + 1, VIPWindowNumber);printf("现在有 %d 个人在排队 ------there are %d people are in wait\n\n", num,num);system("pause");system("cls");printf("\n\n\n-----------------------------------------------------------------------------------------------------------\n");printf("/n请编号为%d的VIP客户到%d窗口办理业务!-------Customers numbered %d should go to %d window for business\n", id + 1, VIPWindowNumber, id + 1, VIPWindowNumber);printf("---------------------------------------------------------------------------------------------------------------\n");}break;case 2:int CommonWindowNumber;CommonWindowNumber = SelectCommonWindow();Bank_Sys_Init();load(*common, COMMON);num = Bank_Get_User_Num(COMMON);id = Bank_Sys_Call_Id(COMMON);write(*common, COMMON);Bank_Sys_Term();if (id == -1)printf("\n没有人在排队-----there are no people in wait\n\n");else{printf("\n您应该叫普通用户 %d 来窗口 %d ----you should call COMMON %d,and go to window %d\n", id + 1, CommonWindowNumber, id + 1, CommonWindowNumber);printf("现在有 %d 个人在排队-------there are %d people are in wait\n\n", num,num);system("pause");//-------------------------------------------------------------------------------system("cls");printf("\n\n\n");printf("-----------------------------------------------------------------------------------------------------------\n");printf("/n请编号为%d的VIP客户到%d窗口办理业务!-------Customers numbered %d should go to %d window for business\n", id + 1, CommonWindowNumber, id + 1, CommonWindowNumber);printf("---------------------------------------------------------------------------------------------------------------\n");}break;case 3:system("cls");Worker_dispaly();system("pause");Bank_Sys_Term();remove("VIP.txt");remove("COMMON.txt");return 0;}system("pause");}}else {//用户while (1){switch (select_num(CLIENT)){case 1:{Bank_Sys_Init();load(*vip, VIP);id = Bank_Sys_Get_Id(VIP);num = Bank_Get_User_Num(VIP);write(*vip, VIP);Bank_Sys_Term();if (id == -1)printf("\n编号已经爆棚了,您需要等几分钟!-------the number is too large, you have to wait several minutes !\n");else{system("cls");printf("\n\n您的编号为.%d ----you get the vip %d\n", id, id);printf("现在有 %d 个人在您前面排队--there are %d people in front of you\n\n", num - 1, num - 1);//------------------------------------------------------------------------------------------printf(" .''. .''. 您 \n");printf(" | | / / 已 \n");printf(" | | / / 成 \n");printf(" | | / / 功 \n");printf(" | |/ ;-._ 取 \n");printf(" } ` _/ / ; 编 \n");printf(" | /` ) / / 号 \n");printf(" | / /_/\\_/\\ , \n");printf(" | / / \\ 请 \n");printf(" ( '\\ '- | 耐 \n");printf(" \\ ` . / 心 \n");printf(" | | 等 \n");printf(" | | 候 \n");}break;}case 2:{Bank_Sys_Init();load(*common, COMMON);id = Bank_Sys_Get_Id(COMMON);num = Bank_Get_User_Num(COMMON);write(*common, COMMON);Bank_Sys_Term();if (id == -1)printf("\n编号已经爆棚了,你需要等几分钟------the number is too large, you have to wait several minutes !\n\n");else{system("cls");printf("\n\n您的编号为%d -----you get the common %d\n", id, id);printf("现在有 %d 个人在您前面排队\n\n", num - 1, num - 1);//--------------------------------------------------------------------printf(" .''. .''. 您 \n");printf(" | | / / 已 \n");printf(" | | / / 成 \n");printf(" | | / / 功 \n");printf(" | |/ ;-._ 取 \n");printf(" } ` _/ / ; 编 \n");printf(" | /` ) / / 号 \n");printf(" | / /_/\\_/\\ , \n");printf(" | / / \\ 请 \n");printf(" ( '\\ '- | 耐 \n");printf(" \\ ` . / 心 \n");printf(" | | 等 \n");printf(" | | 候 \n");}break;}case 3:{system("cls");User_dispaly();system("pause");Bank_Sys_Term();remove("VIP.txt");remove("COMMON.txt");return 0;}}system("pause");}}return 0;}
include"queue.h"是自己写好的头文件,c++的链队列比较容易实现就不放出来了
基于链队列的银行叫号系统相关推荐
- 数据结构实验二——队列(银行叫号系统)
一.实验目的 (1)掌握队列的链式存储结构 (2)掌握队列的基本操作,并能进行应用实践 (3)使用C/C++语言和队列实现"银行叫号系统"专题 二.实验任务 设计一个控制台程序,模 ...
- 基于IDEA的JavaWeb银行叫号系统
文档源资源见: https://pan.baidu.com/s/1Vc35QF-SP5NFq1xQJeX1jQ 提取码: 8259 复制这段内容后打开百度网盘手机App,操作更方便哦 基于JavaWe ...
- 用c语言银行队列系统,C语言学习之用队列实现银行排队系统
队列操作的接口:http://blog..net/qlx846852708/article/details/43666927 数据结构C语言实现:http://blog..net/qlx8468527 ...
- 用python写银行叫号系统(这个是学校的实训题目,真的没什么技术含量)
一. 项目概述 智能排队叫号系统是在银行等待业务办理区域所使用的智能叫号系统,系统可有效解决客户办理业务时排队的无序.业务员工作量的不平衡.就诊环境嘈杂等问题. 二. 需求分析 主要分为取号.排队等待 ...
- java 银行叫号系统
---------------------- ASP.Net+Unity开发. .Net培训.期待与您交流! ---------------------- 项目需求:模拟实现银行业务调度系统逻辑,银行 ...
- 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计
基于51单片机的双机串口通信排队叫号系统(LCD显示)设计 1 开发环境 视频讲解 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 设计要求及 ...
- 叫号系统排队系统挂号系统实现(JAVA队列)
关于队列,使用的地方非常的多.现实中有很多的例子.比如医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这样的排队取号的设备.他们的功能基本如下: 1.系统可联网联机统一发号: 2.系统 ...
- 51单片机热敏打印自助排队叫号系统银行医院柜台DY-SV17F语音播报
实践制作DIY- GC0079-自助排队叫号系统 一.功能说明: 基于51单片机设计-自助排队叫号系统 功能介绍: STC89C52RC最小系统板+0.96寸OLED显示器+DY-SV17F语音串口语 ...
- 叫号系统排队系统挂号系统实现
关于队列,使用的地方非常的多.现实中有很多的例子.比如医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这样的排队取号的设备.他们的功能基本如下: 1.系统可联网联机统一发号: 2.系统 ...
- 基于单片机的银行排队叫号系统(Keil工程文件+Proteus仿真原理图+过程详解+全套文档)
目 录 摘 要 I ABSTRACT II 1 绪论 1 1.1 课题来源 1 1.2 国内外发展状况 1 1.3 有线系统与无线系统 3 1.4 发展前景 4 1.5 系统的设计目的 4 2 系统的 ...
最新文章
- 2022 AAAI Fellow放榜!SAIL首席科学家颜水成、港科大教授冯雁等10人入选
- 除了芯片 我们还应关注哪些核心技术
- 虚函数和作用域(C++ primer 第五版)P550
- 3.5 mysql备份与恢复
- 多种方法教你破解电信共享上网的限制
- 怎么样让body、div占满整个浏览器的窗口
- Haar-like特征
- mysql独有的函数_数据库之MySQL函数(一)
- 浙江大学计算机考研408上岸,2016年跨考上岸浙江大学计算机研究生,初试412分经验谈!...
- Python中super的用法
- 情感极性分析:基于情感词典、k-NN、Bayes、最大熵、SVM的情感极性分析
- 如何激活Office 2016(ProPlus/Visio2016/Project2016) VOL 简体中文版下载地址和安装方法哦
- 一加3t刷机后还卡_一加3t刷机工具大全+3个ROM
- 相机和镜头选型的关键:像素尺寸与景深
- Java百度网盘上传图片(文件)
- 究竟什么是冯诺依曼瓶颈(von Neumann Bottleneck)?
- 浏览器兼容测试工具-IETest
- sjtu1313 太湖旅行
- 为什么很少人用redmine_为什么古代书法家要把字写歪?
- 女子连WiFi结果收到巨额话费单:有些WiFi其实是收费的
热门文章
- 全国网络安全等级保护测评机构推荐目录
- 谁是应用软件商店急需的外援
- 实验一 winrunner的安装使用
- pdf介绍及pdf相关软件(内容来自百度百科)
- Word技巧:快速将不同字数的姓名对齐
- WAP网站制作(WAP网站建设)全攻略教程一
- 360se html怎么删除,360安全浏览器服务组件能删除吗 如何删除
- java用php退出清除session_PHP学习笔记:删除与销毁session
- 微软.NET设计上的一个错误(从.NET1.1--4.0),不知道以后.NET会不会修复这个错误...
- uni-app android权限