ERP沙盘模拟对抗毕业论文.doc

上传人:仙人指路1688 文档编号:3931601 上传时间:2023-03-28 格式:DOC 页数:37 大小:1,002.50KB
返回 下载 相关 举报
ERP沙盘模拟对抗毕业论文.doc_第1页
第1页 / 共37页
ERP沙盘模拟对抗毕业论文.doc_第2页
第2页 / 共37页
ERP沙盘模拟对抗毕业论文.doc_第3页
第3页 / 共37页
ERP沙盘模拟对抗毕业论文.doc_第4页
第4页 / 共37页
ERP沙盘模拟对抗毕业论文.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《ERP沙盘模拟对抗毕业论文.doc》由会员分享,可在线阅读,更多相关《ERP沙盘模拟对抗毕业论文.doc(37页珍藏版)》请在三一办公上搜索。

1、摘 要ERP沙盘模拟对抗是某ERP软件公司设计开发的一种模拟企业经营的对抗比赛。它主要是通过在一个现场沙盘上模拟企业的生产和经营,让参与者学习ERP管理思想的一种体验式学习方式。目前,这种体验式的沙盘模拟对抗由于受到场地等客观条件的限制,其参与的人员有限,而且需要耗费大量辅助人力和资源。为此,本课题力图开发一套基于局域网的计算机模拟对抗仿真系统。通过网络连接计算机进行模拟对抗,最大限度减少其在时间、场地、辅助人力及设备需求方面的局限性,增强其便捷性、规范性以提高其参与程度。主要工作如下:1. 对现场ERP沙盘模拟对抗进行分析,深入分析了ERP计算机模拟对抗仿真系统的需求,绘制了业务流程图及数据

2、流程图;2. 基于需求分析,进行了系统体系结构、网络数据交换层、仿真系统数据处理层及仿真系统界面层的设计; 3. 以Visual Basic 6.0 中文版为开发工具,运用Winsock等技术,建立了模拟对抗平台,开发了ERP计算机仿真系统应用程序。关键词:ERP,计算机模拟对抗,仿真系统AbstractThe ERP sand table simulation resistance is the resistance competition that simulation of enterprise management designed by one of ERP software cor

3、porate. It is mainly through simulates the production and the management of the enterprise on a scene sand table, which can help the participant to master the ERP management thought the type of experience study way.At present, due to the resistance of the places, this kind of experience-like sand ta

4、ble simulation , its participation persons is limited, what is worse ,it needs to consume the massive assistance manpower and the resources. Therefore, this topic tries best to develop a system which is based on the local area network computer simulation resistance simulation system. by running the

5、simulation system through the network, it can limit reduces the cost maximally in the time, the places, the assistance manpower and the equipment which is firmly needed in the realization, it can also strengthens its convenient, enhances the standards and its participation degree. The prime tasks ar

6、e as follows:1. through the analysis of the ERP sand table, the article has descript the necessary of the ERP calculator the emulation resists, and have draw the business flow chart and data flow charts;2. we have designed the system structure, the network data exchanges layer and simulation system

7、data processing layer and imitate the design of the simulation system interface layer;3.the application procedure is based on the soft of visual basic 6.0(Chinese simple vision) and the technology of Winsock.Keyword: ERP,Computer simulation resistance, Simulation system目 录1. 绪 论11.1 本课题研究的背景与意义11.2

8、国内外研究状况11.3 论文构成及研究内容21.3.1 论文的构成21.3.2 研究内容22. ERP沙盘模拟对抗系统分析42.1 ERP沙盘模拟对抗的构成42.1.1ERP沙盘模拟对抗的总体结构42.1.2 ERP沙盘模拟对抗中的角色52.2 ERP沙盘模拟对抗的营运流程和规则52.2.1 ERP沙盘模拟对抗的营运流程52.2.2 ERP沙盘模拟对抗的规则要点62.3 ERP沙盘模拟对抗业务数据分析83. ERP沙盘计算机仿真系统的设计103.1 ERP沙盘计算机仿真程序在局域网中的结构103.1.1 ERP沙盘计算机仿真程序的模块分析103.1.2 ERP沙盘计算机仿真程序的的网络结构的设

