银行排队叫号系统设计实验报告(范本模板)
- 格式:doc
- 大小:2.00 MB
- 文档页数:16
第1篇一、实验背景排队论是运筹学的一个重要分支,主要研究在服务系统中顾客的等待时间和服务效率等问题。
在现实生活中,排队现象无处不在,如银行、医院、超市、餐厅等。
通过对排队问题的研究,可以帮助我们优化服务系统,提高顾客满意度,降低运营成本。
本实验旨在通过模拟排队系统,探究排队论在实际问题中的应用。
二、实验目的1. 理解排队论的基本概念和原理。
2. 掌握排队模型的建立方法。
3. 熟悉排队系统参数的估计和调整。
4. 分析排队系统的性能指标,如平均等待时间、服务效率等。
5. 培养运用排队论解决实际问题的能力。
三、实验内容1. 建立排队模型本实验以银行排队系统为例,建立M/M/1排队模型。
该模型假设顾客到达服从泊松分布,服务时间服从负指数分布,服务台数量为1。
2. 参数估计根据实际数据,估计排队系统参数。
假设顾客到达率为λ=2(人/分钟),服务时间为μ=5(分钟/人)。
3. 模拟排队系统使用计算机模拟排队系统,记录顾客到达、等待、服务、离开等过程。
4. 性能分析分析排队系统的性能指标,如平均等待时间、服务效率、顾客满意度等。
四、实验步骤1. 初始化参数设置顾客到达率λ、服务时间μ、服务台数量n。
2. 生成顾客到达序列根据泊松分布生成顾客到达序列。
3. 模拟排队过程(1)当服务台空闲时,允许顾客进入队列。
(2)当顾客进入队列后,开始计时,等待服务。
(3)当服务台服务完毕,顾客离开,开始下一个顾客的服务。
4. 统计性能指标记录顾客等待时间、服务时间、顾客满意度等数据。
5. 分析结果根据实验数据,分析排队系统的性能,并提出优化建议。
五、实验结果与分析1. 平均等待时间根据模拟结果,平均等待时间为2.5分钟。
2. 服务效率服务效率为80%,即每分钟处理0.8个顾客。
3. 顾客满意度根据模拟结果,顾客满意度为85%。
4. 优化建议(1)增加服务台数量,提高服务效率。
(2)优化顾客到达率,降低顾客等待时间。
(3)调整服务时间,缩短顾客等待时间。
本科毕业设计(论文)题目银行排队叫号系统的设计学生姓名陈福秀专业班级 09 电子科学与技术1班学号 2院(系)电气工程学院指导教师(职称) 王继红(讲师)完成时间 2013 年05月18日郑州科技学院电气工程学院二○一三年五月郑州科技学院毕业设计(论文)任务书题目银行排队叫号系统的设计专业 09电科学号 2 姓名陈福秀一、主要内容收集,整理与课题有关技术与产品资料,确定系统方案,设计电路原理图,绘制电路板,编写应用程序,进行焊接调试并撰写毕业论文。
二、基本要求1. 检索与课题有关的资料,提出自己的设计方案,方案应具有可行性、经济性;写出开题报告。
2. 编写论文初稿。
3. 在的初稿基础上撰写毕业论文。
4. 毕业论文的撰写,要求认真工整、条理清晰、正确标准。
三、主要参考资料1. 张毅坤编.单片微型计算机原理及其应用[M] 西安:西安电子科技大学出版社19982. 金篆芷.王明时现代传感器技术[M].北京:电子工业出版社19953. 吕俊芳. 传感器接口与检测仪器电路[M].北京:北京航空航天出版社1994完成期限:指导教师签名:专业负责人签名:2013年5月18日摘要本文设计了一套排队叫号系统。
该系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。
以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化,规范化。
通过该系统的使用,客户不必为排队浪费大量精力,便于管理排队秩序,同时适应信息时代管理数字化的要求,提高服务水平与质量。
排队叫号系统是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,能够很好地解决客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。
本课题研究的是一款无人排队的排队叫号系统,它主要由系统主从机、键盘、显示电路、蜂鸣器电路等部分构成。
2011年至2012年第一学期《银行排队叫号系统设计》课程设计班级1006402指导教师涂立、李旎学生人数 3设计份数 12011年12月23日银行排队叫号系统设计报告一.设计时间2011年12月 19日——---12月23日二.设计地点湖南城市学院实验楼计算机机房三.设计目的1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,详细使用Protel软件绘制原理图的过程.4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
四.实验成员及分工五。
指导老师涂立副教授、李旎讲师.六.设计课题设计一个银行排队叫号系统。
理由: 1、系统原理容易理解,更贴近我们的生活。
2、怎个系统简洁明了,适于初学者。
3、能提高我们的综合应用能力。
七.基本思路及关键问题的解决方法用八个二极管表示客户取号的号码和营业员准备给那位客户办理业务的号码,用二进制表示,亮的二极管表示0,灭的二极管表示为1 。
开关KEY为客户取号码是所用,KEY闭合时八个二极管的亮灭顺序就是客户的号码。
开关KEY1,KEY2,KEY3,KEY4是分别在四个营业窗口,其中任意一个按下,八个二极管的亮灭会显示一个号码,此号码对应要办理业务客户的号码,与此同时蜂鸣器也会提醒客户。
八.算法及流程图算法:程序利用循环结构检测整个系统中的客户端和叫号端是否有按键被按下,如果检测到有按下的信号,首先判断按下按键的端口的类型,然后相应的计数变量加一,并把计数变量的信息以二进制的形式传送到相应的端口;如果没检测到按下信号,程序则跳入下一个循环继续检测按键信息。
表1 元件清单芯片晶振发光二级管电容电源按键蜂鸣器导线P87C52X2BN11.0592MHZLED10uf、30pf5V非自锁式1183181若干图1。
银行排队叫号系统原理图图2. 银行排队叫号系统流程图九、调试过程中出现的问题及相应解决办法1.开打keil软件,建立一个新工程单击【Project】在下拉菜单中找到【New project。
银行叫号系统报告1. 引言银行作为金融服务的核心机构之一,每天都会面临大量客户的到来。
为了提高服务质量和效率,银行普遍引入了叫号系统来组织客户的排队和办理业务的顺序,确保每位客户能够顺利办理业务。
本报告旨在介绍银行叫号系统的背景、功能、运行原理及其对银行服务的影响。
2. 背景银行叫号系统是一种基于技术手段的客户排队与优先叫号系统。
在传统的银行业务办理中,客户需要按顺序排队等候办理业务,存在排队时间长、办理效率低下等问题。
引入叫号系统后,客户可以通过自动取号设备获得一个排队号码,根据号码叫号情况前往对应的窗口办理业务,大大提升了银行的服务效率和客户的体验。
3. 功能银行叫号系统具备以下主要功能:3.1 取号功能客户可以通过取号机或手机APP等方式获取一个排队号码,避免了传统排队时需要亲自到银行现场取号的繁琐步骤。
取号机通常提供多种操作方式,如按键、触摸屏等,用户只需根据提示选择对应的服务选项,系统将自动分配一个唯一的排队号码给用户。
3.2 叫号功能银行叫号系统通过电子显示屏或语音提示等方式将客户的排队号码叫出,告知客户前往指定的窗口办理业务。
叫号功能可以确保客户按照预定的顺序进行服务,减少出现混乱或窗口颠倒等问题。
3.3 信息管理功能银行叫号系统通常还具备信息管理功能,包括对客户信息的记录、整理和存储。
通过这些功能,银行可以更好地了解客户的需求、优化服务流程,并进行数据分析,为提升服务质量和效率提供依据。
4. 运行原理银行叫号系统的运行原理主要包括以下几个步骤:4.1 取号客户在取号机上选择所需的服务选项,然后取得一个排队号码。
取号机将生成的号码与客户的相关信息进行绑定,方便后续查询和跟踪。
4.2 排队客户取得号码后,按照叫号系统的提示前往指定的等候区域排队等候。
此时,客户可以通过电子显示屏随时查看当前叫号进度,估算自己的等候时间。
4.3 叫号叫号系统根据预设的规则和算法,依次叫唤客户的排队号码。
一、实验目的1. 熟悉银行排队系统的基本原理和设计方法;2. 掌握使用C语言实现银行排队系统的基本操作;3. 培养团队合作精神和实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言3. 开发工具:Visual Studio三、实验内容1. 银行排队系统简介银行排队系统是一种模拟真实银行排队场景的程序,主要功能包括:客户到达、排队、服务、离开等。
通过模拟银行排队过程,我们可以了解银行排队系统的基本原理,并为实际应用提供参考。
2. 系统设计(1)数据结构本系统采用队列数据结构来存储排队客户。
队列是一种先进先出(FIFO)的数据结构,适用于模拟银行排队场景。
(2)功能模块本系统主要包括以下功能模块:1)客户到达模块:模拟客户到达银行,并随机生成客户信息,如客户ID、到达时间、服务时间等;2)排队模块:根据客户到达顺序,将客户信息依次加入队列;3)服务模块:按照客户排队顺序,为每位客户提供服务,并更新客户状态;4)离开模块:客户服务完成后,从队列中移除该客户信息;5)统计模块:记录客户服务次数、平均等待时间、最长等待时间等数据。
(3)实现方法1)客户到达模块:使用随机数生成器生成客户信息,并将客户信息存入队列;2)排队模块:当客户到达时,将客户信息加入队列尾部;3)服务模块:从队列头部取出客户信息,为该客户提供服务,并更新客户状态;4)离开模块:当客户服务完成后,从队列中移除该客户信息;5)统计模块:记录客户服务次数、平均等待时间、最长等待时间等数据。
3. 实验步骤(1)初始化系统,设置窗口数量和客户到达时间间隔;(2)模拟客户到达,生成客户信息并加入队列;(3)按照客户到达顺序,为每位客户提供服务;(4)记录客户服务次数、平均等待时间、最长等待时间等数据;(5)统计实验结果,分析银行排队系统性能。
四、实验结果与分析1. 实验结果通过实验,我们得到了以下数据:(1)客户服务次数:100次;(2)平均等待时间:5分钟;(3)最长等待时间:15分钟。
银行排队系统实验报告银行排队系统实验报告一、引言近年来,随着人们生活水平的提高和金融业的不断发展,银行成为了人们日常生活中不可或缺的一部分。
然而,由于客户数量的增加和服务需求的提升,银行排队系统的效率问题逐渐凸显。
为了解决这一问题,本实验旨在探讨银行排队系统的优化方法,提高服务效率,提升客户满意度。
二、实验设计本实验采用了模拟排队的方法,通过模拟银行的实际情况,观察不同策略下的排队系统效果。
实验中,我们设置了四种不同的排队策略:单一窗口排队、多窗口排队、自助服务排队和预约服务排队。
每种策略下,我们分别记录了客户等待时间、服务时间、客户满意度等数据,并进行了对比分析。
三、实验结果1. 单一窗口排队在单一窗口排队策略下,客户需要依次排队等待,然后逐一接受服务。
实验结果显示,由于只有一个窗口提供服务,客户等待时间较长,平均等待时间为15分钟。
此外,由于服务人员需处理所有业务,服务时间较长,平均服务时间为10分钟。
客户满意度普遍较低,仅为60%。
2. 多窗口排队在多窗口排队策略下,银行设置了多个窗口,客户可以选择不同的窗口进行服务。
实验结果显示,多窗口排队策略能够有效减少客户等待时间,平均等待时间为10分钟。
服务时间也相对较短,平均服务时间为8分钟。
客户满意度相对提高,达到70%。
3. 自助服务排队在自助服务排队策略下,银行引入了自助服务设备,客户可以通过机器自行完成某些简单的业务操作。
实验结果显示,自助服务排队策略能够进一步减少客户等待时间,平均等待时间为5分钟。
服务时间也大幅缩短,平均服务时间为3分钟。
客户满意度明显提高,达到80%。
4. 预约服务排队在预约服务排队策略下,客户可以提前通过手机或网上平台预约服务时间,减少了排队等待的时间。
实验结果显示,预约服务排队策略能够极大地减少客户等待时间,平均等待时间仅为1分钟。
服务时间也相对较短,平均服务时间为2分钟。
客户满意度达到了90%以上。
四、讨论与结论通过对比实验结果,我们可以得出以下结论:1. 多窗口排队策略相对于单一窗口排队策略能够明显提高服务效率和客户满意度。
银行排队叫号系统毕业设计银行排队叫号系统毕业设计一、引言在现代社会,银行作为金融机构的重要组成部分,承担着为人们提供金融服务的重要角色。
然而,由于客户数量庞大,排队等候时间长成为了银行服务中的一大问题。
为了提高服务效率,许多银行引入了排队叫号系统,该系统能够有效地管理客户队伍,提供更优质的服务。
二、排队叫号系统的原理和功能排队叫号系统是一种基于电子技术的智能管理系统,通过数字化的方式对客户进行排队、叫号和服务管理。
该系统主要包括以下几个核心功能:1. 号码生成:系统为每位客户生成一个唯一的号码,用于标识其在队伍中的位置。
号码可以通过取号机、手机APP等方式获取。
2. 叫号显示:系统将当前叫号的号码显示在屏幕上,方便客户了解自己的排队情况。
3. 叫号广播:系统通过音频设备将当前叫号的号码以及相关信息广播出去,确保每位客户都能听到叫号信息。
4. 服务管理:系统可以记录每位客户的等待时间、服务时间等信息,方便银行进行服务质量分析和优化。
三、设计方案1. 系统硬件设计:排队叫号系统的硬件主要包括取号机、显示屏、音频设备等。
取号机需要具备号码生成、打印和取票等功能;显示屏需要能够清晰地显示当前叫号的号码和相关信息;音频设备需要能够将叫号信息以清晰、准确的方式广播出去。
2. 系统软件设计:排队叫号系统的软件设计是整个毕业设计的核心。
软件需要能够实现号码生成、叫号显示、叫号广播和服务管理等功能。
同时,软件还需要具备良好的用户界面设计,方便客户使用和操作。
3. 数据库设计:为了实现服务管理功能,系统需要建立一个数据库来存储客户的相关信息。
数据库设计需要考虑到数据的安全性、可靠性和查询效率等因素。
四、系统优势和应用前景排队叫号系统在银行服务中具有诸多优势和应用前景:1. 提高服务效率:排队叫号系统能够自动管理客户队伍,减少人工干预,提高服务效率。
2. 提升客户体验:通过显示屏和音频设备,客户可以清晰地了解自己的排队情况,减少焦虑和不安。
本科毕业论文(设计)题目银行排队叫号系统设计学院 XXXXXXXXXXX学院专业 XXXXXXXXXX 年级 XXXXX 级学号 XXXXXXXXXXXXXXX 姓名 XXXX 指导教师 XXXXXXXX _ 成绩 ________ ____ __ __XXXX年 XX月XX日目录摘要 (1)关键字 (1)Abstract (1)Key Words (1)引言 (2)1 硬件设计 (3)1.1 主要器件 (3)1.1.1 微处理器介绍 (3)1.1.2 液晶LCD12864介绍 (5)1.1.3 语音模块介绍 (7)1.2 硬件电路 (8)1.2.1 单片机最小系统 (8)1.2.2 液晶显示电路 (10)1.2.3 声音提示电路 (10)1.3 系统硬件总电路图 (11)2 软件设计 (11)2.1 主要程序设计 (12)2.1.1 取号模块程序设计 (12)2.1.2 叫号模块程序设计 (13)2.1.3 语音模块程序设计 (14)2.2 系统源程序 (15)3 系统调试及仿真 (15)3.1 系统仿真 (15)3.2 系统调试 (17)3.3 硬件实物系统运行的效果图 (17)4 结束语 (20)参考文献 (21)致谢 (22)附录A 原理图 (23)附录B 程序 (24)·银行排队叫号系统摘要:本排队叫号系统由一个叫号系统和一个抽号系统组成,客户利用抽号系统抽取号码,客服人员通过叫号系统呼叫客户;利用液晶LCD12864显示器和WT588D语音芯片分别能及时显示出当前所呼叫号数并发出语音提示,客户就能够及时了解当前排队信息。
使用该排队叫号系统,解决了当下排队拥挤混乱状况,极大的提高了排队等侯效率,从而实现排队自动化、规范化,同时也适应科技的发展。
为实现上述功能,该系统采用AT89C51单片机进行控制,通过按键取号、叫号,利用LCD12864显示信息,再通过WT588D语音芯片提示,实现排队管理系统的模拟化,设计出一个具有控制灵活、使用方便、成本低、性价高等特点的系统。
银行排队叫号系统需求分析设计文档(含5篇)第一篇:银行排队叫号系统需求分析设计文档银行排队叫号系统的分析与UML建模一、需求分析近年来,由于各行各业的信息化、智能化建设越来越普及,整个社会对各个行业的办事效率的要求也越来越高。
例如像银行办业务,在顾客办业务过程中排队现象在所难免,为了在排队时减少顾客的等待时间,为顾客办业务创造一个良好的环境,银行排队叫号系统应运而生。
银行排队系统的功能性需求包括以下内容:1、排队系统可以分为票务打印系统和窗口操作系统。
2、票务打印系统(1)显示发号机上的显示屏使用液晶显示,显示对待办业务的选择;(2)输入输入过程即通过触摸屏对业务进行选择的过程;(3)输出打印号票打印内容应该包括业务名称、排队号码、时间等;3、窗口操作系统基本包括显示屏、语言提示,叫号按钮(1)显示屏使用点阵式LED显示,显示内容应该是下一个号码以及办理业务窗口;(2)语音提示语音播报时用语音的形式通过广播或者音箱给人一提示信息。
语音提示不需要用户一直盯着提示屏或者排队情况。
选择使用语音芯片,实现的功能应该是当操作员按下按钮后,语音播放下一个办理者的票号。
(3)叫号按钮设置叫号按钮,以便于操作员控制窗口模块的显示屏及语音提示。
满足上述需求的系统主要包括以下几个小的系统模块:(1)派号功能模块。
派号功能模块主要是用于在用户进入服务大厅后,根据自己的业务需要,通过自助式触摸屏号票机领取票号;或者用户在服务大厅业务咨询台进行业务咨询后,咨询员可以为用户打印排队号票。
号票是由排队服务器根据当前情况自动生成。
(2)叫号功能模块。
工作人员可以通过座席软件键盘上的设置键对客户进行叫号;也可通过按键控制器对客户进行叫号;系统可以设置单语或双语进行语音播放;以及通过LED显示屏和其它视频显示设备显示票号。
(3)预约功能模块。
用户可以通过电话预约领取排队号;预约成功后取得预约号;系统将此预约号按预约时间插入当前的排队队列,在系统处理后进行优先呼叫;在同时间下办理业务时,可以进行预约服务,优先办理。
《软件设计基础-C#》
课程设计报告
设计名称:银行排队叫号系统
姓名:
学号:
专业班级:
学院:
设计时间:
设计地点:
目录
1.课程设计目的 (3)
2.课程设计任务与要求 (3)
3.课程设计说明书 (4)
4.课程设计成果 (9)
5.程序调试过程 (11)
6.设计问题的不足和改进方案 (11)
7.课程设计心得 (12)
8.附录 (13)
9.参考文献 (22)
2.3类定义(函数定义)
Form1类:
Form1继承了系统中的Form类;
在Form1中使用了button、label、textBox等控件;
使用了button_Click方法实现取号行为;
Form2类:
Form2也继承了系统中的Form类;
在Form2中也使用了button、label、textBox等控件;使用了button_Click方法实现叫号行为;
Form3类:
Form3也继承了系统中的Form类;
在Form2中也使用了button、label、textBox等控件;
使用了button_Click方法实现叫号行为;
Form4类:
Form4也继承了系统中的Form类;
在Form2中也使用了button、label、textBox等控件;
使用了button_Click方法实现叫号行为;
服务窗口ServiceWindow类:
服务队列的属性BankQ;
作为线程的方法Service();
主程序Main()方法;。
河北理工大学课程设计题目: 银行排队机系统姓名:学院: 信息学院班级:学号:同组人: 指导教师:01月06日一、需求分析排队在日常生活中已经是一种很普遍的现象, 随着科技的发展, 排队系统应用而生。
排队叫号机是利用电脑的科学管理功能代替人为排队系统, 很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象, 为客户办理业务带来莫大的方便和愉悦。
根据课程设计的要求, 基本确定应用单片机来确定简单的排队叫号机功能。
1、基于总体的考虑, 首先对排队机进行分析。
排队系统能够分为两大部分。
票务打印系统及窗口操作系统, 为此首先需要设置一个总控制系统对它们进行控制。
2、票务打印系统( 1) 显示发号机上的显示屏使用液晶显示, 显示对待办业务的选择;( 2) 输入输入过程即经过触摸屏对业务进行选择的过程;( 3) 输出打印号票打印内容应该包括业务名称、排队号码, 打印机选用指针式打印机;3、窗口操作系统基本包括显示屏、语言提示, 叫号按钮( 1) 显示屏使用点阵式LED显示, 显示内容应该是下一个号码以及办理窗口;( 2) 语音提示语音播报时用语音的形式经过广播或者音箱给人一提示信息。
语音播报提示给人直观、亲切的感受特点, 而且不需要用户一直盯着提示屏或者排队情况。
选择使用语音芯片, 实现的功能应该是当操作员按下按钮后, 语音播放下一个办理者的票号。
( 3) 叫号按钮设置叫号按钮, 以便于操作员控制窗口模块的显示屏及语音提示。
4、各个模块的通信问题考虑通信距离为几十米的范围内, 而且需要高有效的抗噪能力, 选用当前广为应用的RS—485总线相连, 互相通信, 传送数据。
二、概要设计(一)根据排队系统的实际情况, 排队系统的基本流程如下:(1、整个系统由一台主控器与多台子控制器经过485总线相连, 互相通信, 传送数据。
主控制器接收子控制器的请求信息, 对子控制器的请求作出应答。
通信通信2、 窗口操作子系统( 1) 子控制器包括一个管理员键盘和多个窗口操作键盘, 每个每个窗口操作键盘课经过硬件来设定、 更改其所在窗口的窗口号。
银行排队机系统实验报告一.实验目的1.进一步熟悉C++编程语言的基本语法规则;2.熟练掌握控制结构、函数的应用;3.熟练掌握类(Class)的使用;4.应用面向对象的程序设计思维来构建一个软件系统。
二.问题描述1.题目内容:设计和实现一个银行排队机系统,该系统对银行当前能提供服务的窗口统一调度。
2.基本要求:熟练运用结构、函数、类的应用及面向对象的程序设计思维来构建一个银行排队系统,满足以下基本功能:a.系统由一台排队调度机和若干个叫号终端(代表一个业务窗口)组成;b.排队调度机接受客户的取号操作,打印单据。
单据应显示客户的排队号、前面等待的人数;c.每一叫号终端都可以向排队调度机呼叫“下一个”客户。
由排队调度机调度、呼叫;由叫号终端显示信息,例如:“00001号客户请到2号柜台办理”。
d.业务窗口分为“对公业务”和“个人业务”两大类。
细分的业务(如存款业务、贷款业务、结算业务等)由同学们自己调研确定。
调度机应该根据业务类型将客户调度到相应的窗口办理。
也可以在上述功能上进行任意的扩充,例如:e.将业务种类细分,统计各种业务的办理人数、办理时间;f.在取号的同时给需要等候的客户估算一个大概的等候时间。
g.统计柜员的业务办理信息;三.概要设计1.程序中主要由排队调度机和叫号终端以及单据这三个类组成;2.叫号终端类(以下简称终端类)有三个属性:业务种类和当前服务的客户的单据号以及现在是否正在进行服务的指示变量;具有三个基本功能:向排队调度机呼叫下一个客户和显示服务信息以及返回指示变量;在呼叫下一个客户的同时把当前客户的服务指示变量置为1。
3.单据具有以下4个基本属性:单据序列号,服务类型,大概等待时间以及是否已经接受服务的指示变量单据的构造函数:单据序列号= ++Notesum;服务类型请求客户输入代号选择;大概等待时间= Waitnum*10分钟(估算);指示变量=0;4.排队调度机有三个私有数据并按照下述方式维护:Tobeserviced:指示尚未接受服务的最小的单据号——当终端呼叫下一个客户的时候,若所呼叫的序列号等于Tobeserviced则Tobeserviced递加直到某一Tobeserviced未接受服务,否则不变Notesum:记录总共的单据号——即为最近打印的单据号Waitnum:等待接收服务的客户数——初始值为0,每打印一个票据的同时加1,每当终端呼叫下一个客户的同时减1;打印票据函数:调用票据函数的构造函数调度终端的服务:当终端呼叫时,调度机从Tobeserviced开始向Notesum 循环,直到找到一个票据的服务类型与呼叫终端相匹配,并且这个票据还没有接受服务一个客户的完整服务流程:。
操作系统课程设计题目:进程通信与进程同步机制实践所在学院:计算机学院所在班级:软件1201学生姓名:学生学号:指导教师:薛安荣2015年1 月一、题目某银行提供5个服务窗口(3个对私服务窗口,1个对公服务窗口,1个理财服务窗口)和10个供顾客等待的座位。
顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号;若没有空座位,则在门外等待或离开。
取号机每次仅允许一位顾客使用,有对公、对私和理财三类号,每位顾客只能选取其中一个。
当营业员空闲时,通过叫号选取一位顾客,并为其服务。
请用P、V操作写出进程的同步算法。
二、目的1、掌握基本的同步与互斥算法。
2、学习使用Linux 中基本的同步对象,掌握相关API 的使用方法。
3、了解Linux 中多任务的并发执行机制,实现进程的同步与互斥。
三、实验环境Linux CentOS编译器GCC编程语言C语言四、要求1、当有顾客取号的时候,不允许其他顾客取号。
2、当服务窗口满的情况下,其他人必须等待。
3、当没有顾客的情况下,服务窗口必须等待。
4、打印:A、初始状态B、中间变化的状态信息C、以及最终状态信息。
五、原理及算法本程序中设计6个信号量,其中signal_A、signal_B和signal_C 分别是对私、对公、理财窗口的同步信号量。
若信号量值的等于0,说明当前没有空闲空口,顾客需要等待。
另设置一个signal_seat同步信号量,记录当前的座位情况,若该信号量等于0,说明当前没有空座位,顾客需要等待。
另有一个signal_customer同步信号量用于记录当前已经取过票的总人数,用于生成票号信息。
还有一个mutex 互斥信号量,用于实现各进程在对信号量进行操作时的互斥。
顾客进入银行之后,先看通过一个依据系统时间的随机数来确定自己是需要对私、对公还是理财服务(在本程序中分别对应于A类顾客,B类顾客和C类顾客),这三个类型的顾客的比例为3:1:1.然后顾客根据自己需要的服务类型,查看提供相应类型服务的窗口是否空闲,若窗口有空闲,则系统直接按照signal_customer记录的信息,生成票面信息;若窗口没有空闲,则再去查看signal_seat信号量看看是否有空座位,若有空座位,则根据signal_customer记录的信息,生成票面信息;若没有空座位,则通过一个以系统时间为种子的随机数生成器生成一个随机数,帮助顾客确定是要继续等待还是离开,这两种情况的比例为1:1.若顾客选择离开,则相应的进程退出。
商业银行排队叫号系统的设计与实现的开题报告一、选题背景随着现代社会生活的不断发展,商业银行已经成为人们日常生活中不可或缺的组成部分。
为了提高客户的满意度以及提高银行的效率,商业银行需要对其业务流程进行优化。
其中,银行柜台业务的处理是极为重要的环节,如何让客户快速、方便地办理业务,同时又保证银行工作人员的工作效率,这是商业银行亟待解决的问题。
为了解决银行柜台排队等待的问题,商业银行普遍采用排队叫号系统。
排队叫号系统可以有效地帮助客户快速办理业务,避免长时间等待和拥挤,提高客户满意度。
同时,也可以提高银行工作人员的工作效率,减少等待时间,提高工作效率。
二、研究目的本文旨在设计并实现商业银行排队叫号系统,让客户可以通过系统自助选择业务类型,同时系统可以为客户自动叫号,让客户无需排队等待,提高客户的办理效率和银行的工作效率。
研究目标如下:1. 研究并分析商业银行排队叫号系统的设计要求和功能需求,提出相应的解决方案。
2. 设计并实现商业银行排队叫号系统,实现客户自助选择业务类型、自动叫号等功能。
3. 评估商业银行排队叫号系统的可行性,包括系统的稳定性、安全性、效率等方面。
三、研究方法本文将采用如下研究方法:1. 研究文献资料:通过查阅相关的文献资料,了解商业银行排队叫号系统的设计原理、功能需求以及实现方案。
2. 采用UML进行系统设计:本文将采用UML进行商业银行排队叫号系统的系统设计,包括系统功能模块、类图、用例图等。
3. 系统实现:基于系统设计进行商业银行排队叫号系统的实现,包括系统架构搭建、数据库设计、编码等方面。
4. 系统测试与优化:本文将进行系统测试和优化,评估系统的可行性和稳定性,保证系统的性能和安全。
四、研究意义本文的研究意义如下:1. 排队叫号系统可以帮助商业银行提高工作效率,缩短等待时间,提高客户满意度。
2. 本文的研究可以为其他服务行业提供实现自助服务的参考。
3. 通过系统设计和实现的过程,可以提高本人的系统设计和开发能力,提高实际应用能力。
某银行排队系统设计的案例分析报告Sirenbang:赵萍张昕一赵文成杨题桥(执笔人:杨题桥)前言:某银行营业所为了方便客户,提高服务质量,设置了新的排队系统,但由于设计的系统,因到达率,服务率等参数指标不尽合理,而导致系统功能不足,同时员工服务态度又存在较大问题,极大地影响了服务质量,给顾客带来了诸多不便,最后使这家银行种瓜而没有得瓜。
本报告就该银行的排队系统设计和员工服务态度存在的问题,进行了多方面的分析。
最后就改革系统设计和改善服务态度等方面提出了建议和措施。
现状描述:某银行营业所利用迁址的机会,重新装修了营业大厅。
各种硬件设施全面升级,极大地改善了经营服务环境。
为了方便顾客,提高服务质量,还设置了新型的排队叫号系统,为客户准备了干净整洁的银灰色座椅。
在外部形象上确实赢得了客户的好感。
由于全卡号和普通号的差别服务,引起了某客户的误解,致使银行与客户发生了冲突,最后出现了银行员工谩骂客户的形象,给银行带来了极大的负面影响。
问题识别与概述:1这家银行如何解决出现的具体问题,能否立即为他办理手续?这家银行在系统设计和服务态度上的缺陷,虽给客户带来不便,但仍不能立即为这位客户办理手续,当然银行有许多工作需要改善。
2这家银行服务质量有问题吗?服务质量包括硬件和软件两个方面,这家银行在这两个方面都存在一定的问题。
3.这家银行的排队系统设计有问题吗?这家银行由于多种原因,导致排队系统设计存在一定的问题,严重地影响了管理当局设置系统的初衷,在服务流程的选择和设计方面均存在问题。
原因分析:1.由于系统的设计和人员服务的缺陷引起了客户的长时间的等候,给客户造成了极大的不安和反感,但仍不能立即为这位客户办理手续。
有如下原因:(1)遵守排队规则。
排队规则是指队列中决定顾客接受服务次序的一个或一系列优先法则。
这些法则对整个系统的运行有巨大的影响。
常见的优先法则是先到先服务法(FCFS)和其他优先法则(如,最大盈利的顾客优先),实行一个优先法则要确保两个前提:一是确保顾客了解并遵守法则;二是保证有一个雇员能对队列进行有效管理的系统(如取号系统)。
排队叫号系统实验报告排队叫号系统是一种在各种场合中广泛应用的管理工具,旨在提高服务效率、减少人力成本,以及提升客户体验。
为了进一步了解排队叫号系统的原理、功能和应用,我们进行了一次实验,并撰写了以下报告。
实验目的:1. 了解排队叫号系统的基本原理和工作流程;2. 探究排队叫号系统在实际应用中的效果和优点;3. 分析排队叫号系统的可能问题和改进方法。
实验过程:我们在一个模拟的服务场景中使用了排队叫号系统。
实验场地是一家银行的办公厅,模拟了客户办理业务或咨询业务的情景。
实验中使用的排队叫号系统是一款基于云计算和互联网技术开发的软件,具有以下功能:1. 编号功能:客户到达服务点后,工作人员通过系统为其生成一个唯一的编号;2. 叫号功能:工作人员可以通过系统叫号,显示出当前叫到的号码,客户根据号码前往服务点进行相应的业务;3. 候补叫号功能:如果客户因某些原因未能按照叫号次序前往服务点,系统可以为其生成一个候补号码,以便后续调用;4. 统计功能:系统可以记录客户办理业务的时间、等待时间和实际办理时间,并生成统计报告,帮助管理者了解服务质量和效率。
在实验中,我们安排了20名学生充当客户,以模拟真实的场景。
每个学生持一个虚拟银行卡,在规定的时间内到达服务点,并办理一项业务。
工作人员使用排队叫号系统为每个学生生成了一个唯一编号,并且按照规定的次序进行叫号。
当学生被叫到时,前往服务点进行业务办理。
同时,系统记录了每个学生的等待时间和实际办理时间。
实验结果:通过排队叫号系统,我们的实验取得了以下结果和发现:1. 提高了服务效率:排队叫号系统可以准确地记录每个客户的等待时间,并根据实际情况进行调度,从而最大限度地提高了服务效率。
2. 减少了人力成本:传统的排队方式通常需要大量的人力资源来进行管理,而排队叫号系统可以自动化地完成这些工作,减少了人力成本。
3. 提升了客户体验:客户可以得到更快速、更准确的服务,不需要长时间地等待,提升了客户体验。
综合性设计性实验报告专业:软件工程班级:*** 组别: ***——***学年第 2 学期课程名称Unix高级编程指导教师***Weibo昵称:年年有余事事顺利本组成员学号姓名实验地点逸夫楼A实验时间***-06-08实验类型实践课实验名称银行排队叫号模拟系统实验环境: VMware虚拟机实验内容:编程实现一个“银行排队模拟系统”1)该程序模拟客户到银行取号-排队-被叫号-被服务的过程;2)程序执行流程如下:Step1: 客户到达银行,并从取号机取号;Step2: 如果大厅中有空闲座位,则座下等待,否则,在大厅外等待;Step3: 银行职员如果发现有客户等待,则依次叫号服务,否则休息;Step4: step1-step4重复执行3)大厅中座椅数量为20个;4)服务窗口为2个;5)“客户到来”通过命令行输入客户名字模拟;6)为了模拟实际情况,每个客户服务时间不小于20秒,可随机确定;7)程序顺序列出不同窗口服务客户的:名称,窗口号,服务时间2、提示1)需一个主控进程,随时监控客户到来,并为之创建进程;2)取号机应视为互斥型临界资源3)座椅应视为临界资源4)客户等待及被叫号应视为进程间同步过程实验目的与要求:掌握常用IPC方法能够应用IPC方法解决实际编程问题设计思路:(设计原理、设计方案及流程等)设计原理:“银行排队模拟系统”由于进程之间通信需要进行相应进程通信机制实现,进程通信机制很多,比如信号量、管道、消息队列、套接字等通过我们组的讨论决定用信号量机制的函数来实现,因此通过我们组的讨论决定以这样的方式来进行设计:通过信号量机制<signal.h>创建子进程fork()的过程来实现设计方案:主控进程即服务进程需完成以下任务:1.创建信号量集,并为之初始化2.监督客户的到来(实时循环)3.客户输入名字后,为客户创建子进程。
4.子进程进行相关操作。
实现与主进程的同步。
5.服务进程等待有人(p操作)(P(S3))p成功,显示窗口信息6.服务进程叫号(v操作)(V(S4))7.v成功,则进行服务子进程完成的操作:1.取号(因互斥有对取号的互斥信号量S1初值1)2.申请椅子(有资源信号量S2 初值20)(P(S2))3.唤醒柜员(告知柜员有人故有同步信号量S3,初值为0) (V(S3))4.等待叫号(故有同步信号量S4,初值为0,S3,S4实现父子进程的同步) (P(S4))5.4通过,输出客户名字5.4通过,则释放椅子(V(S2))8.显示服务时间(不少于20s)程序流程:Step1: 客户到达银行,并从取号机取号;Step2: 如果大厅中有空闲座位,则座下等待,否则,在大厅外等待;Step3: 银行职员如果发现有客户等待,则依次叫号服务,否则休息;Step4: step1-step4重复执行大厅中座椅数量为20个;服务窗口为2个;“客户到来”通过命令行输入客户名字模拟;为了模拟实际情况,每个客户服务时间不小于20秒,可随机确定;程序顺序列出不同窗口服务客户的:名称,窗口号,服务时间提示:需一个主控进程,随时监控客户到来,并为之创建进程;取号机应视为互斥型临界资源座椅应视为临界资源客户等待及被叫号应视为进程间同步过程关键技术分析:1)使用信号量机制-int crt_sig(key_t key,int nsems)2)创建一个子进程 pid_t crt_child()3)使用消息队列-int msg_stat(int msqid,structmsqid_ds msg_info)4)使用sem-op函数来设置程序的申请与释放,sem_op>0对应相应进程要释放sem_op数目的共享资源;sem_op=0可以用于对共享资源是否已用完的测试; sem_op<0相当于进程要申请-sem_op个共享资源5)利用函数void srand()和rand()来获取系统的服务时间等实验步骤:编写程序:源代码为:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/wait.h>#include<time.h>#include<sys/sem.h>#include<signal.h>#include<errno.h>#define N_SEC 20static union semun{int val;struct semid_ds *buf;unsigned short * array;struct seminfo *__buf;}arg;int BeginWaiter(int sems,int num) {int id=-1;if(!(id=fork()))//child{while(1){struct sembuf op={2,-1,0};if(-1==semop(sems,&op,1))exit(0);op.sem_num=3;op.sem_op=1;if(-1==semop(sems,&op,1))exit(0);///serviceint random=1+(int)(20.0*rand()/(RAND_MAX*1.0));printf("\n********\n%d is on duty,serve time=%d\n***********\n",num,20+random);sleep(10+random);}}elsereturn id;}int main(int argc, char *argv[]){printf("parent id=%d\n",getpid());int sems=semget(IPC_PRIVATE,5,0666);union semun arg;unsigned short init_v[5]={1,20,0,0,0};arg.array=init_v;semctl(sems,0,SETALL,arg);char custom[100]="";////////////////////////srand(0);int s1=BeginWaiter(sems,0);int s2=BeginWaiter(sems,1);printf("Waiters are:%d,%d",s1,s2);//////////////while(1){printf("Welcome!please input you name:");scanf("%s",custom);if(!strcmp(custom,"exit")){semctl(sems,0,IPC_RMID,arg);kill(SIGKILL,s1);kill(SIGKILL,s2);exit(0);}if(!fork())//child{struct sembuf ops={0,-1,0};semop(sems,&ops,1);//p mutex,alternativeops.sem_num=4,ops.sem_op=1;semop(sems,&ops/*(struct sembuf*)&{4,1,0}*/,1);//get ticketops.sem_num=0;ops.sem_op=1;semop(sems,&ops/*(struct sembuf*)&{0,1,0}*/,1);//V mutex.alternative/////////////////////ops.sem_num=1;ops.sem_op=-1;semop(sems,&ops/*(struct sembuf*)&{1,-1,0}*/,1);//compete for seatint seats=semctl(sems,1,GETVAL,arg);printf("\nThere are %d seates remained\n",seats);////////////////ops.sem_num=2;ops.sem_op=1;semop(sems,&ops/*(struct sembuf*)&{2,1,0}*/,1);//wake waiter upops.sem_num=3;ops.sem_op=-1;semop(sems,&ops/*(struct sembuf*)&{3,-1,0}*/,1);//wait for called forops.sem_num=1;ops.sem_op=1;semop(sems,&ops/*(struct sembuf*)&{1,1,0}*/,1);//release seat;//get serviceprintf("\n**********\ncustom:%s\n**************\n",custom);exit(0);}}}运行结果如下:实验分析:明确题意 ----要求的是编写小程序,非传统意义上的系统。
Assignment 1:ADT ApplicationsTask 2133490*** 实验过程:在这个实验程序中,我认为,难点在于如何运用队列储存顾客等候情况、银行窗口如何设置实现显示当前顾客序号以及数据的统计和打印。
题目描述中,有两个模拟版本,分别是单队列与多队列。
由于个人能力的原因,我选择实现程序的版本一。
在类的设计上,我和舍友****进行了讨论,最后我的想法是设置两个类,分别是Customer类与Bank类。
其中Customer类包括private的数据如下:private:int ID;//顾客顺序号int enterTime;//顾客进入时间int startTime;//顾客开始被服务的时间int serveTime;//(随机生成的)顾客服务时长而Customer类中包括的函数是public的,包括以上所有数据的get与set,以及clear函数。
程序的运行主要通过Bank类来实现。
public的数据设置如下:private:int timeCounter;//计数循环次数,每次循环为一个时间单位int totalWaitingTime;//被服务顾客的总等待时间int totalServeNum;//被服务的顾客数int totalNum;//总顾客数int serveNum[5];//五个窗口各自处理的顾客数vector<Customer> serving;//存储当前五个窗口的顾客信息vector<int> wt;//被服务的顾客的等待时间集合queue<Customer> waiting;//等待队列构造函数设置如下:Bank(){timeCounter = 0;totalWaitingTime = 0;totalServeNum = 0;totalNum = 0;Customer c;serving.assign(5, c);//每个窗口都初始化空的顾客for (int i = 0; i < 5; i++)serveNum[i] = 0;}通过设置Bank来得到程序的模拟结果。
《银行排队叫号系统的设计》一、系统背景随着金融业务的不断发展,银行网点客流量日益增大,客户在银行办理业务时排队等待的问题日益突出。
为提高银行服务效率,优化客户体验,设计一套高效、便捷的银行排队叫号系统显得尤为重要。
二、系统目标1. 减少客户排队等待时间,提高业务办理效率。
2. 实现客户分流,缓解网点拥堵现象。
3. 提升银行服务质量,增强客户满意度。
4. 降低银行工作人员的工作强度,提高工作效率。
三、系统功能模块1. 客户取号模块客户到达银行网点后,通过自助取号机选择所需办理的业务类型,系统自动分配一个唯一的排队号码,并打印出排队小票。
2. 叫号显示模块系统根据客户取号顺序,自动显示当前办理业务的客户号码,并通过语音播报提醒客户前往指定窗口。
3. 窗口业务办理模块银行工作人员在办理业务时,通过呼叫器告知系统当前窗口状态,系统根据窗口状态自动调整叫号顺序。
4. 数据统计与分析模块系统实时统计各业务窗口的办理情况,报表,为银行管理层提供决策依据。
5. 客户满意度调查模块系统在客户办理业务结束后,邀请客户进行满意度评价,收集客户反馈,以便持续优化服务。
四、系统设计要点1. 易用性:系统界面简洁明了,操作简便,便于客户快速上手。
2. 稳定性:系统运行稳定,确保24小时不间断服务。
4. 安全性:系统采用加密技术,确保客户信息安全。
五、系统技术选型与架构1. 技术选型前端:HTML5、CSS3、JavaScript,采用Vue.js框架进行页面开发。
后端:采用Java语言,结合Spring Boot框架进行业务逻辑处理。
数据库:MySQL,用于存储客户信息、业务数据等。
语音播报:采用TTS(文本转语音)技术实现语音叫号功能。
2. 系统架构银行排队叫号系统采用B/S(Browser/Server)架构,分为客户端和服务端两部分。
客户端负责与用户交互,服务端负责处理业务逻辑和数据存储。
六、系统详细设计与实现1. 客户取号模块取号机界面设计:采用触摸屏设计,界面包含业务类型选择、取号按钮等元素,方便客户操作。
2011年至2012年第一学期《银行排队叫号系统设计》课程设计班级1006402指导教师涂立、李旎学生人数 3设计份数 12011年12月23日银行排队叫号系统设计报告一.设计时间2011年12月 19日——---12月23日二.设计地点湖南城市学院实验楼计算机机房三.设计目的1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,详细使用Protel软件绘制原理图的过程.4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
四.实验成员及分工五。
指导老师涂立副教授、李旎讲师.六.设计课题设计一个银行排队叫号系统。
理由: 1、系统原理容易理解,更贴近我们的生活。
2、怎个系统简洁明了,适于初学者。
3、能提高我们的综合应用能力。
七.基本思路及关键问题的解决方法用八个二极管表示客户取号的号码和营业员准备给那位客户办理业务的号码,用二进制表示,亮的二极管表示0,灭的二极管表示为1 。
开关KEY为客户取号码是所用,KEY闭合时八个二极管的亮灭顺序就是客户的号码。
开关KEY1,KEY2,KEY3,KEY4是分别在四个营业窗口,其中任意一个按下,八个二极管的亮灭会显示一个号码,此号码对应要办理业务客户的号码,与此同时蜂鸣器也会提醒客户。
八.算法及流程图算法:程序利用循环结构检测整个系统中的客户端和叫号端是否有按键被按下,如果检测到有按下的信号,首先判断按下按键的端口的类型,然后相应的计数变量加一,并把计数变量的信息以二进制的形式传送到相应的端口;如果没检测到按下信号,程序则跳入下一个循环继续检测按键信息。
表1 元件清单芯片晶振发光二级管电容电源按键蜂鸣器导线P87C52X2BN11.0592MHZLED10uf、30pf5V非自锁式1183181若干图1。
银行排队叫号系统原理图图2. 银行排队叫号系统流程图九、调试过程中出现的问题及相应解决办法1.开打keil软件,建立一个新工程单击【Project】在下拉菜单中找到【New project。
】选项,如图3所示图3. 新建工程2.选择工程要保存的路径,并且输入工程文件名。
Keil的一个工程里通常含有很多小文件,为了方便管理,一般将一个工程放在一个独立的文件夹下,比如保存到课程设计文件夹,工程文件的名字为part,如图4 所示图4. 填写工程名程单击保存后会弹出一个对话框,要求选择单片机的型号,可以根据使用的单片机来选择。
Keil C51几乎支持所有的51内核的单片机,在这里选择Atmel的AT89C52 ,如图5选择后单击保存。
图5。
选择工程控制器型号3.完成上一步骤后,窗口界面如图6所示图6。
完成工程创建到此为止,还没有建立好一个完整的工程,虽然工程名有了,但工程当中还没有任何文件及代码,接下来的就是添加文件及代码。
4.单击【File】菜单中的【new】菜单项,或单击界面上的快捷键图标.如图7图7. 工程界面新建文件后的窗口界面如图8所示图8 新建文件此时光标在编辑窗口中闪烁,可以输入用户的应用程序,但此时这个新建文件与刚刚建立的工程还没有直接的联系,单击图标,窗口界面如图9所示图9 填写文件名称输入要保存的文件名,同时必须输入正确的扩展名(如果用C语言编写的程序,则扩展名必须是.c;如果用汇编语言编写的程序,则扩展名必须是。
asm).这里的文件名不一定要和工程名相同,可以随意填写文件名,然后单击【保存】按钮。
5.回到编辑界面,单击【Target 1】前面的“+”号,然后在【Source Group 1】单击右键,弹出如图10所示的菜单、图10 添加程序文件到工程然后选择【Add Files to Group Source Group 1】菜单项弹出对话框图11图11 选择C语言程序文件6.选中【Text1】,单击【Add】按钮,再单击【Close】按钮,然后再单击左侧【Source Group1】前面的“+”,屏幕窗口如图12所示图12 进入程序编辑界面接着是在编辑窗口中编写程序.7.编写好程序就要进行程序的编译,单击工具栏上的进行编译,在编译过程中如果出现错误,修改程序直到没有错误为止,然后在依次点击和,在此过程中出现错误的,也要修改程序直到没有错误为止,编译过程中出现警告一般可以不必考虑,但特殊时也要通过修改程序消除警告.8.把文件转化成十六进制文件,点击【Project】在下拉菜单里找到【Options for Target‘target1】’,如下图13所示图13 打开文件属性设置窗口单击【Options for Target ‘target1'】会弹出下面的对话框在Eprom和Ram后面的框中填入相应的数据(也可以不进行填写),然后单击Output选项出现以下界面如图14图14 设置输出晶振频率用鼠标左键单击Creat HEX Fi:前面的方框,这时方框里会用一个对号如图15图15 设置运行后创建HEX文件点击确定对话框就会消失,这样刚刚所建立的文件就转化成十六进制的文件.9.用40针排线把DP—51PRO试验仪(如下图)上的A1区J76接口与A2区J79接口相连,然后使用导线把A2区的J61接口与D1区的J52接口相连.再用导线把A2区的J58的RXD,TXD,与A2区的J53的KEY1,KEY2相连,最后用导线把A2区的J58的INTO与D4区的J8的任意一接口相连。
图16 DP-51PRO试验仪10.对DP—51PRO试验仪上电。
打开DPFlash软件出现如图17所示界面图17 DPFlash软件界面点击栏中的【文件】在下拉菜单里找到【装载】,如图18所示图18 装载HEX文件或者直接点击工具栏里图标,点击后会弹出下图19所示的对话框图19 选择HEX文件找到刚刚所建立的文件,点击后按打开按钮对话框就会消失.然后单击会弹出图20所示的对话框图20 编程准备界面单击编程后,软件开始把程序烧入试验仪,烧片的过程如图21图21 烧录程序文件到单片机当烧片完成后,点击退出就行了.10.关闭DPFalsh软件。
把DP—51PRO单片机仿真试验仪A1区的工作模式选择开关(MOD_sw1)切换到RUN处,然后按一下复位键(RST),MON51程序即开始运行。
11.观察实验运行的情况是不是符合设想。
实验现象为:按KEY时八个二极管会按一定的顺序亮灭,显示一个二进制号码,再次按KEY时八个二极管也会按一定的顺序亮灭,显示一个新的二进制号码,此号码为前一个号码加一;按下KEY1,KEY2,KEY3,KEY4中的任意一个按键,八个二极管会按一定的顺序亮灭,显示一个二进制号码,此号码对应要办理业务客户的号码,与此同时蜂鸣器发出声音提示,再次按KEY1,KEY2,KEY3,KEY4中的任意一个按键,八个二极管也会按一定的顺序亮灭,显示一个新的二进制号码,此号码为前一个号码加一,蜂鸣器发出声音。
十、课程设计心得体会通过五天的单片机课程设计,我觉得学习单片机,学习书本上的知识是远远不过的,我们更应该多做实验,在学习的过程中我们要多动脑,多动手,单片机是实实在在的硬件,只有在不断实践中才能领悟它的工作原理。
而且当我们在实际动手的过程中要书本和实践相结合,有些不会再去翻书查资料,这样会记得更加牢固.在实验的过程我更加体会到了团队的力量,有时仅仅靠一个人的努力,是完全不行的,要考团队的力量,共同去完成,要形成良好的团队意识。
十一、源程序#include<reg52。
h> //52系列单片机头文件#define uchar unsigned char //宏定义#define uint unsigned int //宏定义sbit key=P3^3; //取号用的按键sbit beep=P3^2;//蜂鸣器接口sbit key1=P3^4; //呼叫客户的按键1sbit key2=P3^5; //呼叫客户的按键2sbit key3=P2^3;//呼叫客户的按键3sbit key4=P2^4; //呼叫客户的按键4void delayms(uchar x) //延时函数{uchar i,j;for(i=x;i〉0;i-—)for(j=110;j〉0;j——);}void main(){uchar temp=0xff,temp1=0xff;//temp为取号参数,temp1呼号参数key=1;key1=1;key2=1;key3=1;key4=1;//初始化各按键状态while(1){if(temp1==0x00)temp1=0xff;//当号码取完时,从0重新开始if(key==0)//是否有客户把按键按下{delayms(10);//消抖if(key==0)//有按键按下{P1=temp;//客户领取号码temp--;//为下个客户取号码做准备while(!key);delayms(10);while(!key);//按键松手检测if(temp==0x00)temp=0xff;//当号码取完时,从0重新开始}if(key1==0)//是否有营业员把按键{delayms(10);//消抖if(key1==0)//有按键按下{P1=temp1;//营业员取要为那位客户服务的号码beep=~beep;delayms(50);//呼叫客户temp1—-;//为呼叫下个客户做准备while(!key1);delayms(10);while(!key1);//按键松手检测}}else if(key2==0)//是否有营业员把按键{delayms(10);//消抖if(key2==0)//有按键按下{P1=temp1;//营业员取要为那位客户服务的号码beep=~beep;delayms(50);//呼叫客户temp1—-;//为呼叫下个客户做准备while(!key2);delayms(10);while(!key2);//按键松手检测}}else if(key3==0)//是否有营业员把按键{delayms(10);//消抖if(key3==0)//有按键按下{P1=temp1;//营业员取要为那位客户服务的号码beep=~beep;delayms(50);//呼叫客户temp1--;//为呼叫下个客户做准备while(!key3);delayms(10);while(!key3);//按键松手检测}}else if(key4==0)//是否有营业员把按键delayms(10);//消抖if(key4==0)//有按键按下{P1=temp1;//营业员取要为那位客户服务的号码beep=~beep;delayms(50);//呼叫客户temp1—-;//为呼叫下个客户做准备while(!key4);delayms(10);while(!key4);//按键松手检测}}}}参考文献[1]郭天翔主编.新概念51单片机C语言教程。