银行模拟系统实验报告
银行业务模拟系统分析(五篇)

银行业务模拟系统分析(五篇)第一篇:银行业务模拟系统分析银行业务模拟系统分析需求分析:前提,这是一个业务仿真系统,所以程序的模拟情况越贴近真实情况,程序才越成功。
所以在程序的框架设计上要尽可能的贴近事实,包括设立几个类,类之间是怎样的组合和依附的关系。
其次,这是一个模拟系统。
模拟,就是说从外界表象来看的东西尽管是透明的,但是对于程序的编写者来说是已知的,是可控的。
因为,模拟量是由你来给定的,模拟情况是你进行设计的。
反过来说,对于程序的使用者来说,程序的一些处理过程也是透明的。
程序框架分析:建立银行类.(顾客数,开设窗口数,业务数)λ此处要注意区别类和结构体的异同。
在使用的功能来看,二者区别甚微。
但是,一个好的程序,就应该区别任何细小的问题。
类主要实现信息的封装,留给外界接口去实现别的功能,可扩展性。
而结构体就不过分强调这样的问题。
将一些相关信息结合,方便数据的使用和管理。
所以顾客就可设为结构体,也减少了使用类而引起的数据访问受限的问题。
窗口和服务设为类?(考虑其扩展性)Custom(到达时间,等待时间,业务,办理业务时间)Service(服务类型,服务时间)Window(顾客计数器,办理业务时间计数器,各项业务计数器)λ流程分析1.银行开启:完成银行各项数据的初始化工作,给出正态分布的顾客到达时间。
只要到达时间早于关闭时间,银行就会处理完毕。
2.顾客到达:处理每个顾客到达后的工作(1)打印序号单(序号,业务类型,到达时间)。
(2)检查是否有窗口空闲(程序员为其指定窗口号码),否则进入等待队列,直到有窗口空闲,队头顾客出队交由窗口处理。
(从另一角度来看,顾客到达银行取号后即进入了4个窗口队列中进行等待,程序员分配的原则是每次将新到达的顾客插入最短的窗口队列中。
值得注意的是,这个最短,也是动态的,不是人数最少,而是时间最短)&窗口的是否空闲其实是窗口队列减少的等待过程(3)窗口处理:窗口设立接待顾客计数器,4种业务的计数器和窗口工作时间计数器(即下一个顾客到达窗口之前的等待时间),产生顾客的业务办理时间。
银行模拟实验报告

银行模拟实验报告银行模拟实验报告引言:银行作为金融体系的重要组成部分,承担着资金存储、贷款发放、支付结算等重要职能。
为了更好地了解银行运营的机制和影响因素,我们进行了一次银行模拟实验。
通过模拟实验,我们希望能够深入了解银行的运作模式,以及如何应对不同的风险和挑战。
一、实验背景在现实生活中,银行面临着各种风险,如信用风险、市场风险和操作风险等。
为了更好地理解这些风险,并探索应对策略,我们进行了一次基于模拟的银行实验。
实验中,我们模拟了一个小型银行的运作情况,包括存款、贷款、利润等关键指标。
二、实验过程1. 存款与贷款在实验中,我们设定了不同的利率和期限,以模拟存款和贷款的情况。
通过调整这些参数,我们观察到存款和贷款的变化趋势。
同时,我们还设置了一定的存款保证金比例,以控制风险。
2. 利润与资本充足率利润是银行运营的重要指标之一。
通过实验,我们发现,利率的变化对银行的利润有着直接的影响。
当利率上升时,银行的利润也会相应增加。
另外,我们还观察到资本充足率与银行的利润密切相关。
当资本充足率较高时,银行可以更好地应对风险,从而获得更高的利润。
3. 风险管理在实验中,我们模拟了不同的风险情景,如经济衰退、贷款违约等。
通过调整这些风险因素,我们观察到银行的风险敞口和利润的变化。
我们发现,合理的风险管理对于银行的稳健运营至关重要。
通过设定适当的风险控制措施,银行可以有效应对各种风险,保护自身利益。
三、实验结果与讨论通过实验,我们得出了一些重要的结论。
首先,利率的变化对银行的利润有着直接的影响。
合理调整利率可以提高银行的盈利能力。
其次,资本充足率对银行的风险管理和利润水平有着重要影响。
保持适当的资本充足率可以提高银行的稳健性和盈利能力。
最后,风险管理是银行运营中不可或缺的一环。
通过设定合理的风险控制措施,银行可以降低风险敞口,保护自身利益。
四、实验结论与启示通过这次银行模拟实验,我们深入了解了银行运作的机制和影响因素。
python模拟银行系统实验报告

