- 3.25 MB
- 2022-05-14 15:45:20 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
目录摘要1第1章绪论21.1选题背景21.2课题主要研究的内容:21.3课题研究的意义21.4课题研究的现状:21.5课题难点和需要解决的关键问题:3第2章开发工具简介42.1开发环境42.2 VisualBasic6.0简介42.3 MicrosoftAccess简介4第3章加油站客户管理系统的设计63.1方案论证63.2 设计过程63.3设计过程论述93.4结论和总结13第4章部分程序功能的讲解144.1登陆界面144.2系统操作14
4.3客户信息管理154.4油价管理174.5加油信息管理184.6加油信息统计204.7关于20结束语21附录22参考文献41致谢42
摘要长久以来,加油站的客户信息管理都是依赖加油站工作人员手工进行的,面对如此众多的客户信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可预见的因素,造成了加油站对客户信息管理的某些不规范,使得加油站客户信息管理陷入管理繁琐,信息混乱的地步。为有效降低运营成本,杜绝管理漏洞,针对现在加油站客户信息管理的弊端,根据加油站客户信息管理的基本流程,使加油站有一套完善的管理系统是非常必要的。从而使其加油站的客户量日渐增加。客户量的上升,不仅带动了销售,也从另一个侧面反映出,在加油站客户信息管理信息系统的协助下,加油站正在以其专业的服务精神、严谨的管理风格逐步赢得客户的信赖,从而在市场竞争中确立战略优势。而加油站客户信息管理系统的开发使其实现了与客户相关的各种信息的系统化、规范化和自动化。通过对客户信息管理、油价管理、加油和、系统查询四个模块基本功能的实现,对客户的各种信息进行增加、删除、查找、修改等操作,完成对客户的信息管理。这些功能基本可以满足一般加油站对客户管理的需求,使企业节省人力物力,减轻劳动强度;降低成本,节省开支;提高了管理水平,增强了企业在同行业中的竞争力;同时提高了客户信息处理的及时性和准确性。 该系统采用VB6.0进行开发、设计,后台采用access提供强有力的支持。系统的实施将为企业获得更多的客户,留住更好的客户,创造更大的客户价值,留给客户永久的信誉度,建立一对一市场营销,从而为企业带来更丰厚的利润和持续发展的竞争优势。关键词:客户信息管理,vb6.0,数据库
第1章绪论1.1选题背景现在的社会日新月异,发展的非常快。加油站的发展也是非常的快了,而且每年都有不同的要求。加油站的信息量也非常的大,数据可能经常性的发生更换,原来手工的管理模式就体现出不为合适了。而且手工的数据是存放在多处的,没有使用统一管理的模式,数据整理非常的麻烦,统计也困难,很多的情况下,工作人员都是在重复一些相同的工作。做一些相似的报表,这样不但降低了工作效率,而且非常的容易出错。在这种条件下,使用计算机管理就体现出非常的适合了。只要你准确的录入记录,统计,报表输出的结果就能快速、准确显示出来,变的一点问题都不会出现的。1.2课题主要研究的内容:客户信息作为加油站信息管理中最主要的管理对象,客户信息管理系统就成了加油站信息化管理系统中不可缺少的部分,它的内容对于加油站的管理者说都至关重要。但一直以来人们使用传统人工的方式进行客户数据的档案管理,这种管理方式存在着许多缺点,如:效率低,成本高,容易出错,格式不规范,计算统计时间长,不容易进行统计和分析。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对客户信息档案进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高加油站客户信息管理的效率。因此,开发出这套系统成为很有必要的事情。而且只要软件的设计合理,可以为加油站提供合理的管理模式、降底运营成本。1.3课题研究的意义通过本系统软件,能帮助工作人员利用计算机,快速方便的对加油站的客户信息和客户加油信息进行管理、输入、输出、查找的所需操作,使散乱的客店档案能够具体化,直观化、合理化。本软件适用于一般的加油站,对客户信息和客户加油的信息可以随时输入、输出、查找、修改、汇总。1.4课题研究的现状:1.4.1系统开发采用VB的特点(1)随着计算机技术的发展和普及,各行各业的管理机构需要由计算机处理大量的信息。选择一个优秀的面向对象的管理系统作为开发平台,将给日后的信息处理带来极大的方便。客户信息的管理工作是企事业单位不可缺少一部分,也是企业管理的重要组成部分。它的内容对于企业的管理者来说都至关重要,所以客户信息管理系统应该能够为企业管理者提供完整,正确和灵活的客户信息和快捷的查询手段。(2)VisualBasic是为面向对象应用程序开发而设计的功能强大的编程工具。利用VisualBasic设计程序,不但可以设计出非常丰富的用户接口,而且几乎不需要编写多少程序,就能开发出功能非常强大的应用程序。这也就是选用VisualBasic来开发加油站客户信息管理系统
的所在。1.4.2系统开发必要性本系统是为了更好的管理加油站庞大的数据而开发的。它能够给加油站的工作人员减轻很多的负担,能够把繁琐的工作简单化。现在,在国外大多数的加油站都有着自己的客户信息管理系统,使得在管理方面非常方便,以至于一个大型加油站只有少数的工作人员。即减少了开资,又充分利用了资源。正是因为这些优点,所以开发出一套加油站客户信息管理系统也是非常有必要的。1.5课题难点和需要解决的关键问题:用VisualBasic开发的加油站客户信息管理系统需要与Access数据库相连接。因此,它们之间的兼容性最为关键。如果处理好两个软件之类的数据关联将成为这次开发的难点。管理系统的调试运行的稳定性也将成为此次系统开发的难点。所以要保证数据库和系统能够可靠的连接。系统为数据提供自动更新功能,并实现数据的更新,删除功能。要求数据库之间建立关系,并确定关键词等关键环节。开发一个优良的系统,必须需要前期的策划和大量的投入。因此,需要投入非常大的精力和工作量来搜集必要的数据和信息。
第2章开发工具简介2.1开发环境配置:CPUTYPE:PENTIUM®ⅢCPUCLOCK:800MHz内存:396M硬盘:120G操作系统:MicrosoftWindowsXP2.2 VisualBasic6.0简介VisualBasic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形接口丰富的应用软件系统。2.3 MicrosoftAccess简介MicrosoftAccess使您容易得到所需信息,并提供强大工具,可以帮助您组织和共享您的数据库,以便您和您的工作组能做出更好的决策。快速找到可靠答案,通过Intranet共享信息,建立更快更有效的商业解决方案。2.3.1MicrosoftAccess具有以下特点更易建立强大的商业解决方案,更快找到答案使Web协作成为可能,用Access2000中的新工具提高生产力。使数据对任何协作者都可直接利用。更新销售数据或快速查看顾客细节信息。定制您自己的图形格式,以便准确地显示您所需的信息。使用内置MicrosoftSQLServer集成来创建可以随您的商务升级的数据库。在Web上管理和共享信息将您的数据来源与交互式Web页面无缝集成,使创建和共享MicrosoftAccess数据库比以前更容易。使用Web技术快速获取信息,并把它按您的特殊用途裁剪。加入Office2000Web组件以便在Web浏览器中可视化分析数据。在浏览器窗口查看,编辑,和分析数据新的,交互式的DataAccessPages是为Web设计Access表。它们能使任何职员在浏览器内轻易地打开,查看,和更新动态数据。用交互式图表举例说明DataAccessPage,然后邮寄或作为E-mail的附件发出。您和您的合作者就永远拥有最新信息--在办公室或任何地方.把交互式报告加入到Intranet中把多个表格链接成单个的,相关的视图被称为GroupedDataAccessPage。用这种方法,可以创建分层结构,将记录从一般类别到具体细节分类。例如,按区字段分析雇员销售情况
。首先把目光集中在一个地区所有的销售上。然后,把目光关注到该地区销售几种纺织品的结果和基本输入输出上。您可以交互式地查看,过滤,分类所有的信息--在同一页面内。把动态数据拖到网页上很容易把字段列表的内容拖动,加入到DataAccessPage中。表格字段直接连结到数据库,所以信息总是最新的。使工作方式流程化好的信息有助于做出英明的决策和提高生产力。MicrosoftAccess使信息更容易获得和使用。快速分析细节内容并找出重要联系。利用新工具来定制窗体和报表。把数字转化成答案--赶快。利用改进接口的优点Access数据库窗口使数据库组件操作更容易。使用垂直Objects工具条在窗体,表格,和报表之间切换。把数据库对象组织成组,并对常用的内容创建快捷方式。在数据表视图中浏览相关记录Access在一个窗口中可使您以图中图方式查看所有相关数据--不必进行查询。实时查看表格间的联系以便快速做出相应决策。显示深层信息,以使记录之间关系可视化。而您只需用鼠标选取您感兴趣的记录。对所选记录作特殊的格式化①在字段内容的基础上改变它们的版面,使用户能够做到例如立即在表格或报表内发现高销售的消费者或低库存项目。根据您定义的数值或习惯标准设置字体,风格,颜色,和标题。②窗体扩展功能允许您在一张窗体上简单地选择一个字段,并改变它的背景颜色,大小,和边界。不必切换到设计视图就可以立即看到这一结果。与SQLServer无缝集成MicrosoftAccess包含了内置的MicrosoftSQLServer,这使它能够对熟悉的Access环境进行高端管理。需要时可以利用可调整大小的SQLServer技术创建企业级数据库。这样,使用一个可按需调整大小的数据库,系统就可以随业务扩展了。随业务扩展数据库通过在Access内创建SQLServer数据库,来扩展您在客户/服务器世界的技能。新的Access数据库项目允许Access用户用熟悉的Access接口创建真正的客户/服务器应用程序。
第3章加油站客户管理系统的设计3.1方案论证加油站客户管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 本系统主要完成对加油站客户管理和加油信息的管理,包括数据库中表的添加、修改、删除等。系统还可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。 系统的核心是数据库中各个表联系,每一个表的修改都将联动的影响其它的表,当完成对数据的操作时系统会自动地完成数据库的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。经过分析,我们使用MICROSOFT公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口,这能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。在操作系统方面,虽然现在Linux的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWS那么的流行和傻瓜化。而且现在计算机的运算速度已经不能和以前相提并论了,而且硬件的价格也一天天的在下降了,所以也不用为了节省整体的造价而改用硬件要求很低的DOS系统了。所以我们决定该加油站客户管理系统将运行在普遍使用的WINDOWS操作系统上来协助管理人员轻松地进行与数据库的连接和管理。在这么多的访问接口里面微软对于ADO非常的推崇,并且下一代的数据访问技术也将是采取这样的思路,而且本身来说ADO模型简单,但是功能强大,使实现人员无须关心一些底层的操作,而把更多的经历放在业务逻辑的设计上面。综上所述,我们选择了VisualBasic + ADO + ACCESS来开发整个系统。3.2 设计过程3.2.1 实现功能(1)能够浏览客户的所有信息(2)能够对客户的基本信息进行管理(3)客户加油信息数据的数据库建立和管理(4)能够通过客户的单位名称信息找到其对应的车辆加油的相关信息(5)通过一条信息找到与之匹配的信息 (例如:查询同一单位的所有加油信息)(6)管理人员能对已有单位的客户的信息进行管理(7)多用户数据安全管理,保证各部门的数据安全、完整,对每个使用本系统用户进行权限的设置
(1)简易操作,不需要非常专业的计算机操作人员。(2)加油信息的添加、删除和修改,包括加油的型号、单价、数量、单次加油金额(3)加油信息查询,查询条件为单位名称、车牌号等信息的综合查询。为增加各单位之间的数据保密性,不允许模糊查询,查询结果以图表形式列出(4)加油信息的统计,按照单位名称、车牌号、月份分别进行统计①按用户输入的单位名称,统计本单位的加油信息,并排序②按输入的单位名称和车牌号,统计该车的加油信息(5)用户管理:设置三个级别用户:经理、管理员和客户,经理有权限使用所有的功能;管理员除了不能使用用户管理和油价管理外,其它都能使用;普通用户只能使用查询功能,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户)3.2.2功能与模块设计包括加油站客户的客户信息管理系统、油价管理系统、加油信息管理系统、加油信息统计系统等,四个方面都是必须要满足:(1)基本情况录入:输入本系统所需的基本数据。输入客户的基本情况,采用客户编号来区分客户。(2)客户基本信息变动情况。(3)加油信息查询:提供查询本单位的基本情况功能。系统启动画面 权限认证画面 加油站客户信息管理系统主画面加油信息统计加油信息管理油价管理客户信息管理系统管理图3.1 程序结构框图3.2.3数据库设计创建“加油站客户管理系统”数据库系统中需要使用的数据表。
表3.1 数据表加油站客户管理系统登陆表车辆表加油信息表客户信息表油价表(1)登陆 用于存放用户名、密码和权限信息的数据表。表3.2 登陆信息表(2)车辆表 用于存放车辆信息的数据表表3.3 车辆信息表(3)加油信息表用于存放加油信息的数据表表3.4 加油信息表(4)客户信息表用于存放客户信息的数据表
表3.5 客户信息表(1)油价表用于存放油品价格信息的数据表表3.6 油价信息表3.3设计过程论述执行流程图与解说3.3.1登陆流程图登陆主界面验证账号NY验证密码NY进入主界面图3.2 登陆流程图设计说明:进入主接口后,提示输入用户名和密码,在输入之后按确定进入,
验证用户名和密码,实现流程:(1)检测数据库中有无管理员的账号。如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入.(2)验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆接口(3)当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体.3.3.2主接口操作图主界面加油信息管理油价管理客户信息管理系统操作加油查询加油油价查询车辆管理油价管理客户信息查询客户信息管理修改密码增加学生用户管理加油信息统计统计图3.3 系统结构框图设计说明:此窗体为主窗体操作接口,为配合数据执行模式,采用VB的下拉式菜单,使众多功能都能整齐而有序的排列.实现功能:(1)获得登陆接口传递的权限信息,设置用户是否可以使用(用户管理,客户信息管理,油价管理,车辆管理,保存,修改,删除)这些操作.(2)登陆后进入加油站管理主接口,设置等待操作状态3.3.3所有客户与增加客户数据图
增加客户所有客户数据初始化数据初始化读取数据字段读取数据行数初始化表格显示数据等待输入数据图3.4 所有客户流程图图3.5 增加客户流程图注:数据初始化是对程序中所使用的表格进行颜色和表格间距的处理,并绑定资料源为进行到下一步操作做准备实现功能:(1)执行客户信息表的全查询,获得所有字段名称,通过字段名称来分配数据列表的列数.(2)执行数据初始化,因使用的图表控件附带下拉列表框,日期选择框等功能,可以很方便的进行实时操作,所以资料的初始化是针对数据来确定哪一列的宽度与文本框的属性.(3)给图表控件的第一列赋值,赋值对象是客户信息表的各字段名称.(4)统计所有表内信息,得出行数,把所有数据显示在表格内(5).开始根据分页内容给图表控件赋值,同时设置状态,即不可保存,可修改,可删除.(因为在查询资料的同时无需执行保存数据,而可以进行数据的修改和删除)3.3.4油价管理数据处理图增加油型号所有油价表数据初始化数据初始化读取数据字段读取数据行数初始化表格显示数据等待输入数据图3.6 所有型号油价流程图图3.7 增加油型号流程图
3.3.5资料保存流程图执行保存保存状态N载入表名加油信息客户信息数据完整性N是否有重复Y插入资料退出图3.8 资料保存流程图(1)在点击上列按钮后,系统属于可保存状态,不可修改状态,不可删除状态.(2)点击保存功能实现:验证输入对象:即是保存客户信息的内容还是加油信息的内容,判断表格中是否为空,为空提示并退出操作验证用户输入的数据中是否有必填的字段未填的,如果有,提示并退出操作,等待用户补齐以上顺利完成,对每行进行组织语句(插入语句),然后执行该语句,语句成功提示并退出操作,否则通过防错提示并退出操作3.3.6车辆管理
车辆管理退出删除修改保存增加图3.9 车辆管理流程图注:增加:刷新表格数据,调整到等待输入状态保存:执行增加操作后,并输入了必要的数据后执行,保存用户输入的数据修改:对原有数据进行修改,车辆编号为唯一值不可修改删除:删除表格中所选目标行退出:退出课程管理接口,返回到主接口视图3.3.7查询实现功能:支持客户信息,加油信息的所有查询,需要用户自己组织语句,加大了查询的范围,任何该表的参数都可以查询到.3.4结论和总结确定了本系统的实用价值后,选用了目前最常用也最简便的access数据库作为后台,鉴于ADO在很多程序里的广泛应用,使用ADO来连接数据库将是最为适用的,并且在定义了ADO的连接模块后,对于将来的升级也会很方便,只要修改一下连接源,就可以轻松的更换后台,access适用于单机版,当想转换为网络版的SQL数据库时,就很容易做到为了减少系统的数据资源,选用了目前最方便的将数据交给后台处理的方法,即使用SQL的语句将数据库交给ACCESS后台,由后台来处理,这样系统的执行会加快,也使用程序本身变得简单本程序使用了新型控件flexcell,此控件的双色表格与单元格的特殊赋值功能不但能带给用户最好的视觉感受,同时在操作时大大减少了手动输入操作,因此也为非计算机人员的可操作性带来很大的方便。编写了菜单程序:增强了非计算机人员的可操作性,使整个窗体布局更加直观化。支持全方位查询,可以通过计算机人员的自写语句实现定位查询,只要语句正确,都能找到所要找的记录。使用了透明API函数,在调用用户管理与客户管理等窗体的时候,对该窗体进行透明化处理。
第4章部分程序功能的讲解4.1登陆界面图4.1登陆对话框在这里我设置了三种类型的权限:第一种为经理(超级管理员);第二种为管理员;第三种为客户。在此我设置了错误陷阱,当输入的用户名和密码是错误的时候,将会出现用户名和密码错误的提示。当输入的是正确的用户名和密码时,将会进入系统主接口。并在窗体下面的状态区里显示出当前的日期、欢迎词、当前操作的用户和它的权限。图4.2系统主界面4.2系统操作4.2.1用户管理
图4.3用户管理界面在这里我们可以修改用用户的信息,可以添加、保存、修改和删除用户的信息。但超级用户的信息不能修改。当我们以超级管理员的身份登陆时,可以对所有用户进行以添加、保存、修改。当我们以管理员用户身份登陆时,只能对自身和客户信息进行以添加、保存、修改。当以客户身份登陆时,他只能对自身的信息进行以修改和保存。4.2.2修改密码图4.4修改密码界面在这里我们可以快捷的修改自身的密码。当修改时必须先输入当前正在使用户的密码,然后再输入想要更改后的新密码,点击“确定”,修改成功。在下次进入系统时将会启用新的密码。4.3客户信息管理4.3.1客户信息管理
图4.5客户信息管理界面在这里我们可以对客户的基本信息进行添加、保存、充值、修改、删除和退出操作。具体操作时,用户的编号是自动生成的,不需要手动添加,为管理人员方便了不少,也节省了时间。单位名称为关键词,为必须输入的信息,不能为空。因为它是最重要的关键词段,将来在查询时会用到。我将来以后的章节里讲解。在这里我也加入了错误陷阱,并而输入的信息为文本。负责人也为关键词段,也不能为空,并且同样设置了错误陷阱。地址和联系方式同理,输入的信息也一样为文本的形式。而传真号码、邮箱地址和邮编为可填选项。既用户添不添加信息都可以。预存款余额为必填字段,必须有内容,为数字类型。当第一次添加客户必需添加,具体添加方法为点击“充值”。其为客户加油时预存的现金,它的单位为(人民币/元),它在加油和统计时会用到。所以,非常的重要。当用户需要修改信息时,直接在客户信息管理接口里修改,当修改完毕后,点击保存,信息将更新为新的内容。4.3.2用户信息查询
图4.6用户信息查询界面在这里我们可以查询到已有客户有基本信息,以方式及时和客户保持联系。在这里我只设为精确查询。因为考虑到用户信息的保密性,所以只设置了精确查询,以防有其它人去查询该单位的数据。4.4油价管理4.4.1油价管理图4.7油价管理界面在此可以对油品的种类、油品型号和油品价格进进行设置。单位为(元/升)。在这里只有权限为经理和超级管理员的用户才可以设置。这样对加油的管理起到了规范的作用。修改方法同理4.4.2油价查询
图4.8油价信息查询界面在这里可以对油品的种类。油品型号和价格进行查询,这样设计可以对当前的信息一目了然,达到方便的作用。4.5加油信息管理4.5.1车辆管理图4.9车辆管理界面在这里可以对客户单位的车辆进行登记和管理。在已经的客户信息里添加车辆,记录车牌号,以车号为准,根据已经存的信息进行对号加油。
4.5.2加油图4.10加油界面在这里进行加没的信息添加,对应车辆,对应单位,然后输入要加入多少油,就会显示出需要多少钱,然后选择月份,点保存。以方便日后统计。4.5.3加油查询图4.11油价信息查询界面
在这里可以对加过油的车辆和单位进行信息查询。在这里也被设定为精确查询,也是考虑到用户信息的安全性。4.6加油信息统计图4.12加油信息统计界面在这里可以对已经有客户的加油量进行统计,可以按月份统计也可以按年统计。在下拉列表框里选择已有单位的名称和车辆等要查信息,然后点统计,将会生成新表,显示加油的信息,并在最后有小计,以方便观看一共加了多少油,还剩余多少钱。4.7关于图4.7系统关于界面关于本系统的名称和版本
结束语加油站客户信息管理系统基本符合中小型加油站的需求。能够完成对客户信息和加油信息的管理和操作。系统设计完成后总结出一些本系统的优点和缺点。本信息管理系统的优点是:对客户的信息可以规范统一管理;查询信息方便,一目了然;操作简便;信息内容丰富等。尤其是在信息安全性和数据统计方面进行了人性化的设计。例如,其一、客户在查询信息时必须使用精确查询,这样可以使它人很难能够查询到客户自己的信息,而查询的内容必须是客户自己设立的,这样就增强了信息的安全性。其二、对客户已有的信息进行统计,使其可以进行按月统计和按年统计,使客户更为方便的了解到自己的信息,做到心中有数,在统计后还能够显示出自己预存款的余额,这样可以使自己的帐目很清楚,以免繁琐的计算而出现错误的可能性大大减小,在查询统计后,如需要留有存根还可以打印出来,方便保留数据,以备后用。本信息管理系统有也一些不足之处。如界面设计过于单调,应该加入一些按键图标,使其更生动;必须让具有一定计算机操作基础的人员使用,以免操作错误;设计代码有些复杂等不足之处。有待于本人加强。因此,我要在以后的工作学习不断的完善自我,丰富自己的专业知识,使本系统功能更加完善。
附录连接数据库的模块代码PubliccnnAsNewADODB.Connection"新建一个资料源Publicqy1AsNewADODB.Recordset"数据一个记录集Publicqy2AsNewADODB.Recordset"数据一个记录集SubMain()tkOpenAccessDBApp.Path&"base.mdb""连接数据库Ifqy1.State=adStateOpenThen"表状态qy1.CloseEndIfqy1.Open"select*from登陆",cnn,adOpenStatic,adLockReadOnly,adCmdText"查询表内是否有数据Ifqy1.RecordCount=0ThenSetqy1=cnn.Execute("insertinto登陆values("admin","admin","超级管理员")")"表内无数据执行此语句新建用户EndIfForm3.ShowEndSubPrivateSubtkOpenAccessDB(_tkFileNameAsString,_OptionaltkUserIDAsString,_OptionaltkPasswordAsString_)"连接数据库参数OnErrorGoTotkFinishcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;"&_"DataSource="&tkFileName&";"&_"Mode=ShareDenyNone;"&_"ExtendedProperties=;"&_"JetOLEDB:Systemdatabase=;"&_"JetOLEDB:RegistryPath=;"&_"JetOLEDB:DatabasePassword=;"&_"JetOLEDB:EngineType=5;"&_"JetOLEDB:DatabaseLockingMode=1;"&_"JetOLEDB:GlobalPartialBulkOps=2;"&_"JetOLEDB:GlobalBulkTransactions=1;"&_
"JetOLEDB:NewDatabasePassword=;"&_"JetOLEDB:CreateSystemDatabase=False;"&_"JetOLEDB:EncryptDatabase=False;"&_"JetOLEDB:Don"tCopyLocaleonCompact=False;"&_"JetOLEDB:CompactWithoutReplicaRepair=False;"&_"JetOLEDB:SFP=False;"&_tkUserID,_tkPasswordExitSubtkFinish:MsgBoxErr.DescriptionEndEndSub主窗体接口与代码图5.1 系统主窗体PrivateSubMDIForm_Load()StatusBar1.SimpleText="今天是"&Year(Date)&"年"&Month(Date)&"月"&Day(Date)&"日,欢迎您使用加油站客户信息管理系统!"&"当前操作者:"&user111&"权限:"&supEndSubPrivateSubmdipass_Click()
Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"Else"UnloadMeForm11.ShowEndIfEndSubPrivateSubrelog_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"ElseUnloadMeForm1.ShowEndIfEndSubPrivateSubsturea_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"Else"UnloadMeForm4.ShowEndIfEndSubPrivateSubstureg_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"ElseIfchair=TrueOrworkman=TrueThen"unloadMeForm3.ShowElseMsgBox"你是客户,没有使用此功能的权限!"EndIfEndIf
EndSubPrivateSubstuxuan_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"Else"unloadMeIfchair=FalseAndworkman=FalseThenMsgBox"你没有管理此功能的权限!"ElseForm8.ShowEndIfEndIfEndSubPrivateSubuser_Click()Ifchair=FalseAndworkman=FalseThenMsgBox"你没有管理此功能的权限!"ExitSubEndIfIfmdi=TrueAndchair=TrueThenForm2.ShowElseIfmdi=TrueAndworkman=TrueThenForm12.ShowElseMsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!",vbInformation,"不允许当前操作!"EndIfEndIfEndSubPrivateSubxuankecha_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"
Else"UnloadMeForm9.ShowEndIfEndSubPrivateSubzhuxiu_Click()Ifmdi=FalseThenMsgBox"请关闭打开的窗口!",vbInformation,"不允许当前操作!"Else"UnloadMeIfchair=TrueThenForm5.ShowElseMsgBox"你没有管理此功能的权限!!"EndIfEndIfEndSub客户信息管理接口与代码图5.2 客户信息管理Dimgirdsav2AsBoolean
Dimgridedi2AsBooleanDimgriddel2AsBooleanPrivateSubForm_Load()OnErrorGoTofinishGrid1.SetRegisterInformation"CNwinndy","W]vyY-nonvk-unty-Zbl_e-`hms^""进行注册WithGrid1.AllowUserResizing=True.DisplayFocusRect=False.ExtendLastCol=True.Appearance=Flat.FixedRowColStyle=Flat.ScrollBarStyle=Flat.Cols=12.DefaultFont.Name="Tahoma".DefaultFont.Size=8.BackColorFixed=RGB(90,158,214).BackColorFixedSel=RGB(110,180,230).BackColorBkg=RGB(90,158,214).BackColorScrollBar=RGB(231,235,247).BackColor1=RGB(231,235,247).BackColor2=RGB(239,243,255).GridColor=RGB(148,190,231).AllowUserResizing=True.DisplayFocusRect=False.ExtendLastCol=True.Appearance=Flat.FixedRowColStyle=Flat.ScrollBarStyle=Flat.GridColor=RGB(148,190,231).DefaultFont.Name="Tahoma".DefaultFont.Size=8.Column(0).Width=0.Column(1).Width=30.Column(2).Width=100
.Column(3).Width=50.Column(4).Width=100.Column(5).Width=100.Column(6).Width=100.Column(7).Width=80.Column(8).Width=80.Column(9).Width=80EndWithCallcallmainGrid1.Column(1).Locked=TrueGrid1.Column(9).Locked=Truegridsav2=Falsegridedi2=Truegriddel2=Truemdi=FalseExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubForm_Unload(CancelAsInteger)mdi=TrueEndSubPrivateSubXPButton1_Click()OnErrorGoTofinishGrid1.Column(9).Locked=FalseSetmdbrs=mdbconn.Execute("select*from客户信息")Grid1.Rows=1Grid1.Rows=2Grid1.Column(1).Locked=TrueGrid1.Cell(1,2).SetFocusgridsav2=Truegridedi2=Falsegriddel2=False
ExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubXPButton2_Click()"OnErrorGoTofinish"Ifgridsav2=FalseThen"MsgBox"不支持保存操作!",vbInformation,"当前不支持""ExitSub"EndIfDims6,s7,s8AsStringIfGrid1.Cell(1,2).Text=""ThenMsgBox"单位名称不可以是空格!",vbInformation,"错误提示"ExitSubEndIfIfGrid1.Cell(1,3).Text=""ThenMsgBox"负责人不可以是空格!",vbInformation,"错误提示"ExitSubEndIfIfGrid1.Cell(1,4).Text=""ThenMsgBox"请填写单位地址!",vbInformation,"错误提示"ExitSubEndIfIfGrid1.Cell(1,5).Text=""ThenMsgBox"请填写联系方式!",vbInformation,"错误提示"ExitSubEndIfIfGrid1.Cell(1,6).Text=""Thens6="-"Elses6=Grid1.Cell(1,6).TextEndIfIfGrid1.Cell(1,7).Text=""Thens7="-"
Elses7=Grid1.Cell(1,7).TextEndIfIfGrid1.Cell(1,8).Text=""Thens8="-"Elses8=Grid1.Cell(1,8).TextEndIfSetmdbrs=mdbconn.Execute("select*from客户信息where单位名称=""&Grid1.Cell(1,2).Text&""")Ifmdbrs.EOF=TrueThenSetmdbrs=mdbconn.Execute("insertinto客户信息(单位名称,负责人,地址,联系方式,传真号码,邮件地址,邮编,预存款余额)values(""&Grid1.Cell(1,2).Text&"",""&Grid1.Cell(1,3).Text&"",""&Grid1.Cell(1,4).Text&"",""&Grid1.Cell(1,5).Text&"",""&s6&"",""&s7&"",""&s8&"",val(""&Grid1.Cell(1,9).Text&""))")MsgBox"提交成功!",vbInformation,""CallcallmainElseMsgBox"该单位己存在!",vbInformation,"不可重名"ExitSubEndIfGrid1.Column(9).Locked=TrueExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubXPButton3_Click()OnErrorGoTofinishDims6,s7,s8AsStringIfgridedi2=FalseThenMsgBox"当前修改操作不被允许!",vbInformation,"非使用对象"ExitSubEndIfFori=1ToGrid1.Rows-1
IfGrid1.Cell(i,6).Text=""Thens6="-"Elses6=Grid1.Cell(i,6).TextEndIfIfGrid1.Cell(i,7).Text=""Thens7="-"Elses7=Grid1.Cell(i,7).TextEndIfIfGrid1.Cell(i,8).Text=""Thens8="-"Elses8=Grid1.Cell(i,8).TextEndIfSetmdbrs=mdbconn.Execute("update客户信息set单位名称=""&Grid1.Cell(i,2).Text&"",负责人=""&Grid1.Cell(i,3).Text&"",地址=""&Grid1.Cell(i,4).Text&"",联系方式=""&Grid1.Cell(i,5).Text&"",传真号码=""&s6&"",邮件地址=""&s7&"",邮编=""&s8&"",预存款余额=val(""&Grid1.Cell(i,9).Text&"")where客户编号=val(""&Grid1.Cell(i,1).Text&"")")NextMsgBox"修改的数据己经完成",vbInformation,"完成操作"CallcallmainExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubXPButton4_Click()OnErrorGoTofinishIfgriddel2=FalseThenMsgBox"当前删除操作不被允许!",vbInformation,"非使用对象"ExitSubEndIfIfhang=0ThenMsgBox"没有选择客户或者没有客户可以删除!",vbInformation,"非使用对象"
ExitSubEndIfSetmdbrs=mdbconn.Execute("deletefrom客户信息where客户编号=val(""&Grid1.Cell(hang,1).Text&"")")MsgBox"目标己删除,请刷新数据!",vbInformation,"删除成功"CallcallmainExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubXPButton5_Click()UnloadMeEndSubPrivateSubcallmain()OnErrorGoTofinishgridsav2=Falsegridedi2=Truegriddel2=TrueSetmdbrs=mdbconn.Execute("select*from客户信息")Grid1.Rows=1i=9Grid1.Cols=i+1Fori=0To8Ifi=8ThenGrid1.Cell(0,i+1).Text=mdbrs.Fields(i).Name&"(元)"ElseGrid1.Cell(0,i+1).Text=mdbrs.Fields(i).NameEndIfNexti=1DoWhileNotmdbrs.EOFGrid1.Rows=Grid1.Rows+1Forj=1To9"设定读取列Ifmdbrs.Fields(j-1).Value="-"Then"空值的处理
Grid1.Cell(i,j).Text=""ElseGrid1.Cell(i,j).Text=mdbrs.Fields(j-1).ValueEndIfNexti=i+1mdbrs.MoveNext"读取下一记录LoopGrid1.Column(1).Locked=TrueExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubGrid1_RowColChange(ByValRowAsLong,ByValColAsLong)hang=RowEndSubPrivateSubXPButton6_Click()"OnErrorGoTofinishIfhang=0ThenMsgBox"请选择客户!",vbInformation,"非使用对象"ExitSubEndIfaa=InputBox("请输入预存款金额:","充值",100,500,500)Ifaa<>0Thenbb=aa+Val(Grid1.Cell(hang,9).Text)"MsgBoxaaSetmdbrs=mdbconn.Execute("select*from客户信息")Grid1.Cell(hang,9).Text=bbi=hang"Setmdbrs=mdbconn.Execute("update客户信息set预存款余额=val(""&Grid1.Cell(hang,9)&"")where单位名称=""&Grid1.Cell(hang,2).Text&""")Setmdbrs=mdbconn.Execute("update客户信息set单位名称=""&Grid1.Cell(i,2).Text&"",负责人=""&Grid1.Cell(i,3).Text&"",地址=""&Grid1.Cell(i,4).Text&"",联系方式=""&Grid1.Cell(i,5).Text&"",预存款余额=val(""&Grid1.Cell(i,9).Text&"")where客户编号=val(""&Grid1.Cell(i,
1).Text&"")")MsgBox"你本次的存款为:"&aa&"元 "&"你的预交款总额为:"&bb&"元",vbInformation,"充值成功!"EndIfExitSubfinish:MsgBoxErr.DescriptionEndSub加油信息统计接口与代码图5.3 加油信息统计Dimstr,str1AsStringDimiAsIntegerPrivateSubCombo1_LostFocus()Setmdbrs2=mdbconn.Execute("select车牌号from车辆表where单位名称=""&Combo1.Text&""")Combo2.ClearDoWhileNotmdbrs2.EOF"MsgBoxmdbrs2.Fields(0)Combo2.AddItemmdbrs2.Fields(0)
mdbrs2.MoveNextLoopEndSubPrivateSubCombo4_LostFocus()Setmdbrs2=mdbconn.Execute("select车牌号from车辆表where单位名称=""&Combo4.Text&""")Combo5.ClearDoWhileNotmdbrs2.EOF"MsgBoxmdbrs2.Fields(0)Combo5.AddItemmdbrs2.Fields(0)mdbrs2.MoveNextLoopEndSubPrivateSubForm_Load()Grid1.SetRegisterInformation"CNwinndy","W]vyY-nonvk-unty-Zbl_e-`hms^""进行注册OnErrorGoTofinishmdi=Falsestr="select*from加油信息"XPButton2.Enabled=FalseGrid1.Cols=8Grid1.Column(1).Width=100Grid1.Column(2).Width=100Grid1.Column(3).Width=80Grid1.Column(4).Width=80Grid1.Column(5).Width=70Grid1.Column(6).Width=120Grid1.Column(7).Width=40WithGrid1.AllowUserResizing=True.DisplayFocusRect=False.ExtendLastCol=True.Appearance=Flat.FixedRowColStyle=Flat.ScrollBarStyle=Flat
.DefaultFont.Name="Tahoma".DefaultFont.Size=8.BackColorFixed=RGB(84,201,134).BackColorFixedSel=RGB(167,111,177).BackColorBkg=RGB(198,229,211).BackColorScrollBar=RGB(167,111,177).BackColor1=RGB(231,235,247).BackColor2=RGB(198,229,211).GridColor=RGB(148,190,231).Column(0).Width=0EndWithSetmdbrs=mdbconn.Execute("select*from加油信息")"Fori=0To6"Ifi=3Then"Grid1.Cell(0,i+1).Text=mdbrs.Fields(i).Name&"(元/升)""Else"Ifi=4Then"Grid1.Cell(0,i+1).Text=mdbrs.Fields(i).Name&"(升)""Else"Ifi=5Then"Grid1.Cell(0,i+1).Text=mdbrs.Fields(i).Name&"(元)""Else"Grid1.Cell(0,i+1).Text=mdbrs.Fields(i).Name"EndIf"EndIf"EndIf"NextSetmdbrs1=mdbconn.Execute("select单位名称from客户信息")DoWhileNotmdbrs1.EOFCombo1.AddItemmdbrs1.Fields(0)Combo4.AddItemmdbrs1.Fields(0)mdbrs1.MoveNextLoopFori=1To12Combo3.AddItemi
NextExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubForm_Unload(CancelAsInteger)mdi=TrueEndSubPrivateSubcallmain()"OnErrorGoTofinishGrid1.Rows=2i=7Grid1.Cols=i+1Fori=0To6Ifi=3ThenGrid1.Cell(1,i+1).Text=mdbrs.Fields(i).Name&"(元/升)"ElseIfi=4ThenGrid1.Cell(1,i+1).Text=mdbrs.Fields(i).Name&"(升)"ElseIfi=5ThenGrid1.Cell(1,i+1).Text=mdbrs.Fields(i).Name&"(元)"ElseGrid1.Cell(1,i+1).Text=mdbrs.Fields(i).NameEndIfEndIfEndIfNexti=2DoWhileNotmdbrs.EOFGrid1.Rows=Grid1.Rows+1Forj=1To7"设定读取列Ifmdbrs.Fields(j-1)=NullThen"空值的处理Grid1.Cell(i,j).Text=""Else
Grid1.Cell(i,j).Text=mdbrs.Fields(j-1)EndIfNexti=i+1mdbrs.MoveNext"读取下一记录LoopFori=1To7Grid1.Column(i).Locked=TrueNextExitSubfinish:MsgBoxErr.DescriptionEndSubPrivateSubXPButton1_Click()Setmdbrs=mdbconn.Execute("select*from加油信息where单位名称=""&Combo1.Text&""and车牌号=""&Combo2.Text&""and月份=val(""&Combo3.Text&"")")Setmdbrs1=mdbconn.Execute("selectsum(单次加油金额)from加油信息where单位名称=""&Combo1.Text&""and车牌号=""&Combo2.Text&""and月份=val(""&Combo3.Text&"")")Setmdbrs2=mdbconn.Execute("selectsum(加油量)from加油信息where单位名称=""&Combo1.Text&""and车牌号=""&Combo2.Text&""and月份=val(""&Combo3.Text&"")")Ifmdbrs.EOF=TrueThenMsgBox"没有查找到记录!!"ElseCallcallmainXPButton2.Enabled=TrueGrid1.Rows=Grid1.Rows+1i=Grid1.Rows-1str="小 计:"Grid1.Cell(i,2).Text=strGrid1.Cell(i,5).Text=mdbrs2.Fields(0)&"升"Grid1.Cell(i,6).Text=mdbrs1.Fields(0)&"元"EndIfEndSub
PrivateSubXPButton2_Click()Grid1.PrintPreviewEndSubPrivateSubXPButton3_Click()UnloadMeEndSubPrivateSubXPButton4_Click()IfCombo4.Text<>""Thenstr="select*from加油信息where单位名称=""&Combo4.Text&""orderby月份asc"Setmdbrs1=mdbconn.Execute("selectsum(单次加油金额)from加油信息where单位名称=""&Combo4.Text&""")Setmdbrs2=mdbconn.Execute("selectsum(加油量)from加油信息where单位名称=""&Combo4.Text&""")Setmdbrs3=mdbconn.Execute("select预存款余额from客户信息where单位名称=""&Combo4.Text&""")IfCombo5.Text<>""Thenstr="select*from加油信息where单位名称=""&Combo4.Text&""and车牌号=""&Combo5.Text&""orderby月份asc"Setmdbrs1=mdbconn.Execute("selectsum(单次加油金额)from加油信息where单位名称=""&Combo4.Text&""and车牌号=""&Combo5.Text&""")Setmdbrs2=mdbconn.Execute("selectsum(加油量)from加油信息where单位名称=""&Combo4.Text&""and车牌号=""&Combo5.Text&""")EndIfXPButton2.Enabled=TrueSetmdbrs=mdbconn.Execute(str)Ifmdbrs.EOF=TrueThenMsgBox"没有查找到记录!!"ElseCallcallmainGrid1.Rows=Grid1.Rows+1i=Grid1.Rows-1str=" 小 计:"Grid1.Cell(i,2).Text=strGrid1.Cell(i,5).Text=mdbrs2.Fields(0)&"升"
Grid1.Cell(i,6).Text=mdbrs1.Fields(0)&"元"Grid1.Rows=Grid1.Rows+1IfCombo5.Text=""Theni=Grid1.Rows-1str="本单位剩余余额:"Grid1.Cell(i,2).Text=strGrid1.Cell(i,6).Text=Int(mdbrs3.Fields(0)-mdbrs1.Fields(0))&"元"EndIfEndIfElseMsgBox"请选择单位!"EndIfEndSub
参考文献[1]刘萌.VisualBasic企业办公系统开发实例导航,北京:人民邮电出版社,2004[2]刘韬.VisualBasic数据库系统开发实例导航,北京:人民邮电出版社,2003[3]求是科技.VisualBasic信息管理系统开发实例导航,北京:人民邮电出版社,2005[4]赛奎春.VisualBasic信息系统开发实例精选,北京:机械工业出版社,2005[5]郭瑞军.VisualBasic数据库开发实例精粹,北京:电子工业出版社,2005[6]夏邦贵刘凡馨.VisualBasic6.0数据库开发经典实例精解,北京:机械工业出版社,2006[7]邵浩.VisualBasic程序设计,福建:东南大学出版社,2006[8]知力吴雄华等着.中文Access2000中级教程,北京:机械工业出版社,1999[9][美]AlisonBalter着潇湘工作室译.Access2000中文版开发指南,北京:人民邮电出版社,2005[10] 求是科技.Access企业办公系统开发实例导航,北京:人民邮电出版社,2004[11][美]StephenL.NelsonTheCompleteReferenceOffice2000[M]Publisher:BrandonA.Nordin,1994
致谢至此,本次的设计己经全部结束,在此特别感谢老师的悉心指导,并感谢所有教授我专业知识的老师们,有了你们的帮助和支持,才让我更加圆满的完成的学业,在此我再次对各位老师表示感谢!!!袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