数据采集系统开发设计—毕业设计论文.doc

上传人:仙人指路1688 文档编号:3944512 上传时间:2023-03-28 格式:DOC 页数:47 大小:489.50KB
返回 下载 相关 举报
数据采集系统开发设计—毕业设计论文.doc_第1页
第1页 / 共47页
数据采集系统开发设计—毕业设计论文.doc_第2页
第2页 / 共47页
数据采集系统开发设计—毕业设计论文.doc_第3页
第3页 / 共47页
数据采集系统开发设计—毕业设计论文.doc_第4页
第4页 / 共47页
数据采集系统开发设计—毕业设计论文.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《数据采集系统开发设计—毕业设计论文.doc》由会员分享,可在线阅读,更多相关《数据采集系统开发设计—毕业设计论文.doc(47页珍藏版)》请在三一办公上搜索。

1、数据采集系统开发信息与管理科学学院计算机科学与技术专业摘要:近年来,农业信息化技术迅速发展,为农业可持续发展带来了重大突破。目前,我国农业信息化技术研究主要集中在数据库与信息管理系统、专家系统、决策支持系统、地理信息系统等方面,这些农业信息系统都需要大量实时,有效数据的支持。如决策系统必需根据采集到的客户数据才能做出决策并不断的自学习。因此数据采集是各种农业信息系统的不可缺少的组成部分。本论文就是围绕着数据采集系统服务器端的开发展开论述的。首先介绍了数据采集系统在农业中的需求;其次针对此系统的开发工具及系统模式的选择做了深入的讨论;然后针对所选的工具结合系统编码深入讨论开发中所用的知识点;最后

2、对此次开发做了详细的总结并致谢。关键词: 套接字;C/S;MFC;VC+6.0The Data Collection System DevelopmentAbstract: In recent years, the information technique application to agriculture is developed rapidly, has brought the great breakthrough to agricultural continuable development. At present, the research of IT application to

3、 agriculture of our country mainly concentrate in such aspects as database, information management system, expert system, DSS, geographical information system. These agricultural information systems all need a large number of real-timely, the support of the effective data. For example: Decision syst

4、em could make decision and learning by oneself constant according to customer data got to gather. So the data are gathered it is indispensable components of different agricultural information systems.This thesis was launched describing around the development of the server end of the data collecting

5、system. Have introduced the demand of the data collecting system in agriculture at first; Secondly has done the deep discussion to the developing instrument of this system and choice of the system mode; Direct against tool selected combine systematic code discuss the knowledge used is ordered develo

6、p, thoroughly; Made detailed summary to this development and express thankfulness finally.Keywords: Socket;C/S;MFC;VC+6.01 引言1.1 开发背景随着国家各项农业政策的颁布,科技兴农已经成为现代农业发展聚集的一个焦点;对于按照旧的方法去改良农业已经变得得不偿失,与此同时计算机技术在农业上的应用为农业可持续发展带来了重大突破。目前,我国农业信息化技术研究主要集中在数据库与信息管理系统,专家系统,决策支持系统,地理信息系统等技术,这些农业信息系统基本上都需要大量实时,有效数据的支

7、持。如决策系统必需采集到客户的数据才能根据数据做出决策并不断的自学习。因此数据采集是各种农业信息系统的不可缺少的组成部分。 设计该系统的目的就是为了实现对客户数据的收集并根据上层推理机做出决策反馈给客户以解觉在农业生产中所遇到的各种问题。作为服务器端的此系统还包括对土壤的采集与分析(包括土壤含水量,土壤肥质等)。因此本系统就要完成以下三个基本任务:与客户端通讯、与土壤分析仪的连接以及与推理机的通讯。考虑到整体系统的易用与强大有效的功能,我们把系统做了如下的划分:数据采集系统服务器端、推理机、土壤分析仪、客户端手持设备。考虑到系统的服务器端、推理机需要承担比较大的工作量,所以我们决定把服务器端和