python模拟银行系统实验报告Python模拟银行系统实验报告一、实验目的本实验旨在通过使用Python语言编写一个简单的银行系统程序,掌握Python语言的基本语法和面向对象编程思想,加深对Python编程的理解和应用。
二、实验环境本实验在Windows 10操作系统下进行,使用Python 3.7.4版本进行编程。
三、实验步骤1. 创建一个BankAccount类,定义账户属性和方法。
```pythonclass BankAccount:def __init__(self, name, balance): = nameself.balance = balancedef deposit(self, amount):self.balance += amountdef withdraw(self, amount):if amount > self.balance:print("Insufficient balance!")else:self.balance -= amountdef get_balance(self):return self.balance```2. 创建一个BankSystem类,定义系统属性和方法。
```pythonclass BankSystem:def __init__(self):self.accounts = []def add_account(self, account):self.accounts.append(account)def find_account(self, name):for account in self.accounts:if == name:return accountreturn Nonedef transfer_money(self, sender_name, receiver_name, amount):sender_account = self.find_account(sender_name)receiver_account = self.find_account(receiver_name)if sender_account is None or receiver_account is None: print("Account not found!")returnif sender_account.get_balance() < amount:print("Insufficient balance!")returnsender_account.withdraw(amount)receiver_account.deposit(amount)```3. 创建一个BankUI类,定义用户界面和交互方法。
经济类实验报告银行实验(3篇)

第1篇一、实验目的本次银行实验旨在通过模拟银行的操作流程,使学生深入了解银行业务的基本操作和金融市场的运作机制,提高学生的金融实践能力和风险意识。
二、实验内容1. 实验背景随着我国金融市场的不断发展,银行业务日益丰富,银行在国民经济中的地位日益重要。
为了让学生更好地了解银行业务,本次实验以模拟银行的形式展开。
2. 实验内容(1)模拟银行设立① 实验组按照实际银行的组织架构,设立董事会、监事会、行长、部门经理等职位。
② 模拟银行内部组织架构,包括信贷部、财务部、客户部、风险控制部等。
(2)模拟银行业务操作① 模拟银行客户办理存款、贷款、信用卡等业务。
② 模拟银行内部业务流程,包括客户咨询、审批、放款、还款等。
③ 模拟银行风险管理,如信贷风险、市场风险、操作风险等。
(3)模拟金融市场交易① 模拟银行间市场交易,如同业拆借、债券交易等。
② 模拟外汇市场交易,如外汇买卖、外汇远期等。
③ 模拟衍生品市场交易,如期权、期货等。
三、实验步骤1. 实验准备(1)确定实验组成员,明确各自职责。
(2)收集相关资料,包括银行组织架构、业务流程、金融市场交易等。
(3)制定实验方案,明确实验步骤、时间安排等。
2. 实验实施(1)模拟银行设立:实验组成员按照实际银行的组织架构,设立相应职位,明确各部门职责。
(2)模拟银行业务操作:实验组成员模拟客户办理存款、贷款、信用卡等业务,了解银行内部业务流程。
(3)模拟金融市场交易:实验组成员模拟银行间市场、外汇市场、衍生品市场交易,了解金融市场运作机制。
3. 实验总结(1)实验组对实验过程中遇到的问题进行分析,总结经验教训。
(2)实验组对银行业务、金融市场交易进行梳理,形成实验报告。
四、实验结果与分析1. 银行业务操作通过模拟银行业务操作,实验组成员对银行内部业务流程有了更深入的了解。
在办理存款、贷款、信用卡等业务过程中,实验组成员熟悉了银行的操作流程,提高了业务处理能力。
2. 金融市场交易通过模拟金融市场交易,实验组成员对金融市场运作机制有了更清晰的认识。
银行模拟实习报告

