毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc

上传人:哈尼dd 文档编号:3944951 上传时间:2019-10-10 格式:DOC 页数:36 大小:613.50KB
返回 下载 相关 举报
毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc_第1页
第1页 / 共36页
毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc_第2页
第2页 / 共36页
毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc_第3页
第3页 / 共36页
毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc_第4页
第4页 / 共36页
毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-JQQ即时通讯系统的设计与实现.doc(36页珍藏版)》请在三一文库上搜索。

1、JQQ 即时通讯系统的设计与实现 JQQ 即时通讯系统的设计与实现 计算机科学与技术专业 摘摘 要要 运用 Internet 和 Java 开发技术,采用 C/S 模式,建立一个基于应用的 即时通讯系统。本系统实现了用户注册,用户登陆,分组管理,好友管理,查询用户, 用户即时通讯,查看聊天记录等功能。用户注册是通过系统来添加新的用户;用户登 录用来验证用户的信息是否合法;分组管理功能主要是对分组的管理,如添加分组、 删除分组等;好友管理功能主要是对好友的管理,如添加好友、删除好友等;查询用 户是查询所有已注册的用户以便加为好友进行通讯;用户即时通讯使成为好友的双方 可以即时在线交流;查看聊天记

2、录保存了与好友通讯的所有记录。 关键词关键词即时通讯系统;C/S 模式;TCP;UDP JQQ instant messaging system design and Implementation Computer Science and Technology Major Abstract: The use of Internet and Java development technologies, using C / S mode, a real-time communication system based on application. The system implements use

3、r registration, user login, group administration, friends manage, query user, instant messaging, view the chat history. User registration is through the system to add new users; user login used to authenticate the users information is legitimate; group management functions mainly for the management

4、of groups, such as adding a group, delete group, etc.; friends management functions mainly for friends management, such as adding friends, remove friends, etc.; query the user is the query to all registered users to add as friends to communicate; users to instant messaging to become friends of the t

5、wo sides can exchange real-time online; view chat history with a good save Friends of the communication of all records. Key words: Instant messaging system; C / S mode; TCP; UDP JQQ 即时通讯系统的设计与实现 目 录 1 绪论 1 1.1 项目背景 1 1.2 国内外研究现状 1 1.3 预期目标和经济效益 2 1.4 课题简要介绍 3 1.5 系统创新点.3 2 需求分析 3 2.1 功能需求 3 2.1.1 用户

6、管理.3 2.1.2 分组管理.4 2.1.3 好友管理.4 2.1.4 即时通讯.5 2.2 通讯模型的特点 5 2.2.1 适用性.5 2.2.2 扩展性.5 2.3 可行性研究 5 2.3.1 技术可行性分析.5 2.3.2 不确定性分析.6 2.3.3 分析结论.6 2.4 运行环境 6 3 概要设计 6 3.1 框架设计 6 3.2 拓扑结构 7 3.3 功能设计 9 3.2.1 用户注册模块.9 3.2.2 用户登录模块10 3.2.3 分组管理模块 10 3.2.4 好友管理模块10 3.2.5 查询用户模块11 3.2.6 即时通讯模块11 3.2.7 聊天记录模块12 JQQ

7、 即时通讯系统的设计与实现 3.4 设计原则及一般要求 .12 4 系统设计 12 4.1 模块设计 .12 4.2 即时通讯系统关系型数据库的实现 .12 4.2.1 数据库分析13 4.2.2 数据库概念设计13 4.2.3 数据库逻辑结构设计14 5 系统实现 15 5.1 注册模块 .15 5.2 登录模块 .17 5.3 分组管理模块 .18 5.3.1 添加分组 18 5.3.2 删除分组 20 5.4 好友管理模块 .21 5.4.1 添加好友21 5.4.2 删除好友23 5.5 查询用户模块 .24 5.6 即时通讯模块 .25 5.7 聊天记录模块 .26 6 测试报告 2