8、推理机均分布到强大并且成熟的Windows2003上;考虑到系统的易用及方便性,我们把客户端制作成一个无线手持设备,它可以方便的供用户使用;考虑到土壤分析仪的户外工作方式,我们也把它作为一个分支从系统中分离开来,并可以和系统完成连接。我所实现的就是服务器端这一个模块,它像计算机主板一样在整个系统起到了插座式的作用。本系统解决了在现代农业信息技术研究中由于数据缺乏而造成农业信息化不能彻底落实的问题,此系统为农业决策、生产管理等提供有效支持,并有效的解觉农业生产中所遇到的各种问题。1.2 数据采集系统简介本论文的主题是数据采集系统的开发,那么什么是数据采集系统呢?针对各种数据采集系统我们怎么选择呢

9、?下面将做简要的介绍:1.2.1 什么是数据采集系统?数据采集系统,是一种具有实验室或现场进行实时数据采集、自动存储记录、信号预处理、即时显示、即时状态分析、自动传输等功能的自动化设备;是一种用来采集信息成文件或分析一些现象的产品或过程。在最简单的形式中,技术人员将烤箱的温度记录在一张纸上就是数据采集。随着技术的发展,通过电子设备,这个过程已经得到简化和变得比较精确、多用途和可靠。设备从简单的存储器发展到复杂的电脑系统。数据采集产品像聚焦点一样为系统服务,和一系列产品一起,诸如传感器显示温度、水流、程度或者过程。1.2.2 数据采集的发展史数据采集技术在过去30到40年以来已经取得了很大的飞跃

10、。举例来说,在 40 年以前,在一个著名的学院实验室中,为追踪用青铜做的坩埚中的温度上升情况的装置是由热电偶、继电器、查询台、一捆纸和一支铅笔。今天的数据采集很可能在PC机上自动处理和分析数据,有很多种可供你选择的方法去采集数据。至于选择哪一种方法取决于多种因素,包括任务的复杂度、你所需要的速度和精度、你想要的证据资料等等。无论是简单的还是复杂的,数据采集系统都能够运行并发挥它的作用。随着软件的飞速发展数据采集系统又有了进一步的发展,数据采集系统开始采用软件发展的模式,发展为划分系统模块,对数据采集系统的功能进行划分。把数据的采集功能模块和数据处理模块划分开来,数据采集系统开始有了非常快的发展

11、。在近阶段数据采集系统又有了新的发展模式,把系统划分为三个主要的功能模块,利用系统的便宜性,把数据采集系统集成到嵌入式系统中,然后利用计算机的高效性处理数据采集所采集到的数据,并把处理的数据返回给客户端。1.2.3 数据采集系统的选择没有哪一种数据采集系统能够适应所有情况。回答下列各问题,可能帮助你决定选哪一种数据采集系统最适合你的实际情况:1系统跟我的应用匹配吗?我是选择一个纯单片机的系统还是选择一个单片机与计算机结合的? 2它的成本是多少?包括开发成本与硬件成本,比如:我是用SQL SERVER还是用Oracle?我是用Windows平台还是选择Unix平台?3它有多容易使用?一般的操作员

12、可以使用它吗?对于它的使用还需要额外的培训吗?针对以上的情况与开发此系统的需求,我采用手持设备与计算机相结合的开发方法。采用易用的Windows平台。1.2.4 未来的展望随着无线通信及Web技术的发展,数据采集系统与无线通信及Web技术的结合实现了集控制、管理、信息、网络于一体的自动化系统,已成为各个行业不可或缺的一部分;随着人工智能的发展、专家系统的出现,数据采集系统会在各个行业起到更大的作用。2 开发工具及系统模式的选择2.1 B/S与C/S及智能客户端简介及比较2.1.1 C/S应用程序简介 服务器具有数据采集、控制和与客户机进行通信的功能,服务器程序负责有效地管理系统资源;客户端则包

13、括与服务器通信和用户界面模块。这种模式我们称之为“瘦服务器/肥客户机”的模式1。主要优点: (1)客户机具有数据处理能力,可以减轻服务器的负担,能充分发挥客户端的硬件资源。 (2)交互性强、提供更安全的存取模式、降低网络通信量,通信的可靠性比较高。 (3)数据安全性高,只有通过客户端的合法访问才能有效的获得有效的数据。 (4)由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快,这就使得C/S模式更利于处理大量数据。 它有以下缺点: (1) 安装难。除了要安装服务器软件外,对每台客户机都要安装客户软件的一份拷贝。 (2) 维护难。由于共享的企业逻辑在每个客户端都有