一、实习背景随着金融行业的快速发展,银行作为金融体系的重要组成部分,对金融人才的需求日益增加。
为了更好地了解银行业务、提高自己的实际操作能力,我在学校经济管理学院的指导下,参加了为期两周的银行模拟实习。
二、实习目的1. 了解银行的基本业务和运作流程;2. 培养实际操作能力,提高自己的综合素质;3. 为今后从事金融行业工作打下基础。
三、实习时间及地点实习时间:20XX年X月X日至20XX年X月X日实习地点:XX大学经济管理学院机房四、实习内容1. 模拟银行系统操作实习期间,我们使用模拟银行系统进行各项业务操作。
该系统涵盖了银行的主要业务,如个人账户管理、存款、取款、贷款、信用卡、汇款等。
通过实际操作,我们熟悉了各项业务的办理流程和操作方法。
2. 柜员业务模拟在柜员业务模拟环节,我们分别扮演柜员和客户,进行了一系列的柜面业务操作。
包括开户、存款、取款、查询余额、办理贷款等。
通过模拟操作,我们了解了柜员的日常工作内容和职责。
3. 银行风险管理模拟在银行风险管理模拟环节,我们学习了银行风险管理的相关知识,包括信用风险、市场风险、操作风险等。
通过案例分析,我们掌握了风险识别、评估、控制的方法。
4. 银行营销策略模拟在银行营销策略模拟环节,我们学习了银行营销的基本理论和方法。
通过模拟设计营销方案,我们了解了银行营销的流程和技巧。
五、实习心得体会1. 理论联系实际的重要性通过这次实习,我深刻体会到理论知识与实际操作相结合的重要性。
在实际操作中,我们不仅巩固了所学知识,还学会了如何将理论知识运用到实际工作中。
2. 银行业务操作的严谨性银行业务操作要求严谨,一丝不苟。
在实习过程中,我们严格按照操作流程进行业务办理,确保了业务办理的准确性和规范性。
3. 团队合作的重要性在实习过程中,我们分组进行业务模拟操作,充分体现了团队合作的重要性。
通过分工合作,我们共同完成了各项任务,提高了工作效率。
4. 金融风险的严峻性实习期间,我们学习了银行风险管理知识,认识到金融风险的严峻性。
商业银行实验报告(精选五篇)

商业银行实验报告(精选五篇)第一篇:商业银行实验报告一、实验目的通过本实验,让学生熟悉当前商业银行业务系统的业务操作流程,初步掌握金融业务系统业务处理方法,熟悉并学会利用计算机软件处理银行业务,理解业务系统中的一些重要概念和临柜柜员日常工作流程。
二、实验内容本次模拟实验以智盛商业银行综合业务模拟系统及操作系统为依托,实验内容主要分为两大类:储蓄所业务和对公业务。
通过操作商业银行储蓄存款业务,熟悉各种储蓄存款实务的前台操作界面和操作要素,掌握储蓄存款的种类、特点、利息计算等基本规定;熟悉会计票据在储蓄存款实务中的应用、票据的审核要点,以及相关的会计核算和记账凭证。
通过操作商业银行对公业务,熟悉银行本票业务中本票开立、汇票业务开立的业务操作流程,以及本票超期结清以及本票未用退回、汇票的超期结清以及退回等业务过程,掌握单位活期存款业务,掌握基本户、一般户的开立以及账户的销户等基本的柜台业务流程。
三、实验步骤【一】储蓄所业务:包括储蓄日初处理、储蓄日常业务、储蓄特殊业务、储蓄代理业务、信用卡业务、储蓄日终处理。
(一)、储蓄日初处理:掌握如何领用凭证、凭证出库,理解柜员钱箱及部门钱箱之间的关联。
掌握如何查询凭证状态及凭证使用情况的方法。
1、凭证领用2、重要空白凭证出库(二)、储蓄日常业务:理解商业银行面向客户的客户化管理思想,掌握如何为个人储蓄客户开立客户号及活期存款帐户、整存整取帐户、定活两便帐户,如何进行存取款业务操作,理解商业银行个人业务处理的业务规范和操作流程。
掌握存本取息、通知存款、普通支票的业务规范及操作流程。
熟悉教育储蓄、一卡通及凭证业务的规范及操作流程。
1、开户以及存取款业务:以普通活期开户为例开普通客户,普通活期开户,普通活期存款,普通活期取款2、开户销户业务:以普通定活两便开户销户为例3、挂失、解挂业务:以一卡通为例4、密码修改:以一卡通为例(三)、储蓄特殊业务:特殊业务模块用于处理一些非日常业务,其中包括通用记帐、冲帐处理、交易维护、帐户维护等。
银行实验报告

