收藏 分销(赏)

优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc

上传人:w****g 文档编号:2509607 上传时间:2024-05-30 格式:DOC 页数:29 大小:689.54KB
下载 相关 举报
优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc_第1页
第1页 / 共29页
优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc_第2页
第2页 / 共29页
优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc_第3页
第3页 / 共29页
优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc_第4页
第4页 / 共29页
优质毕业设计基于Qt嵌入式网络聊天系统的设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、本科生毕业论文(设计)题目A Functionalist Approach to Translation of Tourism Texts姓名 商广浩 学号 院系 物理工程学院 专业 电子信息工程 指导老师 王艳娜 职称 讲师 5月15日 曲阜师范大学杏坛学院教务处制目 录摘要3关键词3Abstract3keyword4引言41 QT61.1 QT概念61.2 QT发展史和前景71.3 QT关键功效82 WINDOWS SOCKETS 网络编程研究42.1 TCP/IP体系结构52.2.1 TCP/IP介绍52.2.2 TCP/IP特点52.2基础套接字52.3用户机/服务器模式72.4 SO

2、CKETS程序设计82.4.1 SOCKETS API介绍82.4.2 WINDOWS SOCKETS机制93 网络通信模块分析113.1 网络通信程序设计过程113.2 网络通信程序设计关键133.2.1通信设计代码分析133.2.2数据传输代码分析173.2.3犯错处理194 界面模块分析204.1 服务器端界面模块分析204.2 用户端界面模块分析214.2.1用户登陆界面分析214.2.2用户聊天界面分析245 数据库模块分析275.1数据库选择275.2数据库访问方法275.3 ADO数据库编程275.3.1 ADO和ADO接口介绍275.3.2使用ADO操作SQL代码分析286 总

3、结336.1体会和感想336.2 总结33第七章、参考书目34基于Qt嵌入式网络聊天系统设计电子信息工程专业学生 商广浩指导老师 王艳娜内容还能够, 具体格式还需要参考学校要求来修改。修改后再发给我摘要:本文关键介绍了怎样用QT技术来实现一个局域网聊天软件。论文叙述了QT概念,发展历史,功效及其应用平台,和QT发展前景;本论文讨论了linus环境下局域网聊天程序设计思绪和设计方法。其中网络通信部分采取流行TCP/IP协议。程序采取经典C/S(服务器/用户端)构架。用socket编程设计网络通讯。界面设计部分采取QT框架。数据库采取微软SQL Server。本文最终设计了一个简易版本聊天软件,包

4、含登陆、退出、添加好友、消息收/发等功效。 关键词:QT,TCP/IP 通信,Sockets API,C/S architectureQt based embedded network chat system design Student majoring in Electronic and Information Engineering shangguanghao Tutor wangyannaABSTRACT :This article discusses how to design and develop a LAN chatting program in Linus environme

5、nt. The network communication part depends on the popular TCP/IP protocol. Software is based on C/S architecture. Network communication is developed with Socket. UI is designed with QT frame. Database is designed with SQL server. The article describes a concise chart software version, with the funct

6、ion of logging in/out, adding friend to list, sending/receiving message and so on. Keywords: QT,TCP/IP communication,Sockets API,C/S architecture引言:多年来,伴随全球信息化不停发展,网络也在飞速发展。出于高效、快速地处理多种事务目标,越来越多企业在其内部使用局域网来进行工作。在内部局域网帮助下,企业得以简化信息步骤,提升信息交换速度,从而提升工作效率。然而,伴随企业规模扩大,业务量增加,企业内部信息越来越私密,企业只期望职员经过内部局域网进行沟通和交

