- 1.06 MB
- 2022-05-14 15:45:20 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
毕业设计题目会议客户管理系统会议客户管理系统摘要:随着全球经济和技术的高速发展,我国企业在规模和数量上都处于快速增长状态,而企业与企业之间以及企业内部之间需要大量的相互交流才能保证企业的正常运作,这一交流的方式大部分都是通过会议的方式来实现的,因此大量的会议以及复杂的客户信息需要一个系统来对其进行管理。本系统操作简单且方便实用,满足了对会议客户管理的基本需求。系统主要包括用户管理、举办会议、客户管理、分类查询、统计汇总、数据导出及报表打印等几个模块。整个系统的设计采用了VisualC++6.0以及大型数据库系统SQLServer来完成。从整个开发过程到系统的测试,在一定程度上实现了会议客户管理的需求,对于大量的会议以及复杂的客户信息能起到预期的管理作用。当然,从一个长远的角度来看,该系统也存在自身的缺陷,有必要在以后的开发中进行完善与维护。关键词:会议;客户管理;SQLServer;VC++
MeetingandCustomerManagementSystemAbstract:Withthehighspeeddevelopmentofglobaleconomyandtechnology,ourcountryenterprisearegrowthrapidlyinsizeandnumber,andbothamongthedifferententerpriseandintheenterpriseinternalneedsalotofcommunicationtoensureenterprise’snormaloperation.Mostly,thewayofcommunicationismeeting.Solotsofmeetingsinformationandthecomplexcustomerinformationneedasystemtomanagethem.Thissystemoperationsimplyandit’sconvenientandpractical.Thesystemincludesusermanagement,meetingholding,customermanagement,classificationinquiry,statisticscompiling,dataoutputandprintetcseveralmodules.ThedesignoftheentiresystemusesVC++6.0andthelargedatabasesystemSQLServertodevelop.Fromtheentiredevelopmentprocesstothesystemtest,toacertainextenttoachievetherequirementsofthemeetingandcustomermanagementsystem,andalsotoconductanexpectedmanagementoflotsofmeetingandthecomplexcustomerinformation.Ofcourse,fromalong-termpointofview,thereisthesystem’sowndeficiencies,thereisneedinthefuturetoimprovethedevelopmentandmaintenance.Keywords:meeting;customermanagement;SQLserver;VC++
目录摘要Ⅰ目录Ⅲ1、引言11.1开发背景11.2课题研究目的和意义11.3课题欲解决的问题21.4可行性分析21.4.1技术可行性21.4.2使用可行性22、系统平台选择42.1运行平台选择42.2数据库平台选择42.2.1概述42.2.2MicrosoftSQLServer2000的特性42.3DBMS工程开发模式的选择42.3.1C/S结构52.3.2B/S结构52.3.3C/S结构和B/S结构的比较52.4开发工具82.4.1VisualC++开发工具的特点82.5小结83、系统需求分析93.1基本概念设计和处理流程93.2系统功能划分93.3数据流图103.4系统功能概述113.4.1系统设置113.4.2添加信息11
3.4.3修改信息113.4.4查询113.4.5操作日志113.4.6统计汇总113.5系统界面设计原则123.6小结134、系统详细设计144.1系统数据库设计144.1.1数据库需求分析144.1.2数据库概念结构设计154.1.3数据库逻辑结构184.2TAB界面功能模块的实现204.3数据库相关方面实现224.3.1创建数据源224.3.2自动还原数据库234.3.3数据库备份234.4参数设置244.4.1添加数据244.4.2修改数据254.5用户管理264.5.1用户添加264.5.2用户注销274.6举办会议的实现274.6.1添加参会人员274.6.2添加会议284.7信息查询294.8信息修改304.9汇总统计304.10小结315、系统测试325.1编写目的325.2背景325.3测试方案说明325.4测试计划325.5测试335.6小结346、总结35参考文献36
致谢37
1、引言1.1开发背景数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。随后在不到半个世纪的时间里,数据库技术飞速发展从而形成了坚实的理论基础、成熟的商业产品和广泛的应用领域。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。在此背景下数据库系统应运而生,它的萌芽出现于60年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)显示了超强的生命力。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作[1]。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。进入二十一世纪,人们对于DBMS的依赖只会越来越大,所以DBMS的广泛应用和普及必将实现。1.2课题研究目的和意义随着计算机应用的不断深入,信息产业的兴起,各行各业几乎都与计算机有密切的联系,实现了不同程度的自动化操作。从以前的以人为主到今天的以机器为主。随着计算机的普及,各种应用软件应运而生,比如大家经常见到的各种管理软件,大大简化了我们的工作。以前会议的客户信息是手工管理。大量的信息处理工作还集中在纸面管理的阶段,人们需要手工编写大量的记录、报表、文件。在对信息进行阶段性处理的时候,人们又需要参阅大量的记录、报表和文件,使工作变得复杂、漫长,最后的处理结果也并不能正确地反映出客观事实。传统信息处理方式在当今信息社会高速发展的今天已经显示出它格格不入的一面:信息收集、存储、更新、处理需要占用大量的人力资源及物力资源,工作周期漫长,即使在花费大量时间和精力的情况下,工作成果的可信度和客观满意度也得不到保证。这种费时费力的工作方式在现代企业管理模式的冲击下会很快失去它的生存空间,而作为计算机应用的一部分,使用会议客户管理系统进行信息管理,有着手工管理所无法比拟的优点,如查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高会议的安排和举办的效率,符合当今时代人们对管理信息处理所提出的及时、准确、适用、经济的要求。因此,开发一套会议客户管理系统是有必要的。
随着全球经济一体化的进程和高技术的发展,我国企业在规模和数量上都处于快速增长状态,这就给企业管理带来了一定的难度,企业与企业之间以及企业内部之间需要大量的相互交流才能保证企业的正常运作,这一交流的方式大部分都是通过会议的方式来实现的,因此一个企业对会议以及客户的信息管理也是企业正常运作的一个越来越重要的一个因素,大量的会议以及复杂的客户信息及其需要一个系统来对其进行方便可靠的管理。因此,采用vc++以及sqlserver开发的会议客户管理系统是适应时代发展要求的,是当今企业所迫切需求的。1.3课题欲解决的问题本系统是采用VC++开发工具和SQLserver数据库实现的会议客户管理系统。该管理系统不但要对大量的会议以及复杂的客户信息进行添加、删除、修改等操作,还要可以对会议、客户进行分类查询,另外该系统还应具有统计汇总、数据导出、报表打印等功能。1.4可行性分析1.4.1技术可行性此会议客户管理系统使用VisualC++6.0开发,VisualC++是Microsoft公司于1991年推出的基于Windows开发平台的软件发工具,它融入了如面各对象、设计过程可视化、事件驱动、动态数据驱动等先进的软件开发技术,从而成为目前开发Windows应用程最好、最简单的开发工具之一[2]。它以拥有自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费。用SQLServer2000做后台数据库。SQLServer2000是Microsoft的关系数据库管理系统(RDBMS)。它是在十多年来成功开发的SQLServer的基础上建造起来的,它比现在大多数被广泛使用的数据管理系统更快;目前已经被成千上万家公司使用,日夜不停地运转着,存储着支撑我们生存的数字宇宙。SQLServer是一个分布式的关系型数据库管理系统,它能够满足今天的商业环境的要求,为不同类型的数据库问题提供解决方案。作为一种应用广泛的数据库管理系统,SQLServer具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。此外,SQLServer还为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门[3]。因此从技术方面讲,开发此会议客户管理系统是可行的。1.4.2使用可行性此会议客户管理系统具有良好的界面,使用方便,操作简单易于被用户接受。用户只需能够熟练操作计算机,和对此系统使用做简单的了解即可方便使用,而且使用此系统可以减
少大量录入工作,大大减少工作人员的负担,另外此软件系统还可以再根据具体的需要进行功能扩充,增强了软件的延伸性和使用寿命。因此,从使用方面看此系统的开发是可行。2、系统平台选择2.1运行平台选择
由于我国大多数个人计算机使用的是windows系列,所以本系统选择的运行平台即为window系列平台。2.2数据库平台选择2.2.1概述目前的数据库系统有ORACLE,SYBASE,INFORMIX,DB2,SQLServer2000等,各有千秋,根据“会议客户管理系统”对数据量的要求,本系统采用SQLServer2000。MicrosoftSQLServer2000(简称SQLServer)由一系列相互协作的组件构成,能满足最大的Web站点和企业数据处理系统存储和分析数据的需求[4]。SQLServer提供了在服务器系统上运行的服务器软件和在客户端运行的客户端软件,连接客户和服务器计算机的网络软件则由WindowsNT/2000提供[5]。SQLServer的数据库系统的服务器运行在WindowsNT/2000系统上,负责创建和维护表和索引等数据库对象,确保数据完整性和安全性,能够在出现各种错误时恢复数据。客户端应用程序可以运行在Windows9x/NT/2000系统上,完成所有的用户交互操作。将数据从服务器检索出来后,可以生成拷贝,以便在本地保留,也可以进行操作。SQLServer建立于MicrosoftWindowNT的可伸缩性和可管理性之上,提供了功能强大的客户服务器平台,高性能客户服务器结构的数据库管理系统可以将VisualFoxPro、VisualBasic、VisualC++作为客户端开发工具,而将SQLServer作为存储数据的后台服务器软件。SQLServer是基于客户/服务器的数据库管理系统。用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。SQLServer使用Transact-SQL语言来维护、实现和访问数据库,Transact-SQL是SQL(StructuredQueryLanguage)的一个子集标准。SQL是数据库操作的标准,每个数据库产品均包含其中一版本[6]。2.2.2MicrosoftSQLServer2000的简介SQLServer2000是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。由于今天Windows操作系统占领着主导地的位,选择SQLServer还会在兼容性方面取得一些优势。另外,SQLServer2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。因此,我们选择MicrosoftSQLServer2000作为我们的数据库开发平台[7]。2.3DBMS工程开发模式的选择DBMS工程的开发通常有两种种模式:C/S结构和B/S结构[8]。2.3.1C/S结构
C/S结构是将大型计算机应用系统分解成多个功能相对独立的子系统,以服务器作为整个应用系统资源存放和管理的核心,多台客户机分别处理相应功能。这种体系结构合理有效地利用了客户机和服务器的资源,提高系统效率,保证系统运行稳定、信息完整可靠。客户机和服务器之间交互关系体现为“服务请求/服务响应”,即客户端只要将请求发给服务器端,而服务器端处理完客户端的请求后,只将结果发送回客户端,实际在网络上传输的只有请求语句和结果数据,从而大大减轻了网络的通信负担,改善了系统运行的总体性能。客户端完成应用事务的组织和友好人机界面的实现,而服务器端专门负责数据库的操作维护,提高了整个系统的吞吐量和相应速度。2.3.2B/S结构B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。2.3.3C/S结构和B/S结构的比较1)C/S结构的优势与劣势(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。(3)C/S架构的劣势是高昂的维护成本且投资大首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”
的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。2)B/S结构的优势与劣势(1)维护和升级方式简单目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。(2)成本降低,选择更多大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。(3)应用服务器运行数据负荷较重由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。3)B/S结构和C/S结构的区别Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的。(1)硬件环境不同C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备。信息自己管理。有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。(2)对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。可以通过B/S发布部分可公开信息。B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。(3)对程序架构不同C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。(4)软件重用不同C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子。(5)系统维护不同C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级。升级难。可能是再做一个全新的系统。B/S构件组成,方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小。用户从网上自己下载安装就可以实现升级。(6)处理问题不同C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.。应该都是相同的系统B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。与操作系统平台关系最小。(7)用户接口不同C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。(8)信息流不同C/S程序一般是典型的中央集权的机械式处理,交互性相对低。B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更象交易中心OLE/DDE开发方式。纵上所述,本系统将采用C/S结构开发模式。因为本系统是在局域网中使用,由于信息的庞杂,要尽量减少服务器的负荷,同时数据的安全性也占据较重的地位。本系统中除了包括传统关系数据库中的数据外,还包括文本文件、电子邮件、目录服务等。对于这些非SQL的数据源,ODBC已经不能提供一个统一的数据访问接口。而Microsoft推出的一致数据访问技术UDA,它的核心是OLEDB,在系统中建立了数据访问的一组COM接口,这组接口封装了数据系统的各种访问操作。ADO是一组基于OLEDB数据的高级应用层接口。2.4开发工具2.4.1VisualC++开发工具的特点
在VC++的开发平台上,运用C/S体系结构,充分发挥VC++开发工具的灵活性与ADO在数据管理方面的优势。使用VC++和数据库开发有很多优点。VC++提供了多种多样的数据库访问技术—ODBCAPI、MFCODBC、DAO、OLEDB和ADO等。这些技术各有自己的特点,提供了简单、灵活、访问速度快、可扩展性好的服务特性[9]。简单性:VisualC++提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具用于帮助用户快速建立自己的应用程序,大大简化应用程序的设计。使用这些技术开发者编写很少的代码或不编写代码就可以开发出一个数据库应用程序。灵活性:VisualC++提供的开发环境,可以使开发者根据自己的需要设计应用程序的界面和功能,而且,VisualC++提供了丰富的类库和方法,可以使开发者根据自己的需求进行选择。访问速度快:为了解决ODBC开发数据库应用程序访问数据库速度慢的问题,VisualC++提供了新的访问技术—OLEDB和ADO。OLEDB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,大大提高了访问速度。可扩展性:VisualC++提供了OLE技术和ActiveX技术,这种技术可以增强应用程序能力。通过OLE技术和ActiveX技术,可以使开发者利用VisualC++中提供的各种组件、控件及第三方开发者提供的组件来创建自己的程序,从而实现应用程序的组件化[10]。2.5小结本节主要介绍了开发本系统的硬件和软件平台的选择,其中涉及对DBMS的两种模式,以及对VisualC++的简介。3、系统需求分析3.1基本设计概念和处理流程本系统的基本设计概念和处理流程:IPO图如下:
查询条件输入会议查询人员查询举办会议参会人员名单公司信息查询参会人员信息输入会议信息输入确定会议确定参会人员查询结果查询内容输入图3.1IPO图3.2系统功能划分用一览表及框图的形式说明本系统的系统元素(各层模快,子程序,公用程序等)的划分,扼要说明每个系统元素的标准符和功能,分层次地给出各元素之间地控制与被控制关系。会议客户管理系统用户管理添加信息修改信息查询统计会议添加修改人员信息修改公司信息数据库备份还原会议信息查询人员信息查询统计汇总公司信息查询参会人员添加修改会议信息用户添加用户删除打印统计结果数据库配置图3.2会议客户管理系统模块划分3.3数据流图
图3.3会议客户管理系统模块数据流图3.4系统功能概述3.4.1系统设置(1)数据库配置:用户可以对数据库中的一些数据进行增加或者修改操作,另外还可以对数据库进行备份及还原。(2)用户管理:管理员可以增加,删除用户,用户也可以对自己的密码进行修改。3.4.2添加信息:(1)添加会议信息:录入要添加的会议的信息,并将其保存至数据库中。(2)添加参会人员信息:录入参会人员的信息,并将其保存至数据库中。3.4.3修改信息:(1)修改会议信息:修改已存在会议信息,并将其保存至数据库中。(2)修改人员信息:
修改已存在的人员信息,并将其保存至数据库中。(3)修改公司信息:修改已存在的公司信息,并将其保存至数据库中。3.4.4查询(1)会议信息查询根据用户输入的查询条件列出正确的查询结果,并可根据用户的选择讲查询结果导出EXCEL表。(2)人员信息查询根据用户输入的查询条件列出正确的查询结果,并可根据用户的选择讲查询结果导出EXCEL表。(3)公司信息查询根据用户输入的查询条件列出正确的查询结果,并可根据用户的选择讲查询结果导出EXCEL表。3.4.5操作日志:(1)操作日志查询:根据用户输入的查询条件列出正确的查询结果,并且可显示当前在线人数。3.4.6统计汇总(1)统计汇总根据用户输入的统计条件列出正确的统计结果。(2)打印统计结果可以将统计出来的结果打印出来,显示打印预览效果。3.5系统界面设计原则(1)以用户为中心。一方面注意不要使屏幕显得拥挤,另一方面,应考虑运用恰当的交互方式,如直接交互。为了实现有效的人机交互,必须使用用户熟悉和易理解的术语和概念。当系统执行较长时间的任务时,界面上应立即显示表示的进度执行的情况的指示器。系统界面必须友好,满足用户的视觉感受。(2)界面整洁(3)菜单与工具栏能够根据需要切换,使用方便。(4)整体风格一致,尤其是各对话框的字体大小、按钮摆放位置等。(5)系统界面总体布局如图3.4所示,包括工具栏、菜单栏、功能显示窗口、状态栏四个部分。
图3.4系统界面总体布局3.6小结本节主要对会议客户管理系统的各个功能模块进行划分,主要分为系统设置、添加信息、修改信息、查询、统计汇总等模块,通过本节可以对本系统要实现的功能有一个初步的认识。
4、系统详细设计4.1系统数据库设计本系统总体分为用户管理、举办会议、客户管理、分类查询、统计汇总、数据导出及报表打印等几个模块。前三个模块主要功能是实现了相关记录的添加、修改、删除操作等。后四个模块主要实现了对数据的处理。通过引入Tab控件和列表控件来显示各操作界面数据,借助SQL语句的设计来实现各个功能模块。4.1.1数据库需求分析仔细分析系统的数据流程,得出如下的数据流程图
图4.1数据流程图针对系统的需求分析,通过对数据流程及数据流图分析。为本系统设计如下的数据项和数据结构:公司信息表:公司代码+公司名称+公司网址+公司类型代码+公司行业代码+公司主要产品公司行业表:公司行业代码+公司行业名称公司类型表:公司类型代码+公司类型名称会议信息表:会议代码+会议名称+会议时间+会议地址会议类型表:会议类型代码+会议名称操作信息表:操作代码+操作时间+操作类型+操作对象+用户名人员信息表:人员代码+会议代码+人员姓名+人员性别+人员职称代码+人员职位代码+公司代码+人员地址+人员邮件地址+人员电话+会议类型人员职位表:人员职位代码+人员职位名人员职称表:人员职称代码+人员职称名用户信息表:用户名+密码+权限+是否在线4.1.2数据库概念结构设计
得到上面得数据项和数据结构以后,就可以设计出能够满足用户需求得各种实体,以及它们之间得关系,为后面得逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间得作用形成数据的流动。根据上面的设计规划出得实体有:公司信息、公司行业、公司类型、会议信息、会议类型、操作信息、人员信息、人员职位、人员职称、用户信息。以下给出各实体的E-R图公司信息公司代码公司网址公司名称行业代码类型代码主要产品图4.2公司信息实体E-R图该实体主要记录公司的信息。公司行业行业代码行业名称图4.3公司行业实体E-R图该实体主要记录公司行业的行业代码和行业名称,为记录公司信息提供方便。公司类型类型代码类型名称图4.4公司类型实体E-R图该实体主要记录公司类型的类型代码和类型名称,为记录公司信息提供方便。
会议信息会议代码会议名称会议时间会议地址图4.5会议信息实体E-R图该实体主要记录每一个会议的详细信息。会议类型类型代码类型名称图4.6会议类型实体E-R图该实体主要记录会议类型的类型代码和类型名称。操作信息操作代码操作时间操作类型操作对象用户名图4.7操作信息实体E-R图该实体记录操作日志的信息,便于用户查询。
人员信息人员地址人员电话人员代码公司代码职称代码会议代码人员姓名人员性别邮件地址会议类型职位代码图4.8人员信息实体E-R图该实体主要是人员基本信息表,方便公司能对每个人员有个基础的了解。人员职位职位代码职位名称图4.9人员职位实体E-R图该实体主要记录人员职位的职位代码和职位名称,为记录人员信息提供方便。人员职称职称代码职称名称图4.10人员职称实体E-R图该实体主要记录人员职称的职称代码和职称名称,为记录人员信息提供方便。
用户信息用户名权限是否在线密码图4.11用户信息实体E-R图该实体主要是为了记录用户信息,为登录信息做准备,同时也为统计在线人数做准备。4.1.3数据库逻辑结构公司信息表:表4.1公司信息表名称字段名称数据类型主键非空公司代码CompanyIDintYESYES公司名称CompanyNamenvarcharNOYES公司网址CompanySitenvarcharNOYES公司类型CompanyTypeIDintNOYES公司行业CompanyTradeIDintNOYES主要产品CompanyProductnvarcharNONO公司行业表:表4.2公司行业表名称字段名称数据类型主键非空行业代码CompanyTradeIDintYESYES行业名称CompanyTradeNamenvarcharNOYES公司类型表:表4.3公司类型表名称字段名称数据类型主键非空类型代码CompanyTypeIDintYESYES类型名称CompanyTypeNamenvarcharNOYES会议信息表:表4.4会议信息表
名称字段名称数据类型主键非空会议代码MeetingIDintYESNO会议名称MeetingNamenvarcharNONO会议时间MeetingDatedatetimeNOYES会议地址MeetingAddressnvarcharNONO会议类型表:表4.5会议类型表名称字段名称数据类型主键非空类型代码MeetingTypeIDintYESYES类型名称MeetingTypeNamenvarcharNOYES操作信息表:表4.6操作信息表名称字段名称数据类型主键非空操作代码logidintYESYES操作时间operatetimedatetimeNOYES操作类型operatetypenvarcharNOYES操作对象operateobjectnvarcharNOYES用户名usernamenvarcharNONO人员信息表:表4.7人员信息表名称字段名称数据类型主键非空人员代码PeopleIDintYESYES会议代码MeetingIDintYESYES人员姓名PeopleNamenvarcharNOYES人员性别PeopleSexcharNOYES职称代码PeopleProfessionIDintNOYES职位代码PeoplePositionintNOYES公司代码CompanyIDintYESYES人员地址PeopleAddressnvarcharNONO邮件地址PeopleEmailnvarcharNONO人员电话PeopleTelphonenvarcharNONO会议类型MeetingTypeIDintNOYES
人员职位表:表4.8人员职位表名称字段名称数据类型主键非空职位代码PeoplePositionintYESYES职位名称PositionNamenvarcharNOYES人员职称表:表4.9人员职称表名称字段名称数据类型主键非空职称代码PeopleProfessionIDintYESYES职称名称ProfessionNamenvarcharNOYES用户信息表:表4.10用户信息表:名称字段名称数据类型主键非空用户名usernvarcharNOYES密码passwordnvarcharNOYES权限powernvarcharNOYES是否在线isonlineintNOYES4.2TAB界面功能模块的实现
图4.12界面模块图具体实现[11]:在相对应的类源文件的OnInitDialog()中添加如下代码meetdlg.Create(IDD_DIALOG_ModifyMeet,&m_tab);companydlg.Create(IDD_DIALOG_ModifyCompany,&m_tab);peopledlg.Create(IDD_DIALOG_ModifyPeople,&m_tab);//以上代码用于设定在Tab内显示的对话框内容,分别显示修改会议信息,修改公司信息,修改人员信息。CRectrc;m_tab.GetClientRect(rc);rc.top+=41;rc.bottom-=20;rc.left+=28;rc.right-=10;//设定显示内容的大小meetdlg.MoveWindow(&rc);
companydlg.MoveWindow(&rc);peopledlg.MoveWindow(&rc);pdlg[0]=&meetdlg;pdlg[1]=&companydlg;pdlg[2]=&peopledlg;//设定每一个按钮对应的对话框ModifyFlag=0;//初始化ModifyFlagm_imagelist.Create(16,16,ILC_COLOR16,3,0);//创建imagelistm_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON6));m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON7));m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON8));//以上三句作用为添加icons到imagelist里去m_tab.SetImageList(&m_imagelist);//setthetabcontrol"simagelistm_tab.InsertItem(0,"修改会议信息",0);m_tab.InsertItem(1,"修改公司信息",1);m_tab.InsertItem(2,"修改人员信息",2);//设定按钮显示的文字内容m_tab.SetCurSel(ModifyFlag);ShowDlg();4.3数据库相关方面实现4.3.1创建数据源通过此段代码实现在ODBC中添加SQLServer类型的数据源,名为会议管理[12]。BOOLbODBC=SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQLServer",//添加SQLServer类型数据源"DSN=MeetingManager "//数据源名称,与静态配置名称要一致"DESCRIPTION=会议管理 ""DATABASE=HC_MettingManager "//数据库的名称为HC_MettingManager"SERVER=. ");//服务器的通用名称localhostif(!bODBC){AfxMessageBox("创建数据源失败");
returnfalse;}//出错情况下则显示提示“创建数据源失败”4.3.2自动还原数据库通过下列代码实现数据库的自动还原,根据HC_MettingManager.mdf和HC_MettingManager.ldf这两个文件,还原出名为HC_MettingManager的数据库,登录名为sa,密码为空。CStringsPath;CStringconstr,str,filename,str1,str2;intnPos;//定义变量GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);nPos=sPath.ReverseFind("\");sPath=sPath.Left(nPos);nPos=sPath.ReverseFind("\");sPath=sPath.Left(nPos);//获取文件的Debug路径filename=sPath+"\HC_MettingManager";str1=sPath+"\HC_MettingManager.mdf";str2=sPath+"\HC_MettingManager.ldf";CDatabasedb;constr="DRIVER={SQLServer};SERVER=.;DATABASE=master;UID=sa;PWD=";//设定登录数据库的用户名和密码db.OpenEx(constr,CDatabase::noOdbcDialog);//打开数据库str.Format("usemasterrestoredatabaseHC_MettingManagerfromDisk="%s"withmove"HC_MettingManager"to"%s",move"HC_MettingManager_log"to"%s"",filename,str1,str2);//还原数据库的SQL语句db.ExecuteSQL(str);//执行SQL语句db.Close();//关闭数据库4.3.3数据库备份通过下列代码实现数据库的备份,将HC_MettingManager备份至用户设定的备份路径中去。
图4.13数据库备份及手动还原界面CStringSQL;CStringfilepath=m_path1+"HC_MettingManager";//文件路径SQL.Format("usemasterbackupdatabaseHC_MettingManagertoDisk="%s"withinit",filepath);//备份数据库的SQL语句CDatabasedb;if(db.IsOpen())db.Close();//如果数据库是开着的,则关闭数据库db.OpenEx("DSN=MeetingManager;uid=sa;pwd=");//打开数据库try{db.ExecuteSQL(SQL);//执行SQL语句}catch(...){MessageBox("数据库备份失败!");return;}//若有异常,则提示“数据库备份失败”MessageBox("数据库备份成功!");//否则显示信息“数据库备份成功”4.4参数设置4.4.1添加数据
图4.14添加数据界面case0:sql.Format("select*fromcompanytypewherecompanytypename="%s"",m_strname);str.Format("declare@numintselect@num=count(*)+1fromcompanytypeinsertintocompanytypevalues(@num,"%s")",m_strname);//声明变量num,且使num的值为companytype表中的记录条数加1,将num值及内容插入到companytype表中break;4.4.2修改数据
图4.15修改数据界面case0:sql.Format("updatecompanytypesetcompanytypename="%s"wherecompanytypeid=%s",m_strvalue,id);//根据所选的要修改类型及修改的值将对应表的对应字段改为用户修改后的字段。break;4.5用户管理图4.16用户管理界面用户管理可以实现添加用户及注销用户功能,同时还能够修改已存在用户的密码功能4.5.1用户添加if(m_name==""){MessageBox("请输入用户名!");return;}//若用户名为空,提示“请输入用户名”if(m_pass!=m_passr){MessageBox("密码错误!");return;}//若两次密码不匹配,提示“密码错误”try{CStringm_power;m_combo.GetLBText(m_combo.GetCurSel(),m_power);//获取所选用户权限CStringstr;
str.Format("insertintouserinfovalues("%s","%s","%s",0)",m_name,m_pass,m_power);//添加记录到表中的SQL语句db.ExecuteSQL(str);//执行上面的SQL语句ShowData();}catch(...){MessageBox("error!")return;}//若有异常,提示“error”4.5.2用户注销CStringtemp,str;if(m_list.GetCurSel()==-1){MessageBox("请选择!");return;}//若未选择用户,提示“请选择”m_list.GetText(m_list.GetCurSel(),temp);temp=temp.Left(temp.GetLength()-8);//赋给temp变量所选的用户名(长度减8是为了将后面的[权限]的值不赋给temp变量)if(MessageBox("确定要删除吗?","注意",MB_YESNO|MB_ICONQUESTION)==IDYES)//给出提示信息“确定要删除吗?”{str.Format("deletefromuserinfowhere[user]="%s"",temp);//删除用户的SQL语句db.ExecuteSQL(str);//执行上面的SQL语句ShowData();}4.6举办会议的实现4.6.1添加参会人员
图4.17添加参会人员界面录入信息完毕后,用户可以选择‘完成’按钮结束添加,也可以选择‘继续添加’按钮来继续添加下一个参会人员信息。4.6.2添加会议图4.18添加会议界面录入信息完毕后,用户可以选择‘完成’按钮结束添加,也可以选择‘继续’按钮跳转到添加参会人员信息界面。
4.7信息查询图4.19信息查询界面根据用户选择的查询条件以及选择要显示的内容来对会议信息、人员信息以及公司信息进行查询,并将查询结果在列表控件中显示出来。另外,用户还可以将查询结果导出成EXCEL文件以及打印出来。导出EXCEL实现:CStringfilename="";CDatabasedatabase;CStringsDriver="MICROSOFTEXCELDRIVER(*.XLS)";//Excel安装驱动CStringsSql;sExcelFile="";//弹出对话框选择路径CFileDialogfileDlg(FALSE,"xls",filename,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"*.xls",wnd);if(fileDlg.DoModal()==IDOK){sExcelFile=fileDlg.GetPathName();//要建立的Excel文件CFileFindfinder;BOOLbWorking=finder.FindFile(sExcelFile);//寻找文件if(bWorking)//如果已经存在文件,则删除{CFile::Remove((LPCTSTR)sExcelFile);}}elsereturn;4.8信息修改
图4.20信息修改界面根据用户选择的要修改的内容来对会议信息、人员信息以及公司信息进行修改。或者是选中某条记录,然后通过点击‘删除’按钮来删除相对应的信息。4.9汇总统计
图4.21汇总统计界面根据用户选择的统计条件来统计相应信息(说明:如果会议名称没有被选中就是统计一定时间内所有的会议中某种类型的公司参会次数等;公司类型还有其他几种类型都会有一个*选项,代表统计所有类型),并在列表中显示出统计结果,另外,用户还可以打印统计结果。4.10小结本节主要详细介绍了会议客户管理系统的各个功能模块以及各个功能的界面的具体实现过程,通过本节可以对整个系统的所有功能的具体实现有个初步的认识。5、系统测试5.1编写目的本测试计划旨在为整个项目的测试提供理论依据,定量测试的方法和度量测试过程中的各项指标,并规范测试用例,促使该软件项目能最终达到预期的需求。本测试用例的预期读者为:项目开发人员,项目测试人员。5.2背景(1)待测试的软件系统的名称:会议客户管理系统(2)项目的开发历史:该项目现已完成可行性报告,需求分析,设计阶段,已进入编码阶段。项目的最终用户:公司企业本测试计划开始的先决条件:已完成可行性报告,需求分析,设计和编码工作。5.3测试方案说明(1)“单缺陷”假设:假设失效极少是由于两个或者两个以上缺陷同时发生引起的。(2)
测试方法:采用功能性和结构性测试相结合的方法:单元测试主要采用路径测试,根据程序源代码形成测试用例。系统集成测试采用功能性测试,从需求规格说明书导出测试用例。该项目涉及到的测试方案包括边界值测试,等价类测试,决策表测试,特别指出的是因为该产品是面向广大普通市民的软件,所以测试过程中一定要考虑程序的健壮性。(3)逻辑测试标准:达到C1指标,覆盖所有D-D路径(判断分支),即语句的分支覆盖。(4)压力测试:作为一个提供给公司企业的系统,应进行压力测试,但由于条件不具备,及本项目定位,因此可暂时不进行此测试。5.4测试计划(1)软件功能说明表5.1软件测试功能说明基本功能功能描述输入输出参数设置设置公司行业、公司类型、会议类型、职称以及职位。公司行业、公司类型、会议类型、职称以及职位将公司行业、公司类型、会议类型、职称以及职位保存至数据库中举办会议举办一场会议会议信息以及参会人员信息会议信息以及参会人员信息修改对会议信息,人员信息,公司信息进行有选择性的修改要修改内容及修改后的内容修改后内容并将其保存至数据库中查询对会议信息,人员信息,公司信息进行有条件修改要查询的条件所要查询的相关信息(2)测试内容表5.2测试内容测试内容预期结果说明进入程序弹出登陆界面登录进入主界面需要输入正确的用户名和密码才能正确登陆参数设置将设置的数据保存至数据库中用户管理可添加或者注销用户,还可以更改用户密码更改密码时需要输入两次来确认新密码添加信息添加会议信息以及参会人员信息修改信息可修改会议信息、人员信息以及公司信息将修改后的信息保存至数据库中汇总统计可以根据用户所选情况进行正确的统计,同时打印预览统计出的结果信息查询可按用户选择的条件查询会议信息、人员信息以及公司信息,并且可以将查询结果导出成EXCEL文件以及打印EXCEL文件数据库还原
根据已有的数据库备份文件还原数据库数据库备份备份该系统的数据库5.5测试(1)测试人员:王君、董德华、胡超、孙忱、江艳春。(2)测试时间2012-04-05~2012-05-18(3)测试环境硬件:处理器:T5500内存:2G硬盘:250GB软件:WindowsXP、MicrosoftSQLServer2000、VisualC++6.0(4)测试系统功能测试表5.3系统功能测试测试内容输入输出会议信息查询会议名称EEEE2012会议名称EEEE2012会议地址CHINASUZHOU会议时间2012-02-19人员信息查询姓名王辉共查询到1条记录姓名王辉;性别男;职位总经理;职称教授级高工;所在公司江苏工业;电话158999120;邮箱wf@163.com;参会方式公司协办公司信息查询常州大学公司名称常州大学;公司类型事业单位;所属行业科研院所;公司网址www.czdx.com;统计汇总公司协办统计到共有12条记录系统反应时间测试表5.4系统反应时间测试测试内容估计反应时间登录系统3秒会议信息查询1秒人员信息查询1秒~4秒公司信息查询1秒统计汇总2秒数据库还原5秒数据库备份5秒5.6小结
本节主要对会议客户管理系统进行测试,测试各个功能模块的健壮性,其中涉及到的测试方案包括测试方案包括边界值测试,等价类测试,决策表测试等。为了达到最佳的测试效果,本系统的测试由独立的第三方来进行。6、总结本系统基本实现了会议客户管理系统的功能要求,但系统仍然存在一定的局限性同时也是以后要解决的问题。会议客户管理系统是在企业中存在大量的会议以及复杂的客户信息的背景下开发的,因此它应具有较强的通用性,以满足各家企业的需求。但目前由于时间紧促和个人能力的有限,还没有能真正地实现系统的通用性。另外本系统还有几个方面考虑得不够全面。首先,从实际上来讲举办会议的时间应该不能早于当前系统的时间,本系统未能很好的在这一点上做校验。另外,同一个人在同一时间是不可以参加两个不同的会议的,这一点,本系统也没有做校验。这些实际状况本系统均没有充分考虑到,因此实用性不够。总之,本系统有待改进的地方还是很多的,今后在有能力的前提下可以将其功能以及实用性再完善一下。
参考文献[1]邹建.SQLServer2000开发与管理应用实例(中文版)[M].北京:人民邮电出版社,2005.08[2]电脑编程技巧与维护杂志社.VisualC/C++系统开发典型实例解析[M].北京:中国水利水电出版社,2007[3]李俊山,罗蓉.数据库原理及应用[M].北京:清华大学出版社,2009.06:110-121[4]沈炜,徐惠.VisualC++数据库编程技术与实例[M].北京:人民邮电出版社,2005:137-152[5]韩朝君,梁冰,刘莹.SQLServer管理与开发大全[M].北京:人民邮电出版社,2007[6]李昆,叶伟,任刚等.SQLServer2000课程设计案例精编[M].北京:中国水利水电出版社,2006[7]周奇.SQLServer2005数据库基础及应用技术[M].北京:北京大学出版社,2008.01:158-198[8]张建伟.数据库技术与应用—sqlserver[M].北京:人民邮电出版社,2008.04[9]李春葆,章启俊.VisualC++程序设计基础教程[M]武汉:武汉大学出版社,2006[10]揣锦华.面向对象程序设计与VC++实践[M].西安:西安电子科技大学出版社,2005.02:238-247[11]明日科技,王瑞,于速等.VisualC++数据库系统开发完全手册[M].北京:人民邮电出版社,2006:471-478,502-504[12]JoeCelko(美).SQLServerdatabasedevelopmentCaseStudyAnalysis[M].TsinghuaUniversityPress,2006.04:223-261
致谢当开始准备这个论文的时候,就意味着我的大学生涯即将落幕,意味着我就要离开我美丽的常州大学,进入到社会工作了。在过去的四年里,无论是身边的老师还是同学都给予了我很多很多的帮助,首先我要感谢我的导师——胡超,感谢他的孜孜不倦的教诲,这篇学位论文也是在他的亲切关怀与细心指导下完成的。从课题的选择到论文的最终完成,胡超老师始终都给予了细心的指导和不懈的支持。胡超老师对学生认真负责,在他的身上,我们可以感受到一个学者的严谨和务实,这些都让我们获益匪浅,并且将终生受用无穷。毕竟“经师易得,人师难求”,希望借此机会向胡超老师表示最衷心的感谢!此外,本文最终得以顺利完成,也是与我身边亲爱的同学的帮助分不开的,虽然他们没有直接参与我的论文指导,但在这一过程中也给我提供了很多很好的意见,提出了一系列可行性的建议,在此向他们表示深深的感谢!最后要感谢的是我的父母,是他们教我学会做人,让我能够健康茁壮的成长,而且也为我能够顺利的完成毕业论文提供了巨大的支持与帮助。在未来的日子里,我会更加努力的学习和工作,不辜负父母对我的殷殷期望!我一定会好好孝敬和报答他们!
需要系统原代码,请联系袜子哥!QQ:271712154郑州轻工业学院(软件学院,计算机通讯学院),郑州大学(信管学院,数学系,计算机通讯学院,软件学院)学生免费!袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