银行实验报告银行实验报告一、引言银行作为金融体系中的重要组成部分,承担着储蓄、贷款、支付结算等多种功能。
为了进一步了解银行的运作机制,我们进行了一项银行实验。
通过模拟银行的运作过程,我们将探索银行的运作原理、风险管理以及对经济的影响。
二、实验设计我们设计了一个模拟银行系统,包括存款、贷款、利率调整等功能。
参与实验的学生将扮演银行员工和客户的角色,通过模拟交易来了解银行的运作过程。
三、存款与贷款在实验中,我们设定了不同的存款利率和贷款利率。
客户可以将资金存入银行,获得一定的存款利息;同时,他们也可以向银行申请贷款,但需要支付一定的贷款利息。
通过这样的设计,我们模拟了银行的主要盈利方式。
四、风险管理在银行实验中,我们也考虑了风险管理的问题。
银行需要评估客户的信用风险,以便决定是否给予贷款。
我们设置了不同的信用等级,客户的信用等级越高,贷款利率越低,反之亦然。
这样的设计使得银行能够更好地管理风险,确保贷款的安全性。
五、利率调整在实验中,我们还模拟了银行调整利率的情况。
当经济形势发生变化时,银行可能会调整存款和贷款的利率,以应对市场需求的变化。
我们通过实验让学生体验到了利率调整对存款和贷款的影响,从而加深对利率政策的理解。
六、银行对经济的影响银行作为金融体系的重要组成部分,对经济有着重要的影响。
通过实验,我们让学生了解了银行对经济的调控作用。
当银行调整利率时,对经济的影响是复杂的。
一方面,较高的存款利率可以鼓励储蓄,从而提高资金供给;另一方面,较低的贷款利率可以刺激投资和消费,促进经济增长。
通过实验,学生们深入理解了银行对经济的重要作用。
七、结论通过这次银行实验,我们更加深入地了解了银行的运作原理、风险管理以及对经济的影响。
银行作为金融体系的核心,承担着储蓄、贷款、支付结算等重要功能,对经济的发展起着关键作用。
通过模拟实验,我们不仅学到了理论知识,还深刻体会到了银行的实际运作过程。
这次实验为我们今后的学习和研究提供了宝贵的经验。
银行模拟教学实践报告(3篇)