7、流,避免企业内部机密经过Internet泄露到外部。为了处理上述矛盾,大家提出了开发局域网聊天软件构想,经过局域网聊天软件,企业职员能够随时进行即时消息传输,召开网络会议等,有利于提升工作效率,同时又保护了企业内部信息安全。伴随用户对软件功效需求不停提升,即时通讯产品也不停地更新换代。即时通讯发展不管是在基础应用方面还是在扩展应用方面全部有着飞跃。为了满足用户需求,包含腾讯企业聊天软件QQ在内,很多即时性聊天工具全部推出了语音聊天、视频聊天功效模块。本课题研究是基于局域网聊天室,用VC+编写程序,程序实现通常文字聊天功效,可作为某局域网交流工具。本系统采取基于Socket方法实现局域网通信,基

8、于Socket局域网通信软件能够为企业原有局域网提供一个良好,安全,快速通信机制。它实现无需对企业原有局域网硬件进行任何改动,含有实现成本低廉优点,它使用能有效地降低局域网通信负荷,提升局域网使用效率,能够很好地处理企业内部局域网多种通信需求。 基于Socket局域网聊天工具很好地诠释了Socket通信原理,而且在企业内部通信、教学、讨论等应用中全部含有一定实用价值。它含有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点3。基于Socket局域网通信软件应用范围宽广,不仅能够处理传统通信需求,而且也能扩展以适应新型网络应用,如网络教育,数据影音传输等,拥有

9、广泛应用前景。 现在基于局域网即时通信工具通常采取UDP或 TCP协议体系来实现 ,开发技术已经比较成熟。UDP实时性比很好,不过不一定提供可靠数据传输,TCP能够提供可靠数据传输,本课题采取TCP完成局域网聊天室设计。1 QT1.1 QT概念Qt是一个1991年由奇趣科技开发跨平台C+图形用户界面应用程序开发框架。它既能够开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,而且许可组件编程。,奇趣科技被诺基亚企业收购,QT也所以成为诺基亚旗下编程语言工具。1.2 QT历史和发展* 1996 Oct KDE组织成立* 1998 Apr 05 Trol

10、ltech程序员在 5 天之内将 Netscape5.0 从 Motif移植到 Qt 上* 1998 Apr 08 KDE Free Qt 基金会成立* 1998 Jul 09 Qt 1.40 公布* 1998 Jul 12 KDE 1.0 公布* 1999 Mar 04 QPL1.0 公布* 1999 Mar 12 Qt 1.44 公布* 1999 Jun 25 Qt 2.0 公布* 1999 Sep 13 KDE 1.1.2 公布* Mar 20 嵌入式 Qt 公布* Sep 06 Qt 2.2 公布* Oct 05 Qt 2.2.1 公布* Oct 30 Qt/Embedded 开始使用

11、 GPL宣言* Sep 04 Qt free edition 开始使用 GPL* Nokia从 Trolltech企业收购Qt, 并增加LGPL授权模式* Digia从Nokia收购了Qt商业版权,以后Nokia负责Qt on Mobile, Qt Commercial由Digia负责1.3 QT关键功效Qt 4.6 首次包含了对Symbian平台支持,并在其所支持平台中新增了Windows 7、Apple Mac OS 10.6 (雪豹) 和立即上市Maemo 6。另外还为实时操作系统QNX 和 VxWorks提供了网络小区支持。对Maemo 5 支持现在也已进入研发阶段,其技术预览版第二版

12、于12月1日公布。 Qt 对 X11 、X86 、ARM 及 Symbian 支持首次为开发人员发明了使用同一代码库同时针对这多个平台进行开发机会。能够跨平台分享代码就意味着开发人员所开发应用程序上市速度将愈加快,影响设备用户群将更广。 Qt Mobility项目下全新Qt API技术预览版也同时公布。这些跨平台API为开发人员提供了多个功效,如导航类设备定位功效,和信息发送和接收、联络人和网络连接管理等。性能提升关键包含:一个经过高度优化、重新编写 Qt GraphicsView 渲染算法、一个全新 OpenGL 绘图引擎、WebKit、使用 OpenVG 对 2D 矢量图形支持,和对全新

