基于的局域网聊天软件设计与实现_第1页
基于的局域网聊天软件设计与实现_第2页
基于的局域网聊天软件设计与实现_第3页
基于的局域网聊天软件设计与实现_第4页
基于的局域网聊天软件设计与实现_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华TITUTE OF TAIYUAN UNIVERSITY OF SCIENCE & TECHNOLOGYHUAKE毕业设计()题目:基于 QT 的局域网聊天软件设计与实现 _ 原 波号201122080124_学生学班级通 信 112201H 所属院(系)_ 电子信息工程系_指 导 教 师_ 邵 2015 年 6 月 1 日太原科技毕业设计()任务书学院(直属系)电子信息工程系时间:2015年6月1日2学 生原波指 导 教 师邵设计()题目基于 QT 的局域网聊天软件设计与实现主要研究内容运用 QT 和 C+技术来实现局域网聊天软件的功能,使用局域实现文字同步化和小文件的基本传输功能,同时丰

2、富文字的多样性以达到聊天的丰富性和可行性,使用简洁美观的 UI 界面来清晰的表达使用意图,方便用户的操作和理解。研究瀑布模型软件开发,结构化设计,面向对象程序设计。主要技术指标(或研究目标)本应用开发采用 C+ 程序语言标准,通过面向对象的开发, 运用C+和 QT 技术。主要参考文献1 ,.Visual Studio2005 系统开发实例精粹.邮电 , 2007 年 1 月:45-672 Daiel Solin24 小时QT 编程机械工业,2000 年 1月:21-483 Jasmin Blanchette And MarkSummerfield. C+GUIProgram- mingwith

3、QT4, 2008 年 6 月:70-2104.Qt5 开发及实例., 2014 年 1 月:30-1105.Qt 中的 C+技术., 2012 年 7 月:55-896 Stanley B. Lippman ,Jos e Lajoie ,Barbara E. Moo. C+Primer., 2013 年 9 月:32-2607 Andrew Koenig.C 和 C+经典著作:C 陷阱与缺陷.邮电,2008 年 2 月:21-658 .现代软件工程.北京希望电子,2003 年 8 月:30- 2469 Scott Meyers.Effective C+.,2011 年 1月:3160太原科技

4、华毕业设计()基于 QT 的局域网聊天软件设计与实现摘要QT 作为一种跨平台开发框架,可以轻松开发适应各种平台的软件,而且丰富的代码库和方便的界面设计过程使得开发成本低,使用 QT 进行软件开发可以增加应用程序的可移植性和通用性,故使用 QT 进行本次软件开发。随着科技的飞速发展和的普遍作用,以及计算机的在生活中的运用越来越广泛,局域网已经深入了每个人的家庭和工作。在局域网中,不同 PC 之间的相互和数据传输显得尤为重要,那么如何使用户可以在 PC 上直接和传输数据,而不是采用其他外在或方式来实现和数据传输,就成为了本次毕业设计的主要研究目标和方向。此次设计的局域网聊天软件初步预计完成以下设计

5、目标,实现的功能有:局域网文字与接受,字体修改,颜色修改,保存,清空,局域网文件传输,局域网内用户显示等。:局域网聊天软件,QT,C+11太原科技华毕业设计()Design and implementation of LAN chat software based on QTAbstractQT is a cross platform development framework, you can easily develop software that adapts to a variety of platforms and rich library of code and convenien

6、t interface design process makes development costs low use QT software development can increase application portability and versatility, so the use of QT for the software development.With the rapid development of science and technology and the universal function of thenetwork, and the application of

7、 computer in life is more and more extensive, the LAN hasalready gone into everys family and work. In a local area network (LAN), between thedifferent PC mutual communication and data transmission is particularly important, then how to use households on the PC direct communication and data transmiss

8、ion, rather than the other external device or the way to realize the communication and data transmission, it has become the graduation design main research goal and direction.The design of LAN chat software initially expected to complete the following design goals, realize functions: LAN text send a

9、nd accept, modify the font, color modification, chat records,chat records empty, LAN file transfer, LAN displayed to the user.Key Words: LAN chat software,C+,QT2太原科技华毕业设计()目录第一章 引言11.1 研究现状11.2 主要研究的目的及内容11.3 研究1.3.11.3.2及设计思路2研究.2设计思路3第二章 应用需求分析与可行性分析42.1 应用需求分析42.2 运行需求分析42.3 其他需求分析42.4 可行性分析42.4.