9、计113.2 ERP沙盘仿真系统运行背景分析113.3 ERP沙盘计算机仿真系统的分层设计113.4网络数据交换层的设计123.4.1 Winsock控件简介123.4.2 Winsock控件在本程序中的应用133.5 模拟对抗数据处理层的设计133.5.1 模拟对抗数据存储方式的选择133.5.2 模拟对抗数据结构的设计143.5.3 模拟对抗数据的保存方式选择173.6 模拟对抗界面层的设计173.6.1 模拟对抗程序界面设计173.6.2 动画显示的设计173.7 三个层次之间的关系的设计184. ERP沙盘计算机仿真系统的实现194.1 网络数据交换层的实现194.1.1建立连接的具体

10、实现方法194.1.2 “TCP粘包”的处理224.2模拟对抗数据处理层的实现234.2.1 数据的初始化234.2.2 数据的处理244.2.3 数据的保存254.3模拟对抗界面层的实现264.3.1 响应操作的实现264.3.2 界面显示的实现284.4三个层次之间的接口的实现29结论与展望32参考文献33致 谢341. 绪 论1.1 本课题研究的背景与意义“ERP”(Enterprise Resource Planning)是指企业资源计划。“沙盘”是指军事演习或作战之前指挥者用来模拟指挥的立体模型。ERP沙盘模拟对抗是模拟企业经营对抗比赛的游戏,主要通过运用ERP策略指导模拟对抗的生产

11、和经营,提升本团队在模拟对抗中的实力和竞争力,进而在对抗比赛中取得优胜,摘自参考文献10。ERP沙盘模拟对抗是主要目的是通过模拟企业经营来学习ERP技术及管理思想。这是一种体验式学习方式,模拟对抗将复杂、抽象的经营管理理论以最直观的方式让游戏者体验、学习。ERP沙盘模拟对抗采用的是边培训,边竞赛的体验式竞争模式。模拟对抗中,参赛成员被分成几个团队,每个团队57人,每个团队的成员将分别担任公司中的CEO、CFO、市场总监、生产总监等重要职位.在面对来自其他企业的激烈竞争中,参与对抗者必须做出众多决策,例如新产品的开发,生产设施的更新改造、新市场的开拓等等,将企业向前推进、发展。比赛从整体战略出发

12、,涉及产品研发,生产流程、市场与销售、财务、团队沟通与建设等多个主要方面。 “用友ERP沙盘模拟”精品课程将企业经营决策的理论和方法与实际模拟操作紧密地结合在一起,使接受培训的学员在“游戏”般地操作中感受到完整的决策体验,进而深刻地体会到“决策”在企业经营成败中的关键作用,以及企业进行信息化建设的必要性和急迫性。目前在全国众多高校及部分企业有举行通过ERP沙盘模拟对抗来培训ERP管理思想和管理理念的课程,更在国内多次举行各种大小ERP沙盘模拟对抗赛。通过实践证实ERP沙盘模拟对抗是一种有效的ERP课程的传授和学习的方式。进行ERP沙盘模拟对抗需要特定的实物道具和场地,这限制了大部分参与者不能在

13、缺乏道具及场地的情况下方便地进行ERP沙盘模拟对抗。本课题将研究并且现实通过计算机局域网来进行ERP沙盘模拟对抗,作为玩ERP沙盘模拟对抗方式的一种延伸,让更多有需要的学习ERP知识的人能参与到其中。1.2 国内外研究状况根据参考文献9国际标准化组织(ISO)标准中得数据处理词汇部分的名次解释,“模拟”(Simulation)与“仿真”(Emulation)两词含义分别为:“模拟”即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。“仿真”即用另一数据处理系统,主要是用硬件来全部或部分地模仿某一处理系统,以至于模仿的系统能象被模仿的系统一样接受同样的数据,执行同样的程序,获