13、DirectFB 支持。2 Socket 网络编程研究2.1 TCP/IP体系结构2.2.1 TCP/IP介绍TCP/IP 作为 Internet关键协议,经过近二十多年发展已日渐成熟,并被广泛应用于局域网和广域网中,现在已成为实际上国际标准。TCP/IP 协议集确立了 Internet 技术基础。TCP/IP 协议关键作用于 OSI 网络参考模型中网络层(第3层)、传输层(第4层)和应用层(第7层)。数据链路层(第2层)功效关键应用于其它协议如以太网(Ethernet)、ATM、帧中继(Frame Relay),和多数供给商特定协议等。TCP/IP 充足支持全部通用第2层协议。TCP/IP

14、组中应用程序通常直接运行于传输层协议 TCP 或 UDP 上面,并不需要表示层(第6层)和会话层(第5层)支持。2.2.2 TCP/IP特点TCP/IP协议关键部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。所以用户通常不包含。编程时,编程界面有两种形式:一、是由内关键直接提供系统调用;二、使用以库函数方法提供多种函数。前者为核内设计,后者为核外设计。用户服务要经过核外应用程序才能设计,所以要使用套接字(socket)来设计。2.2基础套接字下面给出多个基础套接字,这些套接字使用贯穿了网络编程始末,主导了数据通信过程。这将在以后篇幅中会给出

15、更具体使用说明。1、创建套接字socket()功效:使用前创建一个新套接字格式:SOCKET PASCAL FAR socket(int af,int type,int procotol);参数:af: 通信发生区域type: 要建立套接字类型procotol: 使用特定协议2、指定当地地址bind()功效:将套接字地址和所创建套接字号联络起来。格式:int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);参数:s: 是由socket()调用返回而且未作连接套接字描述符(套接字号)。其它:没有错误,b

16、ind()返回0,不然SOCKET_ERROR3、建立套接字连接connect()和accept()功效:共同完成连接工作4、监听连接listen()功效:用于面向连接服务器,表明它愿意接收连接。格式:int PASCAL FAR listen(SOCKET s, int backlog);5、数据传输send()和recv()功效:数据发送和接收6、多路复用select()功效:用来检测一个或多个套接字状态。7、关闭套接字closesocket()功效:关闭套接字s格式:BOOL PASCAL FAR closesocket(SOCKET s)。2.3 用户机/服务器模式在TCP/IP网络中

17、两个进程间相互作用主机模式是用户机/服务器模式(Client/Server model)。该模式建立基于以下两点:1、非对等作用;2、通信完全是异步。用户机/服务器模式在操作过程中采取是主动请示方法:首先服务器方要先开启,并依据请示提供对应服务,过程以下所表示:1、打开一通信通道并通知当地主机,它愿意在某一个公认地址上接收用户请求。2、等候用户请求抵达该端口。3、接收到反复服务请求,处理该请求并发送应答信号。4、返回第二步,等候另一用户请求5、关闭服务器。用户方:1、打开一通信通道,并连接到服务器所在主机特定端口。2、向服务器发送服务请求报文,等候并接收应答;继续提出请求3、请求结束后关闭通信

18、通道并终止。2.4 SOCKETS程序设计2.4.1 SOCKETS API介绍VC+对网络编程支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中, Sockets API是TCP/IP网络环境里,也是Internet上进行开发最为通用API。最早美国加州大学Berkeley分校在UNIX下为TCP/IP协议开发了一个API,这个API就是著名Berkeley Socket接口(套接字)。在桌面操作系统进入Windows时代后,仍然继承了Socket方法。在TCP/IP网络通信环境下,Socket数据传输是特殊I/O,它也相当于文件描述符,含有一个类似于打开文件函数调

19、用-socket()。能够这么了解:Socket实际上是一个通信端点,经过它,用户Socket程序能够经过网络和其它Socket应用程序通信。Socket存在于一个通信域(为描述通常线程怎样经过Socket进行通信而引入抽象概念)里,而且和另一个域Socket交换数据。Socket有三类。第是SOCK_STREAM(流式),提供面向连接可靠通信服务,比如telnet,http。第二种是SOCK_DGRAM(数据报),提供无连接不可靠通信,比如UDP。第三种是SOCK_RAW(原始),关键用于协议开发和测试,支持通信底层操作,比如对IP和ICMP直接访问。2.4.1 SOCKETS机制1、异步选