8、8 6.1 测试基本要求 .28 6.1.1 内容检查28 6.1.2 易用性测试28 6.1.3 功能检查28 6.1.4 容错性测试28 6.2 测试用例方法举例29 6.2.1 功能测试29 6.2.3 性能测试29 结论及尚存在的问题 30 参考文献 .30 致谢 31 JQQ 即时通讯系统的设计与实现 1 1 绪论 即时通讯软件的出现正在逐渐改变人们的沟通与交际方式。无论近在咫尺,还是 远隔重洋,通讯也只是在键盘和鼠标之间就可以解决问题。即时通讯服务非常适合企 业内部或企业和客户之间的交流。网络聊天程序.越来越影响着我们的网络生活。 随着全球信息化进程的不断发展,网络也在飞速发展。出

9、于高效、快速地处理各 种事务的目的,越来越多的企业和单位在其内部使用局域网来进行工作和交流。在内 部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效 率。然而,随着局域网规模的扩大,业务量的增加,在局域网上运行的应用越来越多, 如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息 吞吐、处理能力的要求也越来越高。这些在原有局域网设计之初未曾考虑到的新情况 的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效 率,反而成为工作效率的瓶颈。基于 Socket 的局域网聊天室是局域网通信软件的具体 实例之一,它很好地诠释了 Sock

10、et 通信的原理,并且在局域网部通信、教学、讨论等 应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资 源低,占用服务器吞吐能力低,易于编程实现等优点。 1.1 项目背景 即时聊天使亲友的沟通突破时空极限,使人与人的沟通突破上下级极限,使陌生 人的沟通突破环境极限,使自我与外界的沟通突破心理极限 作为使用频率最高的网络软件,即时聊天已经突破了作为技术工具的极限,被认 为是现代交流方式的象征,并构建起一种新的社会关系。它是迄今为止对人类社会生 活改变最为深刻的一种网络新形态,没有极限的沟通将带来没有极限的生活。 聊天一直是网民们上网的主要活动之一,网上聊天的主要工具已经从

11、初期的聊天 室、论坛变为以 MSN、OICQ(又称 QQ)为代表的即时通讯软件。迄今为止,全球约有一 亿多人使用即时通讯软件在网上交流。中国网民惯用的即时聊天工具腾讯 QQ 从 1999 年 2 月诞生到现在,注册用户已超过 1.6 亿,在线用户最高时超过 200 万人,而每天 独立上线人数更是达到一千二百多万,拥有活跃用户 5500 万,几乎覆盖所有中国网民。 即时通讯工具使用频率之高,超出任何一种网络软件。电子邮件曾是最重要的通 讯交流工具,是互联网最早的“杀手级应用。到 2004 年,即时通讯软件已取代电子邮 件,成为最流行的互联网通讯工具 JQQ 即时通讯系统的设计与实现 2 1.2

12、国内外研究现状 即时通讯软件,几乎是每一个上网用户都必备的联络工具。即时通讯软件除了能 够让您迅速地在网上找到自己的朋友和工作伙伴,还可以实时交谈和传递信息,而且, 现在不少即时通讯软件还集成了文件共享、语音聊天、网络会议等功能。截止到目前, 全球约有近 3 亿多人使用即时通讯软件进行交流,正因为即时通讯软件拥有数以亿计 的用户和迅速增长的市场,所以各个公司都盯上了中国这个潜在的最大市场,一时间, 即时通讯市场硝烟四起。除了腾讯 QQ 和国外的几款著名即时通讯软件纷纷推出新版本, 网易也推出了一种新的即时通讯软件网易泡泡。朗玛公司也推出了名为 UC 的通讯 工具。 即时通讯软件最早发布于 19