14、得同样的结果。目前“模拟”和“仿真”两者所包含的内容都归于“仿真”的范畴,用“Simulation”来代表。仿真又称蒙特卡罗(Monte Carlo)方法,它是一种通过用随机数做实验来求解随机问题的技术。蒙特卡罗方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。蒙特卡罗方法的基本思想是:当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加

15、以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。在软件仿真的领域中,用计算机软件模拟/仿真ERP沙盘对抗的这个分支目前还找不到该项目的作品,也找不到类似的研究作品。1.3 论文构成及研究内容1.3.1 论文的构成本文将在第二章对现场ERP沙盘模拟对抗进行分析,深入分析了ERP计算机模拟对抗仿真系统的需求。在第三章将基于需求分析,对现场ERP沙盘模拟对抗进行了系统体系结构、网络数据交换层、仿真系统数据处理层及仿真系统界面层的设

16、计,然后在第四章阐述如何以Visual Basic 6.0 中文版为开发工具,运用Winsock等技术,建立了模拟对抗平台,开发了ERP计算机仿真系统应用程序。1.3.2 研究内容本课题力图开发一套基于局域网的计算机模拟对抗仿真系统。通过网络连接计算机进行模拟对抗,最大限度减少其在时间、场地、辅助人力及设备需求方面的局限性,增强其便捷性、规范性以提高其参与程度。主要研究内容有:1. 对现场ERP沙盘模拟对抗进行分析,深入分析ERP计算机模拟对抗仿真系统的需求;2. 基于需求分析,进行系统体系结构、网络数据交换层、仿真系统数据处理层及仿真系统界面层的设计; 3. 以Visual Basic 6.

17、0 中文版为开发工具,建立模拟对抗平台,开发ERP计算机仿真系统应用程序。2. ERP沙盘模拟对抗系统分析2.1 ERP沙盘模拟对抗的构成ERP模拟对抗课程的基础背景设定为多家已经经营若干年的生产型企业(在模拟对抗起始年经营状况和财政状况一模一样),由各个模拟对抗团队各自掌管一家模拟企业,在模拟对抗的范围内进行竞争经营。ERP沙盘模拟对抗队伍是由CEO,COO,采购总监,财务总监,市场总监,财务助理和信息总监(市场间谍)等角色组成,分别控制沙盘中模拟企业的各项任务,对沙盘中的模拟企业进行运营操作。每个团队要亲自经营一家拥有若干资产的销售良好,资金充裕企业,连续从事6至8个会计年度的经营活动,从

18、中但面对同行竞争对手、产品老化、市场单一化,公司要如何保持成功及不断的成长是每位成员面临的重大挑战。该课程涉及整体战略、产品研发、设备投资改造、生产能力规划与排程、物料需求计划、资金需求规划、市场与销售、财务经济指标分析、团队沟通与建设等多个方面。并在模拟对抗结束年通过一定的评价标准对各个团队进行评分,排出各个团队在模拟对抗中的名次。本小节内容主要参考自参考文献78。2.1.1ERP沙盘模拟对抗的总体结构模拟对抗的总体结构(见图2.1):注:上方“原料供应区”,“银行”,“市场”三大部分是由模拟对抗裁判方控制,下方“团队”部分是由各模拟对抗团队控制。图2.1 ERP沙盘模拟对抗总体结构2.1.

19、2 ERP沙盘模拟对抗中的角色从总体结构看,ERP沙盘模拟对抗中的角色可以分为两大部分:“裁判方”和“团队方”。具体分析如下:1“裁判方”:是负责模拟对抗的规则的正确执行,模拟对抗的总体进度和与各团队的虚拟货币和货物的交易等。2“团队方”:这一部分是“游戏者”,是模拟对抗的主体,是虚拟企业的经宫者,经营的效果要通过与“裁判方”交易来实现。其组成部分包括:CEO,财务总监,营销总监,运营总监,和采购总监,每个职位各自负责虚拟企业的各部分业务(见图2.2)。图2.2 ERP沙盘模拟对抗“团队方”的组成2.2 ERP沙盘模拟对抗的营运流程和规则2.2.1 ERP沙盘模拟对抗的营运流程模拟对抗以“游戏