10、1可行性42.4.2 技术可行性52.4.3 运行可行性52.4.4 时间可行性52.4.5 法律可行性:5第三章 相关技术简介63.13.23.3第四章C+6QT6局域网聊天原理7系统分析104.1 系统实现目标104.2 系统体系结构10第五章 系统设计125.15.25.3概要设计12软件结构设计12详细设计135.3.1 登录界面135.3.2 聊天室界面195.4 主要技术实现435 4 1 窗体拖动5.4.2 文字内容传输以及上线43. 445.4.3 文件传输48第六章 测试526.1 程序调试526.2 程序的测试526.2.1 测试的重要性及目的526.2.2 测试的步骤53

11、33太原科技华毕业设计()6.2.3 测试的主要内容536.3 本程序的测试情况536.3.1 主要测试用例536.3.2 测试用例的实施54结束语55参考文献56致谢57附录584太原科技华毕业设计()第 1 章 引言1.1 研究现状目前,大型的专业的局域网聊天软件主要有以下几种:通软GoCom、腾讯 RTX、IBM LotusSametime 等。人们对于局域网聊天软件的需求已经不再仅存与简单的聊天工具,而是集交流,搜索,商户等等的综合性,是一种代替用户手,口的即时通讯服务。局域网通讯的在于可以更方便的交流,可以即时看到对方是否,是否可以接收到消息,有利于用户判别消息的有效性和真实性,方便

12、的人们的生活,而不同于,只能简单的将消息而忽略了消息的时效性。局域网聊天软件在企业办公中起着非同一般的作用,极大的帮助了企业中员工之间的交流和资料的整合,为大部分企业提供了及时和实时协作的平台,提高了工作的效率,注重了工作内容的时效性和有效性。但目前的大部分企业对于局域网聊天软件还处于探索阶段,使用范围并不是非常广泛,由于平台的限制性和开发的,很多企业并没有使用诸如此类的局域网聊天软件,同时很多信息软件被广泛应用后,接口不能互通,成为了目前局域网聊天软件的一个巨大的限制条件。然而,作为局域网聊天软件这样的小型软件,的要求是界面的特殊性,性,以及美观性,对于功能的要求在目前市面上已经大相径庭,各

13、种各样的软件层出不穷。对于这样的小型软件用户的需求是个性化和可移植性,以及精简短小,更容易更新和更改的软件。1.2 主要研究的目的及内容当前的环境下,信息的交流是必不可少的,即时聊天软件作为人与人之间交流的重要工具,具有着非同寻常的意义和必要性。虽然现在这个时代已经出现了许许多多各种各样的聊天软件,甚至于发展向广域网,全民化的节奏,但局域网内的交流与仍然是不可或缺的。由于广域网的范围涵盖太大,安全系数大大降低,局域网作为家庭,工作的小型,安全性便大大提1太原科技华毕业设计()高了。当前人们对于隐私的需求越来越高,信息的安全性便显得尤为重要。但局域网内的软件往往开发者较少,使得这一领域的软件相对

14、匮乏,可移植性也相对较低,只有少数人可以使用拥有。然而 QT 具有强大的可移植性,只需要一次编译就可以移植到相关的平台或其他平台下使用,这为我们的开发起到了关键性的作用。同时由于系统的领域较多且市场广阔,并且人们的需求相对较高,电子消费也逐渐成为人们市场生活中必不可少的一部分,所以应用系统开发聊天软件在聊天软件市场中占有着重要地位。这次的设计是个局域网聊天软件,能够实现局域网中用户的日常聊天,可以更改字体,字号,保存,删除,传输小型文件等功能,具备基本的局域网聊天软件功能,使用 QT 开发,使其可以跨平台使用,为将来的软件移植打下坚实的基础。1.3 研究及设计思路1.3.1 研究局域网聊天软件

15、是一个典型的应用软件,其功能性是第一位的。本次开发在开发过程中遵循的是瀑布模型开发,主要的骤有市场、需求分析、可行性分析、系统设计、详细设计、编码、测试等步骤。本次开发需要完全遵循以上开发原则,已达到完整的骤和顺序。瀑布模型(Waterfall M) 是一个项目开发架构,这个架构指明了开发过城必须按照一系列顺序展开,每一个骤都会有一个反馈,根据反馈可以发现之前开发出现的错误和问题,如果发现了错误和问题,那么必须停止开发,返回到上一个骤进行修改和维护,直到反馈发现问题才可以进行开发,这样的开发流程可以尽量减少开发过程中产生的额外工作,减少了开发成本,已达到最优的开发流程。瀑布模型是目前为止比较优