20、择机制:SOCKETS 异步选择函数提供了消息机制网络事件选择,当使用它登记网络事件发生时,应用程序对应窗口函数将收到一个消息,消息中指示了发生网络事件,和和事件相关部分信息。SOCKETS 提供了一个异步选择函数 WSAAsyncSelect(),用它来注册应用程序感爱好网络事件,当这些事件发生时,应用程序对应窗口函数将收到一个消息。FD_READ 期望在套接字上收到数据(即读准备好)时接到通知FD_WRITE 期望在套接字上可发送数据(即写准备好)时接到通知FD_OOB 期望在套接字上有带外数据抵达时接到通知FD_ACCEPT 期望在套接字上有外来连接时接到通知FD_CONNECT 期望在

21、套接字连接建立完成时接到通知FD_CLOSE 期望在套接字关闭时接到通知比如:我们要在套接字读准备好或写准备好时接到通知,语句以下:rc=WSAAsyncSelect(s,hWnd,wMsg,FD_READ|FD_WRITE);假如我们需要注销对套接字网络事件消息发送,只要将 lEvent 设置为0 。2、异步请求函数在 Berkeley Sockets 中请求服务是阻塞,WINDOWS SICKETS 除了支持这一类函数外,还增加了对应异步请求函数(WSAAsyncGetXByY();)。 3 网络通信模块分析3.1网络通信程序设计过程在调用了 sockets 开启函数WSACleanup(

22、)以后才能进行其它Socket系统调用,但开启函数WSAStartup()是为了建立和Windows Sockets DLL连接,所以在VC+6.0所建立工程工程设置中连接库模块必需进行设置,在其中link栏内对象/库模块中加入“Ws2_32.lib”,才能真正建立建立和 Sockets DLL连接。其它Socket系统调用包含创建Socket、将创建Socket和当地端口绑定、建立Socket连接服务器、监听是否有连接、请求数据可控缓冲发送和可控缓冲接收,到最终关闭Socket。具体步骤图如1所表示。 首先在服务器方,利用socket()函数建立流式套接字,返回套接字号s,接着利用bind(

23、)函数将套接字s和当地地址绑定,紧接着利用listen(0函数通知TCP,监听用户方,服务器准备接收连接,没有连接话,服务器方经过closesocket()关闭套接字s,服务结束。有连接话,在用户方,经过socket()函数建立流式套接字s,此时在服务器方,建立连接,经过accept()返回,得到新套接字ns,用户方经过connect()将套接字s和远程地址连接,此时服务器方/用户方在ns/s上读/写数据,直到交换完成。交换完成后,服务器方/用户方关闭套接字ns/s,最终服务器方经过closesocket()关闭最初套接字s,服务结束。具体设计过程图1所表示,具体设计代码将会在下面介绍:服务器

24、方Socket()建立流式接字,返回套接字号s用户方bind()套接字s和当地地址绑定listen()通知TCP服务器准备接收连接accept()接收连接,等候用户端连接建立连接,accept()返回,得到新套接nsRecv()/send()在ns上读/写数据,直到完成交换closesocket(),关闭套接字nsclosesocket()关闭最初套接字s,服务结束Socket()建立流式套接字号sconnect()将套接字s和远程地址连接Recv()/send()在s上读/写数据,直到完成交换closesocket()关闭套接字s,结束TCP3.2.1通信设计代码分析先分析服务器端。首先定义

25、初始化网络函数,也就是SOCKETS开启在全部 WINDOWS SOCKETS 函数中,只有开启函数 WSAStartup() 和终止函数 WSACleanup() 是必需使用。开启函数必需是第一个使用函数,而且它许可指定 WINDOWS SOCKETS API 版本,并取得 SOCKETS特定部分技术细节。本结构以下: int PASCAL FAR WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);其中 wVersionRequested 确保 SOCKETS 可正常运行 DLL 版本,假如不支持,则返回错误信息。接下来就是对SO

