基于嵌入式银行叫号系统设计(源码+万字报告+实物)

目 录
1绪 论 1
1.1 设计目的和意义 1
1.2 国内外研究现状 1
1.3 设计内容 2
2 嵌入式概述 3
2.1 嵌入式简介 3
2.2嵌入式特点 3
2.3 嵌入式的发展阶段 3
2.3.1 第一阶段 3
2. 3. 4 第二阶段 3
2. 3. 4 第三阶段 3
2. 3. 4 第四阶段 3
3 Qt概述 4
3.1 Qt简介 4
3.2 Qt的特点 4
3.3 Qt的实际应用 4
4总体设计方案 6
4.1系统的设计任务 6
4.2工作原理 6
4.3 工作流程 6
4.4 柜员机设计 7
4.5叫号机设计 8
4.5.1叫号机主页面…8
4.5.2叫号机子页面…9
4.6 显示窗口设计 .10
4.7 服务器设计 12
4.8发展前景 14
结 论 15
参考文献 16
致 谢 17
附 录 .18

1绪论
1.1 设计目的和意义
在我们的日常生活当中排队的现象已经是随处可见,特别是银行也得到了大家的认可,随之人们逐渐愿意把钱存进银行当中。面对顾客的增多,怎样让顾客更好地接受服务,合理的解决银行排队叫号的问题已经成为了当务之急。随着科技的进步,嵌入式和C语言的出现为银行叫号系统的出现创造了契机。长久以来,人们在银行营业大厅中忙碌的身影,你拥我挤的问题也日益突出,排队有时一站就是一个小时或者更久,这样极大的影响了顾客的服务体验,工作人员坐着服务、客户站着等待的服务方式和“用户就是上帝”的服务宗旨背道而驰。如何提高服务质量,创造一个人性化的服务环境,已经成为我们必须解决的问题,只有解决这些问题才能再次赢得顾客的认可。随之银行叫号系统出现在我们的视野当中,这科技服务人类、以人为本的最好诠释。
1.2 国内外研究现状
随着嵌入式计算机系统的不断发展进步,也促进了银行叫号系统的发展进步。现在许多的排队叫号系统已经具备了多种功能比如会有语音的提示、在大屏幕上显示、叫号终端。在银行大厅叫号机上的触摸屏上查询取号、按键取号也逐渐的取代了原来的取号机自动打印。随着我们国家的日益强盛加入世贸组织以后,银行排队叫号系统也被带入国内,并且随着经济发展的进步也带动银行叫号系统的飞速发展。我国自主研发的叫号系统在1998年开始起步,在到2003年能自主设计出结合了我国国情的系统产品。银行排队叫号系统也逐渐被顾客所接受。在欧美这些西方国家当中最早出现的,最开始的排队叫号系统是应用于工作人员的人工呼叫的,但随着计算机技术的进步,计算机语言的兴起,也为排队叫号系统的发展奠定了基础。目前的银行叫号系统已经有了诸多功能例如机器的语音提示、叫号机终端和柜台工作人员上面的LED提示显示、显示窗口的提示等等。排队叫号系统彻底的改变了我们的生活,彻底改变了原来需要长时间排队的状况,也被越来越多的行业所选择,用来提高在本行业当中核心竞争力与自身的管理水平。
智能排队叫号机也叫做智能排队叫号系统,它是运用了诸多技术在基于嵌入式的银行叫号系统当中。本论文当中的银行叫号系统是根据银行的实际情况所设计的,它较好的模拟了银行排队叫号的流程,改变了原来需要顾客在窗口站立等候的排队方式,实现了用银行叫号系统来代替顾客在窗口进行排队的流程。在各种各样的服务业中所使用,目前已经在银行、大小医院、各种通讯行业的营业厅当中、以及一些国家级的服务窗口当中。现在的银行叫号系统发展主要体现如下:
第一方面:虚拟/物理呼叫器 无论是哪一个都需要利用现有电脑的网线,不仅能节约在工程布线上的不必要花费,而且还简化了施工难度。虚拟呼叫器更适合在有电脑有网络的情况下使用,物理呼叫器适合在没有电脑的情况下使用。根据不同的情景结合实际情况,
两种呼叫机也可以调换。
第二方面:对后台进行监控基本可以实现足不出户,就可以了解公司或者是内部的实时动态,更方便对工作人员的调动,以及对人员的管理。极大的方便了管理人员。
第三方面:高度集成性主要的器件它内部都有单独的控制板。处理器、各种类型的接口。
第四方面:排队叫号系统的市场逐步稳定,趋使叫号系统向完善缺陷增加人性化的功能、外观更加精美符合人体结构学轻便小巧等特点发展。
虽然国内在国外引进了一批叫号系统的产品,但是价格却有些难以接受,这就促使我国服务行业自主研发产品,近几年我国自主研发的叫号系统已经逐渐被使用。我国自主研发的银行叫号系统不仅价格上比国外低了好多,而且功能上更适合我国实际情况。
1.3 设计内容
在计算机语言当中C语言已经得到了广发的应用。C语言的设计初衷就是以少量的代码,来操作一些低级的存储器。同时编译方式十分简单,而且不需要搭建任何的编译环境。C语言不仅提供了各种各样的低级处理功能,而且他依旧有良好的跨平台性,一个按要求编写的C语言基本可以在不同的操作平台上进行编译,甚至在一些单片机上超级电脑上都可以进行编译的。
在20世纪80年代,为避免因为不同人不同习惯C语言所写的代码不同,美国的标准局为C语言编写了一套标准语法,称之为ANSI C,这就是C语言最早的语法标准。在程序开发得过程之中,为了更好地进行开发就需要对计算机语言进行移植。C语言的强大移植性(Portability)在此彰显。很多机器语言都没有移植性,因为在ARM上X86程序是不能运行。然而C语言程序则可以使用在任意架构的处理器上运行,只要该架构的处理器上具有对应的C语言编译器和库,然后在将C语言的源代码进行编译、连接成目标二进制的文件之后就可以运行。
本论文主要是以银行叫号系统作为主要研究对象,本系统是根据银行实地进行了系统性的调查,分析实际问题所设计的系统,根据不同的情景,提供了不同的解决方法。让银行排队叫号系统功能上更加完善、更符合人性化地设计。