16、秀的开发流程。结构化设计和瀑布模型相结合,也是帮助开发的重要流程之一,将一系列数据流的转换,之后得出输出值,再通过输出值的模块化完成由上而下来2太原科技华毕业设计()实现文档化,这样可以把得到的文档作为一种标准,为之后的软件设计起到指导性的作用和帮助。结构化设计的步骤如下:1.评审和细化数据流图;2.确定数据流图的类型;3.把数据流图到软件模块结构,设计出模块结构的上层;4.基于数据流图逐步分解模块,设计中下层模块;5.对模块结构进行优化,得到更为合理的软件结构;6.描述模块接口。1.3.2 设计思路(1)分析市场上现有的局域网聊天软件,找到主要的优势和缺点;(2)分析本软件的可行性和应该具备

17、的功能;(3)系统功能研究和解决技术问题,并进行设计;(4)重新查找发现软件的错误和问题,及时改进;(5)使用具体的程序设计技术实现软件并测试;(6)发布软件。3太原科技华毕业设计()第 2 章 应用需求分析与可行性分析2.1 应用需求分析本软件应简单易用,并且占用少,包含局域网聊天软件的主要功能。根据局域网聊天软件的特点,该软件主要需要实现的就是即时通讯功能,其需要体现出用户的用户名,IP 地址,当前状态等信息,主要功能就是实现客户端之间的通信,并能实时更新用户的信息。2.2 运行需求分析硬件条件:主频 1.7GHz CPU、1G RAM、10G ROM、具有局域网的 PC 计算机。软件条件

18、:Windows 72.3 其他需求分析该系统具备的条件有可维护性、可靠性、可理解性、效率等。方便使用者的认识和操作。可维护性囊括可读性、可测试性等。可靠性囊括正确性和健壮性等。在开发过程中,应克服不利因素与限制的条件(费用、时间、适合的软、硬件等),尽量满足以上各方面需求。2.4 可行性分析2.4.1可行性所谓可行性,就是进行项目开发者的能力予以分析,对项目的建设预算和投资比例进行分析,并即时的预计项目完成后的效益以及个人提升。本项目是作为毕业设计是由个人设计的,投入费用可忽略不计,主要经费开支主要是个人的日常生活费用,日常的运行和维护也全由个人完成,故经费较低。开发、运行和维护费用主要:4

19、太原科技华毕业设计()和安装的费用:计算机硬件(已拥有);软件开发费用:使用 Qt 的 Free license version();费用:个人独自开发,日常生活费用;消耗品费用:除相关资料外暂无;以上所有开支都在个人预算的范围内,故项目开发计划可行。2.4.2 技术可行性技术可行性是指个人估计掌握的技术条件是否能够保证项目完成,开发所需工具能否满足项目的需求等等。该软件运用 QT 进行开发,QT 作为被广泛使用的框架,具有强大的功能,而其中的 TCP 协议、UDP 协议、socket 等也十分适合域网聊天工具。进过几的学习和研究,我已经初步掌握了 QT 开发过程,以及相关的类库,所以技术是可

20、行的。2.4.3 运行可行性本软件大小不超过 90M,占用不超过不超过 10M 内存,可以在多种平台上安装运行,本次毕业设计只在 windows 7 系统下的 PC 上测试和运行,运行可行。2.4.4 时间可行性在进行项目的同时也在找工作实习,只有周六日休息,每晚 20 点回到家,基本没有什么时间去做毕业设计,只有在周六日的时候加紧加班开发毕业设计,时间紧凑,但依旧在可行的范围之内。2.4.5 法律可行性:所有技术资料都为合法,绝无违法。开发过程中不他人知识产权问题。未任何,不问题。开发过程中未涉及任何法律责任。5太原科技华毕业设计()第 3 章 相关技术简介3.1 C+C+是一种应用广泛的语

21、言,是一种面向对象编程的语言,其其编程领域众广,常用于系统开发,引擎开发等应用领域,是迄今为止应用最多的语言之一。在计算机诞生的初期,人们使用计算机必须使用语言,也就是第一代计算机语言,之后出现了汇编语言,也就是第二代计算机语言,而 C 语言和BASIC 语言属于第三代计算机语言,BASIC 语言出现与 1964 年,是一种小型的初学者使用的计算机语言,而 C 语言是在 1972 年由的 D.M.Ritchie所开发,这种语言明显要比其他计算机语言更加合理。之后,在 1983 年,的 Bjarne Stroustrup 在 C 语言的基础上推出了 C+,进一步完善了 C语言,成为了最广泛使用的