26、CKET设置,本程序使用数据传输模式是异步非阻塞模式,设置好以后就是监听用户端信息,另外,发生在对应Socket上多种网络异步事件处理函数,其中OnAccept传进来参数是服务器端创建套接字,OnClose()、OnReceive()和OnSend()传进来参数均是服务器端在接收用户端连接时新创建用和此用户端通信Socket。定义OnAccept()函数来接收连接请求,并保留和提议连接请求用户端进行通信Socket,为新socket注册异步事件;定义OnSend()函数来给用户端发数据时做相关预处理; 定义OnReceive()函数来读出网络缓冲区中数据包;定义OnClose()函数来结束和对

27、应用户端通信,释放对应资源。接下来讲讲用户端方。首先初始化网络部分,带不需要将套接字设置为监听模式。注册异步事件时,没有FD_ACCEPT,但增加了FD_CONNECT事件,所以没有OnAccept()函数,但增加了OnConnect()函数。向服务器发出连接请求时,使用connect()函数,连接成功后,会响应到OnConnect()函数中。下面是OnConnect()函数定义,传进来参数是用户端Socket和服务器端发回来连接是否成功标志。另外定义OnReceive()函数来处理网络数据抵达事件;定义OnSend()函数来处剪发送网络数据事件;定义OnClose()函数来处理服务器关闭事件

28、。3.2.2数据传输代码分析在服务器方用 WSASend()函数来发送数据,使用 WSARecv()来接收数据。Sockets不激励用户使用阻塞方法传输数据,因为那样可能会阻塞整个 linus 环境。 若无错误发生且发送操作立即完成,则WSASend()函数返回所发送字节数。(注意该数目可能小于len参数所指定值)。假如连接结束,则返回0。请注意在这种情况下完成指示(开启指定完成例程或设置一个事件对象)将早已发生。不然话,将返回SOCKET_ERROR错误,应用程序可经过WSAGetLastError()来获取对应错误代码,返回-1。错误代码WSA_IO_PENDING表示重合操作成功开启,过

29、后将有完成指示。任何其它错误表示重合操作未能成功地开启,以后也不会有完成指示。若无错误发生且接收操作立即完成,则WSARecv()函数返回所接收字节数。假如连接结束,则返回0。请注意在这种情况下完成指示(开启指定完成例程或设置一个事件对象)将早已发生。不然话,将返回SOCKET_ERROR错误,应用程序可经过WSAGetLastError()来获取对应错误代码。错误代码WSA_IO_PENDING表示重合操作成功开启,过后将有完成指示。任何其它错误表示重合操作未能成功地开启,以后也不会有完成指示。若无错误发生,send()返回所发送数据总数(请注意这个数字可能小于len中所要求大小)。不然话,

30、返回SOCKET_ERROR错误,应用程序可经过WSAGetLastError()获取对应错误代码。若无错误发生,recv()返回读入字节数。假如连接已中止,返回0。不然话,返回SOCKET_ERROR错误,应用程序可经过WSAGetLastError()获取对应错误代码。4 界面模块分析4.1服务器端界面模块分析在服务器界面设计上设计很简单,经过一个列表框来显示服务器信息,一个开启按钮来开启服务器,一个退出按钮关闭服务器。假如服务器开启没有什么问题就会在列表框中显示“ 创建服务器成功”字样。当用户登陆,就会在列表框中显示如“127.0.0.1 连接,接收127.0.0.1:USER 1001