13、96 年 11 月 15 日,以色列特拉维文的 Mirabilis Ltd. 发表了一个题为E.T SURF HOME:MIRABILIS LTD. PROVIDES NEW SOLUTIONS FOR PEER-TO-PEER INTERNET COMMUNICATIONS的新闻稿,同时发布了他们新产品 ICQ(I Seek You)的 Beta 测试版。这天标志着 Internet 上的第一个成热的即时通讯系统 (Instant Message System)的诞生。即时通讯服务在诞生之后的几年时间得到了迅 猛发展,成为新增 Internet 用户的 3 个主要应用之一(WEB,电子邮件和

14、即时通讯)。 在国内,1999 年 2 月,深圳腾讯公司正式发布 OICQ99 beta build 0210,开通腾 讯即时通讯服务。2000 年 5 月,腾讯 QQ 同时在线用户突破 10 万;2001 年 2 月 l0 日, 腾讯 QQ 同时在线用户突破 100 万。2004 年 4 月份腾讯 QQ 同时在线人数最高记录已经 突破了 600 万大关,现在腾讯公司正在把即时通讯系统往移动通讯方向扩展,如今已 经将即时通讯与手机短信息(SMS)成功结合起来。即时通讯软件涉及和影响的领域已近 越来越广,其竞争也越来越激烈。国内 QQ 最大的敌手朗玛 UC 从 2001 年开始研发, 2002

15、年的 12 月份 UC 正式发布,并且首创了很多技术:UC 是国内第一个做场景聊天的; UC 是第一个把同学录和校友录结合的;第一个把即时通讯与休闲游戏相结合的;第一 个把发送动画与即时通讯相结合的。在一年的发展里,UC 一度达到峰值在线 30 万人, 注册用户达到 7000 万。 纵观即时通讯软件业的迅速发展,设计并开发一个即时通讯平台,对于现阶段的 学习和研究,都是极为有意义的,基于这个前提和起因,我选择了设计一个名为 JQQ 的即时通讯系统作为我的毕业设计。 1.3 预期目标和经济效益 即时通讯简称 IM(Instant Messaging) ,它是一种面向终端使用者的网络沟通工 具服务

16、,使用者可以通过安装了即时通信的终端机进行两人或多人之间的实时沟通。 即时通信利用的是互联网线路,通过文字、语音、视频、文件的信息交流与互动, 有效节省了沟通双方的时间与经济成本。即时通信不再是一个单纯的聊天工具,它已 JQQ 即时通讯系统的设计与实现 3 经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体 的综合化信息平台。 即时通讯系统一旦开发完成,只需要一些基本维护和简单扩展的费用,产生的经 济效益源源不断,相当乐观,有着很广阔的发展前景。 1.4 课题简要介绍 本课题之前:充分调查了市场主流类似通讯软件的优点与缺点;对大数操作者的 年龄、职业、文化层次等做了一系

17、列调查;在结合行业自身的特点的同时,也充分考 虑到设计者自身的条件与现有技术成熟程度的基础上做出的一款适合大多数人使用的 即时通讯软件。 产品定位: 大多数人能够使用,操作者有无相关专业知识都可 主要功能有: 用户注册 用户登陆 分组管理 好友管理 即时通讯 查询用户 查询聊天记录 实现技术: MyEclipse 7.1 SQL Server 2000 数据库 1.5 系统创新点 操作简单、方便,快捷、准确、数据存储安全可靠,针对自身特点去除了不必要 的冗余东西,使系统负担最小,速度最快;采用更高的安全机制,使数据更加安全, 用户可以放心的使用。 2 需求分析 2.1 功能需求 2.1.1 用

18、户管理 即时通讯系统拥有多个账户,允许多个用户注册;一个用户可以注册多个标识; JQQ 即时通讯系统的设计与实现 4 注册所使用的帐号类型为字母数字的组合;注册新用户时必须填写符合要求的信息; 注册后只有用户名与密码验证成功才能正确登录。用户管理如图 2-1 所示。 图 2-1 用户管理用例图 2.1.2 分组管理 分组管理部分要能够实现分组的添加与删除,所添加的分组名称可以是中文也可 以是字母数字的组合,通过对分组的有效管理以便于更方便的管理好友。分组管理如 图 2-2 所示。 图 2-2 分组管理用例图 2.1.3 好友管理 用户可以查询所有用户;选择适当的可以加为好友;一个用户可以添加多

