• 643.50 KB
  • 2022-04-22 13:50:49 发布

网吧管理系统毕业论文.doc

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'辽宁科技大学本科生毕业设计(论文)第III页寰宇网吧计费管理系统毕业设计目录摘要IAbstractII第1章绪论11.1选题的背景和意义11.2研究内容11.2.1服务端11.2.2客户端21.3系统开发技术21.3.1VB.NET21.3.2Access2003数据库3第2章系统分析与设计42.1系统可行性分析42.2系统需求分析52.2.2传统网吧管理62.2.3系统优点72.2.4功能需求72.3系统的设计原则72.4系统设计的思想82.5系统功能描述92.5.1操作员管理功能模块92.5.2用户管理功能模块102.5.3计算机管理功能模块112.6系统的类结构设计122.7数据库设计122.8系统E-R图15第3章通信过程与VB.NET中的通信类17 辽宁科技大学本科生毕业设计(论文)第III页3.1通信过程173.2VB.NET中的通信类193.2.1TcpListener类193.2.2TcpClient类203.2.3NetworkStream类213.2.4StreamReader类223.2.5StreamWriter类22第4章系统的实现244.1公共模块244.2服务器端的实现244.2.1服务器端登录244.2.2修改密码264.2.3设置上机费率264.2.4锁定屏幕274.2.5用户充值274.2.6查询费用274.2.7添加用户信息284.2.8修改用户信息、删除用户信息284.2.9添加计算机信息284.3客户端登录284.3.1登录294.3.2下机304.3.3设置314.3.4退出31第5章总结与展望325.1网吧计费系统的开发技术特点325.2系统的不足与前景32结论33致谢34 辽宁科技大学本科生毕业设计(论文)第III页参考文献35附录A36附录B40 辽宁科技大学本科生毕业设计(论文)第43页第1章绪论1.1选题的背景和意义随着计算机技术的日月更新,越来越多的人们注重加强对计算机知识的学习,为了满足学校学生或者社会学员的需求,许多网吧都纷纷对外开放,实行计时收费。但随着上机人数的增多,网吧的管理成了一个非常困难的问题。首先,人工计时收费是非常繁琐的一项工作,耗费人力物力,而且极容易出错;最后的统计工作更是一项费时费力的苦差事,甚至不能统计。其次,上机过程中,每个网吧都需要值班人员值班,耗费了管理人员的很多时间。随着计算机各种外围设备技术的发展,以上工作通过计算机就可以很方便地实现。为了适应当前网吧管理无人化的需求,本人试图利用自己大学所学专业知识并结合教学管理中的实际情况和其它类似计费软件的优点,开发了一套网吧收费系统软件。本系统可以解决网吧管理中存在的几个实际问题:(1).减少值班人员、维护人员,降低管理人员费用,甚至可以做到网吧无需人员值守管理。(2).增加网吧的开放时间,提高设备的利用率。(3).解决目前网吧管理中的人情免费上机、脱逃费问题。1.2研究内容利用VB.NET、Access2003等开发工具开发一套基于c/s框架结构的网吧计费系统软件,该系统要求由服务端、客户端2个模块组成。各模块主要实现以下功能:1.2.1服务端(1).操作员管理主要包括:操作用户管理、操作员登录、修改密码、设置上机费用。这其中大部分是标准数据的维护,包括新增、修改、删除、查询等; 辽宁科技大学本科生毕业设计(论文)第43页(2).用户信息管理主要包括:用户充值、查询用户费用、删除用户信息、添加用户信息、修改用户信息。这里区分不同的用户类型,按照不同用户类型设置上机费用等;(3).计算机信息管理主要包括团体添加计算机信息、修改计算机信息、删除计算机信息3个模块。这里要记录计算机本身的配置信息以及使用情况。(4).上机计费主要负责接收客户端程序发送来的上、下机信息,进行上、下机的处理,在处理上机登录时要进行用户的合法性检测。检测通过后产生一条用户上机记录,记录下计算机代码、卡号、登录开始时间等信息。处理下机信息时,要记录下此用户下机的详细时间。计费时要将当前使用费用记录在上机记录中,并在用户的档案记录的余额字段中扣减,还要判断用户的余额情况,如果余额不足,要及时发送一个网络消息给用户。1.2.2客户端首先要求将客户端的桌面、任务管理器、系统状态栏等系统功能锁定,桌面上只有客户登录程序界面,要求用户输入用户代码和密码进行登录。登录信息要求以网络数据包的形式发送到“服务器端”,由“服务器端”来判断其合法性,并反馈一个信息给客户端,如果一切合法的话,再将桌面、任务管理器等功能解锁,让用户正常使用。客户端程序要求正常停靠在系统托盘中,用户下机时要求点击此图标进行下机,客户端将下机信息发送到“服务器端”,然后重新弹出登录界面,等待下一个用户登录。1.3系统开发技术1.3.1VB.NETVB.net是微软最新平台技术,是.netframeworkSDK的一种语言。编译以后生成的可执行文件被称为Assembly,即程序集。VB.net的版本号是VisualBasic7.0,它的运行是建立在CLR(CommonLanguageRuntime)和MSIL(MicrosoftIntermediateLanguage)虚拟器 辽宁科技大学本科生毕业设计(论文)第43页上的。其实,它的机制和Java差不多。  1.3.2Access2003数据库Access是Microsoft公司推出的一款优秀的数据库管理软件,最适合用来作为中、小规模数据量应用软件的底层数据库。因为其功能强大、可靠、高效的管理方式,支持网络和多媒体技术,简单易学,便于开发等主要特点,目前已经获得相当广泛的应用。Access本身就是一个采用面向对象技术开发的数据库系统软件,它能很好地支持面向对象技术。Access的数据库对象都具有属性和方法等面向对象技术的基本特征。在Access2003版本中,Access使用了表格来实现数据的采集、维护、分析和传播等功能,此外,它还提供了关系型数据库所要求的相当丰富的数据运算和数据汇总能力。其主要特点如下:(1).完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。(2).强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Client/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。(3).可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。(4).作为Office套件的一部分,可以与Office集成,实现无缝连接。(5).能够利用Web检索和发布数据,实现与Internet的连接。Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。 辽宁科技大学本科生毕业设计(论文)第43页第2章系统分析与设计2.1系统可行性分析可行性研究的目的不是解决问题,而是用最少的代价在尽可能短的时间内确定系统是否可行,系统的方案在经济上、技术上和操作上是否可以接受。下面从以下三点对本系统的可行性进行分析研究。1、技术可行性技术上的可行性分析就是要考虑使用现有的技术,其中包括硬件和软件两方面,是否能够实现此系统,来满足用户的需要。2.经济可行性经济可行性分析主要是对项目的经济效益进行评价,评估本系统带来的经济效益是否能超过它的开发成本。对于使用限时服务ADSL的用户来说,控制好上网时间是非常重要的,因为ADSL限时服务,每月提供给用户规定的上网时间,在规定的时间内,网络使用费相对便宜。但如果用户忽视对上网用时的管理,超出了规定的时间,超出的时间会使用户付出高额的费用。同样对于使用Modem的用户来说,每分每秒都需要支出费用,时间控制就更为重要。本人所设计的网络计时管理系统可以,使用户方便查询上网时间,防止用户无意识的超出上网时间的现象,从而节省了不必要的上网开支。因此,整个系统在经济上是可行的。3.操作可行性操作可行性主要评估在用户组织内是否行的通。本系统采用人机交互方式,本着界面统一,简洁,易用的风格进行开发,并且带有详细的帮助信息供使用者查看。只需用户进行简单的学习,便可使用操作,界面中还大量使用了图形按钮,使用户方便使用。所以,本系统在操作方便是完全可行的。 辽宁科技大学本科生毕业设计(论文)第43页2.2系统需求分析(1).需求分析的定义:需求分析是对用户需求的真正明确,是对要解决的问题的彻底理解,是一个软件开发的最重要阶段,需要了解和澄清用户的需求,严格的制定被开发的软件系统的需求规格说明书。(2).需求分析的任务:开发软件系统最为困难的部分是准确说明开发什么,最为困难的概念性工作便是编写出详细的技术需求,这包括所有面向用户,面向机器和其他软件系统的接口,同时这也是一旦出错,将最终会给系统带来极大损害的部分,并且以后再对它修改也极为困难的。这些定义强调的是:产品是怎样的,而并非产品是怎样设计构造的。之说所说到需求分析是最重要,就因为它具有决策性、方向性、策略性的作用。因而对于任何一款软件来说,做好它的根本在于它的需求分析。(3).功能分析1、制定价格策略2、权限管理3、报表统计、查询等4、数据库维护5、对客户机进行计费6、对客户机进行远程监控7、会员管理8、实时与服务器通信,进行数据的更新,及时对服务器作出的新策略进行响应9、交接班管理客户机:10、配合计费端完成计费功能11、实施服务器策略12、事件报告13、执行远程命令 辽宁科技大学本科生毕业设计(论文)第43页用户记录维护记录查询上网计时上网记录单上网用时表数据浏览打印处理图2.1业务流程图2.2.2传统网吧管理 辽宁科技大学本科生毕业设计(论文)第43页网吧是随人们生活中对计算机越来越需要而建立的,这类网吧大多存在于学校,公司,图书馆等大型公共场所,在网吧建立之初,没有网吧计费系统的情况下,网吧的管理完全人工化。逃费,人情上机,计费错误等情况不可避免地出现。也可以说是网吧现象中的一部分,这类情况给管理人员带来很大的麻烦,逃费和计费错误会给网吧管人员在财力带来损失或误会,人情上机会给管理人员带来生活中尴尬的烦恼。这类情况一再发生,就会在管理人员精神上带来越来越大的压力。上机用户有时也会因管理人员的失误带来不必要的麻烦。渐渐大家对网吧就会有一种厌恶感和恐惧感。同时,在人工长期使用,会形成大量的数据,这些数也会使得数据管理上的混乱。2.2.3系统优点综上所述,人工管理网吧实在存在很大的问题,而且浪费太多的人力,物力。计算机一点一丁的入侵人类的生活,计算机管理代替人工管理是不可避免的,像网吧管理这类不要求在管理上创新,机械般管理更加完美的前提下,我选择设计开发网吧计费系统,希望能改善网吧管理上的混乱情况,也避免了管理人员的工作麻烦。使用网吧计费系统优于人工管理在于:(1).管理人员的工作量。(2).计费准确无误。(3).避免人情上机的尴尬。(4).工作迅速快捷。2.2.4功能需求网吧计费系统的主要功能有:(1).服务端(包括操作员管理,用户信息管理,计算机信息管理)(2).客户端(用户使用计算机的所有情况)(3).系统数据的初始化,查询,修改,删除。2.3系统的设计原则根据系统的需求分析,计费系统属于网络,计算机使用费用,作息管理及数据库于一体的综合性系统,因而,网吧计费系统在总体设计时应遵循以下原则(1).系统的功能设计完善性,满足多方的使用需求。(2).系统应具有良好的稳定性,实用性,安全性。设计理念应是客户容易使用。(3).数据库结构设计合理,各类属性符合要求。 辽宁科技大学本科生毕业设计(论文)第43页2.4系统设计的思想(1).系统设计结构基于网吧计费系统的综合性,而且为了满足多方使用的需求,本系统以c/s的框架结构为基本结构模式:(如图2.2所示)图2.2系统结构图(2).系统实现技术系统实现所需开发环境Visual Basic.NET,它是下一代的Visual Basic。而并不是简单的在Visual Basic 6.0上在添加一些新特性而已,微软重新设计了产品以便使开发者能够更加容易的开发分布式应用,例如基于WEB的程序以及多层系统。Visual Basic.NET中有两种窗体包,Windows窗体以及Web窗体;一个新版的ADO用于接受离线数据源;新的语言,移走了原来的关键字,提高Type数据的安全性以及提供低级别结构以满足高级别开发者的需求。这些新的特性为Visual Basic开发者提供了新的开发窗口:通过Web窗体以及ADO.NET,你可以快速开发可扩展的Web站点;通过继承,该语言实现了真正的支持面向对象编程(object-oriented programming);Windows窗体本身支持可视继承;现在展开程序就像拷贝可执行文件和控件到另一个目录那样简单。 Visual Basic.NET现在完全集成在其它的Microsoft Visual Studio .NET语言中,不仅可以通过不同的语言开发组件,而且通过交叉语言继承,可以从用一种语言编写的类中派生用另一种语言编写的类。(3).系统的安全性 辽宁科技大学本科生毕业设计(论文)第43页为了使系统能够在使用的过程中,用户利益得到保障。在系统中应设计管理模块,根据不同的客户设定不同的权限,体现了追求系统人工智能化,保证了只有管理员才能对整个系统的完全控制。2.5系统功能描述对系统的功能进行分析,综合本系统设计的服务器端与客户端,总结整个系统功能模块,如图2.3所示图2.3系统功能模块图本系统要求对用户使用网吧计算机资源的整个过程进行有效的管理。客户端保证用户在登录系统前无法使用计算机。服务器端实现系统的各种功能,包括系统管理、用户、计算机信息的管理功能。服务器端的功能需求具体表述有:2.5.1操作员管理功能模块 辽宁科技大学本科生毕业设计(论文)第43页该模块主要提供操作员登录、操作员管理、修改密码和设置上机费用的功能。操作员管理具体包括添加、编辑和删除操作员,能够按模块的方式设置操作员不同的权限。(如图2.4所示)图2.4操作员管理模块图2.5.2用户管理功能模块该模块主要提供用户充值、添加、查询、修改和删除用户信息的功能。这里要区分不同的用户类型,按不同的用户类型设置上机费用。(如图2.5所示) 辽宁科技大学本科生毕业设计(论文)第43页图2.5用户信息管理模块图2.5.3计算机管理功能模块该模块主要提供添加、修改和删除计算机信息功能。这里不仅需要记录计算机本身的配置信息,还需要记录计算机的连接和使用情况。(如图2.6所示) 辽宁科技大学本科生毕业设计(论文)第43页图2.6计算机信息管理模块图2.6系统的类结构设计本系统代码结构分为前端界面和底层的类代码。前端界面包括服务器端的前界端面和客户端的前端界面,服务器端的前端界面面向操作员,客户端的前端界面面向计算机用户。底层代码包括ClsSuperUser类、ClsUser类、ClsComputer类、ClsFeeRules类、ClsDBOperation类、ClsServer类和ClsClient类。其中ClsDBOperation类负责对数据库进行一些基本的操作;ClsSuperUser类、ClsUser类、ClsComputer类分别负责数据库中管理员,用户和计算机信息的操作;ClsServer类和ClsClient类分别负责服务器和客户端的通信。2.7数据库设计 辽宁科技大学本科生毕业设计(论文)第43页数据库设计是信息管理系统中的一个基础工作,在整个开发工作中占有相发重要的份量。数据库的设计目的在于提供高的数据库存储效率,保证数据库的完整性和一致性。设计数据库系统时应先了解用户的各方面需求,包括现有系统的需求及将有可能增加的需求。用户的需求具体体现在各种信息的提供、保存、更新、和查询,这就要求数据库存结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,是系统设计的根本。基于计费系统的需求,通过业务流程和数据流程的分析,需设计以下数据表和数据字段。1.操作员信息表包括的数据字段有:操作员账号、密码、操作员真实姓名、用户模块、计算机模块、备注。其中关键字段是操作员的账号,具体如表2.1。表2.1操作员信息表字段名意义字段类型字段大小关键字UserName操作员账号文本6是Password密码文本10RealName操作员真实姓名文本10ModUser用户模块文本3ModComputer计算机模块文本3Memo备注备注设计完成后,保存信息为“tbSuperUser”,为了在程序中检验数据库存的合理性以及测试程序的效果,应在数据库中输入一些数据。2.用户信息表包括的数据字段有:用户名、密码、用户真实姓名、用户类型、账号余额、出生日期、联系电话、有效日期、证件类型、证件号码、住址、邮编、备注。其中用户名有关键字段,具体如表2.2。 辽宁科技大学本科生毕业设计(论文)第43页表2.2用户信息表字段名意义字段类型字段大小关键字UserName用户名文本6是Password密码文本10RealName用户真实姓名文本10Group用户类型文本3Fee账号余额数字单精度BirthDate出生日期日期Phone联系电话文本20ValidDate有效日期日期CreateCarDate创建日期日期CertificateType证件类型文本10CertificateNo证件号码文本20Address住址文本50PostCode邮编文本6Memo备注备注3.计算机信息表:包括的数据字段有:计算机名称,用户名、是否连接、IP地址、网吧编号、机位编号、配置、备注。其中计算机名称是关键字段,具体如表2.3。表2.3计算机信息表字段名意义字段类型字段大小关键字ComputerName计算机名称文本17是UserName用户名文本10Connected是否连接文本1IPAddressIP地址文本15RoomNo网吧编号文本2PositionNo机位编号文本3Config配置文本50 辽宁科技大学本科生毕业设计(论文)第43页设计完成后,保存信息为“tbCompter”,为了检验数据库设计的合理性及测试程序的效果,应先在数据库中输入一些数4.用户费用信息表:包括的数据字段有:用户名、登录时间,下机时间、本次上机时间、本次上机费用、计算机的房间编号+机位编号,具体如表2.4。表2.4用户费用信息表字段名意义字段类型字段大小关键字UserName用户名文本10是LoginTime登录时间日期10LogoffTime下机时间日期日期TotalHour本次上机时间数字单精度Fee本次上机费用数字单精度Computer计算机的房间编号+机位编号文本105.费率信息表:包括的数据字段有:用户类型和费率。用户费率可以经操作员定义,根据用户类型的不同,制定不同费率,具体如表2.5。表2.5用户费率信息表字段名意义字段类型字段大小关键字Group用户类型文本10是Amount费率数字单精度2.8系统E-R图定义系统E-R图,如图2.7 辽宁科技大学本科生毕业设计(论文)第43页用户费用操作员上机费用登陆时间用户名密码消费操作计算机名称用户名密码用户名操作用户计算机图2.7系统E-R图 辽宁科技大学本科生毕业设计(论文)第43页第3章通信过程与VB.NET中的通信类3.1通信过程网吧计费系统有异于其它信息管理系统,它的工作原理如图4.1所示,因此服务器端与客户端机器通信就必然会采用异步通信的方式,当客户端传入一个连接请求时,后台程序将接受该请求,同时实例化一个Socket对象负责与该客户端的Socket对象进行通信。如果程序没有退出,进入下一个侦听循环,则后台程序就实现了一点对多点的通信模式。图3.1后台程序工作流程图 辽宁科技大学本科生毕业设计(论文)第43页服务器端与客户端的具体通信过程如图4.2所示。具体工作流程先是客户端发出连接请求,正常情况,服务器端必定接受请求。客户端再发送一个连接信息,该信息包含客户端机器的一些信息,服务器端将接受该信息,并对其进行相应处理,再回发一个确认信息给客户端。这样就表现服务端与客户端已成功连接。此时,客户端发送登录信息,或在登录成功后,间期性发送连接信息,或在下机时发送注销信息,同时服务器端对这些信息进行相应处理,并反馈客户端。这就是一个完整的客户端与服务器端的通信过程。图3.2服务器端与客户端的完整通信过程图 辽宁科技大学本科生毕业设计(论文)第43页3.2VB.NET中的通信类TCP协议是TCP/IP协议簇中的传输层中的一个协议,也是TCP/IP协议簇最为重要的协议之一。TCP协议是一种面向连接的,并提供可靠的、完整的、安全的数据传送的网络协议。它提供可靠字节服务的协议。在网络中通过TCP协议传送数据之前,发送方和接收方之间必须建立连接,这种连接就是所谓的"握手"。网络中TCP应用,如同日常生活中的打电话,在通话之前,首先要拨号、震铃(犹如发送方向接收方提出TCP连接申请,并等待TCP连接申请通过)。直到对方拿起电话时(发送方和接收方的TCP连接已经建立),就可以通话了(传送数据)。本系统是基于TCP/IP协议网络数据传送的。在.NetFrameWorkSDK中提供了很多用以实现TCP协议或与之相关协议的类库,现介绍在系统设计中用到的5个类,即:TcpListener类、TcpClient类、NetworkStream类、StreamReader类和StreamWriter类。TcpListener主要用以侦听端口号,并接收远程主机的TCP连接申请;TcpClient主要用以提出TCP连接申请;NetworkStream类是实现TCP数据传输的基础数据流;StreamReader类的作用是通过操作NetworkStream,实现从网络接收数据;StreamWriter类的作用是通过操作NetworkStream,实现向网络传输数据。3.2.1TcpListener类在本系统设计中,TcpListener类设计在服务器端,主要作用是从TCP网络客户端侦听连接,TcpListener类基于Socket类,提供更高理念级别的TCP服务。可以使用TcpListener从TCP客户端侦听连接。像FTP和HTTP这样的应用层协议是在TcpListener类的基础上建立的。TcpListener类常用方法、属性及其说明,如表3.1、表3.2所示: 辽宁科技大学本科生毕业设计(论文)第43页表3.1TcpListener类常用方法及其说明表方法说明AcceptSocket接受挂起的连接请求AcceptTcpClient接受挂起的连接请求Pending确定是否有挂起的连接请求Start开始侦听网络请求Stop关闭侦听器表3.2TcpListener类常用属性及其说明表属性说明LocalEndpoint获取当前TcpListener的基础EndPointActive获取一个值,该值指示TcpListener是否正主动侦听客户端连接Server获取基础网络Socket3.2.2TcpClient类在本系统设计中,TcpClient类设计在客户端,主要为TCP网络服务提供客户端连接。TcpClient是类基于Socket类构建,它以更高的抽象程度提供TCP服务。TcpClient提供了通过网络连接、发送和接收数据的简单方法。TcpClient类常用方法、属性及其说明,如表3.3、表3.4所示:表3.3TcpClient类类常用方法及其说明表方法说明Close关闭TCP连接Connect使用指定的主机名和端口号将客户端连接到TCP主机GetStream返回用于发送和接收数据的流 辽宁科技大学本科生毕业设计(论文)第43页表3.4TcpClient类类常用属性及其说明表属性描述LingerState有关套接字逗留时间的信息NoDelay一个值,该值在发送或接收缓冲区未满时启用延迟ReceiveBufferSize接收缓冲区的大小ReceiveTimeoutTcpClient在启动后为接收数据而等待的时间长度SendBufferSize发送缓冲区的大小SendTimeout在您启动发送操作后TcpClient将为接收确认而等待的时间长度3.2.3NetworkStream类NetworkStream类主要是提供用于网络访问的基础数据流。它主要是网络数据传输的载体,并提供同步、异步方式来访问网络数据流。在vb.net程序设设计过程中,经常利用NetworkStream作为传送(StreamWriter类)和接收(StreamReader类)数据的载体。NetworkStream类常用方法、属性及其说明,如表3.5、表3.6所示:表3.5NetworkStream类中常用的方法及其说明表方法说明BeginRead开始异步读者基础数据流BeginWrite开始异步写入基础数据流Close关闭流并可选择关闭基础套接字EndRead结束异步读取EndWrite结束异步写入Flush刷新流中的数据Read从流中读取数据Seek将流的当前位置设置为给定值SetLength设置流的长度Write将数据写入流 辽宁科技大学本科生毕业设计(论文)第43页 (注:其中"BeginRead"、"EndRead"和"BeginWrite"、"EndWrite"是二对异步方法,起作用分别相当于"Read"和"Write"方法。)表3.6NetworkStream类中属性及其说明表属性说明CanRead获取当前流是否支持读取CanSeek获取流是否支持查找。该属性总是返回falseCanWrite获取当前流是否支持写入DataAvailable获取是否可以在流上读取数据Length流上可用数据的长度Position获取或设置流中的当前位置3.2.4StreamReader类StreamReader类能够实现对基础数据流的读操作,从而实现对经过基础数据流传送来的数据。StreamReader类常用方法、属性及其说明,如表3.7所示:表3.7StreamReader类中常用的方法及其说明表方法说明Close关闭StreamReader并释放与阅读器关联的所有系统资源DiscardBufferedData允许StreamReader丢弃其当前数据Peek返回下一个可用的字符,但不使用它Read读取输入流中的下一个字符或下一组字符ReadBlock从当前流中读取最大数量的字符并从索引开始将该数据写入缓冲区ReadLine从当前流中读取一行字符并将数据作为字符串返回ReadToEnd从流的当前位置到末尾读取流3.2.5StreamWriter类StreamWriter类能够实现对基础数据流的写操作,从而实现提供基础数据流来传送数据。StreamWriter类常用方法及其说明,如表3.8所示: 辽宁科技大学本科生毕业设计(论文)第43页表3.8StreamReader类中常用的方法及其说明表方法说明Close关闭当前的StreamWriter和基础流Flush清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流Write写入基础数据流WriteLine写入重载参数指定的某些数据,后跟行结束符 辽宁科技大学本科生毕业设计(论文)第43页第4章系统的实现创建系统数据库,服务器端程序和客户端程序后,就可以实现运行整个系统程序。4.1公共模块首先在服务器端程序的公共模块中添加以下代码,运行系统登录窗口:SubMain()Application.EnableVisualStyles()Application.DoEvents()Application.Run(NewFrmLogin)EndSub4.2服务器端的实现服务器端主界面分为4部分:主菜单、工具栏、广播消息面板和客户端显示板。主菜单可以对系统的操作员信息,用户信息和计算机信息进行管理;工具栏为用户提供了一些操作的快捷方式;广播消息可以向用户发送文本消息和关机等命令;客户端的连接情况则经显示面板显示。4.2.1服务器端登录进入系统,首先是登录界面,而登录功能是任何一个数据库信息管理系统不可少的模块,用户需要输入用户名,密码和附加码。如果该界面判断用户名、密码和附加码都正确有效,系统将会进入到主界面。如图4.1所示 辽宁科技大学本科生毕业设计(论文)第43页图4.1服务端登录图设计过程,系统首先需要判断输入附加验证码是否正确。利用附加码的目的是防止非法用户利用机器程序,这些附加码都是随机产生的,大大增加了系统的安全性,比如穷举破解密码方法在这一功能下行不通。工作流程图4.2所示图4.2登录流程图 辽宁科技大学本科生毕业设计(论文)第43页4.2.2修改密码修改用户密码是所用操作员都具有的功能,操作员在输入旧密码,以及重复输入新密码,就可能修改操作员密码。修改密码时,需要判断操作员的旧密码是否正确,并判断操作员两次输入的新密码是否一致,这就防止操作员输入错误密码,而将其添加到数据库。图4.3所示为修改密码工作流程图图4.3修改密码工作流程图4.2.3设置上机费率 辽宁科技大学本科生毕业设计(论文)第43页设置上机费率是超级用户特有的功能,可以根据不同的客户类型,设定不同的上机费率,在这里设计为临时用户、普通用户、银卡用户、金卡用户,不同类型的客户,不同上机费率也不同。具体操作:“操作员管理”→“设置上机费率”命令,弹出“设置上机费率”窗口。在这分别对临时用户、普通会员、银卡会员、金卡会员的上机费率进行设定。完成并保存到数据库。4.2.4锁定屏幕该功能是当操作员需要外出,系统不能关闭时,防止他人的非法操作系统。在使用该功能时,主窗体被隐藏,登录主窗体,要求输入用户密码。具体操作:“操作员管理”→“锁定屏幕”命令,程序的窗口将会被隐藏,弹出锁定屏幕的窗口,在这里输入密码,又可重返主窗口。4.2.5用户充值操作员在使用此功能时,先输入用户名,点击“读取”就可读取用户的真实姓名和余额信息,确认输入的用户是正确的,再输入本次充值的金额,“保存”更新用户账号上的余额信息。具体操作:“用户信息管理”→“用户充值”命令,将会弹出“用户充值窗口”,在这里可以对用户费用的读取、查询余额、本次充值。填写信息后按保存完成充值操作。4.2.6查询费用费用查询能让用户清楚详细知道费用使用情况,操作用在使用此功能时,必须确定用户名不为空,查询该用户相关的上机费用信息,然后返回一个数据表,并显示在界面中。具体操作:“用户信息管理”→“查询用户费用”命令,将弹出“查询费用窗口”,输入用户maomao,点确定,将会在界面的列表中显示该用户所有的费用记录,包括本次使用计算机,登录时间,下机时间信息。 辽宁科技大学本科生毕业设计(论文)第43页4.2.7添加用户信息操作过程:“用户信息管理”→“添加用户信息”命令,将弹出“添加用户信息”窗口,输入账号aa110,包括密码、用户类型、用户姓名、备注等信息,确认账号将示意当前账号在本系统的可用性。所有信息输入结束,点“确定”保存。操作过程需要输入用户的详细信息,输入完毕后,“确定”按钮可以将用户信息插入到数据库中,此功能主要是记录用户的详细信息。4.2.8修改用户信息、删除用户信息这两个模块在功能、操作方法上大致相同,操作员经过这两个功能模块可以即时对用户信息进行修改/删除,从而保证用户的各类需求或更正操作员之前的操作失误。使系统更加人工智能化。修改/删除用户信息功能都是按用户类型、按用户姓名或按用户账号方式修改/删除用户信息。具体操作如:“用户信息管理”→“修改用户信息/删除用户信息”命令,将会弹出相应窗口,超级用户可以修改/删除用户任意信息。如按用户类型修改/删除用户信息,是在窗体加载时,设置用户类型为第一选项,然后进入界面修改/删除其用户信息。4.2.9添加计算机信息添加计算机信息时,操作员需要输入计算名称、(MAC地址)、机位编号、网吧编号、计算机配置、备注等信息,在添加输入完毕后,点击“确定”可向数据库添加计算机信息。具体操作:“计算机信息管理”→“添加计算机信息”命令,将弹出“添加计算机信息”窗口,包括计算机名称、机位编号、网吧编号、计算机配置,所有信息输入结束,点“确定”保存。4.3客户端登录 辽宁科技大学本科生毕业设计(论文)第43页客户端是获取用户的用户名和密码的窗口,界面设计有:用户名、密码输入,四个控件:登录、下机、设置、退出。即时支持客户的工作,满足客户使用时各种需求。启动服务器端即可进入客户端,如图4.4所示,登录成功后,会显示登录成功信息,此时服务器端将会显示机器的使用情况。图4.4客户端登录图4.3.1登录在输入用户名、密码后,向服务器端发送连接请求的功能模块。在其登录成功后,客户端窗口最小化,并以托盘图标显示在窗口的右下角,当用户点击托盘时,需要重新显示客户端界面。客户端登录工作流程图如图4.5所示: 辽宁科技大学本科生毕业设计(论文)第43页图4.5客户端登录流程图4.3.2下机在用户使用完计算机,必须点击“下机”按钮,以结算本次上机所用的金额,代码如下:PrivateSubBtLogoff_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBtLogoff.ClickDimConnectMessageAsString=""ConnectMessage+="LOGOFF,"+TempClient.ComputerNameConnectMessage+=","+TempClient.ClientIPAddressConnectMessage+=","+Trim(Me.TxtUsername.Text)TempClient.SendData(ConnectMessage)Me.TxtPassword.Enabled=TrueMe.TxtUsername.Enabled=TrueEndSub 辽宁科技大学本科生毕业设计(论文)第43页4.3.3设置为了满足不同客户的需求,专门设定的一个功能。客户端启动以后,如需要设置服务器的IP地址,点击“设置”设置IP地址。4.3.4退出为临时用户设定的退出窗口,或其他用户不意查询余额时可直接点击使用。体现了系统的快捷性能。 辽宁科技大学本科生毕业设计(论文)第43页第5章总结与展望本文体现了一个系统的编程规范,文章内容涵盖了系统的需求、数据库的需求分析、系统设计、界面设计与及系统的最终实现。5.1网吧计费系统的开发技术特点整个网吧计费系统的开发有以下几个特点1.属于典型的三层系统代码结构;2.基于C/S(客户端/服务器)的通信结构;3.服务器端与客户端进行简单的通信协议;4.网路通信技术与数据库存技术综合开发。5.2系统的不足与前景本系统虽是C/S型网络结构,但因为数据库Access只能承受少量客户端,系统的访问量相对比较小,只能局限于网吧、图书馆等局域网中,这应有相应的解决方案,使其不断得到改进。在开发过程中,切身体会了利用VB.NET结合Socket对象模型开发数据库系统的高效和快捷,因此对将本系成功能更新更高效、通用性更强有了新的期待。 辽宁科技大学本科生毕业设计(论文)第43页结论在毕业设计的近三个多月的时间内,我根据设计要求,查阅了大量资料,了解了库存管理系统的基本流程,进行了需求分析、数据库设计、详细设计、测试等工作。通过这次毕业设计,对数据库开发和VisualBasic更深的理解,掌握了程序设计的一般技巧,同时培养了自己独立分析问题、解决问题和实际操作的能力。这次设计中我学到了很多的东西,明白了学习一种技术最快的方法就是在实际设计中的运用,书本上的东西不够直观。只有在使用中才能发现自己的弱点及不足。自己做出的东西印象也会更深刻。工程开发中,系统的分析是整个开发的核心,只有前期进行很好的分析、规划,才能做出好的软件产品,这个阶段要进行很好的策划,精密的分析。尤其是流程的设计,直接关系到系统功能和编码的成败。程序设计风格很重要。这在一个比较大的工程中,程序设计的风格非常重要,这影响到软件的测试以及后期功能扩展,在增量型的开发模型中,混乱的代码会使维护变的十分困难。在多人合作团队开发的时候,你的代码要影响到全局,所以会有“你的代码是写给别人看”的观点的存在。网吧管理系统虽已基本满足我所想要达到的功能要求,但是还不够完善,对系统的模块代码还存在一些不足之处,还有些功能需要改进。所以在今后的学习中还要不断地完善自己,争取做到最好。 辽宁科技大学本科生毕业设计(论文)第43页致谢随着毕业论文及教学过程的结束,我在辽宁科技大学的学习生活也将画上一个圆满的句号。在校园里的学习和生活将永远留在我的记忆当中。在这里我要向所有关心,教育我的老师,向朝夕相处的同学们表示由衷的感谢。本次毕业设计对我来说,所产生的影响还远远没有结束,我从本次毕业设计中学到了许多课本上没有的知识。从设计任务书的下达到今天基本实现任务书中的设计要求,在这几个月中。通过自己的学习和努力,通过各位老师的指导和教育,使我不仅仅在知识水平和解决实际问题的能力上有了很大的提高。还从思想的深处体会到,要把自己的所学变成现实的时候,所面对的却是种种难题。论文的顺利完成与老师们的悉心教导和同学们的热情帮助是密不可分的。毕业设计使我受益匪浅。在此我要特别感谢我的指导老师,老师不厌其烦的指导使我的论文得以顺利完成。感谢我所有的同学,感谢他们带给我的友谊和帮助。 辽宁科技大学本科生毕业设计(论文)第43页参考文献[1]周绪,管丽娜,白海波编著.SQLServer2000中文版[M].北京:清华大学出版社,2001.5[2]杭国英主编.VisualBasic程序设计[M].北京:北京机械工业出版社,2003.8[3]岂兴明,矫津毅,银华强编著.VisualBasic.NET项目开发宝典[M].北京:电子工业出版社,2007.1[4]陈语林编著.VisualBasic.NET程序设计教程[M].北京:中国水利水电出版社,2005.9[5]郝佳波等主编.VisualBasic.NET实用教程[M].陕西:西安电子科技大学出版社,2006.1[6]潘英,陈君等译.VisualBasic.NET专业项目实例开发[M].北京:中国水利水电出版社,2003.1[7]王栋主编.VisualBasic课程设计[M].北京:清华大学出版社,2004.4[8]萨师煊王珊编著.数据库系统概论[M].北京:高等教育出版社,2002.2[9]王千祥等译.实用软件体系结构[M].北京:电子工业出版社,2004.9[10]史济民,顾春华,李昌武苑荣编著.软件工程原理、方法与应用[M].北京:高等教育出版社,2002.12 辽宁科技大学本科生毕业设计(论文)第43页附录AUsingIBMRationalPerformanceTesterv6.1ToGenerateDynamicRequestsForperformancetestingWebapplications,youneedtheabilitytomakeyourrecordingsofinteractionswiththeseapplicationshighlydynamic.Thisin-deptharticleshowsyouhowtoworkwithdatapoolsanddatacorrelationinIBMRationalPerformanceTester.TestingtheperformanceofaWebapplicationisn"tasimplematterofrecordingascenarioandplayingitbacktosimulateanumberofdifferentusershittingtheapplication.ManymodernWebapplicationsandWebapplicationframeworksconstructpagescontainingcomplexURLsthatarebuiltdynamicallyandsocan"tberecordedstaticallyinatestscenario.Thismeansthatyoumustbeabletocreatetestscenariosthatareflexibleenoughtogeneraterequestsforanykindofclient/servercombinationregardlessofthecomplexityanddynamicnatureoftheserver"sresponse.WithIBM®Rational®PerformanceTester6.1,youcanmakerecordingsofinteractionswithWebapplicationshighlydynamicthroughtheuseofdatapoolsanddatacorrelation.Thisarticleshowsyouhow,afterwalkingyouthroughtheprocessofrecordingabasicscenariowithPerformanceTester.RecordingatestscenarioPerformanceTesterisbuiltontheEclipseframeworkandusestheunderlyingEclipseIDEfortheexecutionoftestscenariosthatarebasedontheexecutionofJava™code.WhenyouinstallIBMRationalPerformanceTester6.1,afullversionofEclipse3.0isalsoinstalled.IthappilycoexistswithotherinstallationsofEclipsethatmaybepresentonyourtestmachine.WhenyoufirststartPerformanceTester,you"representedwithastandardEclipsedisplaywithanewperspectivecalledTestandseveralnewviews,themostimportantofwhichistheTestNavigator,asshowninFigure1Allcomponentsofyourtestlivewithinthecontextofaperformancetestproject,whichyoucreatebyselectingFile>New>PerformanceTestProject.ThisisdifferentfromanEclipseproject.Thetestcomponentswon"tbeproperlyrecognizedunlessthey"recontainedin 辽宁科技大学本科生毕业设计(论文)第43页aperformancetestproject.Onceyou"vecreatedaperformancetestproject,youneedtodefineaperformancetest.Youcandothiseitherbyrecordinganinteractionwiththeserveryou"retestingorbycreatinganemptytestandbuildingitfromscratch.IfyouhaveaverysimplescenariowithasmallnumberofrelativelystaticURLsoraverydynamicscenariothatrequirescustomcodingofrequests,itmaymakesensetodothelatter.HereI"lldetailtheprocessofperformingarecordingsoyoucanseewhatafullypopulatedtestlookslike.Afteryoucreateaperformancetestproject,PerformanceTesterofferstostarttheHTTPrecordertorecordanewperformancetest.Youcaneitheraccepttheofferandrecordaperformancetestrightaway,ordoitlaterbyselectingFile>New>RecordPerformanceTestwhenyou"reready.AnoteaboutbrowsersandrecordingOnMicrosoft®Windows®machines,bydefault,PerformanceTesterusesInternetExplorer(IE)asthebrowserforrecording.ItautomaticallyconfigurestheproxysettingsofIEsothatHTTPrecordingoccurscorrectly.IfyouwanttouseabrowsersuchasMozillaorFirefox,youmusttellPerformanceTesternottouseIE.Fromthemenu,selectWindows>Preferences>Test>HTTPProxyRecorderandchangethe"Applicationtorecord"settingfromInternetExplorertoNone.(OnLinuxthedefaultisNone,sothisstepisunnecessaryonthatplatform.)YouthenneedtostartthebrowsermanuallyandsettheproxysettingscorrectlysothatitsendsinformationthroughtheIBMRationalAgentController.YoucanfinddetailedinstructionsonconfiguringaMozilla-basedbrowserintheproducthelpfileandcanadapttheseforanybrowser.OncethebrowserisconfiguredcorrectlyyoucanstarttherecordingfromPerformanceTester.Torecordaperformancetest,justtypeinyourinitialURLandinteractwiththeserverasneededtodefineyourscenario.Onceyou"vecompletedthis,closethebrowserthatyou"reworkingwith,andPerformanceTesterwillknowthatyou"vefinishedwithyourrecordingandwillcreatetheperformancetest.Figure2showsanexampleofaperformancetestdefinedbybrowsingasiterunning 辽宁科技大学本科生毕业设计(论文)第43页IBM®WebSphere®Portal5.1:Figure2.AnexampleperformancetestdefinitionThetestiscontainedwithintheproject,asyoucanseeintheTestNavigatorview.Withintheperformancetestaretheindividualstepsofthescenario,whichyoucanseeintheTestContentspaneoftheexpandedperformancetest.Eachhigh-levelstepislabeledwiththenameofthereturnedpage(IBMWebSpherePortal,IBMWebSpherePortal{1},andsoforth).Ifyouweretoexpandahigh-levelstep,youwouldseetheindividualHTTPrequeststhatcomprisetheWebpage,theinitialonebeingtheURLissuedfromtheclientandtherestbeingimageandJavaScript™programminglanguagerequeststhattheclientissuestocompleteconstructionoftherequestedpage.Duringrecordingoftheperformancetest,thespecificURLsandrequestparametersissuedbytheclientarerecordedaswell.Butwhenyouplaybacktheperformancetesttogenerateloadwithmanysimulatedusers,youmaynotwantthesameURLsandrequestparametersplayedback.Forinstance,you"llprobablywanttopluginadifferentusernameandpasswordforeachuniqueuserloggingintothesystem,orsomeuser-specificparametersuchassessionidentifierorproductID.Toprovidevalueslikethis,youcreateatestcomponentcalledadatapool.Adatapoolisatableofvaluestobesubstitutedforanexplicitstringparameterinarequest.Table1isanexampleofadatapool;thisoneprovidesusernameandpasswordvaluesandisnamed"users."Youcancreateasmanydatapoolsasyouwantwithinaparticularperformancetestproject.Youthenassociatetheentriesinadatapoolwithspecificpartsofarequest.Table1.AnexampledatapoolThecontentofadatapoolisimportedfromaCSV-formattedtextfileinthefilesystem.CSV(comma-separatedvalue)filescanbecreatedwithastandardtexteditororsavedinCSVformatfrommostspreadsheetprograms.Tocreateadatapool,right-clicktheprojectandselectNew>Datapool,givethedatapoolaname,andspecifytheCSVfiletobeimported.Afilewiththedatapoolnameandtheextension.datapooliscreatedintheproject;theoriginal 辽宁科技大学本科生毕业设计(论文)第43页CSVfileisnolongerneeded.Onceyou"vecreatedadatapool,youmustassociateitwithatestbeforethecontentofthedatapoolcanbeusedtoreplacetextinarequest.Todothis,openthetestyouwanttousethedatapoolinbydouble-clickingitintheTestNavigatororright-clickingitintheTestNavigatorandselectingOpen.Insidetheopentest,clicktheAddbuttonandselectDatapool.Intheresultingdialog,selectthedatapoolyouwant(thefilewiththe.datapoolextension,nottheCSVfile). 辽宁科技大学本科生毕业设计(论文)第43页附录B使用IBMRationalPerformanceTesterv6.1来产生动态需求对于测试Web应用的性能,您需要使您的测试记录有能够与这些应用软件高度动态交互的能力。这篇深入的文章向您展示了在IBMRationalPerformanceTester中如何从事数据池和数据关联的工作。测试一个Web应用程序的性能不是简单的记录情节并回放它来模拟众多不同的使用者点击这个应用程序。许多现代Web应用程序和Web应用构架建立了能够动态建立的包含复杂URL的页;因此他们不能在一个测试场景中被静态的记录。这意味着您必须能够创建一个灵活的测试场景足以产生适应任何种类的客户/服务器需求的结合,不论服务器的响应具有怎样的复杂性和动态特性。在IBM®Rational®PerformanceTester6.1的帮助下,您能够通过使用数据池和数据关联来记录与高动态性Web应用程序之间的交互。这篇文章向您展示了如何通过PerformanceTester在导航Web应用时记录基本的测试场景记录一个测试场景PerformanceTester是建立在Eclipseframework基础上的,使用基本EclipseIDE去性能测试情景,测试的执行是基于执行Java代码的。当您安装了IBMRationalPerformanceTester6.1后,一个完整的Eclipse3.0也被安装好了。它同其它可能出现在您的测试机上的Eclipse的安装程序能够愉快的共存。当您第一次启动PerformanceTester时,您将看到在一个新的称为Test的透视图和几个新视图的一个标准的Eclipse显示,这里最重要的是TestNavigator视图。你的测试的所有部件都包含在性能测试项目的环境中,你能够通过选择File>New>PerformanceTestProject来创建性能测试项目。这与一个Eclipse项目不同。如果这些测试组成部件不会不被包含在一个性能测试项目中,它们将无法被识别。 辽宁科技大学本科生毕业设计(论文)第43页一旦创建一个性能测试项目,您就需要定义一个性能测试。您可以通过记录与您测试的服务器之间的交互或是创建一个空的测试并通过手工添加测试元素来构建它。如果您有一个有少量相关静态URL或是需要自定义请求码的简单的动态场景,完成后一个将更加有意义。这里,我将详细阐述执行一个记录的过程,这样您可以看清一个完整的测试是什么样子的。在创建了一个性能测试项目后,PerformanceTester启动HTTP记录器去记录新的性能测试。您可以接受请求并且立即记录一个性能测试,或是通过选择File>New>RecordPerformanceTest稍后再执行。关于浏览器和记录的一个注意在Microsoft®Windows®的机器上,默认时,PerformanceTester使用InternetExplorer(IE)来做为记录的浏览器。它自动的配置IE的代理设置使得HTTP记录能够正确产生。如果您想要使用Mozilla或是Firefox浏览器,您必须告知PerformanceTester不要使用IE。通过菜单,选择Windows>Preferences>Test>HTTPProxyRecorder并将"Applicationtorecord"设置从InternetExplorer改为None。(在Linux操作系统中,默认为空,因此这一步在该平台上不需要做。)接下来,您需要手动启动浏览器并且正确设置代理配置,这样它才能通过IBMRationalAgentController发送信息。您可以在产品帮助文件中找到关于配置一个基于Mozilla浏览器的详细说明并为任何浏览器进行改变。一旦浏览器被正确的配置了,您可以从PerformanceTester中启动记录。要记录一个性能测试,只需要在您的初始URL中输入URL并与服务器进行必要的交互确定您的场景。一旦您完成了这些,关闭您工作的浏览器,这时PerformanceTester将知道您已经完成了您的记录,并将创建性能测试。这个测试包含在项目里,正如您在TestNavigator视图中看到的一样。在性能测试中场景有单独的步骤,您可以在TestContents的区域中看到展开的测试元素。每个高级别的步骤都用返回页的名称(IBMWebSpherePortal,IBMWebSpherePortal{1}等等)来标注。如果您展开一个高级别的步骤,您将会看到这个步骤包所含网页的单独的HTTP请求,初始的一个是从客户端流出的URL,其余的是由客户端发起的用来完成建建请求页的图像和JavaScript™程序语言的请求。使用数据池 辽宁科技大学本科生毕业设计(论文)第43页在记录性能测试期间,客户端发起的具体URL和请求参数也同时被记录。但是当您回放性能测试来模拟用户去产生装载时,您可能不希望使用相同的URL和请求参数来回放。例如,您可能需要将每个不同的登陆用户的用户名称和密码插入到系统日志中,或是一些用户特定的参数,例如会议标示服或是产品ID。为了提供这样的值,您可以创建一个被称为数据池的测试元素。一个数据池是能够代替请求中字符串参数值的一个数值表。表1是数据池的一个例子;它提供了用户名和密码值并命名为"users"。您可以在一个特定的性能测试项目中创建任意多个数据池。然后,将数据池的入口同请求的具体部分结合起来即可。一个数据池的内容可以从文件系统中的CSV格式的文件导入。CSV(comma-separatedvalue)文件可以用标准的文本编辑来创建,或是用大多数电子数据表程序来保存成CSV格式的文件。为了创建一个数据池,右键点击项目并选择New>Datapool,为数据池起一个名字,并制定要导入的CSV文件。一个数据池名称加上扩展名.datapool的文件在项目中被创建了;不再需要原始的CSV文件了。创建好一个数据池后,您必须在数据池的内容可以被用作替代请求中的文本之前将它和测试联合在一起。操作这步,通过在TestNavigator中双击或在TestNavigator中右键点击并选择Open来打开您想要使用数据池的测试。在打开测试中,点击Add按钮并选择Datapool。在结果对话框中,选择您想要的数据池(扩展名为.datapool的文件,而不是CSV文件)。 辽宁科技大学本科生毕业设计(论文)第43页'