14、一个副本,使得管理、维修费用高、难度大、工作繁杂。 (3).升级难。由于应用系统的企业逻辑写在客户端的应用程序中,所以当系统需要改变时,所有客户端的应用程序都必须改变,使得数据库系统的开发维护成本提高。 (4).平台有关性。数据必须在客户端或服务器上才能访问,带来不便。2.1.2 B/S应用程序简介B/S模式是一种以Web技术为基础的新型的MIS系统平台模式1。是一个三层结构的客户服务器体系。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件。第二层Web服务器将启动相应的进程来响应客户的请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。第三

15、层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQL请求,管理数据库。总之,该结构由客户端浏览器、WEB服务器和数据库服务器三部分组成。其主要优点: (1) 具有较高的灵活性和易用性,主要的开发和维护集中在服务器。 (2) 客户端只需安装浏览器,操作简单,可发布动态和静态信息。 (3) 通过公共接口(ODBC或ADO)能很好地与数据库结合,提供大量的动态数据,并可通过代理服务器技术发布内外信息。 (4) 系统升级方便。 (5) 维护成本低。 但B/S也具有自己的局限性主要体现在如下几个方面: (1) 客户端数据处理能力差,服务器的负担重,不利于大量数据的处理。 (2)

16、稳定性不好。由于在客户端把控制权交给了IE,所以有许多错误不可预知。 (3) 有一些数据的传输是明码的,没有真正的完全编译。所以速度与效率上都有所欠缺。 (4) 网络数据交换频繁,数据流量大,通信的可靠性相对来说比较差。因此效率较低。 2.1.3 智能客户端应用程序简介经过设计,智能客户端应用程序将C/S结构应用程序的优点与B/S结构应用程序的部署和易管理性的优点结合起来,尽管这两种方法之间的平衡的准确性质取决于确切的情况。 智能客户端应用程序通常具有形形色色的要求,因此在设计和实现方面会有极大的差异。但是,所有智能客户端都具有下列部分或全部特征: *利用本地资 *利用网络资源 *支持偶尔连接

17、的用户 *提供智能安装和更新 *提供客户端设备灵活性许多应用程序不需要具有上述所有特征。当您设计您的智能客户端时,将需要仔细考虑您的应用程序方案,并且决定您的智能客户端应用程序要求具备上述哪些特征。要将上述所有特征合并到您的应用程序中,将需要进行非常认真的计划和设计,并且在很多情况下您将需要大量的实现资源。 2.1.4 对系统结构的选择基于以上三者的比较,我对本数据采集系统的服务器端采取C/S结构与智能客户端的折中方式,我们的系统采取了C/S架构,并且提供了系统升级的功能。2.2 VC+6.0与.NET及Java简介及比较谈论起现在比较流行的开发工具大家肯定都不陌生,针对底层的开发TC环境还是

18、作为首选工具,如果开发一个基于Windows平台的服务器端呢?必需要有友好的GUI界面是肯定的了,作为服务器端执行效率也一定要高,另外还要能和数据库SQL SERVER交互。针对这些要求,我首先介绍一下现代流行的几种工具:2.2.1 VC+6.0 我使用这个工具有接近两年的历史,它给我的印象就是小巧、易用、生成的可执行文件效率非常的高。作为系统开发工具的它,它设计的非常的细,能很好的和底层通信,特别在处理消息时更是独树一帜,除了Delphi外再也没有能和它相比美的了。2.2.2 .NET与Java谈起这两个工具,在设计风格上基本上是类似的,它们似乎是为了共同的目的而开发的工具,平台移植性、In