19、个人为 好友,一个用户也可以被多个人添加为好友;用户可以删除好友;用户只可以将好友 放在一个组中。好友管理如图 2-3 所示。 JQQ 即时通讯系统的设计与实现 5 图 2-3 好友管理用例图 2.1.4 即时通讯 即时通讯模块用户可以与在线的好友进行聊天,用户首先查看好友是否在线,如 果在线即可进行即时通讯,并且用户可以查看与好友的所有聊天记录。即时通讯如图 2-4 所示。 图 2-4 即时通讯用例图 2.2 通讯模型的特点 2.2.1 适用性 作为一个一般性的模型,本通讯模型适用于无线网络和 Internet 上现存的多种系 统。模型中的 JQQ 可以是 Internet 上的应用程序,也

20、可以是移植到移动电话和其他各 种无线手持设备上的应用程序。即时通讯和服务可以是 Internet 上 ICQ 服务,可以是 GSM 标准中的 SMS(Short Message Service,短信息服务),也可以是 NTT Do Co Me 的 I-MODE 服务。 2.2.2 扩展性 模型具有很强的扩展性。本模型并没有规定服务必须采用中央服务器。在模型实 现的时候,可以使用基于中央服务器的星 JQQ 即时通讯系统的设计与实现 6 形结构,也可以使用对等网络结构甚至其他混合结构。例如,深圳腾讯 QQ 的通讯服务 系统使用的是基于中央服务器的 Client/Server 的混合星型结构,而即时

21、通讯服务使 用的是对等网络加客户机服务器结构。 2.3 可行性研究 2.3.1 技术可行性分析 (1)项目开发过程中遇到难以克服的技术问题,该怎么办。 这一方面,我们庆幸的是在学校我们有好多的老师在背后支持着我们,同时学校 的网络比较方面,给我们解决问题提供了方便。而且,凭借借阅图书馆收藏图书更增 加了我们解决技术问题的信心。 (2)软件的质量如何。 有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能完备也毫无实用 价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造 成用户利益损失,那么软件开发在某种意义上说也就失败了。 鉴于此,我们在编码测试的时候,找专业老师做

22、为技术支持。并且在完成之后, 实际验证可行性,同时要考虑到机器硬件设备的不同而给软件带来的不可预知的结果, 所以在机房的不同电脑上运行软件达到测试目的。 2.3.2 不确定性分析 需要格外考虑的实际情况也可以说是面临的一个现实问题就是:毕业生面临着毕 业与找工作,还有就是最后的毕业答辩与论文设计。这个过程中,学校会有许多有关 毕业生的信息要安排,事物要处理。在进行课题设计的时候,难免会有一些格外的因 素,如,时间被耽误,在规定的时间中无法完成相应的任务;有问题存在的时候,老 师也恰巧也有事情,问题无法及时解决等一系列问题,都是要考虑在内的。 再有就是,最害怕在做系统的中途遇到系统崩溃而东西又无

23、法保存;或者是东西 全部做好之后,忘记了备份,而更为不巧的是以染上了病毒,而致使几个月的辛苦负 于东流。这些是容易忽视的也是最容易出现的情况。所以要在设计的时候做足这方面 的准备,不让那种情况发生。 2.3.3 分析结论 通过上面简要的分析,最后做出的结论是:方案可以按照时间要求、保证质量的 基础上运用 MyEclipse 与 SQL Server 2000 数据库进行系统的开发。 2.4 运行环境 操作系统:windows2000server 中文版、windows 2003 Server 或者 Windows XP Sp3 JQQ 即时通讯系统的设计与实现 7 数据库:SQL Server

24、 2000 中文个人版 开发工具:MyEclipse 7.1 硬件配置:CPU 1.7GHz 以上,内存 512MB 以上 3 概要设计 3.1 框架设计 本系统总体框架如图 3-1 所示。 图 3-1 系统总体框架图 3.2 拓扑结构 系统的拓扑结构如图 3-2 所示。 JQQ 即时通讯系统的设计与实现 8 S1 S3 S2 C1 C2 C3 客户端服务器星型结构 服务器服务器对等结构 模式一 S1 S3 S2 C1 C2 C3 客户端服务器星型结构 服务器服务器对等结构 客户端客户机对等结构 模式二 C S服务器客户端 客户端客户端连接 客户端服务器连接 服务器服务器连接 现在不少即时通讯

