C++VC排队系统的仿真与应用
设计依据: (1)设计背景 离散事件系统中,由于顾客到来时间间隔与服务台服务时间都是随机的,所以在系统中会产生顾客排队现象,排队是该类系统的特征. 离散系统仿真技术是研究该类系统的有效方法,在计算机上模拟逐个顾客的来到、排队、服务及离开,统计得到整个系统的运行参数,即根据顾客到来及服务台结构、服务时间的分与参数得到了顾客的等待时间与服务台效率,从而有效地分析各类排队系统的性能。鉴于数据库中历史数据的特点以及回归预测的缺点,本系统采用离散的点来拟合,只要历史数据足够多,预测的结果也就越稳定,越接近于真实情况。本系统的重点放在顾客的到来,顾客的需求量,即何时到来,订单是多少。 此外,为了模拟顾客到来的随机性,我准备用均匀分布的随机数来实现,产生这种随机数比较理想的算法是抛物线影射法,经测试它具有良好的均匀性和独立性,且不再具有固定的周期。 (2)预期目的 整个系统主要通过程序对以前每天顾客到来的情况、订单的情况以及仓库中各原材料库存量来预测将来某一天的市场对产品需求量和库中原材料的供求情况,并输出变化条形图和预测值。再根据需求量对原材料进行出入库。 (3)主要参考文献 ①《Visual C++ 技术内幕(第四版)》 作者:(美)[D.J.克鲁格林斯基]David J.Kruglinski著,清华大学出版社 1999 ②《MFC深入浅出:从MFC设计到MFC编程 》 作者:李久进,华中理工大学出版社 1999 ③《Visual C++数据库开发基础及实例解析》 郎锐编著,北京-机械工业出版社 2005 ④《数据库系统概论》(第三版)作者:萨师煊、王珊,高等教育出版社 ⑥《Visual C++图形用户界面开发指南》李博轩等编著,北京-清华大学出版社 2000 |
任务要求: (1)设计内容 排队系统的仿真与应用。利用排队系统的原理结合预测算法和大量历史数据来设计系统,用它来预测顾客的到来和顾客的订单。 (2)原始数据 数据库中有三张表:“客户”表、“材料库存量”表、“产品零件表”表。 其中,最重要的表是“客户”表,用于存放客户的历史数据。 客户的历史数据如下表所示:
(3)技术要求 ①产生具有良好的均匀性和独立性的随机数的算法; ②预测算法; ③对Microsoft Visual C++ 6.0的开发环境的运用,数据处理和绘图; ④排队系统的原理; ⑤数据库技术,SQL语法,用MFC的类进行ODBC数据源的连接等。 (4)成果要求 软件仿真,把排队原理和预测算法应用到公司业务上来,预测将来的生产量,为公司生产提供依据。 |
摘要
排队系统是一个应用很广泛的课题。它可以应用于各个部门,比如:银行储蓄柜的排队管理,医院门诊挂号,电信营业厅排队管理,财政营业厅,税务报税大厅,工商注册,海关业务大厅,邮政业务,民航、铁路、车站售票处等任何窗口服务需要排队等候的场所。在这些场所,使用排队管理系统的意义重大。首先,它可以提升服务机构的形象,提高服务质量;其次,减少客户的等待时间,杜绝大厅的纷乱现象;最后,它也为部门有关决策提供依据,增加对工作人员的考核依据。此外利用排队系统的原理结合预测算法和大量历史数据来设计系统,用它来预测顾客的到来和顾客的订单。利用本系统可以科学的预测将来的某一天中顾客的到达情况和他所要的订单,为公司生产多少产品提供了依据。除了以上的基本功能外,本系统还提供了对历史数据和库存基本操作,更方便了用户的使用。希望对朋友们有所启发,也希望同朋友们一起完善它,使之更实用。
Abstract
Queueing system is an applied very extensive lesson. It can apply in the each department, for example,the queueing system using in the cashomart of bank, the hospital out-patient service registers,the system using in the telecommunication business hall,public finance business hall,tax administration tax reporting hall,industry and business register, maritime customs business hall, postal service business, and civil , railroad, station box office etc. any places which provide server windows and demand waiting in line. In these places, it is very important to use the queueing system. First, it can promote the image of the service organization,and increase service quantity; Second, it also can reduce the customer's time spending on waiting, and eradicate completely the confusion phenomenon of the hall; Finally, it can provide grounds for some relevant decisions, and increase to investigate to the worker basis. In addition,making use of the principle of the queueing system ,predictive algorithm, and a flood of history data,we can design a system,with which to predict when the next customer will come and how many products he will order.Making use of this system,you can predict scientifically the situation of the arrives of customers and their orders on some day in the future,which could provide the basis on how many products should be produce in the future. In addition to above basic function, this system still provided the basic operations for the history data in stock,making it more convenient. I hope this system to have to inspire to the friends. I also hope to make it perfect with friends, let it more practical.
【Key Words】Queueing system;Pretect;Operate on database; History data; Random number
目 录
2.1 Microsoft Visual C++ 6.0简介
引言
离散事件系统中,由于顾客到来时间间隔与服务台服务时间都是随机的,所以在系统中会产生顾客排队现象,排队是该类系统的特征. 离散系统仿真技术是研究该类系统的有效方法,在计算机上模拟逐个顾客的来到、排队、服务及离开,统计得到整个系统的运行参数,即根据顾客到来及服务台结构、服务时间的分与参数得到了顾客的等待时间与服务台效率,从而有效地分析各类排队系统的性能。本系统的重点放在顾客的到来,顾客的需求量,即何时到来,订单是多少。
当然这一切都要根据数据库中的历史数据的规律得到。
我利用毕业设计的机会在
整个系统从设计到实现,先后经历了问题分析、算法设计、数据库设计、数据存取、结果输出等过程,前后历时两个半月。期间,我充分运用大学期间所学的知识方法,对每一部分都进行了精心的分析设计,力求完美。如在程序设计阶段,我就运用了软件工程中关于模块化设计的方法和原则,尽量使每个功能模块做到高内聚、低耦合,并控制扇出个数。在程序的测试过程中,又再次运用黑盒、白盒等测试方法并且把测试用例分为有效等价类与无效等价类分别进行测试。数据的存储则是运用数据结构中的结构体数组来实现的。
“排队系统的仿真与应用”的系统是我综合运用数据存储、数据库操作、图形输出、Visual C++ MFC类库以及预测算法等方面的知识所开发出来的具有研究价值的软件系统。欢迎大家试用。同时,由于时间和能力有限,难免有不足之处,诚请老师同学予以指正,不胜感激。
第一章 系统概述及其体系结构
1.1系统概述
该“排队系统的仿真与应用”系统是在Microsoft公司推出的Visual C++ 6.0的开发环境下,用MFC类库进行设计并结合Microsoft Access数据库来开发的一种快速、高效、准确、稳定、功能强大的仿真软件。
(1)总体要求
某个公司生产某个产品,该产品有N种材料组成(C1,C2,C3,……Cn),每种材料需要不同的数量(N1,N2,N3,……,Nn)。建立一个数据库,存放以前每年每月每天顾客到达的编号和时间,每个顾客所要的订单是均匀分布的随机数。程序通过数据库中的相应数据总结规律输出一天的概率密度图,再根据概率密度图输出相应的分布函数图并预测出将来的某年某月某天顾客来的时间点和各个顾客所要的订单。
(2)确定算法
未来的事是不定的所以预测是一件很困难的事,本系统只是预测软件的初步尝试,如果要想实现比较完善的预测系统,还需要增加各种算法,因为不同的问题还要有对应的不同算法,如:趋势分析法、回归分析法、指数平滑法、单耗法、灰色模型法、负荷密度法和弹性系数法等,也可采取各种不同的算法模型:灰色系统预测模型、时间序列预测模型、神经网络预测模型,还有有名的博克思-詹金斯法的三种模型:AR模型、MA模型和ARMA混合模型。我曾经编写一元线性拟合预测的算法,是采用最小二乘拟合的方法,但这需要事先假定数据的变化规律是按某个曲线,且可以写出该曲线的方程,再通过最小二乘法求出相应系数。这样虽然简单,但是不太现实,用户不可能事先知道数据的变化曲线,而且随着时间的推移,预测的精度会变得越来越差。事实上,一个好的预测往往会综合应用各种预测算法,那样的话就比较麻烦。既然就出连续的预测曲线实现不太可能,那就采用离散的点集来预测。
(3)系统功能描述
主界面对数据库中的历史数据的逐条操作:移动(移动到表头、向上移动一条、向下移动一条、移动到表尾)、删除、增加、修改、按日期升序(或降序)排序和用过滤器察看某年某月某天的所有记录。此外,主界面我用菜单实现,这样便于操作,而且我为几个主要的数据库操作制作了工具条,这样操作更快捷。
为了能够便于查看数据库中的记录,我使用了列表控件,还增加了条件选择,使界面更具人性化。
根据数据库中“客户”表中的数据输出概率密度图,再根据概率密度图处理后输出分布函数图。概率密度图显示出客户在一天的各个时间段上出现的概率,分布函数图则显示了顾客的分布情况。输出图形,使预测更加具有直观性。在“预测”菜单项中我用对话框的列表显示出预测的详细结果,并根据预测的数据统计总顾客数和总订单量。把各种原材料的需求量与库中供应量相比较,若不足则提示。
此外,为了清楚地知道库存量还要有显示库存量的对话框,以及相关操作如出库、入库等。
1.2系统体系结构
整个系统从总体上来说可分为四个大模块以及一些小的功能模块,时个大模块分别为数据库数据操作模块、库存操作模块、图形输出模块和预测模块。而这三个大模块每一个又可以细分为若干个小的功能模块,比如数据库数据操作模块中又可以按功能细分为数据读取模块、数据过滤模块和数据处理读取模块;图形输出模块也可以按功能细分为绘制概率密度图模块、绘制分布函数图模块;库存操作又可分为出库和入库。其具体关系结构图如下:
以上内容只是毕业设计作品的部分资料介绍,如果了解更多详情请联系客服QQ:57510459
购买帮助>>