20、年”为大阶段,每个“游戏年”分为六个小阶段:“年初”,“第一季”,“第二季”,“第三季”,“第四季”,“年末”。根据参考文献3总体业务流程(见图2.3),具体业务流程(见表2.1)。图2.3 ERP沙盘模拟对抗业务流程图表2.1 ERP沙盘模拟对抗具体业务年初要完成的业务新年度规划会议参加订货会/登记销售订单制定新年度计划第一至四季要完成的业务季初现金盘点更新短贷/支付利息/获得新贷款更新应付款/归还应付款原材料入库/更新原料订单下原料订单更新生产/完工入库投资新生产线/变卖生产线/生产线转产向其他企业购买原材料/出售原材料开始下一批生产更新应收款/应收款收现出售厂房向其他企业购买成品/出售成

21、品按订单交货产品研发投资支付行政管理费年末要完成的业务支付利息/更新长期贷款/申请长期贷款支付设备维护费支付租金/购买厂房计提折旧新市场开拓/ISO认证投资结账2.2.2 ERP沙盘模拟对抗的规则要点在第0年年末开始,各模拟对抗团队模拟企业在同一起跑线上,即各个虚拟企业的经营状态,生产状态完全相同。然后每进入下一个阶段都由裁判方统一宣布,保证各个团队模拟企业都在同一个阶段内进行。在每一个阶段内由各模拟对抗团队按游戏规则操控本企业的发展。1、市场划分与市场准入:企业目前在本地市场经营,新市场包括区域、国内、亚洲、国际市场。不同市场投入的费用及时间不同,只有市场投入全部完成后方可接单。所有已进入的

22、市场,每年最少需投入1M维持, 否则视为放弃了该市场。2、销售会议与订单争取:每年的年初由“裁判方”召开订单会议,根据各队市场地位、产品广告投入、市场广告投入和市场需求及竞争态势,按顺序选择订单。3、厂房购买、租赁与出售:根据需要可以使用新厂房或出售现有的厂房年底决定厂房是购买还是租赁,出售厂房计入4Q应收款,购买后将购买价放在厂房价值处,厂房不提折旧。4、生产线购买、转产与维护、出售:可以在需要并且条件许可的情况下购买新生产线,或对现有的生产线进行转产或出售。5、产品生产与原材料采购:(1)生产:开始生产时按产品结构要求将原料放在生产线上并支付加工费。(2)采购:根据上季度所下采购订单接受相

23、应原料入库,并按规定付款或计入应付款,根据不同的原料需要不同的订购提前期。6、产品研发:新产品研发投资可以同时进行,按季度平均支付或延期,资金短缺时可以中断;但只有完成投资后方可接单生产。研发投资计入综合费用,研发投资完成后持全部投资换取产品生产资格证。7、市场开发和ISO认证:(1)市场开发:市场开发投资按年度支付,允许同时开发多个市场,但每个市场每年最多投资为1M,不允许加速投资,但允许中断。市场开发完成后持开发费用到指导教师处领取市场准入证,之后才允许进入该市场竞单。(2)ISO认证:两项认证投资可同时进行或延期,相应投资完成后领取ISO资格证。8、融资贷款与资金贴现:长期贷款最长期限为