25、系统服务的内部拓扑中采用模式一;也有极其个别系统在即时 通讯服务上面采用模式二(例如,深圳腾讯的 QQ 服务中的即时通讯服务,发信者首先 考虑直接与即时收信箱进行通讯,如果发现直接通讯超时,会转为使用服务器中转完 成通讯)。 模式一是一种非常成熟的模式,大多数 TCP/IP 应用系统,例如 SMTP 服务、DNS 服 务、WWW 服务等都是使用这种模式。模式二,对于模式一是一个技术上的修正,虽然这 个修正带来了新的问题,但是其实用性是不可质疑的;JQQ 正是实用模式二作为服务模 式。 JQQ 的服务是由服务器构成的;JQQ 中每个实体都由一个寄主服务器管理。个体必 须向服务器注册,注册后就有可

26、以控制的发信者和即时收件箱。发信者是独立于即时 通讯服务外的实体,而即时收信箱则存在于寄主服务器中。JQQ 的通讯系统中只有存在 发送者和接收者两类实体。注册后的用户必须在服务器上建立登记表,才能知道其他 用户的存在,与其他用户进行交流。 1) TCP 协议 TCP 和 UDP 是 TCP/IP 协议族的两个主要的传输协议,TCP 是面向连接的,UDP 是 面向无连接的,而实际上他们最大的区别在于为应用协议提供不同的服务,TCP 协议为 应用程序提供点到点的通信:建立可靠的连接。如果有故障发生,阻碍分组到达远程 图 3-2 系统的拓扑结构图 JQQ 即时通讯系统的设计与实现 9 系统,或者服务

27、器不接受连接,客户都会得到通知:数据可靠的交付,故障而不能交 付,发送方会得到通知;具有流控的传输;双工的传输,单个 TCP 连接允许同时双向 传送数据流模式,TCP 从发送方到接收方发送没有报文边界的字节。 2) UDP 协议 UDP 为应用程序提供多对多的通信,UDP 在进行通讯的应用的数量上面,具有更大 的灵活性。多个应用可以向一个接收方发送报文,一个发送方向也可以向多个接收方 发送报文。UDP 还可以使用底层网络的广播和组播设施交付报文:UDP 提供的是不可靠 交付语义,报文可能丢失、重复或者失序,而发送方是得不到通知的;缺乏流控制; 报文模式,当有数据交付的时候,必须制定报文边界。

28、3) 传输层协议的选定 由于 TCP 和 UDP 的语义及其不同,如果要考虑应用协议所要求的语义,设计者就 不能不在面向连接和无连接的传输协议间作出选择。利用面向连接的 TCP 协议,可以 大大简化应用协议的设计工作。由于 UDP 不提供可靠的交付,无连接传输要求应用协 议提供可靠性,并在必要时,使用一种称为自适应重传的复杂技术。为现有的应用程 序增加自适应重传比较困难,它需要程序员具有相当地专业知识。 选择 TCP 一个很大的缺点就是,建立和中止连接的三次握手使 TCP 比起 UDP 开销 大。在考虑是用 UDP 还是用 TCP 作为域名服务系统的运输层协议是,设计者往往陷入 两难的境地。一

29、个理想的解决方案应该既能提供可靠的数据传输,又不需要专门的建 立和释放连接,不需要报文的反段和重组,同时还能是两端的空闲状态所处的时间最 短。TCP 什么都好,只可惜他需要建立和释放连接。 还有一个严重的问题就是 TCP 在空闲的连接上根本不发送任何分组。假设客户与 某个服务器建立了连接,并与之交换请求和响应,接着便崩溃了。因为客户已经崩溃 了,它就不会再发送任何请求了,然而,服务器到目前为止对它收到的所有请求都进 行了响应,它便不会再向客户发送更多的数据了。这种情况下,服务器拥有分配给该 连接的数据结构(包括缓存空间),这些资源不能被重新分配。服务器是设计成始终运 行的。如果不断有客户崩溃,