2 嵌入式概述
2.1 嵌入式简介
IEEE全称Institute of Electrical and Electronics Engineers,是对嵌入式系统的定义:“用于监控、控制或者是辅助操作机器和设备的装置”。嵌入式计算机是由硬件层、中间层、软件层和应用层组成,它在嵌入式系统当中占有核心地位[1]。执行装置接收嵌入式计算机发出的控制命令,执行所需的操作。其实有些也很简单他在我们的身边随处可见,比如我们手机当中电机,当接收命令时,手机的震动就会打开;有时也可能很复杂,像三星的机器狗,在上面有很多的传感器和控制电机,从而实现执行各种复杂的动作或感受状态信息。
2.2嵌入式特点
1.在开放性或者伸缩性结构中都可以进行裁剪运行。
2.一般可以在各种设备控制中运用。
3.驱动接口的在不同的设备当中都已经统一了。
4.都有简单的操作页面,操作简单、灵活、易学易懂,同时支持了大多数的网络协议,支持大多数访问层接口,同时也为移动设备预留了接口。
5.具有强大稳定性,系统运行以后就不需要用户的维护,系统管理达到这种要求EOS就需要有较高的稳定性。用户只需调用系统中提供给的命令就可以,通常是不提供其他的操作命令的。
6.在嵌入式系统中,所有的操作系统和软件应用都被固话在ROM当中。
7.基本所有硬件都支持,同时还具备强大的移植性。
8.嵌入式计算机系统具有较长的生命周期,因为它都是和实际应用有机的结合在一起,伴随着应用的更新换代,它也同步进行着,促使计算机系统不断地进步发展。
2.3 嵌入式的发展
嵌入式系统的发展历程大致经历了一下4个阶段: 
1.单片机时代:这一时期还没有操作系统,一般用汇编语言编写系统功能。这一时期的嵌入式系统结构功能单一,存储容量小,几乎没有用户接口。 
2.微型控制器时期:由于对系统的要求提高,微控制的智能化控智能日益突出。这一时期已经有简单的操作系统,微处理器种类也越来越多,花费小,效率高但是通用性不高。
3.片上系统时期:这一时期的嵌入式系统已经可以在大多数微处理器上运用,具有良好的兼容性,而且操作系统的内核很小。 
4.嵌入式系统网络化:这一时期的嵌入式系统集成了许多的网络接口;这时的设备在网络环境中已经得到了运用。