19、telligence2、集成非常多易用的类库等。它们的最大特点:易于RAD开发,易于平台移植。缺点:效率比较低2.2.3 开发工具的选择:基于以上的比较,VC6.0以它的高效性、对系统底层API函数的很好封装、从C+继承来的面向对象的优势3,4,无疑成为非常好的Windows平台上的开发语言,很显然VC6.0能更好的胜任此数据采集系统服务器端的开发。3 需求及可行性分析3.1需求分析正如在引言中所述,一个好的数据采集系统对现代农业发展起着至关重要的作用;传统形式的把数据采集和处理集成到一个单片机上的数据采集系统已经不能满足现代农业发展的需要。而我所开发的数据采集系统正是抛弃了旧的模式、运用新技

20、术、集计算机、手持设备、土壤分析设备为一体的数据采集系统;它能很好的满足现代农业发展的需求。下面我简要的介绍一下本系统要实现的功能、及特点:1:高效的数据处理2:方便易用的用户界面3:缜密的数据推理帮助你解决所遇到的各种问题4:很好的系统兼容性,适用于Windows基于NT所有平台5:很好的系统交互性3.2可行性分析针对以上的功能需求5,我对本系统开发所需作一个简要的介绍;在技术方面:此系统主要用到如下几种技术:1:数据库2:Socket通讯编程6, 133:组件交互4:基于GUI的编程对于数据库的选择上,我选择了SQL SERVER 2000。它非常的易用,并且能很好的和微软件的编程工具集整

21、合到一块7。对于网络编程上我采用了Winsock 2.0实现网络的通讯,可以很好的和各种基于TCP/IP8的通信软件通讯。对于实现GUI界面的编程,及组件的交互,我选择了使用VC+6.0,它的可视化开发环境及对组件完整的封装能很好的胜任此需求。4 系统规划4.1项目规划为了完成用户需求,便于用户使用,此软件必须具有良好的人机界面,使用户能很好的上手。本软件是专用于数据采集、通信、和推理机交互等功能于一体的软件。为了适合以后系统的可扩展性提供系统更新的要求,本软件必须从分析、设计到具体编程,全部采用面向对象的方法,融合了最新的计算机编程技术,在满足严格的可靠性实时性的基础上,完成系统可扩展性、可

22、用性、可维护性。因此,本软件必需要出于设计成一个非常合格的数据采集系统的目的出发来规划。本软件具有以下几个主要模块:界面美化公共模块此模块是专业用于为各个对话框做系统的美化而设计的,所以要以动态链接文件的形式出现,程序初始化必须载入此模块。服务器通信模块此模块是对CSOCKET 类的更好的封装,以适合与无线设备完成通信的功能。模拟客户端通讯模块此模块用于设计一个测试的客户端的通信部分。数据库交互模块本模块完成与SQL SERVER的交互。主界面及配置模块完成简单的系统配置、主界面显示。以下对各个模块作详细规划:4.2 公共模块为了美化系统的界面,特意使用了美化对话框模块,本模块可以读取皮肤文件

23、,并把所读到的皮肤应用到系统中,让软件看起来十分的美观。本模块是由公共的动态链接库SkinMagicTrial.dll实现的,此动态连接库使用起来非常的简单,留有几个主要的接口:InitSkinMagicLib接口用于初始化美化界面模块;LoadSkinFromResource接口是用于从资源中读取皮肤,以便用此皮肤美化界面;ExitSkinMagicLib接口是用于在系统退出时释放所占用的皮肤资源。4.3 服务器通讯模块此模块实现了基本的基于TCP通信的服务器端,并封装了CSOCKET类,使通信接口非常的方便使用,并能很好的兼容用各种语言、各种方式实现的基于TCP的通信;并且本模块加入了出错

24、处理功能;并且提供的有IP地址与域名之间的DNS解析功能,使系统不论填入IP地址还是填入域名都能很好的运行;本模块采取了留出通信端口让用户实现,以防止系统的端口和其它软件的端口冲突;本模块负责着整个系统与客户端的交互工作。从根本上说,本模块是本系统的其中的一个核心模块; 4.4 模拟客户端通讯模块由于无线手持设备的开发和服务器端的开发同步进行的,为了预防系统开发中出现不可预料的错误,本系统自制了一个模拟客户端和服务器端通信。此客户端类似于服务器端,它实现了基于TCP的客户通信功能。4.5 数据库交互模块本模块提供了系统和SQL SERVER2000 交互的能力,它对Crecordset类进行了