30、服务器就会耗尽资源(如套接字、缓存空间、TCP 连接)从 而中止运行。 3.3 功能设计 系统功能设计,如图 3-3 所示。 JQQ 即时通讯系统的设计与实现 10 客户端 用 户 注 册 用 户 登 录 分 组 管 理 好 友 管 理 查 询 用 户 即 时 通 讯 聊 天 记 录 服务器 登 录 服 务 查 找 好 友 在 线 服 务 端 口 分 配 图 3-3 系统功能设计图 3.2.1 用户注册模块 用户需要正确填写自己的用户名、密码、真实姓名、性别、个性签名等信息,如 果用户名合法且未被占用,则可以注册成功。用户注册如图 3-4 所示。 图 3-4 用户注册流程图 3.2.2 用户登

31、录模块 用户需要正确填写自己的用户名、密码,如果验证成功,则可以进入到 JQQ 即时 通讯系统主面板,与在线好友进行即时通讯。用户登录如图 3-5 所示。 JQQ 即时通讯系统的设计与实现 11 图 3-5 用户登录流程图 3.2.3 分组管理模块 分组管理模块包括对分组的添加与删除。添加分组过程中,分组不能为空并且不 能有重复的分组。删除分组过程中,只要选定要删除的分组,即可删除成功。分组管 理如图 3-6 所示。 图 3-6 分组管理流程图 3.2.4 好友管理模块 好友管理模块包括对好友的添加与删除。添加好友过程中,好友不能为空,不能 加自己为好友,要添加的好友必须存在并且不能有重复的好

32、友。删除好友过程中,只 要选定所属分组下的相应好友,即可删除成功。好友管理如图 3-7 所示。 JQQ 即时通讯系统的设计与实现 12 图 3-7 好友管理流程图 3.2.5 查询用户模块 查询用户模块列出了除了自己的所有用户的基本信息包括是否在线,用户可以根 据需要加为好友并进行通讯,对于在线状态的好友可以进行在线交流。查询用户如图 3-8 所示。 图 3-8 查询用户流程图 3.2.6 即时通讯模块 即时通讯模块是本系统最关键的环节与目的所在。用户可以选择分组中的在线好 友进行即时通讯,并且当交流完毕时自动保存聊天记录。即时通讯如图 3-9 所示。 图 3-9 即时通讯流程图 JQQ 即时

33、通讯系统的设计与实现 13 3.2.7 聊天记录模块 聊天记录模块主要记录了与相应好友的所有聊天内容,可以方便的浏览一些重要 信息和谈论话题等。 3.4 设计原则及一般要求 参照各模块的功能与具体的特点,我们设计的整个即时通讯系统应达到以下目的: (1)稳定性。整个系统应能稳定运行,硬件配置的局部改变不会影响整体的正常 运行,其它系统的差错不会导致即时通讯系统无法正确运作。 (2)准确性。系用户按操作要求操作产生的数据与数据库产生的变化应严格保持 一致,杜绝错误、异常等情况的出现。 (3)安全性。所有数据定时备份,错误的出现由系统自动记录备份文件,以备查 验,避免用户误操作而造成不必要的损失。

34、 (4)易使用性。即时通讯系统的界面与操作人员的交互性好,用 Client/Server(客户端/服务器)结构。 4 系统设计 4.1 模块设计 功能模块设计如表 4-1 所示: 表 4-1 功能模块设计表 用户注册模块1.用户注册 用户登录模块1.用户登录 分组管理模块 1.添加分组 2.删除分组 好友管理模块 1.添加好友 2.删除好友 查询用户模块1.查询用户 即时通讯模块1.即时通讯 功能模块 聊天记录模块1.查看聊天记录 4.2 即时通讯系统关系型数据库的实现 Microsoft SQL Server 2000 是一个高性能的客户端/服务器结构的关系数据库管 理系统(RDBMS) 。