第1篇一、前言随着金融行业的快速发展,银行业作为金融体系的重要组成部分,其业务流程和管理模式越来越受到关注。
为了提高学生对银行业务的理解和实践能力,我校金融学院开展了银行模拟教学实践活动。
本次实践旨在通过模拟银行运营环境,让学生深入了解银行的基本业务、操作流程和风险管理,培养学生的职业素养和团队协作能力。
二、实践背景与目的1. 实践背景随着我国金融市场的不断深化和金融改革的推进,银行业务日益复杂,对从业人员的专业素养和实际操作能力提出了更高的要求。
然而,传统的教学模式往往注重理论知识的学习,而忽视了实际操作能力的培养。
因此,开展银行模拟教学实践活动,对于提高学生的实践能力具有重要意义。
2. 实践目的(1)帮助学生了解银行的基本业务和操作流程;(2)培养学生的实际操作能力和风险管理意识;(3)提高学生的团队协作能力和沟通能力;(4)增强学生对金融行业的认识,激发其职业兴趣。
三、实践内容与过程1. 实践内容本次银行模拟教学实践活动主要包括以下内容:(1)银行基础知识学习:包括银行的组织架构、业务种类、法律法规等;(2)模拟银行业务操作:包括存款、贷款、结算、汇款等;(3)风险管理:包括信用风险、市场风险、操作风险等;(4)团队协作与沟通:包括团队组建、角色分工、任务分配等。
2. 实践过程(1)前期准备:学生分为若干小组,每组由一名组长负责,进行角色分配和任务分工;(2)基础知识学习:通过课堂讲解、案例分析等方式,让学生掌握银行基础知识;(3)模拟银行业务操作:学生分组进行模拟银行操作,包括办理存款、贷款、结算、汇款等业务;(4)风险管理:学生针对模拟业务中的风险进行分析,并提出相应的风险防范措施;(5)团队协作与沟通:学生在模拟银行操作过程中,加强团队协作和沟通,提高团队整体效率。
四、实践成果与体会1. 实践成果(1)学生掌握了银行的基本业务和操作流程;(2)学生的实际操作能力和风险管理意识得到提高;(3)学生的团队协作能力和沟通能力得到加强;(4)学生对金融行业的认识更加深入,职业兴趣得到激发。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
银行模拟系统的设计与实现计算机与信息技术学院综合性、设计性实验报告专业:计算机科学与技术年级/班级:计科二班2011—2012学年第一学期课程名称数据结构指导教师王岁花本组成员学号姓名成员姓名:彭涛学号:1008114150实验地点215机房实验时间7,8,9周下午5-6节项目名称银行模拟系统的设计与实现实验类型综合性/设计性一、实验目的1)通过实验掌握对离散事件模拟的认识;2)进一步理解队列的实现与应用;3)对链表的操作有更深层次的理解;该实验涉及到线性表的建立、插入、删除等操作,涉及到了队列的建立、插入、删除,涉及到了离散事件的应用思想,还涉及到了排序的概念。
完成这个实验对线性表、队列及C语言编程等多方面的知识将是一个很好的利用,对离散事件也将有一个初步的认识。
二、实验仪器或设备装有Visual C++ 6.0的计算机一台三、总体设计(设计原理、设计方案及流程等)实验问题描述:假设某银行有四个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。
由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗口的业务员正空闲,则可上前办理业务,反之,若四个窗口均有客户所占,他便会排在人数最少的队伍后面。
现在需要编制程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。
设计原理:根据前几章所学习的与链表、队列等相关的知识,了解到链表与队列的特点,联系实际,对题目思考可知:①动态链表可以进行动态分配与存储,还可以在链表中适合的位置进行删除和插入操作;②多个相同类型的数据类型可将其放在一个数组中;③结构体类型的数据可以有多个域,存放不同的数据信息;④队列是一种先进后出的线性表,只允许在表的一端进行插入而在另一端进行删除,和日常生活中的排队是一样的;⑤在一天的营业过程中,银行的工作流程,包含开门事件、客户到达对客户业务进行办理、关门时间到的时候关门事件;而对顾客来说,办理业务需要排队等候(如果银行里办理业务的人比较多的话)、办理业务、办理完之后离开;⑥时间是贯穿所有动作发生的线索,动作只有两种:到达和离开;由此想到可以建立一个以时间先后顺序来连接动作的事件链表,将各个事件发生的时间及类型(到达或离开)作为链表结点中的数据内容。
设计方案:①对银行的业务办理流程进行深入了解,思考程序的基本框架;②根据生活实际,先将主函数编写出来,主函数中应包含银行开门事件,顾客到达事件和离开事件;③编写出各个事件的算法;④用初始化的事件链表将各个事件联系起来;⑤对编号的算法进行程序化;⑥然后上机对程序进行编译、调试,直到程序可以正确运行。
设计流程仔细分析课题,得出解决该课题的基本思路:1:链表是解决该事件的关键,从对链表的建立到链表中元素的删除并分析,就完成了问题的解决。
银行开门后,对各项数据进行初始化,向链表中插入第一个数据元素,接着进行对客户到达事件和离开事件的处理(客户到达时,客户计数器增加,窗口队列插入,相应数据插入事件链表;客户离开时,计时计数器增加,窗口队列的删除,相应的数据插入事件链表)。
其中,客户的离开与到达的处理先后顺序是有链表中的元素决定,即先删除链表的第一个元素,然后分析属于到达事件则执行到达事件相应操作,若为离开事件则执行离开事件相应操作2:对编写该程序所需的队列数组和事件链表(链表中的元素应以时间的先后顺序链接)的基本结构进行定义,设计出基本的程序框架,使程序在自己的脑子中有一个清晰的轮廓3:编写出主函数,是银行的各种操作(开门事件、办理业务事件)及客户的各种操作(到达事件和离开事件)都能在主函数中得以体现;需要注意的是主函数中还应包含程序中所需的相关数据的输入操作4:将主函数中的各个子函数的算法进行程序化,然后再对函数进行细节方面的处理(程序的声明等)。
对完成的程序进行调试,若出现错误则进行修改,若无错则输入多组数据进行执行,验证程序的完整性与健壮四、实验步骤(包括主要步骤、代码分析等)主要步骤:(1)打开Visual C++ 6.0,新建一个C++ Source File,文件名为“银行模拟系统”,保存在G:\数据结构\数据结构实验文件夹中。
(2)输入该程序所需的代码。
(3)编译、链接,出现错误。
(4)对错误进行修改,再次编译、链接,无错误后,执行,得出,如下图所示的执行结果:代码分析:1:首先分析主函数前面的程序,头文件的声明,各种变量的定义;#include"stdio.h"#include"malloc.h"#include"math.h"#include"stdlib.h"int Cks=4; // 银行办理业务的窗口数,默认值为:4;最大值不超过20;int Qu ; // 客户队列数Qu=Cksint Khjg=5; // 两相邻到达客户的时间间隔最大值,默认值为:5int Blsj=30; // 每个客户办理业务的时间最大值,默认值为:30typedef struct // 定义事件的元素类型ElemType为结构体类型{int OccurTime; // 事件发生时刻int NType; // 事件类型,Qu表示到达事件,0至Qu-1表示Qu个窗口的离开事件}Event,ElemType; // 事件类型,有序链表LinkList的数据元素类型typedef struct LNode //定义事件表的结点类型{ElemType data ;struct LNode *next;} LNode, *LinkList;typedef LinkList EventList; // 事件链表类型,定义为有序链表typedef struct //定义客户队列的元素类型{int ArrivalTime; // 到达时刻int Duration; // 办理事务所需时间}QElemType; // 定义QElemType(队列的数据元素类型)为结构体类型;typedef struct QNode //定义客户队列的结点类型{QElemType data ;struct QNode *next;} QNode, *Queue;typedef struct { Queue head; Queue tail;} LinkQueue;LinkQueue *q; // Qu个客户队列EventList ev; // 事件表Event en; // 事件Event et; // 临时变量QElemType customer; // 客户记录int TotalTime=0,CustomerNum=0; // 累计客户逗留时间,客户数(初值为0)int CloseTime; // 银行营业时间(单位是分)2:再分析主函数,主函数中包含了程序所需的数据的输入,接着是随机种子的接受(为了后面的程序中随机数的产生),紧接着是开门事件函数,然后是对事件链表中的元素进行删除,然后对所删除结点中的数据进行分析,若该结点的信息属于客户到达事件则处理到达事件,反之则处理离开事件;最后是函数结果的输出;void main(){printf("请输入银行营业时间长度(单位:分)CloseTime=");scanf("%d",&CloseTime);printf("请输入银行办理业务所开窗口数Cks=");scanf("%d",&Cks);printf("请输入客户办理业务的最长时间Blsj=");scanf("%d",&Blsj);printf("请输入两个相邻客户到达银行的时间间隔的最大值Khjg="); scanf("%d",&Khjg);Qu=Cks; //给Qu赋值为窗口数CksBank_Simulation(); //模拟银行业务}3:接下来,是程序中的子函数:cmp比较函数,将事件(到达或离开)的发生时间进行比较,不同结果返回不同的返回值,用于对链表中事件的插入;int cmp(Event a, Event b){// 依事件a的发生时刻<、=或>事件b的发生时刻分别返回-1、0或1if(a.OccurTime==b.OccurTime)return 0;elsereturn(a.OccurTime-b.OccurTime)/abs(a.OccurTime-b.OccurTime);}4:OpenForDay银行开门事件的函数,设置计数器与计时器,初始化时间表与队列数组,将第一个客户的相关信息结点插入链表中;void OpenForDay() //模拟银行开门的动作,即初始化操作{int i;InitList(ev); // 初始化事件链表为空en.OccurTime=0; // 设定第一个客户到达事件en.NType=0; // 客户到达事件Insert_EventList(ev, en);//插入事件q=(LinkQueue*)malloc((Qu+1)*sizeof(LinkQueue));//为队列申请Qu+1个队头指针,第0个不用for(i=1;i<Qu+1;++i) // 置空队列InitQueue(q[i]);}5:CustomerArrived客户到达事件函数,客户数加一,产生随机数(办理业务时间,下一个客户到达时间),由随机数可得到下一个客户的到达事件,插入时间表(到达时间小于关门时间),并将该结点插入最小队列中,若该队列中只有一个客户(即办理业务不需要等候),将该客户的离开事件也插入链表中;void CustomerArrived(){ // 处理客户到达事件QElemType f;int durtime,intertime,i;++CustomerNum;Random(durtime,intertime); // 生成随机数//printf("%d %d\n",durtime,intertime);et.OccurTime=en.OccurTime+intertime; // 下一客户到达时刻et.NType=0; // 队列中只有一个客户到达事件//printf("%d %d\n",et.NType,et.OccurTime);if(et.OccurTime<CloseTime) // 银行尚未关门,插入事件表Insert_EventList(ev,et);i=Minimum(q); // 求长度最短队列的序号,等长为最小的序号f.ArrivalTime=en.OccurTime;f.Duration=durtime;EnQueue(q[i],f);if(QueueLength(q[i])==1){et.OccurTime=en.OccurTime+durtime;et.NType=i;Insert_EventList(ev,et); // 设定第i队列的一个离开事件并插入事件表}}6:CustomerDeparture客户离开事件函数,将该客户所在队列的第一个元素(该客户)删掉,计时器增加,然后分析该队列,若队列不为空,则下一个客户要开始业务办理,由由下一个客户的元素信息可得出该客户的离去事件,将该事件插入事件链表中;void CustomerDeparture(){ // 处理客户离开事件,en.NTyPe!=0int i;i=en.NType;DelQueue(q[i],customer); // 删除第i队列的排头客户TotalTime+=en.OccurTime-customer.ArrivalTime; // 累计客户逗留时间if(!QueueEmpty(q[i])){ // 设定第i队列的一个离开事件并插入事件表GetHead_q(q[i],customer);et.OccurTime=en.OccurTime+customer.Duration;et.NType=i;Insert_EventList(ev,et);}}7:接下来的一些函数是一些比较简单的子函数,如判断一个队列、链表是否为空,求队列的长度,求长度最小的队列,链表、队列的初始化等,在此不做详细分析;8:最后再分析一下OrderInsert事件链表的插入函数,先将一个指针指向链表头结点,接着将你所要插入事件的发生时间和链表中的事件的时间依次比较,直至找到合适位置。