25、封装,实现类型安全的访问数据库。它利用CRECORDSET的游标机制,不但可以正向访问数据库,并且还提供逆向的访问数据库,能高效的实现数据库访问。并且还提供了直接的SQL访问数据库的接口,能够创建表、向表中写入数据,以满足系统记录从客户采集来的数据的需要。4.6主界面模块本模块主要利用了MFC中的类Cdialog,并利用MFC中友好的界面工具,提供了方便、宜用的主操作界面比如:我们对IP地址输入栏使用了IP地址输入控件,利用此控件每输入3位IP节点后会自动的跳到下一个节点;本模块整合了各个系统模块、提供了实现各个模块的交互以完成系统所需的功能;本模块调度了系统美化模块,使本系统的界面具有特别美

26、观的各种效果鼠标悬停、文字渐变色等效果。总之,本模块是我的这个数据采集系统的总插槽,在系统设计中起着非常重要的作用。4.7 配置模块本模块提供了系统的配置,实现了系统端口的配置、系统图标的更换、系统是否开机启动、系统是否前端显示、系统密码、系统更新的方式等功能。本模块的配置是通过INI文件来记录的,它通过一个专门封装的类CiniFile来写入或读取INI文件的。当系统启动时本模块被系统加载,系统和本模块进行交互利用本模块读取配置文件图1 系统工作流程5 系统设计与实现5.1主界面模块的设计与实现5.1.1系统工作流程设计与实现工作流程如图1所示:系统启动实例化系统资源-调用ini文件设置系统-

27、启动服务-调用网络模块-等待客户连接-接受连接请求-调用数据库模块-和客户交互-退出系统启动过程关键点解释:1:每个运行于Windows上的系统都要在启动时实例资源,开启消息循环2:启动服务后的消息队列指的是网络服务的消息循环。3:客户端交互是一个多线程的过程,系统会一直监听并和连接客户交互5.1.2 主界面图及模块类图函数解释图2 主界面界面操作介绍:1: 服务器IP框允许你自己指定本机的IP地址,系统启动后会自动搜索本机的IP并把IP填写到这个IP框,你可以通过更改设置来改变。2: 端口则是供你指定通信所占用的端口号。3: “更改设置”按钮用于调度设置更改对话框。4:退出按钮供退出本程序方

28、便的需要。5:消息显示框可供管理员查看本系统和客户端交互的过程。6: 开机启动指Windows运行后本系统是否自动运行7:前端显示指系统是否显示在所有Windows窗口的最上面8:系统钩子指是否启用进程保护9:退出密码指系统退出时是否需要密码10:壮态栏指示的系统的运行壮态发送消息、客户连接等。图3 类Cexample2_ChatRoomDlg的类图主界面类图9函数解释:1:OnStartSev函数负责与通信模块,和系统配置模块及数据库读取模块交互,它负责通过检查系统配置中的端口号及IP地址等,然后把这些信息传输给通信模块,并启动服务器端。2:OnOption函数负责和系统配置模块交互,它启动

