版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
跨平台信息网际信息传输系统设计目录TOC\o"1-3"\h\u139411绪论 2171921.1软件开发背景 2147491.2软件开发意义和目的 431381.3项目目标与期望 438981.4软件设计原则 4324572开发技术介绍 5192392.1WinSock技术 5183272.2WindowsAPI编程 5219172.3C/S模式 5270692.4MicrosoftOfficeAccess数据库 6230922.5MFC编程技术 630682.6VistualC++6.0 641113需求分析 737793.1系统设计思想 7113483.2系统的基本需求 759633.3可行性分析 864843.3.1现有条件及必要措施 8247293.3.2技术可行性 882174系统总体设计 9269754.1系统结构设计 9243654.1.1客户端功能设计 936054.1.2服务器端功能设计 92174.1.3客户端与服务器的连接 10227294.2客户端的流程设计 10297484.3系统功能模块设计 11236654.4数据库设计 16183515系统功能模块的实现 18245165.1主要功能模块设计 18309835.2数据库表结构 20317195.3数据库的连接设计 22280996软件实现与测试 23136766.1软件测试 2383606.2聊天软件系统测试 2326856.3程序测试 30132596.3.1测试的重要性及目的 3018346.3.2测试的步骤 31215406.3.3测试的主要内容 321绪论1.1软件开发背景21世纪的互联网发展之快是前人所不敢想象的,借用刘慈欣的词语称之为一次技术爆炸也不为过。如今在中国来说,互联网技术也已基本普及,现在的小孩也是早早就接触各种互联网产品,而老人们也在子女的教学下学习怎么使用一些手机软件而不被时代所落下,现在人们的生活也早已离不开互联网了。工作、学习、生活、娱乐和社交等都与互联网密不可分。就社交这点来说,人们现在除了线下社交像是学生于学校中上班族于工作中与人交往外,现在人与人之间的交流社交也大多是在线上通过聊天软件社交软件等进行的,这样可以不仅局限于在线下一个小圈子里的人机交往,可以在网上寻到各地各种各样与自己爱好相同或者与巧合中认识的人们,让社交没有了距离和时间的限制。以目前的中国的情况来说,QQ和微信已经是中国发展最为成熟的两款聊天社交软件,他们也都属于腾讯公司,他们发展到现在也功能也早已不局限在了普通的聊天功能,还有各式各样琳琅满目的功能供各类使用者选择。对于我们普通人的认知下来说,此类社交软件是主要用于我们的生活之中的,但其实它在商业中的用途也很大,深受市场的重视。使用这些聊天软件可以作为企业与客户之间能进行即时即刻来交流的很好的一个平台或者说工具。因为他有着自己独到的优势是其他软件功能所不能及的。比如就时间上来说,它有着实时性,对比以前的传统邮件交流来说,双方使用者都能即时即刻的收到和看到对方放松过来的消息。而且在费用成本方面,所消耗的那么一点流量比起以前打个电话或者发条短信来说可以说是九牛一毛了,大大的节约了成本。互联网以及互联网技术在这些年的飞速发展中,各种互联网的应用也是如雨后春笋般的冒了出来,各个企业公司商家开发的各种应用来抢占市场看谁能拔得头筹。大量的用户会被互联网所吸引成为网民也是因为互联网有他独到的传播方式,人们可以在网上或许需求信息和快乐。本次设计的是聊天软件所以主要讲一下即时通讯这点。人们在网上可以便宜快捷又便利的去和朋友亲人之间进行打字交流,发展到现在还可以有着语言聊天视频聊天传递文件的更高级的功能。哪怕是现在来说打一分钟电话的花费和你用QQ打一分钟语音,其效果都是一样的,但花费缺差了很多,现在还有各式各样的流量包供选择,使得一次语音甚至是视频电话的花费早已微乎其微,更不用说在有WiFi的坏境下了。电话至少还是现在普遍再用的工具,但说起信件、电报邮件这些老的通信方式,我甚至都有种恍如隔世的感觉,再往后几年这些词可能就只是历史书里的一角了,他们被时代所淘汰。他们因为功能少缺点多而被慢慢淘汰了,但目前QQ和微信却发展出了各种各样适合各类人群的功能,用琳琅满目来形容都不为过了。用户的体验也随之提高,粘性也更强了。从现在展望未来,聊天软件也绝对是必不可缺的东西,他只会发展的越来越好越来越成熟,直到下一次类似软件可以出现革新性的进步。在当今的中国,可以说只要你是一个网民你就一定有一个属于自己的QQ号或者微信号(虽然其本质是属于腾讯公司借用的),开个玩笑。腾讯公司在1999年,借鉴了国外的一些产品(后续会讲到),开发出了一款即时通信的软件工具就是现在的那只企鹅QQ。而且他的后续发展是非常迅速甚至可以说是夸张的,短短几年时间,注册人数就已经是中国最多的了。要问现在中国本土的龙头互联网企业公司有哪些,腾讯绝对是其中之一,因为QQ微信的使用人数优势,其已成为体量最大的互联网公司,而且微信QQ其自有的传播方式也是让腾讯公司其他项目的发展有着其他公司所无法企及的优势。目前的QQ已有超过4.3亿的注册用户群。最开始的QQ只有最简单的文字聊天功能,但是到现在什么语音聊天视频聊天都已经是最基本的功能了。还有各式各样的图片表情包可供使用,用QQ进行文件传输也是大多数人的选择。还有着很多个性化的服务功能可供使用者选择。而就外国来说ICQ和MSN是在国外比较盛行的即时聊天工具,腾讯公司的传统艺能来说腾讯QQ的开发也是就着两款聊天软件进行了借鉴的。ICQ,读出来就是ISeekYou,因为他是一个音译的缩写。其也有着数量巨大的用户群。最初他的功能是可以与同样使用ICQ在线的好友交谈或者发送文件。比起Email更受用户的青睐。MSN可能在国内来说知道的就比较少了,他是属于微软的聊天软件。他也是和我这次设计的软件很类似的,客户端会通过服务器与其他客户端来传递消息。其从95年登录美国以后也是发展迅速,用户人数呈几何式的增长,而且财大气粗的微软在收购了其他公司的一些业务服务后也是会并入整合到MSN使其可供使用的功能更多。在互联网发展的大背景下,对聊天软件的需求促使其迅速的发展。1.2软件开发意义和目的本次课题研究的意义,主要是研究互联网的跨平台跨语言信息交流如何去完成,以小组为形式的开发也更需要我们去有更多的交流配合,到达互通有无的去合作完成本次项目,能让每个人自己所研究设计出的程序想结合来达到最终的需求。即是来实现一个类似极简化版的QQ,他有文字文件及一些表情的传输功能。我将结合大学所学的C++、前端、数据库及网际协议相关的知识来完成本次课题设计,摸索前进求真务实的解决问题以求能更好的达成目标。开发的目的则是因为现在是信息时代,网络在飞速发展到现在的同时脚步依旧未停留半步,热门的专业抢手的工作都和互联网离不开关系。人们除了在生活中经常使用这些聊天软件,在工作中对于即时聊天,文件传输的使用和需求也是越来越多。但是现有的该类软件例如国内的QQ和国外的MSN等软件在商业用途上的表现一般,其娱乐性很强,源代码不明确,信息安全性也无法得到保障,而且软件本身是属于其他公司的,不便于管理。而且从技术层面上来讲,一款单纯简单的即时聊天软件,他的结构简单,功能模块也不需要太多,因此很多有能力的公司都会自行研发此类软件供内部使用。而我们这款软件的设计则是为了个人和小型的企业团体提供即时通讯服务,使用简单便捷,软件麻雀虽小五脏俱全,因为数据都由自己管理所以还有着其独到的私密性。1.3项目目标与期望目标是通过对跨平台通信和前端开发设计的学习后,能够用C++语言来研发设计本款聊天软件,他功能简要缺齐全,能够安全的传输文字于文件,并且将记录保存在服务器端。在设计过程中也期望着能加入更多的功能,比如可以添加一些小表情供用户使用,还可以学以前的老QQ有窗口抖动功能,在往更高的方向展望看可不可以加入语音聊天功能。在这两个多月的时间里可以开发出来并完善此客户端设计并且能于其他组员的设计相连形成一个功能完整的跨平台聊天软件系统。1.4软件设计原则本次的软件设计我会遵循以下这几点原则:(1)本软件使用起来功能明晰,简单好用,不会存在一些花里胡哨的功能,就新手来说也能上手即用。(2)每个用户都有自己不同的习惯,所以我们的软件设计需要保证不同的用户也能找到适合自己的操作方式,还可以简单添加一些符合用户喜欢的UI设计。(3)软件后续可以持续的更新新内容新功能增加其使用寿命及用户粘性。2开发技术介绍2.1WinSock技术WinSock是支持多种协议的网络编程接口,也是我这次选择他的原因。它提供了很多需要用socket进行编程的函数可供我使用,对于我这种经验不够多的新手开发人员来说,能够更便捷的设计出好的能达到要求的的网络程序。2.2WindowsAPI编程本次聊天软件客户端部分的设计离不开它,这个多作业的系统可以帮助应用程式开启视窗描绘图形的功能。它有着很多可以直接使用的组件可以简要的帮助我达到我所需要的功能。2.3C/S模式C/S模式也称C/S结构,即为客户端/服务器模式。本次的聊天软件设计即是采用这种模式。该模式是软件系统体系结构最常见的一种模式了,从上个世纪的八十年代发展至今。采用C/S结构是因为设计中客户端和服务器各自有各自的功能,所以就这点来说采用C/S结构是最佳选择。我本次的课题主要是做客户端方面的设计。还有另外一种模式则是B/S模式,即浏览器/服务器模式,不在本次设计的考虑之中。2.4MicrosoftOfficeAccess数据库Access是微软公司的一个数据库管理系统。它所能提供给我使用的的功能多样并且使用起来简单,用其提供的表,查询等功能建立数据库,对于数据的储存和查询来说也更加规范操作。可以方便的建一个达到需求且较为完善的数据库。2.5MFC编程技术MFC是微软基础类库的简称,他是一个C++的类库,里面封装着WindowsAPI函数。此外MFC也是一个框架,在我建项目的时候会有框架封装好的文件直接使用。这样编程起来除了方便外也可以更好的进行逻辑设计,在后续检测中出现BUG的话进行改查也更简便易操作。还可以有效的避免一些编程过程中需要重复的代码从而达到节约时间的目的。2.6VistualC++6.0VisualC++6.0,简称VC6.0,一个由微软开发的常用C++编译器。就现在来说是一个很老的编译器了,也是我在学校学C语言时接触的第一个编译器。又因为本次设计题目是使用C++完成客户端的设计所以选择它作为开发工具。其虽然老也有人说它过时,但这都不影响它依旧是一个功能完善能达到目标要求的编译器,我在使用过程中也是非常的得心应手。而且VC6.0它不仅仅是一个C++的编译器,同时还是一个可视化的集成开发环境。作为一款发展成熟的编译器它除了有最基本的编译调试器等组件外,还有着很多可供使用的开发工具。使用这些组件使得我在这次程序的设计开发过程中更加便捷。3需求分析3.1系统设计思想本系统的核心目标是实现跨平台的信息网际信息传输,以此为主去设计需求中所要达到的各个功能去设计出对应的功能模块。该软件主要用途是用于聊天,用户聊天过程中需是连接状态故而选择TCP的传输协议。C++是面向对象的编程语言,在设计实现各个模块的时候,都可以直接去调用它封装的类。本次设计所选择的是VC++6.0这款老的编译器,他是我在学习C语言中接触的第一款编译器,使用起来功能齐全,有很多工具可以使用,方便达到程序所想要的效果,还可以节约整个开发时间。MicrosoftOfficeAcess数据库可以对多种数据进行存储和处理,并且在后续使用中需要拓展时也很容易。就使用方面来说,需要掌握它的学习成本低,使用起来很顺手。本系统是以C++语言所设计出的客户端,为能实现与Java客户端之间进行信息传输,我们约定通信信息使用Socket传输,传输的信息为一定长度的byte[]数组byte[]数组的格式如下:第1个字节为操作数,其范围是0-127,它代表了你向服务器申请的是什么操作;第2-5字节是数据长度(可为0),获取4个字节长度的byte数组后通过ByteToInt方法转换成int,来表示传输的数据数组的长度L;第6-L+6字节是交互的数据,一般在某些操作数不需要声明发送对象时默认发送至服务器,如有需要声明发送对象的操作数将数据项的头4个byte化成int类型表示需要发送的对象的账号。从而可以实现跨平台传输的目的。3.2系统的基本需求该此设计的即时聊天软件系统需要达到以下几点功能:客户端方面的功能有:用户可以在注册成功后登录客户端进行使用。在程序主界面可以显示在线的好友用户。可以通过ID去添加好友和删除好友用户可以用该软件于其他用户进行文字的消息交流。用户可以完整的发送和接收文件。用户可以主动修改自己的一些资料内容。可以对添加的好友进行一个分组,使用的时候想找到好友会更方便。3.3可行性分析可行性分析在本次设计的聊天软件系统中也是很重要的一环,对于本次系统设计可行性的一次预估。就本课题来说主要是看需求的条件(经济上的可行性)和技术上的可行性。3.3.1现有条件及必要措施硬件平台:
普通计算机一台软件平台:
操作系统:windows10
开发语言、环境:C++
开发工具:
VisualC++6.0
数据库:MicrosoftOfficeAccess3.3.2技术可行性本次毕业设计的聊天室软件对于电脑的软硬件的要求来说并不高,就目前市场上的大部分的计算机笔记本电脑等都是可以满足这次开发需求的并且可以完美流畅的运行该程序。以大学所学的知识和网上视频学习的内容结合指导老师的讲解并参考了一些开源代码即可以完成本次聊天软件客户端的设计。而对于出现的一些技术难点和不懂的地方,可以先自己查找资料或者网上教程学习后解决,如果还未能解决问题则可以向周围同学和指导老师请教相关问题。总体上本次毕设是可以完成的。4系统总体设计4.1系统结构设计4.1.1客户端功能设计按照上述的需求分析为主来进行出的本次客户端功能设计如图所示:图4-1客户端功能设计4.1.2服务器端功能设计服务器设计有以下几种功能1:可以存储用来放好友消息申请的临时数据;2:可以转发聊天消息;3:可以查询用户信息实现数据同步功能;4:可以实现文件传输的转发功能;5:聊天记录放在数据库中;4.1.3客户端与服务器的连接图4-2客户端于服务器的连接4.2客户端的流程设计4.3系统功能模块设计系统使用多线程实现对数据的接收,有着消息的接收线程,文件接收线程,登录监听线程。程序会对这些不同的消息进行处理,对于用户在使用过程中所执行的操作,都会有消息响应函数与之对应,完成对消息的处理。系统主要有这五个大的功能模块:用户的登录(注册),好友管理(添加与删除),消息监听(对各类消息的监听模块),消息处理(对监听到的消息分别进行处理),和系统异常的处理(出现异常会出现弹框并退出程序)。子系统功能模块图:用户在注册获得ID密码后即可登录程序使用对于好友的管理有具体有以下这些功能:此模块主要对用户登录和用户在使用时对聊天(图片)消息文件传输消息的监听:系统可能会出现的以下这些异常:以下是具体的信息处理模块,有着很多的功能。本次聊天软件系统详细的所有模块功能图4.4数据库设计数据库会建立用户信息表,好友关系表和群组表来存储相关数据,用户在添加和删除好友时系统都会在数据库中的好友关系表上进行增加和删除的操作。主要属性ER图:用户在注册时或者在登录后主动的修改以下这些详细的个人信息并且保存在数据库中。用户可以给好友进行分组操作,分组的群组名可以由自己定义被分配到同组的好友用户会出现在同一个群组下面,也是便于用户对好友的区分和管理。5系统功能模块的实现5.1主要功能模块设计用户登录模块注册功能:新用户再单击注册按钮后即可进入注册环节,在注册框中填入ID密码昵称性别年龄等的信息后,这些数据会被存入数据库,自此则算是注册成功了。登录功能:在注册后输入正确的ID和密码后,系统如果能在数据库中找到对应的ID和密码后就可以登入系统使用了。而如果填的ID和密码错误或者不能对应,则会弹出密码错误提示框,需要重填对的密码来使用软件。如果记不起密码则可以找到管理员去后台调出数据找回或者修改密码。好友管理模块 用户可以在该软件中进行添加删除好友的操作。作为聊天软件好友管理的功能肯定是至关重要的,用户可以通过ID去查找添加好友,在提出申请后对方会收到好友添加的请求框,在确认添加后,两人的ID数据即会保存到数据库创建的好友表中,用户还可以给这些好友进行分组便于管理。自此两人就建立了好友关系。而用户也可以在想的时候删除掉好友,在确认后系统会把数据库中好友表上的两人ID信息删除掉切断两人的好友关系,好友删除成功。消息监听模块此模块非常的重要。它会以多线程去监听各类消息,比如用户的登录消息,用户的聊天消息和文件传输的消息等等,而这些线程则是通过socket与端口进行通信。消息发送模块消息的发送模块也是本系统的核心模块(因为是聊天软件系统嘛),用户互相间发消息聊天是通过使用基于TCP协议的Socket编程技术来达成的。每种消息有着其各自对应的发送端口,这些端口都是根据网络协议中的规定来决定的。以下是一些自定义的消息ID:用户登录消息LYF_USE_DNEGLU普通聊天消息LYF_USER_XIAOXI用户接收文件消息LYF_FILE_TONGYI用户拒绝接收文件消息LYF_FILE_JUJUE出口抖动消息LYF_WINDOW_DOUDONG 以下为具体的信息接发代码:图5.1消息处理模块的设计当用户做出相应操作时,上面对应的那些自定义消息会在程序的设计中会有对应的函数去处理,下列是响应消息的代码:图5.2系统异常处理模块的设计该模块的作用主要是在系统可能出现异常之后,会弹出相应的提示框,去告知使用者何处出现异常以方便改正操作,代码如下图:图5.35.2数据库表结构数据库Accessuu_data包括4个表:用户信息表,聊天记录表,好友关系表,群组表。下面介绍部分表的结构:用户信息表如图所示好友关系表如图所示群组关系表如图所示5.3数据库的连接设计以防止资源浪费的思想为设计准则,故使用JNDI来连接数据库。相比较JDBC来说,功能更丰富,承受能力也更优秀。JNDI在使用前需要在Tomcat中进行如下配置:图5.4在完成上面的操作之后,在使用数据库的过程中,在面对要更改数据的情况时,会使所需的操作更加便捷,在后续使用过程中对数据的维护也会很方便。以下是使用JNDI的代码:图5.56软件实现与测试6.1软件测试软件测试其目的是发现程序中是否有BUG的过程,在整个软件的设计及开发过程中都需要进行测试来检测程序是否能运行。为了检测出程序中的BUG在哪,早发现早改正。此过程可以保证软件最后可以安全流畅可靠的运行。测试分为以下这四步:(1)模块测试:对每个单独的小模块进行检测看调试时会不会出现错误。(2)子系统测试:这一步主要针对的是本次设计中的那些模块接口,看会不会出现错误。(3)系统测试:第三步是对于整个系统的综合性检测,在前两个测试环节无误后把各个模块组合成为本次设计的程序,在联调时对其进行检测,可能会发现一些设计逻辑上的错误。在检测正常后就可以去对比其功能有没有达到最初定下的需求目标。(4)验收测试:整个测试的最后一项,用于测试用户使用过程中软件会否出现前面没有找到的错误。6.2聊天软件系统测试此次设计的聊天软件功能简要明确,测试该软件在正式的使用中会不会出现问题,功能是否齐全有效。图5-1用户登录图5-2程序主界面图5-3文件传输的截图图5-4聊天框界面图5-5退出提示框 以上是主要模块的相关测试结果,各个需求的基本功能可以实现。6.3程序测试6.3.1测试的重要性及目的(1)测试的重要性软件测试的重要性其实是不需多言说的,在整个开发环节,测试就是全程伴随其右的。是软件正式给用户使用前检测软件质量好坏的重要方法。在软件检测过程中没有发现问题反而会让我很慌,尽可能发现问题从而改正改进才会让软件更好更完善。正式给客户使用后避免出现一些大的不可挽回的错误。就现实我接触过的一些软件或者游戏,哪怕是一些大厂出品也同样会出现BUG,在游戏上线前也会进行很多封测二测甚至三次测试等,都是为了在正式使用中不会出现问题。但是对于软件测试还是有一些不正确的认知和看法导致测试时出现困难。包括:觉得软件的测试工作不能带来成就感;认为检测中发现错误和BUG是不好的事情;软件测试很无聊且枯燥;认为软件测试繁琐且无用;如果是自己的程序被发现错误会不开心在我认为,这些观点但是不正确的,如果想让自己设计的程序更完善无误,那么认真的对待每次的软件测试环节是非常必要的。(2)测试的目的①首要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南文山州文山市人力资源和社会保障局第四期城镇公益性岗位人员招聘4人备考题库附完整答案详解【夺冠】
- 2026年福建泉州市部分公办学校招聘编制内新任教师85人模拟试卷附参考答案详解【基础题】
- 2026重庆西永微电园产业投资集团有限责任公司总法律顾问招聘1人参考题库含完整答案详解(考点梳理)
- 2026四川凉山州喜德县面向喜德县内中学考调高中教师16人模拟试卷含完整答案详解【网校专用】
- 吉安市卫生学校2026年公开选调工作人员【12人】备考题库附完整答案详解【名师系列】
- 2026北京市大兴区黄村镇孙村社区卫生服务中心招聘临时辅助用工人员4人备考题库附完整答案详解【各地真题】
- 广东省揭阳市榕城区一中学2026年物理八年级第一学期期末考试试题含解析
- 重庆经贸职业学院《岩土工程数值计算》2026-2027学年第一学期期末试卷含解析
- 野生动物救护中心验收方案
- 小学六年级下册数学大单元比例知识整合教学设计
- 2026年小学心理专题活动设计方案
- 2026年精准扶贫知识测试题及答案
- 2026云南长水机场北高速公路有限责任公司就业见习人员招聘10人考试备考试题及答案详解
- 2025北京大兴九银村镇银行社会招聘笔试历年典型考题及考点剖析附带答案详解2套
- 高中地理(高二年级·选择性必修三)教学设计:《环境问题及其危害》
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 汽车零部件检具培训
- 问道手游文曲星题目答案
- 《结构全寿命维护》教材
- NB/T 10731-2021煤矿井下防水密闭墙设计施工及验收规范
- GB/T 28799.2-2020冷热水用耐热聚乙烯(PE-RT)管道系统第2部分:管材
评论
0/150
提交评论