31、,接收127.0.0.1:PASS 1001”三行字样,假如登陆成功,在列表框中就会显示“接收127.0.0.1:LIST”字样,获取在线用户列表。假如登陆失败,在列表框中就会显示如“127.0.0.1断开”字样。在注册用户时候,假如注册成功,在列表框中就会显示如“ADD USER 1001 SUCCESS”,假如失败,就会在列表框中显示“ADD USER FAIL”当修改用户信息时候就会在列表框中显示“接收127.0.0.1:GINF 1001”,假如修改成功,就会在列表框中显示“接收127.0.0.1:UINF 1001”。4.2用户端界面模块分析用户端界面关键包含用户登陆界面、用户注册界

32、面、在线用户列表界面、用户聊天界面。其中用户端界面设计思绪,关键设计过程图3所表示:用户登陆用户注册取得在线用户用户聊天消息收/发文件收/发增加好友查看/修改信息图3 用户端界面轮廓4.2.1用户登陆界面分析用户登陆界面图4所表示图4 用户登陆界面图4显示,当单击“登陆”按钮进行用户登陆:当用户号码未填写时,会提醒“请输入用户号码”。当用户密码未填写时,会提醒“请输入用户密码”。当服务器IP未填写或格式不正确,会提醒“请填写正确服务器地址”。勾选“保护密码”,在下次打开该登陆界面时,在输入框里自动显示上次登陆时输入三项信息。用户信息填写完成后,按“登陆”按钮,假如和服务器连接失败,就会提醒如“

33、连接失败:不能连接192.0.0.1上服务器”登陆成功就会进入在线用户列表界面,图6所表示.。单击“取消”按钮退出登陆界面。单击“注册向导”按钮就能够进入用户注册界面,图5所表示。 4.2.2用户聊天界面首先选择你要聊天好友。经过“发送”按钮发送你要讲内容,经过“聊天统计”按钮/“关闭统计”按钮来显示/关闭聊天统计。单击“传送文件”按钮,跳出文件目录,让你选择你要传送文件。图10所表示。 图10传送文件界面5 数据库模块分析5.1 数据库选择选择一个好应用程序对一个应用系统来说是很关键。应用系统应该选择哪种数据库要依据系统要求和企业实际情况而定。现在,全部流行多个大型关系型数据库有MS SQL

34、 Server、Oracle、DB2等。本系统使用MS SQL Server,关键有以下几点理由:1) MS SQL Server比较轻易使用,通常管理员较熟悉。2) MS SQL Server有存放过程、视图等方便功效扩展。5.2数据库访问方法本程序示经过用ADO来访问数据库,分别用ADO访问了数据库各个对象及各方法。5.3 ADO数据库编程5.3.1 ADO和ADO接口介绍ADO是Microsoft为最新和最强大数据访问范例 OLE DB 而设计,是一个便于使用应用程序层接口。ADO 使您能够编写应用程序以经过 OLE. DB 提供者访问和操作数据库服务器中数据。OLE DB是一组”组件对

35、象模型”(COM) 接口,是新数据库低层接口,它封装了ODBC功效,并以统一方法访问存放在不一样信息源中数据。OLE DB是Microsoft UDA(Universal Data Access)策略技术基础。OLE DB 为任何数据源提供了高性能访问,这些数据源包含关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。OLE DB 应用程序编程接口目标是为多种应用程序提供最好功效,它并不符合简单化要求。您需要API 应该是一座连接应用程序和OLE DB 桥梁,这就是 ActiveX Data Objects (ADO)。 ADO库包含三个基础接口:_ConnectionPt

36、r接口、_CommandPtr接口和_RecordsetPtr接口。_ConnectionPtr接口返回一个统计集或一个空指针。通常使用它来创建一个数据连接或实施一条不返回任何结果SQL语句,如一个存放过程。使用_ConnectionPtr接口返回一个统计集不是一个好使用方法。对于要返回统计操作通常见_RecordserPtr来设计。而用_ConnectionPtr操作时要想得到统计条数得遍历全部统计,而用_RecordserPtr时不需要。 _CommandPtr接口返回一个统计集。它提供了简单方法来实施返回统计集存放过程和SQL语句。在使用_CommandPtr接口时,你能够利用全局_Co