22、计算机语言。C+的特点是面向对象设计开发,在开发大多大中型开发项目是,C+毫无疑问会作为候选者,C+语音的可修改性非常强大,很多时候不需要大篇幅的修改就可以完成开发者想要达到的目的,面向对象编程成就了 C+语言的一次又一次。当然不得不说的是,C+作为 C 语言的升级版,其好处就是 C 语言的源代码不经改动就可用 C+的编译器编译通过。3.2 QTQt 是一个跨平台的具有图形用户界面的开发程序,主要使用 C+语言进行软件开发,使用面向对象编程框架,可以开发 GUI 程序和非 GUI 程序,拥有特殊的代码生成扩展,组件编程,并且支持 WIN,LINUX,ANDROID,IOS,WP 等等多种平台开

23、发。Qt 出现于 1991 年,由 Haavard Nord 和 Eirik Chambe-Eng 发布,当时 Qt仅支持 X11 和 Windows,1996 年,Qt 创建 KDE 项目,为 Qt 的跨平台发展迈出了第一步,2000 年,Qt 正式进入开发领域,同年 10 月,Qt 开始采用GPL 开发模式,2008 年,诺基亚收购了 Qt,Qt 开始在智能大展拳脚,同时诺基亚在 Qt 的基础上开发了 Qt Creator,是一款轻量级集成开发环境,6太原科技华毕业设计()可以跨平台运行,2011 年 Digia 从诺基亚收购了 Qt 的商业,从此,Qtmobile 由诺基亚负责,而 Qt

24、 Commercial 由 Digia 负责,2012 年,Qt 正式被诺基亚公司作为资产剥离方式出售给 Digia 公司,Qt 开始了真正的跨平台发展。由于 Qt 具有的强大的跨平台优势,可以操作运行与绝大多数目前流行使用的平台,并且具有模块化度高,可重用性好的面向对象开发方式,可以使用signals/slots 的安全类型来替代 callback,使得各个模块之间的协同工作变得非常简单,以及大量的 API 支持,Qt 当之无愧作次开发的主要工具。3.3 局域网聊天原理此次局域网聊天软件的设计主要采用 TCP/IP 协议完成,TCP/IP 协议作为internet 的协议,已经被广泛应用与日

25、常的使用,在局域网和广域网中都屡见不鲜,目前已经成为事实上的国际标准。TCP/IP 协议在参考模型中主要作用于层、传输层和应用层,支持 TCP/IP 协议的应用程序通常直接运行与传输层协议,而不需要表示层和会话层的支持。该协议可以在一台计算机需要连接另一台计算机时,帮助其建立接,并起接受数据,以及决定性的终止连接,TCP/IP 协议基本囊括了通讯的主要功能,同时具有相当的灵活性和性,使得计算机之间可以彼此通信、。同时本次开发需要用到 UPD 协议,也就是用户数据包协议,这是一种异步通信模式,需要采取请求接受的方式来进行通讯,但这样的好处是不需要接受吞吐量的限制,同时可以完整的接受数据,这样的好

26、处是不需要维护连接状态,因此一台可以向多个相同的消息,虽然 UPD 协议不是一个可靠协议,但其分发信息的功能在本次设计中起到了的作用。本次局域网聊天软件的设计思路如下:假定 A 为方,B 为接收方,首先方流程如下:A 用户登录。建立一个广播 Scoket7太原科技华毕业设计()将 Socket 绑定到本地 IP 和聊天端口连接接收信号和槽函数hasPendingDatagrams()用聊天 Socket消息N是否需要消息Y聊天内容显示聊天内容然后,接收方流程如下:B 用户登录N是否接到消息Y接收 A 的用户名、主机名、IP 地址用 A 的用户名、主机名和 IP 地址建立一个 Socket8太原

27、科技华毕业设计()显示 A的消息N是否消息Y回复信息9太原科技华毕业设计()第 4 章 系统分析4.1 系统实现目标本软件主要实现:实现局域网中用户的日常聊天,文字传输,上线提示,可以更改字体、字号,保存,删除,传输小型文件,实现窗口拖动等功能,具备基本的局域网聊天软件功能,使用QT 开发,使其可以跨平台使用,为将来的软件移植打下坚实的基础。4.2系统体系结构局域网聊天系统服务器客户端开启服务器配置服务器关闭服务器登录窗口拖动文字传输文件传输上线提示图 4.1 系统结构图保存:可以保存当前的到 TXT 文档。更改字体、字号:可以根据用户的喜好自行更改字体、字号、颜色等聊天文字。登录:使用用户喜