29、系统配置模块。然后从数据库中读取数据,以留作传给客户端用。3:ReadMyFile函数用于读取系统配置文件。4:OnSetPassWord函数用于设置系统密码。5.1.3主控模块关键代码的实现:/访问数据库模块,并对它做初始化g_crop.Open(_T(arg);g_domain.Open();/让它循环一遍,以得到总共有多少条记录,目的是设置/动态数组的大小,以记录发送数据的ID号while(!g_domain.IsEOF() g_domain.MoveNext();g_domain.MoveFirst();for(UINT i = 1; !g_domain.IsEOF(); i+)CSt

30、ring strID; /返回给用户信息在数据库中的编号CString strNum; /返回给用户信息的编号strNum.Format(%u, i);strID.Format(%d,g_domain.m_id);strID.Insert(0, g_strFlag);strID.Insert(strID.GetLength(), g_strFlag);g_strDisMessage+= ( + strNum + ) + + g_domain.m_leibie + rn;g_domain.MoveNext();g_strDisFirstTab = g_strDisMessage;g_strBac

31、kData.Insert(0, r1);g_strBackData.Insert(g_strBackData.GetLength(), n);m_strWelcomInfo = g_strBackData;if(!m_bInit)m_bClient=false;m_bInit=true;if(m_pListenSocket.Init(GetDlgItemInt(IDC_PORT),this)=FALSE)m_bInit=false;m_bar.SetText( 服务开启失败, 0, 0);return;m_bar.SetText( 正在监听, 0, 0);m_conPort.EnableWin

32、dow(false);/把窗口最小化到托盘状态ToTray();5.2服务器模块及模拟客户端模块的设计5.2.1通信模块缩略类图及函数解释图4 类CserverSocket的类图通信模块类图函数解释:Init函数用于初始化Socket并启动监视Oaccept用于接受客户端传来的连接GetIpAddress函数用于获取主机的IP地址GetLocalHostName函数用于获取主机的机器名SendMessageA用于发送消息OnReceive用于接收消息ErrorReason用于错误处理图5 类CClientSocket的类图5.2.2通信模块关键代码说明:启动Socket并监听函数的实现BOOL

33、 CServerSocket:Init(UINT port, CExample2_ChatRoomDlg* dlg)m_uPort=port;m_dlg=dlg;if(Create(m_uPort)=FALSE)AfxMessageBox(Server Socket Create Error);return FALSE;if(this-Listen()=FALSE)AfxMessageBox(Server Listen Error);return FALSE;m_dlg-SetDlgItemText(IDC_SHOWTEXT,开启服务成功!);return TRUE;接受客户连接代码的实现:v

34、oid CServerSocket:OnAccept(int nErrorCode) m_dlg-ProcessPendingAccept();CSocket:OnAccept(nErrorCode);发送消息代码的实现:BOOL CClientSocket:SendMessage(CMessg * msg)if (m_aSessionOut != NULL)msg-Serialize(*m_aSessionOut);m_aSessionOut-Flush();return TRUE;else/对方关闭了连接m_bClose=true;CloseSocket();m_dlg-CloseSess

35、ionSocket();return FALSE;5.3 数据库交互模块的设计与实现数据库模块类图函数,如图6所示。此类是从CrecordSet派生出的,它的作用类似于ADO.NET中DataReader类,但它又不同于DataReader类,因为它支持游标的双向移动。同时它也比较类似于DataSet类,此类对数据库进行了强类型化操作,以便于类型安全的访问数据库中的数据。 图6 类CDomainSet的类图CdomainSet 此类的构造函数DoFieldExchange 支持数据交换操作的函数GetDefaultSQL 函数返回给父类Crecordset打开默认的表GetDefaultCon

36、nect函数用于获取默认的数据集图7 设置界面功能说明: 1:系统图标设置2:系统的前端显示设置3:系统升级设置4:开机启动系统设置5:系统密码设置6:网络端口设置7:进程保护及系统优先级设置图8 类CsetSystem的类图图9 类CselfRun的类图类图8及类图9的解释:CsetSystem类是用于设置系统的主要类。CselfRun类是用于设置系统开机自动运行。类CselfRun的SetAutoRun函数负责开机自动运行图10 类CnetSet的类图图11 类CsetPassword的类图系统模块主要函数解释:CNetSet类用于系统的更新:此类是为了以后系统的扩展,进行系统更新用的,它

37、支持按周、按月、按日三种更新方式。CsetPassword类主要用于设备系统密码:此类根据从配置文件读取的内容和配置文件进行数据的交换。它负责建立起配置文件类与设置密码界面之间的桥梁。函数说明:OnAutoUpdate是用于自动更新设置的OnPeerWeek则是用于按周进行更新OnUpdateAtOnce用于立即进行系统更新图12 类CiniFile的类图5.4.2系统设置模块关键代码的实现:以下的两个类函数实现了系统配置的读取及写入CString CIniFile:GetFileString(CString Section, CString Item, CString Value)ReadI

38、niFile();/打开文件if(bFileExist = FALSE | FileContainer.GetSize() 0)return Value;/文件打开出错或文件为空,返回默认值int i = 0;int iFileLines = FileContainer.GetSize();CString strline,str;while(iiFileLines)strline = FileContainer.GetAt(i+);strline.TrimLeft();if(strline.GetAt(0)=)/查找Section,第一个必须为str=strline.Left(strline.

39、Find();/去掉右边str=str.Right(str.GetLength()-str.Find()-1); str.TrimLeft();str.TrimRight();if(Section = str)/找到Sectionwhile(iiFileLines)strline = FileContainer.GetAt(i+);strline.TrimLeft();if(strline.GetAt(0)= /如果到达下一个,即找不到,返回默认值return Value; str = strline.Left(strline.Find(=);/去掉=右边str.TrimLeft();str.

40、TrimRight();if(Item = str)/找到Itemstr=strline.Right(strline.GetLength()-strline.Find(=)-1); str.TrimLeft();str.TrimRight();return str;return Value;/找不到,返回默认值return Value;/找不到,返回默认值void CIniFile:WriteFileString(CString Section, CString Item, CString Value)int i = 0;int iFileLines = FileContainer.GetSi

41、ze();CString strline,str;while(iiFileLines)strline = FileContainer.GetAt(i+);strline.TrimLeft();if(strline.GetAt(0)=)/查找Section,第一个必须为str=strline.Left(strline.Find();/去掉右边str=str.Right(str.GetLength()-str.Find()-1);str.TrimLeft();str.TrimRight();if(Section = str)/找到Sectionwhile(iiFileLines)strline =

42、 FileContainer.GetAt(i+);strline.TrimLeft();if(strline.GetAt(0)=/找不到break;str = strline.Left(strline.Find(=);str.TrimLeft();str.TrimRight();if(Item = str)/找到Itemstrline = Item + = + Value;FileContaineri-1 = strline;return;/找不到Itemstrline = Item + = + Value;FileContainer.InsertAt(i-1, strline);return

43、;/找不到Section/直接在最后加入Section,Item,ValueFileContainer.Add( + Section + );FileContainer.Add(Item + = + Value);return;6 系统测试6.1 单元测试首先测试公共模块,由于此模块是针对对话框实现美化功能,所以在测试过程中需要建一个对话框工程,然后对此工程加上状态栏、按钮、文本框、标签、IP地址控件、图像框等各种控件,然后在此工程中对美化模块进行功能调用。其次测试的是系统的核心模块网络通信的服务器端模块,要测试这个模块就要找一个支持通信的客户端,然后用此客户端发送消息,如若出现问题则直接利用

44、VC+6.0的强大的调试器对系统进行修改。直至所有考虑到的地方均正常的运转。再次测试数据库交互模块,要对此模块进行测试,关键点有如下几点:如果数据表是空白表时系统会报告错误吗;如果所访问的数据表不存在时系统能否按预期的处理方式进行处理;在写入数据到新表中时是否正确的进行了写入。然后要测试的是系统配置模块,此模块看似简单但它却在系统中起着非常重要的作用,如果此模块初始化失败的化整个系统就像机器没有了油一样,无法正常运转。它对系统的执行方式起着指导的作用;对它的测试主要是进行读写两方面的测试,当有系统的配置改变时,看能否正确的把改变反馈到文件中去。在系统加载期间能否正确的加载数据。6.2 集成测试通过各个单无模块的测试及调试不存在问题后就要进行集成测试了。为此我们必需建一个模拟的客户端,利用此客户端模拟无线设备所能做的所有工作。当然了,测试的重点是在自定义的协议及系统集成后能否按预期效果运行两方面。7 关键技术7.1基于MFC的VC+6.0编程软件的特点首先,要了解VC+6.0则必须先了解C/C+语言9,10, 11。在计算机领域,C/C+语言相信一定无人不知、无人不晓。1970年,贝尔实验室的ken thompson开发了一种解释型的计算机语言被命名为B语言,但B语言没有流传开。1972年贝尔实验室的denn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号