版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEDJKFHJKAHDFHDJKHFHSDJKHFLAJKHFJKDHSLKHFJKDSHFJKLHPAGEJDFHJKDSHIFHJKHFJKDHFLJKHFDJKHFJKSHFAJKLDJKFHJKAHDFHDJKHFHSDJKHFLAJKHFJKDHSLKHFJKDSHFJKLHJDFHJKDSHIFHJKHFJKDHFLJKHFDJKHFJKSHFAJKL基于Web技术的外汇牌价自动发布系统设计——数据的提取、导入及更新2008年06月DJKFHJKAHDFHDJKHFHSDJKHFLAJKHFJKDHSLKHFJKDSHFJKLHJDFHJKDSHIFHJKHFJKDHFLJKHFDJKHFJKSHFAJKL基于Web技术的外汇牌价自动发布系统设计——数据的提取、导入及更新摘要:一般地,一国货币汇率稳定,能构造良好的国际投资环境,吸引外资流入,从而使该国国际储备增加;反之,则导致资本外流,外汇储备减少.当一国的汇率变动导致出口大于进口时,则外汇收入增加,外汇储备增加。所以,这一基于Web技术的外汇牌价自动发布系统的设计则可以为广大用户带来方便。在本设计中,利用VB开发平台提供的强大能力,以强大的带有自动分析结果的编辑器来生成记忆数据,以流行的INI文件格式来储存记忆库,以表格方式显示记忆库,以强大的ADODB新型数据库访问平台来保存结果,以流行的Access数据库来保存数据,使系统具备极强的可扩展性和实用性。程序经过验证可以分析各大银行的外汇牌价表上的数据,也可以分析其它网页的数据。在本设计中,主要是能顺利实现对某些重要数据的提取、导入、手动更新和自动更新的功能,并且能够在相应的Led屏上显示出来,以供广大用户作参考。关键词:外汇牌价;VB6.0;界面设计;INI文件;ADODB;Access2003Thedesignoftheforeignexchangerateauto-issuesystembasedontheWeb——abstracting,inputtingandrenewingofthedataAbstract:Generally,thestableexchangerateofacountrycanbuildagoodinvestedenvironmentandabsorbforeigncapitalpeople,thus,itcanincreaseitsnationalstoreforfutureuse.Otherwise,itcancausecapitalflight,andreduceitsforeignexchangereserve.Whentheexportationismorethantheimportationcausedbyexchangeratechanging,bothitsforeignexchangeincomeanditsforeignexchangereservewillincrease.Therefore,wecalltomindthatcompletingthisautomaticissuesystemdesignbasedonWebtechnicalforeignexchangeratecanbringmoreconveniences.Inthisdesign,usingtheformidableabilitywhichprovidedbyVBdevelopmentplatform,producingthestoreddatabytheautomatedanalysisresulteditorformidable,storingupthememorystorehousebythepopularINIdocumentformat,demonstratingmemorystorehousebysheet,preservingtheresultthroughvisitingtheplatformbytheformidableADODBnewdatabase,andpreservingthedatabythepopularAccessdatabaseinordertomakethesystemhavethegreatextendibilityandtheusability.Theproceduremayanalyzeeachbankaftertheconfirmationintheforeignexchangeratetabledata,anditmayanalyzeotherhomepagesthedataaswell.Inthisdesign,wemainlycanrealizetoextractandinducttheimportantdatasmoothly,thefunctionofmanualrenewalandtheautomaticrenewal,andcandemonstrateonthecorrespondingLedscreen.Thisdesignisjustfortheusercommunitytomakethereference.Keywords:foreignexchangerate;VB6.0;InterfaceDesign;INIfile;ADODB;Access2003目录序言 1第1章设计要求及指标 21.1课题目的和意义 21.2国内外研究综述 21.3主要内容和要求 31.4设计思路和方案 41.5预期成果 4第2章基础技术 52.1VisaulBasic6.0简介 52.1.1VB的文件操作 52.1.2主要VB字符串操作函数介绍 52.2系统主要组件介绍 62.2.1Inet控件 62.2.2RichTextBox控件 62.2.3MSHFlexGrid控件 62.2.4Timer控件 72.3Access数据库 72.3.1数据库Access简介 72.3.2系统开发采用的主要技术简介 72.3.3数据库记录的增删改操作 82.4VB与Access数据库的连接 82.5INI文件 92.5.1INI文件概述 92.5.2INI文件与TXT文件的区别 9第3章系统的设计与实现 103.1系统框架的设计 103.1.1工程流程图 103.1.2系统概要设计 113.1.3工程中的模块 123.1.4系统主界面设计与实现 143.2网页数据显示 193.2.1网页源文件显示 193.2.2数据显示 193.3网页数据编辑 193.4共性文件和网页数据的结合 193.5数据导入到数据库 203.6数据的更新 20第4章源代码分析 214.1界面设计分析 214.2依赖项说明 214.2.1各功能源代码说明 21第5章 系统测试 23第6章 结束语 27参考文献 28致谢 29JDFHJKDSHIFHJKHFJKDHFLJKHFDJKHFJKSHFAJKL基于Web技术的外汇牌价自动发布系统设计——数据的提取、导入及更新序言在经济全球化和知识化的今天,世界各国在经济领域的相互依存度不断提高。因此,货币汇率,尤其是国际经济交易活动计价和结算货币汇率的稳定,已构成国际经贸活动和世界经济发展的重要因素之一。通常情况下,中小国家货币汇率变动仅仅对贸易伙伴国的经济产生一定影响。而主要发达国家的货币汇率则不然,如美元、欧元和日元等等。这些国家的货币一般被国际社会普遍接受,充当国际交易的计价手段、支付手段和储备手段,所以它们的汇率变动对整个世界经济影响很大。所以,制作这个基于Web技术的外汇牌价自动发布系统的设计,使广大用户可以更好地了解到每天最新的外汇牌价。计算机是现代科学技术的结晶,也是一种大众工具,所以计算机知识不仅是一种技能,而且能培养自学能力以及对知识的向往。而外汇牌价自动发布系统的设计,不仅对于计算机的应用领域有了进一步的研究,而且更加方便了广大用户对计算机的工作任务处理,提高了人们了解各外币之间合理兑换的效率,这给人们带来了很大的方便。Access的实用性很强,而且功能强大,是当前应用比较广泛的一个数据库,本设计就是用它来设计与开发的一个能够自动发布的外汇牌价系统。知识信息时代,经济的发展离不开完善的管理,本软件就是一套给个人用的观察外汇牌价的软硬件结合的系统,它可以有效的提取、导入和更新各外汇之间兑换的精确而又最新的数据,不仅是个人或家庭理财的好帮手,而且储量不大,只需在单机运行就可以,所以给广大用户提供很好的服务。希望通过对本设计的介绍,帮助大家建立起一套全面的且符合将来社会发展潮流的,而且受用终生的能够自动发布的外汇牌价系统。DJKFHJKAHDFHDJKHFHSDJKHFLAJKHFJKDHSLKHFJKDSHFJKLHJDFHJKDSHIFHJKHFJKDHFLJKHFDJKHFJKSHFAJKL第1章设计要求及指标1.1课题目的和意义在我国,外汇牌价采取以人民币直接标价方法,即以一定数量的外币折合多少人民币挂牌公布。每一种外币都公布3种牌价,即外汇买入价、外汇卖出价、现钞买入价。卖出价是银行将外币卖给客户的牌价,也就是客户到银行购汇时的牌价;而买入价则是银行向客户买入外汇或外币时的牌价,它分为现钞买入价和现汇买入价两种。“外汇牌价”,即外汇指定银行外汇兑换挂牌价,是各银行(指总行、分支行与总行外汇牌价相同)根据中国人民银行公布的人民币市场中间价以及国际外汇市场行情,制定的各种外币与人民币之间的买卖价格。这种价格在同一天中不变,不同日期则价格可有变动。可见,“外汇牌价”提供的是各银行制定的、“外汇与人民币”在某一天的交易价格,它变动较少,变动时间以“日”计算外汇是用外国货币表示的,用于国际结算的信用凭证和支付凭证。银行外汇牌价是指各外汇指定银行以中国人民银行公布的人民币对美元交易基准汇价为依据,根据国际外汇市场行情,自行套算出当日人民币对美元、日元、港币以外各种可自由兑换货币的中间价。外汇指定银行可在中国人民银行规定的汇价浮动幅度内,自行制定各挂牌货币的外汇买入价、外汇卖出价以及现钞买入价和现钞卖出价。这些挂牌价即为银行外汇牌价。1.2国内外研究综述随着Internet的快速发展,人们的投资理财方式发生了巨大的变化,传统的银行存款已经不再是人们获得投资回报的主要方式,人们更多地开始关注外汇的变化。初步建立了符合社会主义市场经济要求的外汇管理体制,经受了亚洲金融危机的冲击,促进了国民经济持续健康发展和对外开放水平的进一步提高。由于互联网所容纳的信息量大,内容丰富,信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群,人们对它的需求程度越来越大,这也就意味着外汇牌价自动发布系统的内容将日益增加,对其更新的速度也就提出了越来越高的要求。传统的发布方式过程繁琐,效率低下,已经不能满足人们日益增长的需求,于是自动发布系统应运而生,它的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需录入文字和上传图片,从而使网站的更新速度大大缩短,它将不断完善外汇牌价自动发布系统,以满足当今社会发展的需求。1.3主要内容和要求该课题将介绍外汇牌价自动发布系统的设计过程,采用VisualBasic6.0作为开发工具,Access2003作为后台数据库,这是经典的单机版数据库管理信息系统的开发组合。在本系统的开发过程中,主要了解系统的需求分析、设计和实现的完整过程,掌握Access数据库的基本管理方法,例如创建数据库、创建表、创建查询、备份和还原数据库等。常用SQL语言的使用方法以及VisualBasic数据库开发技术,积累有效的数据库应用系统实战经验。采用VisualBasic技术,结合ACCESS数据库,设计一个基于Web技术的外汇牌价自动发布系统。为该系统建立数据库,形成一个包括各国货币之间的买卖价格的功能模块的外汇牌价自动发布系统。用户可以根据自己的需要去查看各国货币之间的兑换信息(包括人民币与外币以及外汇与外汇之间的兑换等等)。1.采用VisualBasic技术,实现界面设计;2.采用ACCESS数据库技术,实现数据库结构;3.通过VB代码将静态甚至动态网页的源代码取下,构成网页资料。1.4设计思路和方案用VB自动提取网页源代码用VB自动提取网页源代码Access数据库从Access数据库提取所需数据筛选代码,取出货币和汇率等信息将数据通过串口传输至LED显示屏LED屏显示外汇牌价表存储至数据库1.5预期成果 1.将外汇牌价有效数据部分取下,并在屏幕上显示;2.定期实现手动更新或自动更新外汇牌价中各数据的功能;3.有一定的数据处理功能,并且能够显示出历史时期的数据;4.不仅是以数据的形式,还能够以列表或曲线的形式显示。第2章基础技术2.1VisaulBasic6.0简介2.1.1VB的文件操作(1)打开文件Open,语法格式为:Open“文件名”For模式As[#]文件号[Len=记录长度](2)关闭文件Close,语法格式为:Close[#]文件号[,[#]文件号]……2.1.2主要VB字符串操作函数介绍1.InStr函数:寻找字符串[格式]:P=InStr(X,Y)指从X第一个字符起找出Y出现的位置P=InStr(n,X,Y)从X第n个字符起找出Y出现的位置2.Mid函数:读取字符串中间的字符[格式]:P=Mid(n,X,Y)指其中包含字符串中指定数量的字符[说明]:(1)n为字符串表达式,从其中返回字符;(2)X是指定字符串n中被取出部分的字符位置,如果X超过n的字符数,Mid返回零长度字符串(””);(3)Y是要返回的字符数,如果省略或Y超过文本的字符数(包括X处的字符),将返回字符串中从X到尾端的所有字符。3.EOF函数:表明已经到达为随机或顺序Input打开的文件的结尾。[格式]:EOF(filenumber)[说明]:必要的filenumber参数是一个Integer(整数)值,包含任何有效的文件号。4.LOF函数:表示用Open语句打开的文件的大小,该大小以字节为单位。[格式]:LOF(filenumber)[说明]:必要的filenumber参数是一个Integer(整数)值,包含一个有效的文件号。2.2系统主要组件介绍2.2.1Inet控件InternetTransfer控件实现了两种广泛使用的Internet协议:超文本传送协议(HTTP)和文件传送协议(FTP)。使用InternetTransfer控件可以通过OpenURL或Execute方法连接到任何使用这两个协议的站点并检索文件。1.基本操作InternetTransfer控件的功能依赖于将要使用的协议。由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。例如,GetHeader方法只能用于HTTP(HTML文档)协议。然而,有些过程对两个协议是通用的。最基本的,如果要使用任何一个协议,则必须将AccessType属性设置为合法的代理服务器。2.调用OpenURL方法设置完AccessType属性后,最基本的操作就是用合法的URL调用OpenURL方法。使用OpenURL方法时,操作所得到的结果将依赖于目标URL。2.2.2RichTextBox控件RichTextBox控件不仅允许输入和编辑文本,同时还提供了标准TextBox控件不具有的且更高级的指定格式的许多功能。它支持OLE对象的剪贴板和OLE拖/放操作。从剪贴板中粘贴进一个对象时,它被插在当前插入点处。一个对象被拖放到控件时,插入点将跟踪着鼠标光标的移动,直至鼠标按钮释放时该对象即被插入。标准TextBox控件用到的所有属性、事件和方法,RichTextBox控件几乎都能支持,例如MaxLength、MultiLine、ScrollBars、SelLength、SelStart和SelText。对于那些可以使用TextBox控件的应用程序,也可以很容易地使用RichTextBox控件,且RichTextBox控件并没有和标准TextBox控件一样具有64K字符容量的限制。2.2.3MSHFlexGrid控件MSHFlexGrid控件显示和操作表格数据。其对包含字符串和图片的表格提供了灵活的排序、插入数据和格式编排功能。可以在MSHFlexGrid中的任何单元放置文本、图片或这二者。Row和Col属性指定MSHFlexGrid控件的当前单元。也可以在代码中指定当前单元,或在运行时使用鼠标或键盘改变当前单元。Text属性引用了当前单元中的文本。如果单元中的文本太长以致不能在单元中一行显示,将WordWrap属性置为True将在单元中分多行显示文本。使用Col和Row属性确定MSHFlexGrid控件中的行数和列数。使用Band属性确定MSHFlexGrid中的band风格。2.2.4Timer控件VisualBasic提供一个Timer控件,其本质上是一个具有间隔时间设置所触发的时间程序,使我们可以将其隐藏在系统中,以某一时间间隔触发相关程序。一个Windows应用程序含定时器后,下一步便要做时间间隔的设定。此时可以借助Interval属性来设定,此属性栏的单位是千分之一秒,因此,若想设定每秒产生一事件,可在此设定Interval值为1000。注意:对于一般个人电脑而言,定时器的精确度是一秒大约最多只能产生18次事件,因此,为求程序精确,最好Interval值不要少于56。2.3Access数据库2.3.1数据库Access简介本系统采用Access作为后台数据库,Access数据库是微软公司发布的Office软件包中的关系型数据库软件,具有功能灵活、界面友好、易于学习操作等特点,拥有广泛的用户群体。Access是开发单机小型数据库应用系统的理想工具,可以独立开发数据库应用系统,也可以作为后台数据库与VisualBasic等高级语言结合使用。Access是文件数据库,文件的扩展名为mdb。Access数据库由表、查询、窗体、报表、数据访问页、宏和模块等数据库对象组成。2.3.2系统开发采用的主要技术简介VisualBasic提供了比较丰富的数据访问技术,例如ADO、ODBC、DAO和RDO等。其中ADO是最新的数据库访问技术。它是使用更加简单,而又更加灵活的对象模型。在本设计中,所采用的是Adodb数据访问对象。这里需要说明的是,aoddb及adodc都是是数据访问对象,但是aoddb脱离控件,adodc是对控件操作,例如绑定了text,combo,用adodb就比较好,如果是要对多个表操作,只是写sql语句就可以,而adodc就不行了,而且用控件绑定不能提高程序员的编程能力。2.3.3数据库记录的增删改操作数据库记录的增删改操作通过AddNew、Delete、Edit、Update及Refresh方法。它们的语法格式为:数据控件.记录集.方法名1.增加记录AddNew方法将记录增加到表格中。增加记录的操作分为三步:(1)调用AddNew方法。(2)给各字段赋值。给字段赋值格式为:Recordset.Fields(“字段名”)=值。(3)调用Update方法,确定所做的添加,将缓冲区内的数据写入数据库。2.删除记录要从记录集中删除记录的操作分为三步:(1)定位被删除的记录使之成为当前记录。(2)调用Delete方法。(3)移动记录指针。3.编辑记录数据控件自动提供了修改现有记录的能力,当直接改变被数据库所约束控件的内容后,需单击数据控件对象的任一肩头来改变当前记录,确定所做的修改。也可通过程序代码来修改记录,使用程序代码来修改记录集中的当前记录的操作分为四步:(1)定位要修改的记录使之成为当前记录。(2)调用Edit方法。(3)给各字段赋值。(4)调用Update方法,确定所做的修改。2.4VB与Access数据库的连接数据库技术是计算机应用技术中的一个重要组成部分,对于大量的数据,使用数据库来存储管理将比通过文件来存储管理有更高的效率。在VB6.0中最主要的就是用ActiveX数据对象ADO(ActiveXDataObjects)这种新的数据库访问标准代替了原有的数据访问对象DAO(DataAccessObjects)和远程数据访问对象RDO(RemoteDateObjects)。可以用VB6.0中的各种集成的可视化数据库工具来管理和访问数据库,这种创建和访问结构化数据库系统的能力给变成带来了许多方便。在操作数据库的过程中,结构化查询语言SQL是一种事实上的工业标准语言。在SQL语言中,指定要做什么而不是怎么做。不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。利用SQL可以确切指定想要检索的记录以及按什么顺序检索。可以在设计或运行时对数据控件使用SQL语句。2.5INI文件2.5.1INI文件概述a.ini就是保存导入需要的信息的,它是Windows的系统配置文件,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。除了Windows现在很多Windows下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。a.ini是Windows的一种文件标准,一般用来保存应用程序的一写配置参数。2.5.2INI文件与TXT文件的区别首先,INI文件与TXT文件都是文本文件。TXT就是指纯文本文件,一般用于存放些文字,随便写数构存取。而INI文件一般用做配置文件,它与特定的应用程序配套的,文件名一样的。而且它有专门的API来读取数据,读写方便,有特定格式的。INI文件与TXT文件的读写功看起来相仿佛,但区别也比较大(否则也没必要单独分开了),在这里只简单讨论下用插件直接读写这两类文件的区别:一、读写TXT文件可以用以下函数:OpenFile,CloseFile,ReadFile,WriteFile,ReadLine,WriteLine二、读写INI可以用以下函数:ReadIni,WriteIni三、两者主要区别:①INI文件主要用于对特定变量的读写,其文件格式比较固定,要求也相对要严格一些。TXT对格式没有更多的要求,可以随意读出和写入。②TXT文件在读写操作之前要打开、关闭,而INI直接将文件名参数写到函数里。第3章系统的设计与实现3.1系统框架的设计修改已建的数据库的方法大致分为:添加、修改和删除记录。这三种操作均可由VisualBasic创建的程序来完成,VisualBasic资源通常由窗体、模块和类模块等构成。在“工程资源管理器”中,可以对窗体、模块和类模块进行管理。本章节将详细描述实现的具体方法。3.1.1工程流程图存入存入开始结束用户输入网址通过数据库读入网页源文件提取整个网页源文件提取有效信息部分INI文件表格数据库显示模块的数据绑定图3-1本系统流程图3.1.2系统概要设计在功能模块示意图的树状结构中,每一个叶结点都是一个最小的功能模块。每一个功能模块都需要针对不同的表完成不同的操作。根据以上分析,该系统考虑将整个系统分解成如图3-2模块结构图:外汇牌价外汇牌价自动发布系统的设计提取主要信息段获取网页源文件显示数据导入数据库提取有效数据提取主要信息段获取网页源文件显示数据导入数据库提取有效数据获取网页地址建一动态数组建一动态数组有效数据存入INI文件调用常用工具通过数据库读入用户选择银行种类有效数据存入INI文件调用常用工具通过数据库读入用户选择银行种类建一二维表格建一二维表格图3-2外汇牌价自动发布系统设计的功能模块示意图3.1.3工程中的模块模块可以用来管理全局常量、变量和用户自定义函数等。在一个工程中,可以有多个模块同时存在。本工程包含如下几个模块:⑴模块一:获取网页地址。主要是利用TextBox来存放网页地址的,可分为用户选择网页地址及通过数据库读入网页源文件两种方式来获取。实现的功能模块图如图3-3所示:获取网页地址获取网页地址用户选择网页地址通过数据库读入网页源文件确认输入顺利获取到网页地址未获取到网址,请检查网站是否正常,“获取提示”是否图3-3获取网页地址之模块图⑵模块二:获取网页源文件。主要是利用Inet控件采用OpenURL的方法来获取网页的源文件。实现的功能模块图如图3-4所示:成功获取网址成功获取网址触发Command_Click事件顺利获取到所选网页的源文件图3-4获取网页源文件之模块图⑶模块三:提取主要信息段。首先利用InStr函数将其主要信息段的首末位置查找出来,然后利用Mid函数就可将我们所需的主要信息段截取下来,并以INI文件的形式将其保存到工程的同一根目录下。实现的功能模块图如图3-5所示:获取获取了网页源文件利用InStr函数查找主要信息段的首末位置顺利截取到主要信息段以INI文件的形式保存图3-5提取主要信息段之模块图⑷模块四:提取有效数据。首先建立了一个动态数组,存放从源文件获取的有用信息,并且按“行”存放,然后创建一个17行7列的二维表格,以此来完成对有效数据的提取。实现的功能模块图如图3-6所示:创建一动态数组创建一动态数组按“行”存放有用信息以“行”为单位,观察分析确定有效数据所在位置利用Mid函数完成对有效数据的提取图3-6提取有效数据之模块图⑸模块五:数据导入数据库。首先打开Access数据库,建立一个数据库文件,使之能与数据库建立连接。然后触发Command_Click事件,以此打开包含有效数据的二维表格。最终顺利将数据导入到数据库中。实现的功能模块图如图3-7所示:新建一新建一数据库文件与数据库建立连接触发Command_Click事件打开二维表格顺利将数据导入到数据库中图3-7数据导入数据库之模块图⑹模块六:显示。打开所建立的数据库表格,将此表格中所包含的有效数据利用MSHFlexGrid控件将其显示在界面上。实现的功能模块图如图3-8所示:打开数据库打开数据库利用MSFlexGrid控件将数据在界面上显示图3-8显示之模块图3.1.4系统主界面设计与实现1.手动更新及自动更新的实现在本外汇牌价自动发布系统的设计中,主界面主要涉及到的控件有Inet控件、RichTextBox控件、Timer控件和MSHFlexGrid控件等等。当用户点击“运行”按钮之后,则触发GetIt_Click事件。登入运行阶段的界面布局如图3-9所示:图3-9开始运行之窗体界面布局实现本设计的主要步骤过程如下:步骤1:获取网页地址。主要是判断该网址是否为某一银行外汇牌价表的地址,是则继续下一流程,若不是则应继续判断。因为所输入的网址一旦出错(即不是具体某一银行所公示的外汇牌价表的地址),则不可能实现我们所需的外汇牌价表中的数据的提取、导入及更新等功能。步骤2:利用相应的VB代码来提取该网页源文件,这里包括了整个网页的全部源代码。它的界面布局如图3-10所示:图3-10中行外汇牌价网页源代码步骤3:从上一步所获取的源文件中截取主要信息段,并以INI文件的形式将其保存到工程的同一根目录下(用户自定义的即可)。它的界面布局如图3-11所示:图3-11INI文件保存的主要信息段步骤4:创建一个动态数组,存放从源文件获取的有用信息,按“行”存放在该数组中。步骤5:以中国银行公布的外汇牌价为例,主要是调用Function函数来实现对有效数据的提取,过程中创建一个二维表格。步骤6:用ADODB方式连接数据库,将存放到此二维数组中的有效数据导入数据库中。它的界面布局如图3-12所示:图3-12将数据导入数据库步骤7:打开数据库,将导入到数据库中的有效信息完整地显示在界面上。它的界面布局如图3-13所示:图3-13数据在界面上显示2.细化手动更新部分对于这一部分,仅仅是实现“手动更新”这一环节,利用一个webbrowser控件使操作更简单化、大众化,更容易被广大用户所接受。步骤节省了,但功能却同样实现了。涉及到的步骤大致如下:步骤一:首先由用户选择银行种类,网址随即生成。点击“进入”按钮,即显示所选银行所公示的外汇牌价表的网页。它的界面布局如图3-14所示:图3-14所选银行网页的显示步骤二:利用鼠标选中我们所需要的有效数据部分,点击“获取选中信息的HTML”按钮,所选部分的源代码随即在右侧的TextBox中生成,在这里,根据实际情况,用户可以对它自主进行更改或编辑。它的界面布局如图3-15所示:图3-15有效数据部分源代码的显示步骤三:击“显示有效数据信息”按钮,进入到下一个窗体,再点击“显示”按钮,我们即完成了将数据写入数组及导入数据库相对应的表这一过程。它的界面布局如图3-16所示:图3-16数据写入数组及导入数据库的显示3.2网页数据显示3.2.1网页源文件显示本设计利用一个极其有效的控件——RichTextBox控件——用此来实现对所提取的网页源文件的显示,使用户可以清晰地看到各不同银行所公示的外汇牌价表的相对应的网页源文件,使之可以针对于不同的有效数据进行恰当的分析。从而更准确及有效地完成对外汇牌价表的设计与开发。3.2.2数据显示针对于数据显示这一问题,在里采用了另一个功能强大的控件——MSFlexGrid控件。以下列举了几个记录处理的有效方法:①Data1.Recordset.Update:Updata主要是更新数据库的内容,特别是在新增加一笔记录时,不过如果是以Data控件开启数据库是,可省略此动作。如果使用的是另一个数据库机制(DataAccessObjects,DAOs),则需使用此动作。②Data1.Recordset.RecorsCount:可返回数据表格内,记录的总笔数。③Data1.Recordset.Close:可关闭数据表格,不过通常在执行[End]指令,或是[Unlead]窗体时,系统都将自动关闭数据表格。3.3网页数据编辑将各不同银行所公示的外汇牌价的相对应的网页信息获取到RichTextBox中进行编辑,在必要的时候可以对它们进行添加、删除以及修改的操作,以便更快捷地完成对有效数据的提取和编辑。对于网页数据编辑这一部分,我们所要完成的目的是将有效信息保留下来,使能够符合共性文件。3.4共性文件和网页数据的结合要想实现网页共性文件,必须提取到有用信息。所以,在这里,必须对各个不同银行所公示的外汇牌价表的相对应的网页信息进行合理地分析,利用“最佳查找法”找出它们之间的共同特性,而这一共性必须是在外汇牌价表网页中所有用数据的周围进行查找,否则,共性再多再大也都属于无效信息,从而形成我们所需要的共性文件,并以ini文件的形式存放。3.5数据导入到数据库启动Access数据库,建立一个数据库文件。与数据库建立连接。触发Command_Click事件,以此打开包含有效数据的二维表格。有关打开Access数据库的步骤大致如下:添加microsoftADOcontrol6.0部件。将刚加入的部件放在窗体上,然后打开其属性connectionstring,在弹开的“通用”选项卡中选下面的生成。③在新弹出的对话框中选择MicrosofJetOLEDB4.0provider,然后点击“下一步”,在新打开的对话框中连接到“数据库设计.mdb"文件,然后一直点击“确定”。
④打开Adodc1的属性:RecordSource,在打开的记录源选项卡的命令类型里选择2-adCmdTable,然后面下面的表里选择数据库里的表,然后一路确定回去。
⑤新建一个文本,并在文本属性的datasource中选择Adodc1,然后在datafield中选择要显示的字段。3.6数据的更新有关Access数据库中数据的更新,首先要到数据库中查找关键字段是否存在,比如,是否都含有“英镑”、“港币”、“美元”、“瑞士法郎”等等。如果有,即可以立即更新;否则,先要在数据库中添加了相应的关键字段才可以进行下面的对数据的更新操作。Updata用于更新数据库表中的数据。修改操作语句的一般格式为:Updata<表名> SET<列名>=<表达式>[,<列名>=<表达式>]…… [WHERE<条件>];其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句给出<表达式>的值用语取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。第4章源代码分析4.1界面设计分析本外汇牌价表的设计界面共由四个CommandButton控件,两个Inet控件,两个Frame控件,一个Lable控件、一个TextBox控件,一个RichTextBox控件,一个MSHFlexGrid控件以及一个Timer控件组成。四个CommandButton控件所实现的功能分别为实现手动更新、实现自动更新及将自动更新暂停以及退出;两个Inet控件用于连接到任何使用HTTP协议和文件传送协议这两个协议的站点并检索文件;TextBox控件用于供用户选择不同银行所公示外汇牌价表所对应的网页地址或者通过数据库读入网页源文件;RichTextBox控件则用于显示所提取的网页源文件;MSHFlexGrid控件用于对所提取的有效数据的显示;Timer控件用于在指定的时间内执行对有效数据的更新。4.2依赖项说明4.2.1各功能源代码说明//对“自动更新”按钮的设定,触发Click事件的发生//PrivateSubCommand1_Click()DimnAsStringTimer1.Enabled=Truen=InputBox("请输入自动更新的时间周期!以小时为单位","获取时间",0.5)Timer1.Interval=n*60*60EndSub//一个二维表格,完成信息//Dimdata(17,7)AsStringStrsource=Inet1.OpenURL(URL.Text)HTML.Text=Strsource//查找主要信息段开始和末尾的位置//p=InStr(Strsource,"border-bottom:")q=InStr(Strsource,"免责声明")//将主要信息段内容有效地提取出来//strtemp=Mid(Strsource,p,q-p)//将指定文件内容(即截取到的主要信息段)打开,以供输出数据//Open"E:\季丽娜毕业设计\工程数据的提取、导入及更新\str.txt"ForOutputAs#1IfLOF(1)=0ThenPrint#1,strtempEndIf//将完成信息写入数据库//Fori=1To17rs.Open"select*frominfowhere货币名称='"+data(i,1)+"'",cnn,1,3Ifrs.RecordCount>0Then……rs.UpdateElsers.AddNew……rs.UpdateEndIf//提取完成信息//m=InStr(ystr,""">")n=InStr(ystr,"</")Ifm<>0Andn<>0Andn>mThengetinfo=Mid(ystr,m+2,n-m-2)EndIfEndFunction系统测试它按开发阶段可以分为单元测试、集成测试、系统测试,确认测试、验收测试五部分。下面就针对这个外汇牌价表的设计分阶段进行介绍:⑴单元测试:它主要是完成对最小的软件设计单元——软件构件或模块的验证工作。使用构件级设计描述作为指南,对重要的控制路径进行测试以发现模块内部的错误。测试的相关复杂度和发现的错误是由单元测试的约束范围来限定的。①首先是对获取网页源文件部分的测试。在这里,我用了多种网页去对它进行测试,如中国银行、工商银行、中国建设银行以及学校主页等等。当将网页地址输入到名为“URL”的文本框,并点击“运行”按钮之后,界面上将会显示出与我们所输入的网页地址相对应的网页源文件。测试结果的界面布局如图5-1及图5-2所示:图5-1获取中行网页源文件之试结果图图5-2获取学校主页源文件之测试结果图②其次是对截取主要信息段部分的测试,这也是我们对于整个测试最为关键的部分。只有很好的将主要信息段部分成功得提取出来,我们才能够正常的进行以下步骤的操作。以中国银行的外汇牌价表为例,可以通过多种方法将我们所需的含有有效信息的信息段截取出来。但是,我们只有采用“最佳截取法”才是最有效也是最可行的方法。通过观察,在整个网页源文件中,只包含唯一一个字符串“border-bottom”和唯一一个字符串“免责声明”,只要利用InStr函数将其首末位置查找出来,然后利用Mid函数就可轻松将所需的主要信息段截取下来。并以INI文件的形式将其保存到工程的同一根目录下。测试结果的界面布局如图5-3所示:图5-3截取主要信息段之测试结果图③再次是对定时器更新的测试。由于定时器在程序执行时将不会显示在视窗内,所以定时器的位置将不影响程序的执行。可见,只要将定时器建立完成后,程序便将具有定时器的功能。定时器在这里用于以小时为单位,间隔一定时间后对各有效数据进行更新。测试结果的界面布局如图5-4所示:图5-4对定时器更新之试结果图④接着是对提取有效数据部分的测试。在这里,首先建立了一个动态数组,存放从源文件获取的有用信息,按“行”存放在该数组中。然后创建一个二维表格,以此来完成对有效数据的提取。既然已经以“行”为单位了,再根据我们对这每一行的观察,可以发现,在每一个有效数据的首末位置都是由“<”和“</td>”构成的,只要将它们两个的位置确定了,再利用Mid函数,那么,其中包含字符串中指定数量的字符也就被提取出来了,也即顺利完成了对有效数据的提取。测试结果的界面布局如图5-5所示:图5-5提取有效数据之试结果图⑵集成测试:它的目标是通过了单元测试的模块拿来构造一个设计中所描述的程序结构。通常存在进行非增量集成的倾向,也即使用“一步到位”的方法来构造程序。整个程序作为一个整体来进行测试,其后的结果通常是混乱不堪。会遇到许许多多的错误,错误的修正也是非常困难的。一旦这些错误被修正之后,就马上会有新的错误出现,这个过程会继续下去,而且看上去似乎是个无限循环。增量集成是一步到为的方法的对立面。程序先分成消毒部分进行构造和测试,这个时候错误比较容易分离和修正,接口也更容易进行彻底地测试,而且也可以使用一种系统化的测试方法。⑶确认测试:当集成测试结束的时候,软件就全部组装到一起了,接口错误已经被发现并修正了,而软件测试的最后一部分——确认测试——就可以开始了。确认可以通过多种方式来定义,但是,一个简单的定义是当软件可以按照用户合理的期望的方式来工作的时候,确认即算成功。⑷系统测试:它事实上是对整个基于计算机的系统进行考验的一系列不同测试。虽然每一个测试都有不同的目的,但所有测试都是为了整个系统成分能正常地集成到一起并且完成分配的功能。基于计算机系统的有用的系统测试类型大致有恢复测试、安全测试、应力测试和性能测试。整个系统若能够正常通过测试,那么,测试结果的界面布局如图5-6所示:图5-6系统测试结果图结束语经过这段时间的毕业设计,我觉得开发一个系统并不容易,从一开始的调查到设计花了很多时间和精力,对于外汇牌价表的设计,必须对各银行外币之间兑换的汇率有了一定的了解,掌握数据库的基本管理方法以及所选开发工具的基本编程方法以及编程语言等。但起初,我对SQL语句的使用方法以及VisualBasic数据库开发技术还不太了解,因此在开发过程中遇到了许多问题,但在导师的悉心指导下这些都有待进一步改善。最初,就像上面所说的自己对开发环境的学艺不精,所以一开始感觉摸不着头绪,根本不知道从何下手,所以只有匆匆忙忙地从图书馆借来大量关于VB和ACCESS方面的书籍,希望通过参阅各种关于运用VB和ACCESS开发系统的书籍充分了解系统建设的基本流程、总体布局设计以及系统开发前所需的一些准备工作,做到心中有数。然而,由于实在是经验有限,虽然书本上介绍了许多这方面的知识和操作方法,但是毕竟还是限于理论方面的,所以理解起来比较困难。幸好有同学在这方面比较擅长,所以就向她他们请教了一些关于这方面的实际操作流程。反复几次后,我在以前基础上加深了概念,至少知道整个设计流程和具体实际操作。所以,接下来我就按先前了解的那样,将自己以前做的系统的资料找出来,结合实际情况进行系统分析与总体设计。其实这两个阶段是非常重要的。针对于这一外汇牌价自动发布系统的设计,我认为虽然整体效果基本实现了,但是从结果可以看出,此设计对数据的分析不强,仅仅是做到了对一些有效数据的提取和显示。如果对它们有一定的分析和综合概括的话,我想这个设计可能会更完善。总之,对于本设计,它潜藏着很大的发展前景。通过本次的设计,我的最大收获并不是掌握这几门开发工具的应用,而是让我学会了设计系统的思维方法及许多软件开发的经验和技巧,对数据库的知识有了深一步的了解和研究,而且让我学到了团队的合作精神和整体的协调配合能力,本次设计对我来说意义颇大。参考文献[1]李敏业,王颖.VisualBasic+Access数据库应用实例完全解析[M].北京:人民邮电出版社,2006.[2]张玉彬,谢康林.测试用例的设计和复用技术[J].计算机应用与软件,2008,(01):67-73.[3]舒力,王凯.\o"银行外汇牌价形成机制及其改革方向相似度44%"银行外汇牌价形成机制及其改革方向[J].中国金融,2005,(09):35-42.[4]魏雪萍.Access2003数据库管理入门与提高[M].北京:人民邮电出版社,2006.[5]朱其荃,俞姽姮.\o"1973~1984年几种主要外币的外汇牌价相似度39%"1973~1984年几种主要外币的外汇牌价[J].上海金融,1985,(03):23-34.[6](美)RogerS.Pressman著,梅宏译.软件工程实践者的研究方法[M].北京:机械工业出版社,2002.[7]倪邦逵.\o"关于改革人民币外汇牌价制度的几点建议相似度46%"关于改革人民币外汇牌价制度的几点建议[J].华北金融,1991,(06):43-47.[8]NERURKARU.Webuserinterfacedesignforgottenlessons.IEEESoftware,2001,18(6):78-83.[9]李俊民.VisualBasi函数参考大全[M].北京:人民邮电出版社,2006.[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 逛超市课件教学课件
- 冲刺一级建造师考试教案案例试题
- 《骆驼寻宝记》教案设计
- 《相互协作的人体器官》教案
- 婚礼活动租赁协议
- 五年级上册艺术教案
- 媒体传播培训合同
- 体育馆观众自行车车棚施工合同
- 天津市菜市场垃圾分类指南
- 能源开发行业薪资管理策略
- Chapter 11 微生物的分化和发育
- (完整word版)抢救车急救药品、物品一览表(表格版)
- 数学方格纸(共3页)
- 农产品市场营销策略PPT课件
- 古代官职变动用词(完整版).ppt
- A760(761)E自动变速器ppt课件
- 超星尔雅学习通《国际金融》章节测试答案
- 田径运动会径赛裁判法PPT课件
- 新教科版(2017版)五年级上册科学全册单元测试卷
- 新高考背景下提高课堂效率的六条建议
- 红豆朱家明版本吉他谱
评论
0/150
提交评论