28、欢的用户名进行登录。10太原科技华毕业设计()文字传输:实现聊天的基本功能。上线提示:用户上线发出上线提示。文件传输:可以传输小型文件。窗口拖动:点击聊天软件窗口可以拖动。11太原科技华毕业设计()第 5 章 系统设计该软件要求功能齐全,界面美观简介,符合当代人的基本审美要求,进行的软件开发,功能模块开发是重中之重。5.1 概要设计首先,要明确在系统需求分析中,首先要明确的是客户需求,作为局域网聊天软件,客户的需求首先是流畅的聊天,其次,美观性在的软件设计当中起到了决定性的作用,UI 的设计就显得尤为重要,再者,软件的功能性全面和完善是一个完整的软件必不可少的。那么概要设计就明确了:1.深入了

29、解局域网聊天的方式;2.设计完整的 UI 界面;3.完善软件的功能以及优化。5.2 软件结构设计模块化在软件结构设计中起着尤为重要的作用,能否将一个应用合理的模块化是一个项目能否的关键。模块化是说,将一个复杂的软件分解成为若干个小模块,逐级划分,层层嵌套,使整个软件具有明显的层级和规则,每个模块完成一个特定的功能,将各个模块组织起来之后,就可以形成一个完整的软件。将软件模块化的是为了让软件的各个功能更加明确,易于将来的修改和维护,同时也增加了软件的可读性,使得人可以为这个软件增加新的功能和优化。但值得一提的是,软件的模块化并不是任意的,而是具有相应的层级和相应的规则的,层层嵌套,一环扣一环,使

30、得各个模块间的借口尽量的联系简单,从而省去很多不必要的麻烦,尽量做到高内聚低耦合,增强各个模块的单独使用性,为日后提高软件质量做准备。在本次软件的设计中,软件被细化成了如下几个部分:一登录界面1. 用户名输入框12太原科技华毕业设计()2. UI 界面3. 窗体拖动二聊天室界面1.2.文字输入框工具栏1)2)3)4)5)6)字体调整字号调整颜色调整保存清空文件传输3.4.5.6.消息显示框用户列表框UI 界面窗体拖动三TCP 客户端1.2.3.端口、IP 地址配置文件接收窗体拖动四TCP 服务器1.2.3.端口、IP 地址配置文件窗体拖动5.3 详细设计5.3.1 登录界面用户登录界面,如图。

31、13太原科技华毕业设计()图 5.1 用户登录图主要 UI 设计代码如下:Dialog00400184Dialog3001106114太原科技华毕业设计()61PointingHandCursorQPushButtonborder-image: url(:/imgs/dialog_enter.png);QPushButton:hoverborder-image: url(:/imgs/dialog_enter_active.png);QPushButton:pressedborder-image: url(:/imgs/dialog_enter_select.png);true36403030

32、15太原科技华毕业设计()QPushButtonborder-image: url(:/imgs/dialog_close_.png);QPushButton:hoverborder-image: url(:/imgs/dialog_close_active.png);QPushButton:pressedborder-image: url(:/imgs/dialog_close_select.png);true5013521131Adobe Gothic Std B1175true16太原科技华毕业设计()00400184#widgetbackground-image:url(:/imgs/

33、dialog_mian.png);widgetenterBtnexitBtnusrEditexitBtnpressed()Dialogclose()17太原科技华毕业设计()3781419991功能实现如下:#include dialog.h #include ui_dialog.hDialog:Dialog(QWidget QDialog(parent), ui(new Ui:Dialog)*parent):this-setWindowFlags(Qt:FramelessWindowHint); this-setAttribute(Qt:WA_TranslucentBackground, u

34、i-setupUi(this);true);ui-usrEdit-setFocus();Dialog:Dialog()delete ui;void Dialog:mousePressEvent(QMouseEvent *e)last = e-globalPos();18太原科技华毕业设计()void Dialog:mouseMoveEvent(QMouseEvent *e)int dx int dy= e-globalX() - last.x();= e-globalY() - last.y();last =e-globalPos();move(x()+dx, y()+dy);void Dia

35、log:mouseReleaseEvent(QMouseEventint dx = e-globalX() - last.x(); int dy = e-globalY() - last.y();*e)move(x()+dx, y()+dy);void Dialog:on_enterBtn_clicked()userName = ui-usrEdit-text(); if (userName != )accept(); elseQMessageBox:warning(0,tr(警告),tr(用户名不),QMessageBox:Ok);ui-usrEdit-clear();ui-usrEdit-setFocus();为空5.3.2 聊天室

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论