24、5年,短期贷款及高利贷期限为1年,不足1年的按1年计息。长期贷款每年需还利息,短期贷款到期时还本付息 。资金贴现在有应收款时随时可以进行,金额是7的倍数, 不论应收款期限长短,拿出每7M需交1M的贴现费。9、综合费用与折旧、税金:(1)综合费用:行政管理费、市场开拓、产品研发、 ISO认证、广告费、生产线转产、设备维修、厂房租金等。(2)折旧:设备折旧按余额递减法计算,每年按生产线净值的1/3取整计算折旧。当年建成的生产线不提折旧,当生产线净值小于3M时,每年提1M折旧。(3)税金:每年所得税计入应付税金,在下一年初交纳。2.3 ERP沙盘模拟对抗业务数据分析在ERP沙盘模拟对抗中用以下数据可

25、以完整地表示一个团队在模拟对抗中的特定状态:游戏时间:模拟对抗中的游戏年和游戏阶段。组别:用来区分模拟对抗团队的顺序性符号。队名:模拟对抗团队的个性化标志符号。现金:模拟对抗中可以直接使用的虚拟货币。长贷状态,短贷状态,高利贷状态。应收款状态。各种成品的库存量,各个成品的成本。市场订单。各原料的库存量,各原料订单情况。各厂房状态,各生产线状态。各市场开拓状态,各产品开发状态,ISO开发状态。各年的损益表,资产负债表。各季度的变更,维护,营销,租金,其它费用,折旧,利息,贴现,税金等数值。在“裁判方”将表示各个团队的特定状态的数据集中管理,以这些数据为基础生成各种统计数据就可以完整地用数据来表示

26、整个模拟对抗的状态(见图2.4)。图2.4 ERP沙盘模拟对抗业务数据流程3. ERP沙盘计算机仿真系统的设计3.1 ERP沙盘计算机仿真程序在局域网中的结构3.1.1 ERP沙盘计算机仿真程序的模块分析模拟对抗总体结构可以分为两大部分,分别是“裁判方”和“各模拟对抗团队”(见图3.1)。“裁判方”是负责模拟对抗的规则的正确执行,模拟对抗的总体进度和与各团队的虚拟货币和货物的交易等。“模拟对抗团队”部分是“游戏者”,经营的效果要通过与“裁判方”交易来实现。图3.1 ERP沙盘总体业务模块归纳成仿真模型,可以由一台计算机来负责“裁判方”平台的工作,另外每一台计算机可以负责每个模拟对抗团队的对抗平

27、台工作。初步设想(见图3.2):图3.2 ERP沙盘仿真程序总体业务模块这样就实现了模拟对抗平台从实物道具迁移到计算机的初步设想。3.1.2 ERP沙盘计算机仿真程序的的网络结构的设计以局域网中的一个节点作为服务器端,其它多个节点作为客户端。在模拟对抗角色中,服务器端负责模拟对抗“裁判方”的工作同时负责响应各客户端的请求,分配管理各客户端的连接等。客户端负责提供各团队的模拟对抗平台,实现模拟对抗的界面及与操作者的互动,并负责和服务器交换数据。各客户端之间的数据交流是通过服务器端中转的。如(图3.3)所示:图3.3 ERP模拟对抗仿真程序的网络结构3.2 ERP沙盘仿真系统运行背景分析将ERP沙

28、盘的仿真系统定位在主要面对局域网,计算机主要为家用电脑。1 目前ERP沙盘模拟对抗主要在各高校和部分企业进行,模拟对抗规模在6到8支团队。局域网的硬件要求在上述环境中基本可以得到保证,局域网中有6到8台计算机的条件也是可以容易满足的要求。2 局域网的发展状况:局域网技术已非常成熟,稳定性高,数据传输速率高,目前普通的局域网数据传输速率基本可以达到10/100MPbs 的稳定传输。模拟对抗状态的数据以KB计,在局域网远远可以满足模拟对抗数据传输的要求。3.3 ERP沙盘计算机仿真系统的分层设计将模拟对抗程序分为三个层次:网络数据交换层,模拟对抗数据处理层,模拟对抗界面层。1. 网络数据交换层:确