35、SQL Server 2000 是为支持高容量的事务处理(比如在线订购录入、 存货目录、记账或制造)以及数据仓库和决策支持系统而设计的。它运行在 Microsoft JQQ 即时通讯系统的设计与实现 14 Windows NT4 或 Microsoft Windows 2000 Server 上基于使用 Intel 处理器的网络。 也能够为其他的 Microsoft 操作系统提供很多客户端工具和网络接口。由于 SQL Server 的开放结构,其他系统也能和它交互操作。使用它可以完成事务处理、存储和 分析数据以及创建新的应用程序。其中 SQL Server 的 RDBMS 负责维护数据库中数据

36、之 间的关系,确保正确的存储数据和不违反定义数据之间的规则,而且在系统发生错误 时将所有数据恢复到某个已知的、具备一致性的检查点上。SQL Server 2000 就是关系 数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。SQL Server 2000 的优点在于它能使用数据表示图或自定义窗体收集信息。数据库在一个信息管理系统 中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的 效果产生影响。合理的数据库结构设计可以提高数据存储的效率,报填数据的完整和 一致。另外,合理的数据库结构将非常有利于程序的实现。设计数据可系统是应该首 先充分了解用户各个方面的要求,包

37、括现有的以及将来可能增加的要求。 4.2.1 数据库分析 即时通讯系统需求包括对用户信息、分组信息、好友信息等各方面信息的管理, 这些信息都需要保存在数据库中,因此需要建立一些相应的表结构来存储这些相应的 数据。 针对这些情况,我们大致建立了以下若干表来存储相应的信息: 表名:用户表,分组表,好友表等。 1) 用户表:包括的数据项有:用户名、密码、真实姓名、性别、个性签名、是否 在线、登录 IP、绑定端口等。 2) 分组表:包括的数据项有:分组名称、用户等。 3) 好友表:包括的数据项有:好友名称、所在分组、用户等。 4.2.2 数据库概念设计 根据前面的需求分析和概要设计规划出本系统所使用的

38、实体对象,分别为:用户 实体、分组实体、好友实体。下面将给出几个关键实体的 E-R 图。 (1) 用户实体 用户实体包括用户名、密码、真实姓名、性别、个人签名、是否在线、登录 IP、 绑定端口等。其 E-R 图如下所示。 JQQ 即时通讯系统的设计与实现 15 图 4-1 用户实体 E-R 图 (2) 分组实体 分组实体包括分组名称、用户等。其 E-R 图如下所示。 图 4-2 分组实体 E-R 图 (3) 好友实体 好友实体包括好友名称、所在分组,用户等。其 E-R 图如下所示。 图 4-3 好友实体 E-R 图 4.2.3 数据库逻辑结构设计 根据上面所做的总结,再参考系统的实际需要,表及

39、逻辑结构如下图所示: 1) 用户表 users,如下所示。 表 4-2 用户表 字段名数据类型字段说明备注 usernameVarchar(20) 用户名主键 password varchar(20)密码不允许为空 name varchar(50)真实姓名不允许为空 sex varchar(10)性别不允许为空 sign varchar(512)个性签名允许为空 isonline Bit(1)是否在线不允许为空(默认 0) loginIPvarchar(20) 登录 IP允许为空 JQQ 即时通讯系统的设计与实现 16 bindportInt(4) 绑定端口不允许为空(默认 0) 2) 分组表

40、 groups,如下所示。 表 4-3 分组表 字段名数据类型字段说明备注 g_namevarchar(50) 分组名称主键 Owner_group varchar(50)用户主键 3) 好友表 friends,如下所示。 表 4-4 好友表 字段名数据类型字段说明备注 friendvarchar(50) 好友名称主键 group_in varchar(50)所在分组主键 owner_friend varchar(50)用户主键 5 系统实现 5.1 注册模块 如果用户名不存在,则可以使用此用户名,然后输入用户的密码、真实姓名、性 别个性签名等成功注册。注册模块如图 5-1 所示。 图 5-1

41、 用户注册图 主要代码实现如下: public int Verify() /验证用户名是否存在 JQQ 即时通讯系统的设计与实现 17 String username = txtUserName.getText().trim(); UserItem ui = new UserItem(); ui.setUsername(username); Protocal proVerifyUser = new Protocal(ProtocalNumber.VERIFYUSER2, “,ui); SendPacket sp = new SendPacket(proVerifyUser); int resu