37、nnectionPtr接口,也能够在_CommandPtr接口里直接使用连接串。假如你只实施一次或几次数据访问操作,后者是比很好选择。但假如你要频繁访问数据库,并要返回很多统计集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口实施存放过程和SQL语句。 _RecordsetPtr是一个统计集对象。和以上两种对象相比,它对统计集提供了更多控制功效,如统计锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建数据连接,能够用一个连接串替换连接指针赋给_RecordsetPtrconnection组员变量,让它自己创建

38、数据连接。假如你要使用多个统计集,最好方法是同Command对象一样使用已经创建了数据连接全局_ConnectionPtr接口,然后使用_RecordsetPtr实施存放过程和SQL语句。在下面代码分析中将具体介绍ADO怎样利用这多个接口来对数据库SQL进行操作。5.3.2 使用ADO操作SQL代码分析1、引入ADO库文件 使用ADO前必需在工程stdafx.h头文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。 这行语句申明在工程中使用ADO,但不使用ADO名字空间,而且为了避免常数冲突,将常数EOF更名为adoEOF。现在不需添加另外头文件,就能够使用ADO接口了。

39、 2、初始化OLE/COM库环境必需注意是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必需初始化OLE/COM库环境。在MFC应用程序里,一个比很好方法是在应用程序主类InitInstance组员函数里初始化OLE/COM库环境。 3、判定数据库存在使用USE语句,成功了就存在;不成功,就不存在。4、连接数据库经过MS SQL SERVER 创建数据库名为XFQQ,接着在ODBC中添加数据源,数据源名为XFQQ, 定义一个指向Connection对象指针:_ConnectionPtr _pConnection; 7、更新统计信息修改统计信息,如用户信息修改,下面代码说明了在用户

40、原明年纪上增加一岁:8、关闭统计在打开统计集进行操作以后就必需关闭统计集,不然进行别操作话会出现无须要错误,关闭代码以下:6 总结6.1体会和感想经过了整整3个月忙碌,最终完成了毕业设计。在这段时间里体验了无数酸甜苦辣,从处理不了细小问题苦恼到问题最终处理喜悦,一直伴伴随整个设计过程。整个设计过程是不停学习,不停发觉问题、分析问题、处理问题过程。使我受益良多。设计期间有很多感慨、想法、经验,教训,对以后学习、工作有很大益处。本设计在查阅了大量文件后进行理论研究同时,借鉴了其它聊天程序、聊天程序优缺点,在此基础上展开了研究工作,归纳起来,论文取得结果和创新点关键有以下多个方面:1) 经过网络编程

41、,设计了基础聊天功效和文件传输功效。2)将数据库编程和网络编程相结合,利用VC+6.0这一软件进行MFC编程,将在大学里学到知识进行了很好综合。 3)利用TCP/IP协议中TCP协议,即面向连接服务,进行数据传输,对网络中数据传输过程。6.2 总结 经过对这个毕业设计开发和学习,使自己对软件开发又有了新了解,增加了自己开发能力,也深刻了解了团体合作精神。此次开发,使我不仅学了C+、数据结构、sql、winsock技术,还对网络编程进行了深入学习,总结出了部分网络编程特点,能够为以后开发提供参考。最终,要感谢老师对我细心指导,同时感谢我同学对我宝贵提议。7 参考书目1 David J. Krug

42、linski,Programming Visual C+.1998.2 施炜、李铮、秦颍,Windows Sockets 规范和应用Windows网络编程接口.1996.3Anthony Jones and Jim Ohlumd,TCP/IP详解 卷一:协议(英文版).机械工业出版社,.4 王罡 林立志, 基于WindowsTCP/IP编程.清华大学出版社,.5 蒋东兴等,Windows Sockets 网络程序设计大全. 清华大学出版社,1999.6 萨师煊,数据库系统概论.高等教育出版社,.7侯捷,深入简出MFC .1998 .8Jeff Prosise,MFC Windows程序设计(第2版)。清华大学出版社,1999.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服