29、保数据在服务器端和客户端之间的正确传输。2. 模拟对抗数据处理层:负责处理模拟对抗业务中的数据。3. 模拟对抗界面层:根据模拟对抗数据以界面化方式显示供操作者使用,并响应游戏者对模拟对抗的操作。分层的情况(见图3.4):图3.4 ERP模拟对抗仿真程序的分层情况3.4网络数据交换层的设计网络数据交换层是本程序现实各模拟对抗终端数据交据的部分,是本程序的基础层次。网络中数据传输协议主要有TCP 和UDP,TCP 是有连接协议,它要求计算机进行对话时必须先建立连接,保证数据传送安全到达目的地。UDP 是无连接协议,它只是将信息送到网络上,并不检查数据是否到达了目的地。要进行实时会话,则应该采用TC

30、P 协议。网络数据交换层的主要组成部分就是Winsock控件及相应的控制代码。3.4.1 Winsock控件简介Winsock 控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Microsoft Access、Visual Basic、Visual C+ 或 Visual FoxPro 的开发人员都可使用它。为编写客户或服务器应用程序,不必了解 TCP 的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。TCP 基础:数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此

31、进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生 ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调

32、用 DataArrival 事件内的 GetData 方法就可获取数据。UDP 基础:用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外 UDP 应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置客户计算机的 LocalPort 属性。然后,服务器计算机只需将 RemoteHost 设置为客户计算机的 Internet 地址,并将 RemotePort 属性设置为跟客户计算机的 LocalPort 属性相同的端口,并调用 SendData 方法来着手发送信息。于是,客户计算机使用 DataArrival 事件内的 GetData 方法来

33、获取已发送的信息。本小节以上内容来自参考文献24-6。3.4.2 Winsock控件在本程序中的应用本程序有明确的服务器端和客户之分,而且在局域网中网络的稳定性可以得到保证,所以采用TCP方式进行连接。本程序的整体结构属于一对多的网络结构。一个Winsock 控件可以建立与一个计算机的联接,服务器程序中首先加载一个Winsock 控件,将其索引值设为0,以便在运行时动态增减元素,这样可以实现同时与多台计算机保持连接并进行数据交流,从而实现一对多的网络结构。3.5 模拟对抗数据处理层的设计3.5.1 模拟对抗数据存储方式的选择数据库技术主要面对数据量大,逻辑关系复杂的业务,采用后台数据库技术将造

34、成模拟对抗平台的经济成本要求增高,对计算机性能的要求也高。考虑到本程序主要面对的是家用电脑水平的计算机,不采用后台数据库可以进一步有利于本程序的硬件环境适应性,降低对计算机性能的要求及经济要求。结合ERP沙盘模拟对抗规模小(68个团队),数据量小(KB级),的特点。本程序在数据存储和使用方面将不采用后台数据库技术,而采用自定义数据结构存储方式。3.5.2 模拟对抗数据结构的设计模拟对抗数据采用“自定义结构”集成和封装基本变量及“嵌套自定义结构”,符合模拟对抗业务的使用和网络数据交换层的传输,同时也方便保存为文件形式的数据。根据模拟对抗的业务需求,将自定结构分为三种类型:第一种是模拟对抗从开始到

35、结束只用一个结构体,结构体维数只和队伍数或只和年数有关的结构体;第二种是每年一个团队用一个结构体来存储模拟对抗数据,在模拟对抗初始化时将定义和模拟对抗年数相同的结区构体数组;第三种是每团队每个季度将使用一个结构体,此结构体的数组维数将达到游戏年数的6倍。第一种类型的结构体有:模拟对抗参数:定义模拟对抗的各种参数;模拟对抗连接记录:记录各队客户端在服务器端的连接状态;市场排行榜:每一年各队的市场排行;订单分配记录:某一年的订单会议上各市场将出现哪些订单。图3.3 第一种类型的结构体第二种类型的结构体有:资产负债表:每个团队每年将产生一张资产负债表;损益表:每个团队每年将产生一张损益表。图3.4