3 Qt概述
3.1 Qt简介
Qt是由奇趣科技研发的一款跨平台的图形界面开发工具。它支持在不同平台上开发移植。Qt是以面向对象为框架,用专有的代码生成一些扩展以及宏,允许许多组件使用,同时便于扩展[2]。2012年,Qt被Digia收购。2014年,跨平台集成开发环境Qt Creator 正式发布,实现了对于iOS的完全支持,新增许多的插件,删除了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了相应调整,至此实现了全面支持iOS、Android、WP。
Qt它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
3.2 Qt特点
1.简单易学:在Qt当中简单的几行代码就能开发出来一个简单的程序,同时封装的很而 MFC 封装简陋,学习过程麻烦,大多数都反映难学。
2.Htmlayout、aardio 的资料就很少。
3.精美的界面:在Qt 通过内部的工具很容易做出一个让人满意的界面和炫酷的动画,相对于其他的软件则难了许多。
4.独立安装:Qt 程序最终会编译为本地代码,不需要其他库的支撑,而 Java 则需要安装虚拟机,C# 也需要安装 .NET Framework。
5.跨平台:Qt完美的支持了当今的主流平台,具有强大的跨平台性,同时又可以节约好多的开发开支。
3.3 Qt的实际应用
1.使用Qt的步骤:
(1)启动QtCreator,确保处在欢迎界面,然后点击“New Project”(新工程)按钮。
(2)点击页面中,选中"Application”(应用程序),然后再根据实际需要进行选择。
(3)指定项目名称和保存路径。
(4)选择编译工具。根据实际需要选择一个编译工具就可以了。根据你要创建的工程所需的类选择一个基类。在这里是要创建一个对话框,所以选择了"QDialog”类。即可。选好之后,再点击“下一步”。
(5)此时,根据你要创建的工程所需要的类选择一个基类。在这里是需要创建一个对话框,所以选择了"QDialog”类。
(6)这时候决定是否用Qt的界面设计工具。如果这儿不勾选,则使用代码来创建图形界面。选好之后,再点击“下一步”。
(7)最后,点击“完成”。此时,窗口下方将会列出所有的工程文件名。
(8)当我们的工程创建好之后,这时我们可以选择ui文件,就可以编译图形界面了。
(9)在设计器中,我们可以在工具栏中选择所需的控件,找到后可以拖出来,在合适的位置放开就可以了。
(10)当我们需要改变某个控件的属性时,第一步选中该控件,然后就可以在该控件的属性栏中编辑相关属性。
(11)当图形界面设置完成后,我们点击左侧的“编辑”即可回到代码编辑窗口。
(12)当代码写完后,就可以对完成的代码进行调试或编译工程。
(13)选择好编译模式后,过一会儿,就可以点击左下角的运行按钮了。