42、lt = (Integer) sp.Send().intValue(); return result; public void actionPerformed(ActionEvent e) /用户注册 JButton btnSource = (JButton) e.getSource(); if (btnSource = btnOK) int res = Verify(); if (res = 0) regUser = new UserItem(username, password, name,sex, sign, “, false, 0); Protocal proAddUser = new

43、 Protocal(ProtocalNumber.ADDUSER,“, regUser); SendPacket sp = new SendPacket(proAddUser); int result = (Integer) sp.Send().intValue(); if (result !=0) JOptionPane.showMessageDialog(this, “注册成功,请登陆!“,“注册用户“, JOptionPane.INFORMATION_MESSAGE); new frmLogin(); 确认信息填写无误后,点击注册按钮就可注册成功,如图 5-2 所示: JQQ 即时通讯系

44、统的设计与实现 18 图 5-2 用户注册成功图 5.2 登录模块 本部分主要用于用户的登录,只有在注册后才可以进入系统,用户登录时将按照 用户名和密码进行验证,当输入错误时会出现相应的提示,当用户名和密码都正确时 进入程序主界面,才能进行日常管理工作。该模块的界面设计如图 5-3 所示。 图 5-3 登录界面 如果登录身份验证成功,则进入主界面如图 5-4 所示: 图 5-4 主界面 如果用户名或密码错误则会提示,需要重新输入。 JQQ 即时通讯系统的设计与实现 19 主要代码实现如下: public void actionPerformed(ActionEvent e) JButton b

45、tnSource = (JButton) e.getSource(); if (btnSource = btnLogin) int bindport = CommonData.GetBindPort(); String loginIP = CommonData.GetLocalIP(); UserItem ui = new UserItem(); ui.setUsername(username); ui.setPassword(password); ui.setBindport(bindport); ui.setLoginIP(loginIP); Protocal proVerifyUser

46、= new Protocal(ProtocalNumber.VERIFYUSER,“, ui); SendPacket sp = new SendPacket(proVerifyUser); int result = (Integer) sp.Send().intValue(); if (result !=0) JOptionPane.showMessageDialog(this,“登录成功!“, “用户登录“, JOptionPane.INFORMATION_MESSAGE); this.dispose(); new FrmMain(ui.getUsername(); else JOptio

47、nPane.showMessageDialog(this, “用户名或密码错误!“, “用户登录“, JOptionPane.INFORMATION_MESSAGE); this.txtUserName.setText(“); this.txtPassword.setText(“); JQQ 即时通讯系统的设计与实现 20 5.3 分组管理模块 5.3.1 添加分组 主要功能是添加分组以便管理好友,如图 5-5 所示。 图 5-5 添加分组界面 主要代码实现如下: public void actionPerformed(ActionEvent e) /添加分组 if (e.getSource(

48、) = jbok) g_name = (String) text.getText().trim(); if (g_name.equals(“) JOptionPane.showMessageDialog(this, “分组名称不能为空!“, “添加分组“, JOptionPane.INFORMATION_MESSAGE); return; gi = new GroupItem(); gi.setG_name(g_name); gi.setOwner_group(CommonData.currUser.getUsername(); Protocal proaddgroup = new Proto

49、cal(ProtocalNumber.ADDGROUP, CommonData.currUser.getUsername(), gi); SendPacket sp = new SendPacket(proaddgroup); int result = (Integer) sp.Send().intValue(); if (result = 1) JOptionPane.showMessageDialog(this, “此分组已添加过!“, “添加分组“, JQQ 即时通讯系统的设计与实现 21 JOptionPane.INFORMATION_MESSAGE); text.setText(“); return; if(result =0) JOptionPane.showMessageDialog(this, “添加分组成功!“, “添加分组“, JOptionPane.INFORMATION_MESSAGE); this.dispose(); 5.3.2 删除分组 主要功能是删除分组同时删除分组下的所有好友。如图 5-6 所示。

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1