36、第二种类型的结构体第三种类型的结构体有:Record:每团队每季度将用一个Record结构体存储该季度的状态。在Record结构中不能用基本变量定义的采用“嵌套自定义结构”,具体的数据结构定义如下,其中Record变量除了包含基本变量外还包含了“订单”,“生产线”,“厂房”三个自定义结构。图3.5 第三种类型的结构体3.5.3 模拟对抗数据的保存方式选择在模拟对抗的过程中,有可能需要将数据保存下来,供以后使用。由于本程序不采用后台数据据库的存储方式而是采用自定义的文件存储方式,所以要对文件存储结构进行具体设计。Visual Basic 6.0中提供三种文件访问的类型:顺序存取文件,随机存取文件

37、,二进制存取文件。其中随机存取文件的方式最适合于存储自定义结构体类型,所有程序主要采用这种方式来保存模拟对抗的数据。3.6 模拟对抗界面层的设计模拟对抗界面是供模拟对抗直接使用的层次,将通过界面反馈模拟对抗数据层的数据,并响应操作者的操作,让操作者可以与程序进行互动操作。3.6.1 模拟对抗程序界面设计本程序是ERP沙盘模拟对抗仿真程序,所以在程序界面采用与原实物模拟对抗道具相类似的界面,由于实物模拟对抗道具的沙盘平台比例不适合在计算机显示器上全部显示,所以本程序根据模拟对抗功能将界面分割分“生产管理”和“财务管理”两部分,通过按钮切换。在画面上相应的位置放置相应的Label控件用于显示相应的

38、数据。3.6.2 动画显示的设计Visual Basic 6.0在动画显示方面功能相对薄弱,而作为模拟对抗仿真程序能有某些动画显示功能将会提高模拟对抗的可玩性。Visual Basic 6.0并不支持GIF格式的动态图片显示,实现的方法是通过程序控制多幅图片切换显示来达到目的。在界面层如果编写这样的代码来实现动态效果,将使程序的代码复杂化。本模拟对抗程序适合在生产线部分进行动态显示,实现的方法是将生产线做成ActiveX控件,该ActiveX控件可以根据接收到不同的参数有不同的动态显示效果。然后通过在程序界面中嵌入ActiveX控件,通过发送参数给ActiveX控件达到控制动画显示的目的。基于

39、Visual Basic 6.0在动态画面显示方面的先天不足和出于对节省操作系统资源的考虑,本程序不考虑过多采用动态效果显示。ActiveX简介:ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使 得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。3.7 三个层次之间的关系的设计网络数据交换层是各终端之间数据互通的基础;模拟对抗数据处理层的交换建立在网络

40、数据交换层的基础上,只有在网络数据交换层处于连接状态下,模拟对抗数据层的数据交换才能实现;而界面层是的作用是将数据处理层的数据转换成操作者理解的信息,并将操作者的操作转换为数据处理层可以接受的数据。垂直层次之间的数据转换是通是转换接口现实。借鉴OSI网络交换分层的思想,本程序的分层的本质也与OSI网络交换分层相同,即各个终端的内部层次之间是互不干涉的,层次之间的数据互通采用接口转换。即:界面层只处理界面的显示及响应操作者操作,不干涉其它层次的工作;而数据处理层只负责处理模拟对抗数据,而不同终端的数据层数据互通是通过网络交换层进行,但不关心网络交换层如何工作,将数据能过转换接口送给网络交换层,接

41、收的时候从转换接口接收数据并进行处理;而网络交换层只负责在终端之间数据交换,并不关心发送和接收的数据的具体内容。在层内部只能看到对等层(水平层)而看不到垂直层。参考图片(见图3.6)图3.6 对等层的情况这样设计分工明确,逻辑结构清晰,方便具体工作的实现和程序的编写。4. ERP沙盘计算机仿真系统的实现在对ERP沙盘模拟对抗的深入分析和设计之后,以Visual Basic 6.0 中文版为开发工具,运用Winsock等技术,建立了模拟对抗平台,开发了ERP沙盘模拟对计算机网络仿真系统应用程序。4.1 网络数据交换层的实现在网络数据交换层只有Winsock控件的对话和数据交换,本程序采用的是TC