4 总体设计方案
4.1系统的设计任务
银行排队叫号系统设计为了解决顾客在办理业务的时杂乱无章的情况,所以考虑到用户的生活习惯,操作的简单性,让人们一用就会、一学就懂[3]。它出现的目的就是为了提高工作人员的工作效率,同时让顾客可以合理安排在排队等候的时间,或是在休息区等待或是出去办事,让顾客享受公平舒心的服务。考虑到客户所办理的业务种类不同、问题的不同,方便客户以及对系统的管理。该系统就应该有良好的安全性、可靠性和稳定性来不同情况的稳定运行。
4.2工作原理
因为C语言的广泛性,强大的可移植性、能在大多数操作系统中运行,所以我们所选择的是运用C语言为编程语言,来编写较简单的延时和循环[4]。利用计算机内部的计数器进行计数,运用Linux系统进行模拟取号叫号、显示窗口提示顾客前往柜台机办理业务。
4.3工作流程
依据银行叫号排队系统的实际情况,完整的模拟了银行的排队叫号的工作流程。根据银行实际排队叫号系统的提示,顾客通过触摸屏选择所需的服务类型,银行排队叫号系统会通过网络来对账户的需求进行分析和验证,当系统验证成功后会通过内部网络服务器工具获取客户的需求信息并进行记录更新,然后排队叫号系统将会对客户的需求信息进行智能的排队,并将排队信息传输到显示窗口来提示顾客所处的序列,顾客可以拿着所取得票号在银行的休息区等待,只需留意显示窗口的提示以及语音叫号。同时顾客所处的排队信息也会传输到LED屏幕上进行显示,并传输到银行柜员系统当中去,当银行的工作人员可以通过按键来命令控制系统呼叫下一位顾客的时候,银行叫号系统将控制开发板上的显示窗口来提示叫顾户来进行服务。利用这种的银行排队叫号系统,实现对银行排队叫号系统的有效管理。
本论文当中所研究的的嵌入式银行排队叫号系统,它是运用了诸多技术的高新技术产品。比如计算机技术、多媒体技术、网络技术、通讯控制技术等等都在银行叫号系统中都能找到他们的影子。本论文当中的银行叫号系统是根据银行的实际情况所设计的,它较好的模拟了取号、进队、排队、叫号服务的流程,改变了原来需要顾客在窗口站立等候的排队方式,实现了用银行叫号系统来代替顾客在窗口进行排队的流程,在银行的门口或者大厅中央放置一台叫号机,当顾客来到叫号机时根据屏幕上的提示结合自身业务类型进行相关操作,当顾客在叫号机上按下“取号”键时,提示前面还有几个人,自己在排队中所处的具体位置[5]。综合以上的信息顾客可以对后面的时间进行安排,或是选择在休息区休息,人数过多时也可以选择出去办理其他时期,改变了原来将顾客“绑在”银行的现状。当提显示窗口时,被叫到的顾客就可以前往柜台机进行一对一的服务。当柜员机按下正在处理键时,便可以显示当前处理顾客的排号。处理完毕后,按下下一位,窗口便会提示下一位顾客接收服务。当前号码如果没有人来时,就可以继续按下一位。综合以上情况,我们采用Qt来设计整体机构,C语言来设计服务器。
4.4柜员机设计

柜员机操作界面

1.柜员机部分,主要实现接收取号机数据并进行处理数据的功能。柜员机主要讲解:(1)当前处理部分:本部分主要向外显示当前处理情况。(2)叫号部分:按叫号键可以进行叫号,将信息传递给显示窗口。(3)进行处理部分:当顾客到达窗口时,按下处理键可以显示正在处理。
2.柜员机内部的主要代码:

#include “widget.h”
#include “ui_widget.h”

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);

port_dst = 1234;
port_rsc = 1230;

recv_socket = new QUdpSocket(this);
send_socket = new QUdpSocket(this);

serveraddr = new QHostAddress(“192.168.1.25”);

connect(recv_socket, SIGNAL(readyRead()), this, SLOT(data_recved()));
bool tmp = recv_socket->bind(port_rsc);
if(!tmp)
ui->NetLabel->setText(“Networking Is Not Connected”);
else
ui->NetLabel->setText(“Networking Is Connected”);
}

4.5叫号机设计
4.5.1叫号机主页面

叫号机主操作界面

1.叫号机部分主要实现数据传递数据的功能。(1)当前取号部分:主要根据顾客来的前后进行排号。(2)选择部分:根据顾客的权限进行选择,选择普通取号或者是会员取号。

4.5.2叫号机子页面

叫号机子操作界面

1.叫号机部分主要实现数据传递数据的功能。主要讲解: (1)当前取号部分:主要根据在主界面的身份选择,然后根据取号先后进行排队。(2)取号部分:本部分主要是根据当前号码显示进行取号。(3)一号窗口:主要处理会员顾客的业务,没有会员处理普通顾客,优先会员业务。
2.叫号机主要代码:

void Widget::recvdata(void)
{
QByteArray datagram;
QString datastring;

datagram.resize(recv_socket->pendingDatagramSize());
recv_socket->readDatagram(datagram.data(), datagram.size());
datastring = datagram.data();

ui->LcdNum->display(datastring);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值