《毕业设计(论文)-基于QT的局域网聊天软件设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于QT的局域网聊天软件设计与实现.docx(87页珍藏版)》请在三一办公上搜索。
1、华科孽吃HUAKEINSTUTEOFTAIYUANUNIVERSITYOFSCIENCE&TECHNO1.OGY毕业设计(论文)题目:基于QT的局域网聊天软件设计与实现学生姓名学号一班级一所属院(系)_指导教师2015年6月1日太原科技大学毕业设计(论文)任务书学生姓名指导教师设计(论文)题目基于QT的局域网聊天软件设计与实现主要研究内容运用QT和C+技术来实现局域网聊天软件的功能,使用局域网络实现文字同步化和小文件的基本传输功能,同时丰富文字的多样性以达到聊天的丰富性和可行性,使用简洁美观的UI界面来清晰的表达使用意图,方便用户的操作和理解.研究方法瀑布模型软件开发,结构化设计方法,面向对象
2、程序设计。主要技术指标(或研究目标)本应用开发采用C+程序语言标准,通过面向对象的开发方法,运用C1.和QT技术。学院(直屈系)电子信息工程系时间:2015年6月1日1赵辉,叶子青.SViSUa1.Studio2005系统开发实例粕粹.人民邮电出版社,2007年1月:45-672 Daie1.So1.in24小时学通QT编程机械工业出版社,2000年1月:21783 JasminB1.anchetteAndMarkSunmcrfie1.d.C+GUIProgram-IBingirithQT4电子工业出版社,2008年6月:70-210陆文周.,Qi5开发及实例.电子工业出版社,2014年1月:
3、30110主要参考文献5张波Qt中的C+技术.电子工业出版社,2012年7月:55-896SIanIeyB.1.ippmun,Josde1.ajoie,BmharaE.1o.C*Primer3.电子工业出版社,2013年9月:32-2607AndrewKoenig.(C和C+经典著作:C陷阱与缺陷.人民邮电出版社,2008年2月:21-65孙涌.现代软件工程.北京希望电子出版社,2003年8月:3卜2469Scot1.Meyers.(EffectiveC+.电子工业出版社,2011年1月:316010BruceEckc1.ChuckA1.1.ison.C+编程思想.机械工业出版社,2011年7
4、月:53T68基于QT的局域网聊天软件设计与实现摘要QT作为种跨平台开发框架,可以轻松开发适应各种平台的软件,而I1.丰富的代码库和方便的界而设计过程使得开发成本低,使用QT进行软件开发可以增加应用程方:的可移植性和通用性,故使用QT进行本次软件开发。随着科技的飞速发展和网络的普遍作用,以及计算机的在生.活中的运用越来越广泛,局域网已经深入了每个人的家庭和工作。在局域网中,不同PC之间的相互沟通和数据传输显得尤为重要,那么如何使用户可以在PC上直接沟通和传输数据,而不是采用其他外在设备或方式来实现沟通和数据传输,就成为了本次毕业设计的主要研究目标和方向。此次设计的局域网聊天软件初步预计完成以下
5、设计目标,实现的功能有:局域网文字发送,接受,字体修改,颜色修改,聊天记录保存:,聊天记录清空,局域网文件传输,局域网内用户显示等。关键词:局域网聊天软件,QT,C+Designandimp1.ementationof1.ANchatsoftwarebasedonQTAbstractQTisacrossp1.atfo11ndeve1.opmentIramcwork.youcaneasi1.ydeve1.opsoftwarethatadaptstoavarietyofp1.atformsandrich1.ibraryofcodeandconvenientinterfacedesignproces
6、smakesdeve1.opmentcosts1.owuseQTsoftwaredeve1.opmentcanincreaseapp1.icationportabi1.ityandversati1.ity,sotheuseofQTfor(hesoftwaredeve1.opment.Withtherapiddeve1.opmentofscienceandtechno1.ogyand(heuniversa1.functionofthenetwork,andtheapp1.icationofcomputerin1.ifei$moreandmoreextensive,the1.ANhasa1.rea
7、dygoneintoeverj,personsfami1.yandwork.Ina1.oca1.areanetwork(1.N).betweenthedifferentPCmunicationanddata1.11nsmissionisparticu1.ar1.yimportant,thenhowtousehouseho1.dsonthePCdirectcommunicationanddatatransmission,ratherthantheotherexterna1.deviceorthewaytorea1.izethecommunicationanddatatransmission,it
8、hasbecomethegraduationdesigntnainresearchgoa1.anddirection.Thedesignof1.ANchatsoftwareinitia1.1.yexpectedtocomp1.etethefo1.1.owingdesigngoa1.s,rea1.izefunctions:1.ANtextsendandaccept,11xiifythefont,co1.or11u1.ification,chatrecords,chatrecordsempty.1.ANfi1.etransfer.1.ANdisp1.ayedtotheuser.KeyWOrds:1
9、.ANchatsoftware,C+,QT目录第一章引言11.1 研究现状11.2 主要研究的目的及内容11.3 研究方法及设计思路21.3 .1研究方法21.4 .2设计思路3第二章应用需求分析与可行性分析42.1应用需求分析42.2运行需求分析42.3其他需求分析42. 4可行性分析42.1.1 经济可行性42.1.2 2技术可行性52.1.3 运行可行性52.1.4 时间可行性52.1.5 4.5法律可行性:5第三章相关技术简介63. 1C+63.2QT63.3同域网聊天原理7第四章系统分析104.1 系统实现目标104.2 系统体系结构10第五章系统设计1251概要地计125.2 软件
10、结构设计125.3 详细设计135 .3.1登录界面136 .3.2聊天室界面195.4主要技术实现431.1.1 1窗体拖动431.1.2 文字内容传输以及上线通知441.1.3 文件传输48第六章测试526.1程序调试526.2程序的测试526.2.1测试的重要性及目的526.2.2测试的步骤53太原科技大学华科学院毕业改计(论文)6.2.3测试的主要内容536.3本程序的测试情况536.3.1主要测试用例536.3.2测试用例的实施54结束语55参考文献56致谢57附录58第1章引言1.1 研究现状目前,大型的专业的局域网聊天软件主要有以卜.儿种:通软联合GOCOiD、MiHRTX.IB
11、M1.otUSSametime等。人们对于局域网聊天软件的需求已经不再仅存与简胞的聊天工具,而是集交潦,娱乐,搜索,商户等等的综合性信息平台,是一种代替用户手,口的即时通讯服务。局域网通讯的融力在于可以更方便的交流,可以即时看到对方是否在线,是否可以接收到消息,仃利于用户判别消息的有效性和真实性,方便的人们的生活,而不同于E-MAn“只能简单的将消息发送而忽略了消息的时效性。局域网聊天软件在企业办公中起着非同一般的作用,极大的帮助了企业中员工之间的交潦和资料的整合,为大部分企业提供了及时泡通和实时协作的平台,提i了工作的效率,注重了工作内容的时效性和有效性。但H前的大部分企业对于局域网聊天软件
12、还处于探索阶段,使用苑围并不是非常广泛,由于平台的限制性和开发的困琲,很多企业并没仃使用诸如此类的局域网聊天软件.同时很多信息软件被广泛应用后,接口不能互通,成为了F1.前网域网聊天软件的一个巨大的限制条件。然而,作为局域网聊天软件这样的小型软件,更多的要求是界面的特殊性,独立性,以及美观性,对于功能的要求在目前市面上已经大相径庭,各种各样的软件层出不穷。对于这样的小型软件用户更多的需求是个性化和可移梢性,以及精简短小,更容易更新和更改的软件。1.2 主要研究的目的及内容当前的社会环境F.信息的交流沟通是必不可少的,即时聊天软件作为人与人之间交流的重要工具,具仃着浑同寻常的意义和必要性。虽然现
13、在这个时代已经出现了许许多多各种各样的聊天软件,甚至于发展向广域网,全民化的节奏,但局域网内的交流与沟通仍然是不可或缺的。由于广域网的范围涵施太大,安全系数大大降低,局域网作为家庭,工作的小型网络,安全性便大大提而了。当前社会人们对于除私的保密需求越来越高,信息的安全性便&褥尤为重要。但局域网内的软件往往开发并较少,使得这领域的软件相对匮乏,可移植性也相对较低,只有少数人可以使用拥有。然而QT具有强大的可移植性,只需要一次编译就可以移植到相关的嵌入式平台或其他平台F使用,这为我们的开发起到了关犍性的作用。同时由嵌入式系统存在的领域较多且市场广阔,并且人们的需求相对较高,电子消费也逐渐成为人们市
14、场生活中必不可少的一部分,所以应用嵌入式系统开发聊天软件在聊天软件市场中占有着重要地位。这次的设计是开发一个同域网聊天软件,能够实现同域网中用户的日常聊天,可以更改字体,字号,保存聊天记录,删除聊天记录,传输小型文件等功能,具备基本的局域网聊天软件功能,使用QT开发,使其可以跨平台使用,为将来的软件移棍打下坚实的基础.1.3 研究方法及设计思路1.4 .1研究方法局域Iq聊天软件是一个典型的应用软件,其功能性是第一位的。本次开发在产品开发过程中遵循的是瀑布模型开发方法,主要的开发步骤仃市场调查、需求分析、可行性分析、系统设计、详细设计,编码、测试等步骤.本次开发需要完全遵循以上开发原则,已达到
15、完整的开发步骤和顺序.瀑布模型(Waterfa1.1.Mode1.)是个项目开发架构,这个架构指明了开发过城必须按照一系列顺序展开,每一个开发步骤部会有一个反恸,根据反馈可以发现之前开发出现的错误和问题,如果发现了错误和问题,那么必须停止F一步开发,返回到上一个开发步骤进行修改和维护,直到反馈不会发现问题才可以进行下一步开发,这样的开发流程可以尽量减少开发过程中产生的额外工作,减少了开发成本,已达到最优的开发流程。瀑布模型是目前为止比较优秀的开发流程。结构化设计方法和瀑布模型相结合,也是帮助开发的重要流程之,将系列数据流的转换,之后得出输出值,再通过输出值的模块化完成由上而下来实现文档化,这样
16、可以把得到的文档作为种标准,为之后的软件设计起到指导性的作用和帮助。结构化设计的步骤如下:1 .评审和细化数据流图:2 .确定数据流图的类型;3 .把数据流图映射到软件模块结构,设计出模块结构的上层;4 .基于数据流图逐步分解高层模块,设计中下层模块:5 .对模块结构进行优化,得到更为合理的软件结构:6 .描述模块接口。1.3.2设计思路 1)分析市场上现有的局域网聊天软件,找到主要产品的优势和缺点: 2)分析本软件的可行性和应该具备的功能; 3)针对系统功能研究和解决技术问题,并进行设计; 4)重新查找发现软件的错误和问题,及时改进: 5)使用具体的程序设计技术实现软件并测试: 6)发布软件
17、。第2章应用需求分析与可行性分析2.1应用需求分析本软件应简单易用,并且占用资源少,包含局域网聊天软件的主要功能.根据局域网聊天软件的特点,该软件主要需要实现的就是即时通讯功能,其需要体现出用户的用户名,IP地址,当前状态等信息,主要功能就是实现客户端之间的通信,并能实时更新用户的信息。2.2运行需求分析硬件条件:主频1.7GHZCPU、IGRAM、IoGROM,具有局域网的PC计算机。软件条件:Windows72.3其他需求分析该系统具备的条件仃可维护性、可独性、可理解性、效率等。方便使用者的认识和操作。可维护性囊括可读性、可测试性等。可靠性囊括正确性和健壮性等。在开发过程中,应克服不利因素
18、与限制的条件(费用、时间、适合的软、硬件资源等),尽量满足以上各方面需求。2.4可行性分析2.4.1经济可行性所谓经济可行性,就是进行项目时对开发者的经济能力予以分析,对项目的建设预算和投资比例进行分析,并即时的预计项目完成后的经济效益以及个人提升。本项目是作为毕业班计是由个人班计的,投入费用可忽略不计,主要经费开支主要是个人的日常生活费用,日常的运行和维护也全由个人完成,故经费较低。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件(已拥有):软件开发费用:使用Qt的Free1.icenseversion(免费);人员费用:个人独自开发,日常生活费用:消耗品费用:除相关资料杳询外
19、暂无:以上所有经济开支都在个人预算的允许范围内,故项目开发计划可行。2. 4.2技术可行性技术可行性是指个人估计掌握的技术条件是否能够保证项目完成,开发所需工具能否满足项目的需求等等。该软件运用QT进行开发,QT作为被广泛使用的框架,具有强大的功能,而其中的TCP协议、I;DP协议、s。Cket等也十分适合开发局域网聊天工具。进过儿个月的学习和研究,我已经初步掌握rQT开发过程,以及相关的类库,所以技术是可行的。3. 4.3运行可行性本软件大小不超过90M,占用不超过不超过IOM内存,可以在多种平台上安装运行,本次毕业设计只在WindoIrS7系统下的PC上测试和运行,运行可行.4. 4.4时
20、间可行性在进行项目的同时也在找工作实习,平时只有周六日休息,每晚20点回到家基本没有什么时间去做毕业设计,只有在周六日的时候加索加班开发毕业设计,时间紧凑,但依旧在可行的范围之内。2. 4.5法律可行性:所有技术资料都为合法,绝无违法存在。开发过程中不存在侵犯他人知识产权问题”未抄卷任何网站,不存在侵犯版权问题。开发过程中未涉及任何法律贡任。第3章相关技术简介3. 1C+C+是一种应用广泛的语言,是一种而向对跳编程的语言,其其编程领域众广,常用于系统开发,引擎开发等应用领域,是迄今为止应用垃多的语言之一。在计算机诞生的初期,人们使用计算机必须使用机器语言,也就是第代计算机语言,之后出现了汇编语
21、言,也就是第二代计算机语言,而C语言和BASIC语言C于第三代计第机语言,BASIC语言出现与1964年,是一种小型的初学者使用的计算机语言,而C语言是在1972年由贝尔实验室的D.M.Ritchie所开发,这种语音明显要比其他计算机语言更加合理.之后,在1983年,贝尔实验室的BjarneS1.roustrup在C语言的基础上推出了C+.进一步完善了C语言,成为了最广泛使用的计算机语言。C+的特点是面向对象设计开发,在开发大多大中型开发项目是,C+富无疑问会作为候选者,C+语音的可修改性非常强大,很多时候不需要大篇幅的修改就可以完成开发者想要达到的目的,面向对象编程成就了C+语言的一次又一次
22、突破.当然不得不说的是,C+作为C语言的升级版,式好处就是C语言的源代码不经改动就可用C+的编译器编译通过。3. 2QTQt是一个跨平台的具有图形用户界面的开发程序,主要使用C+语言进行软件开发,使用面向对望编程框架,可以开发G1.I程序和非GU1.程序,捅仃特殊的代码生成扩展,允许组件编程,并且支持甯IN,1.INUX,ANDROID,IOS,WP等等多种平台开发。Qt出现于1991年,由HaaVardNord和EirikChambe-Eng发布,当时Qt仅支持XH和Windows,1996年,Qt创建KDE项目,为Qt的跨平台发展迈出了第一步,2000年,Q1.正式进入嵌入式开发领域,同年
23、10月,Qt开始采用GP1.开发模式,2008年,诺基亚收购了Qt,Qt开始在智能嵌入式设备大展拳脚,同时诺基亚在Qt的基础上开发了QtCreator,是款轻量级集成开发环境,可以跨平台运行,2011年DigiU从诺基亚收购了Q1.的商业版权,从此,QtDobiIe由诺基亚负贡,而QtCommercia1.1.Digia负责,2012年,Qt正式被诺基亚公司作为资产剥离方式出色给Digia公司,Qt开始了真正的跨平台发展。由于Q1.具有的强大的跨平台优势,可以操作运行与绝大多数H前流行使用的平台,并且具有模块化度高,可重用性好的面向对象开发方式,可以使用signa1.s/s1.ots的安全类型
24、来替代Ca1.1.baCk,使得各个模块之间的协同工作变得非常简单,以及大量的API支持,Qi当之无愧作为本次开发的主要工具.5. 3局域网聊天原理此次局域网聊天软件的设计主要采用TCP/IP协议完成,TCP/IP协议作为internet的核心协议,已经被广泛应用与日常的网络使用,在局域网和广域网中都屡见不鲜,目前已经成为事实上的国际标准.TCP/IP协议在网络参考模型中主要作用于网络层、传输层和应用层,支持TCP/1P协议的应用程序通常直接运行与传输层协议,而不需要表示层和会话层的支持。该协议可以在一台计算机需要连接另一台计算机时,帮助其建立个连接,井控制起发送接受数据,以及决定性的终止连接
25、,TCP/IP协议基本囊括了网络通讯的主要功能,同时具有相当的灵活性和自由性,使得计算机之间可以彼此通信、联通。同时本次开发需要用到UPD协议,也就是用户数据包协议,这是种异步通信模式,需耍采取请求接受的方式来进行通讯,但这样的好处是不需要接受网络吞吐髓的限制,同时可以完整的接受发送数据,这样的好处是不需要维护连接状态,因此台机器可以向多个机器发送相同的消息,虽然UPD协议不是一个可靠协议,但其分发信息的功能在本次设计中起到了至关重要的作川。本次局域网聊天软件的设计思路如下:假定A为发送方,B为接收方,首先发送方流程如下:XA用户登录建立,个广播SCoke1.然后,接收方潦程如下:第4章系统分
26、析5.1 系统实现目标本软件主要实现:实现局域网中用户的日常聊天,文字传输,上线提示,可以更改字体、字号,保存聊天记录,珊除脚天记录,传输小型文件,实现窗口拖动等功能,具备基本的局域网聊天软件功能,使用QT开发,使其可以跨平台使用,为将来的软件移植打下坚实的基创。6. 2系统体系结构局域网聊天系统客户端服务器开启服务器配苴服务器关闭服务器窗口拖动文字传输文件传输上线提示S41系统结构图柳大记录保存:可以保存当前的聊天记录到TXT文档。更改字体、字号:Uf以根据用户的喜好自行更改字体、字号、颜色等聊天文字。登录:使用用户喜欢的用户名进行登录。文字传输:实现聊天的基本功能.上线提示:用户上线发出上
27、线提示。文件传输:可以传愉小型文件。窗1.1.拖动:点击聊天软件窗口可以自由拖动。第5章系统设计该软件要求功能齐全,界而美观简介,符合当代人的基本审美要求,进行合格的软件开发,功能模块开发是重中之重。6.1 概要设计首先,要明确在系统需求分析中,首先要明确的是客户需求,作为局域网聊天软件客户的需求首先是流畅的聊天,其次,美观性在当今的软件设计当中起到了决定性的作用,U1.的设计就显得尤为上耍,再者,软件的功能性全面利完善是一个完整的软件必不可少的。那么概要设计就明确了:1 .深入了解局域网聊天的方式方法;2 .设计完整的U1.界面:3 .完善软件的功能以及优化。7. 2软件结构设计模块化在软件
28、结构设计中起着尤为重要的作用,能否将一个应用合理的模块化是一个项目能否成功的关键,模块化是说,将个或杂的软件分解成为若干个小模块,逐级划分,层以嵌套,使4个软件具有明显的层级和规则,每个模块完成一个特定的功能,将各个模块组织起来之后,就可以膨成一个完整的软件。将软件模块化的原因是为了让软件的各个功能更加明确,易于将来的修改和维护,同时也增加了软件的可读性,使得更多人可以为这个软件增加新的功能和优化。但值得一提的是,软件的模块化并不是任意的,而是具有相应的层级和相应的规则的,乂2嵌套,一环扣一环,使得各个模块间的借口尽量的联系少旦简单,从而省去很多不必要的麻烦,尽量做到高内聚低耦合,增强各个模块
29、的单独使用性,为日后提高软件质量做准备。在本次软件的设计中,软件被细化成如下儿个部分:登录界面1 .用户名输入框2 .UI界面3 .窗体拖动二.聊天室界而1 .文字输入框2 .工具栏D字体调整2)字号调整3)颜色调整4)聊天记录保存5)聊天记录清空6)文件传输3 .消息显示框4 .用户列表框5 .UI界面6 .窗体拖动TCP客户端1 .端口、IP地址配置2 .文件接收3 .窗体拖动四.TCPJjK务器1 .端口、IP地址配置2 .文件发送3 .窗体拖动5. 3详细设计6. 3.1登录界面用户登录界面,如图。XinnCftotToo1.调输入您的用户名图5.I用户置录图主要U1.设计代码如下:D
30、ia1.ogwidgetCIaSS=QDia1.ogname-Dia1.ogOO400184/proper1.yDia1.og3001106161PointingHandCursorQPushButtonborder-image:ur1.(:ZimgsZdia1.ogenter,png):QPushButton:hover!border-image:ur1.(:/imgs/dia1.ogenteractive,png);)QPushButton:pressedborder-image:ur1.(:/imgs/dia1.ogenter_se1.ect.png)Jpropertyname=text
31、)trueCwidgetC1.aSS=QPushButtonnamc=cxit,Btn”364O3030/proper1.yproper1.yname=s1.y1.eShee1.”QPushButton(border-image:ur1.(z/imgs/dia1.ogc1.ose_.png);QPushButton:hoverborder-image:ur1.(:/imgs/dia1.ogc1.oseactive.png);)QPushButton:pressedbordeiimage:ur1.(:/imgs/1.ia1.ogc1.ose_se1.ect.png):)truepropertyr
32、uune=geom5013521131propertyname=font)AdobeGothicStdB1.1.75truepropertyname=geometry”)00400184*WidgeIbackground-imge:ur1.(:/imgs/dia1.og_mian.png):)widgetenterBtnexitBtnusrEiitzorwiexitBtnpressed()Dia1.ogc1.ose()3781419991功能实现如下:yinc1.udedia1.og,h”Iiinc1.ude*ui_dia1.og.h*Dia1.og:Dia1.og(QWidge1.*pare
33、n1.):QDia1.og(parent),ui(newUi:Dia1.og)(this-setWindowF1.ags(Qt:!Frame1.essWindowHint);1.his-setttribute(Q1.:WATraris1.ucentBackground,true):ui-setp1.i(this);ui-usrEsetFocus():)Dia1.og:Dia1.og。(de1.eteui:)voidDia1.og:mousePressEvent(QMouseEvent*c)1.ast三e-g1.oba1.Pos():voidDia1.og:mouseMoveEvent(QMou
34、seEvent*e)(intdx=e-g1.oba1.X()-1.ast,x():intdy=e-g1.oba1.Y()-1.ast,y();1.ast=e-g1.oba1.Pos():move(x()+dx,y()+dy);)voidDia1.og:mouseRe1.easeEvent(QMouseEvent*e)(intdx=e-g1.oba1.X()-1.ast,x():intg1.oba1.Y()-1.ast,yO;move(x()+dx,y()+dy);IvoidDia1.og:onenterBtnCIiCkedo(UserName=ui-usrEdit-textO:if(userN
35、ame!=)accept();e1.se(QMeSSageBox:Narning(O,tr(警告),tr(用户名不允许为空),QMessagcBox:0k);ui-usrEc1ear();ui-usrEsetFocus();)5.3.2聊天室界面聊天室界面作为本软件的主要界面,UI的设计一定要简洁明了,不会产生违和感,如图.并且作为大部分功能的实现界面,文字的传输和调整以及用户列表的显示全都囊括其中,为了调理清晰,所以采用了灰白搭配的配色方案,将功能按钮放在文字输入框之上,采用/Too1.BOX的方式进行排列和组织,显得更符合美感。1.nOha1.Too1.X图5.2聊天室界面图主要U1.设计代码如下:2WidetwidgetC1.aSS=QWidgetname-Widget”true0O846525CSIring局域网聊天工具10505312411030053161/propertyfa1.sefa1.sepropertyruune=geom102010122propertyname=frame”truetrueproper1.yname=wgeone1.ry*120204122“propertypropertynamc=editab1.e”true39101.1.
链接地址:https://www.31ppt.com/p-7327700.html