42、P连接,所以在数据交换之前要先建立连接,然后保持连接,在连接状态可以交换数据,交换完毕就可以断开连接(见图4.1)。本程序在理想情况下,在模拟对抗结束之前不断开连接。图4.1 Winsock整个连接的过程4.1.1建立连接的具体实现方法首先在将服务器的Winsock控件启动并处于监听状态,等待客户端的连接,主要代码如下:Winsock1(0).LocalPort = 2006 设置监听端口Winsock1(0).Listen 开始监听服务程序中网络数据交换层有三个关键程序段如下:1 . 处理连接请求sckServer_ConnectionRequest 过程处理连接请求,当远程计算机要求连接时

43、,服务器首先检查用户自定义数组中是否有空闲位置(因为有可能中途有客户端退出,会产生空闲位置),如果有则选择空闲位置给予要求连接的客户,否则将数组维数加1,将之给予请求连接的客户端。实现的主要代码如下:Private Sub winsock1_ConnectionRequest(index As Integer, ByVal requestID As Long)Dim tmpFlag As Boolean 临时变量If index = 0 ThentmpFlag = TrueFor i = 1 To Winsock1.Count - 1 检查winsock控件组,不处于链接态的关闭,重新利用 I

44、f Winsock1(i).State sckConnected Then Winsock1(i).Close Winsock1(i).LocalPort = 0 Winsock1(i).Accept requestID tmpFlag = False Exit Sub End If Next If tmpFlag = True Then 如果所有链接都处于连接态则加载一个新winsock控件 Load Winsock1(Winsock1.Count) Winsock1(Winsock1.Count - 1).LocalPort = 0 使用.count-1是因为加载后数值已变 Winsock

45、1(Winsock1.Count - 1).Accept requestID End IfEnd IfEnd Sub2.发送数据 主要代码如下:Winsock1(sockIndex).SendData tmpByteDoevents因为Winsock 控件将数据首先送至缓冲区,待缓冲区满才发送信息,这显然不能保证适时对话,用Doevents 语句可确保Windows 将数据及时送出。其中的错误处理程序处理当远程计算机非正常关闭程序时产生的错误,因为此时服务器并不知道它已关闭,仍然向它发送信息,这样就会产生错误,导致服务程序关闭,中断整个谈话。处理方法只是模拟对抗中每次发送前会先检查一下连接状态

46、再发送。不能发送则简单地关闭掉该连接,然后向上层报告即可。3处理处于连接状态的用户发送来的信息sckServer_DataArrival过程处理客户端传来的数据。当有数据发送过来后,服务器首先接收数据,然后再将数据作相应的处理.主要代码如下:Private Sub Winsock1_DataArrival(index As Integer, ByVal bytesTotal As Long)Dim receiveFile() As Byte 只接受字节数组,然后按第一字节的内容进行分类处理 ReDim receiveFile(bytesTotal - 1) As Byte 数组从0开始所以结束

47、的下标要减去1。 Winsock1(index).GetData receiveFile, vbArray + vbByte表明收到的是字节数组类型的数据 Call DealData(index, receiveFile, tytestotal) 把接收到的数据送到专门处理数据过程End Sub4.1.2 “TCP粘包”的处理 “TCP粘包”: TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 出现粘包现象的原因是多方面的,它既可能由发送方造成,也可能由接收方造成。发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一包后一次发送出去,这样接收方就收到了粘包数据。接收方引起的粘包是由于接收方用户进程不及时接收数据,从而导致粘包现象。这是因为接收方先把收到的数据放在系统接收缓冲区,用户进程从该缓冲区取数据,若下一包数据到达时前

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号