(精品论文)优秀毕业设计论文-网络聊天室java_第1页
(精品论文)优秀毕业设计论文-网络聊天室java_第2页
(精品论文)优秀毕业设计论文-网络聊天室java_第3页
(精品论文)优秀毕业设计论文-网络聊天室java_第4页
(精品论文)优秀毕业设计论文-网络聊天室java_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书(论文)作 者: 学 号: 学 院: 专 业: 题 目: 指导者: 评阅者: 2008 年 6 月 吉 林- 43 - 毕业设计说明书(论文)中文摘要摘 要网络聊天室是一种应用广泛网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想项目。可以使用多种编程语言设计和开发出功能完善的网络聊天室。本毕业设计论文介绍用JAVA语言设计和实现一个网络聊天室的过程,本系统采用C/S架构设计,整个项目分为服务器端和客户端。使用了最新的Java 2标准Swing组件,开发出简洁美观和布局合理的用户和服务器界面;利用Socket网络开发技术实现客户端和服务器端的连接访问,实现网络功能;通过对数据流操作的合理设计,实现信息传递、接受和数据保存。同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完成系统的完整开发。关键词:聊天室;Java;应用程序;Swing组件;Socket技术毕业设计说明书(论文)英文摘要Title:The Design and Elements for Network Chat RoomAbstractThe network chat room is a kind of applied extensive network chat method, operate in ease and the function is abundant, It can be used as a good case for learning of java design language and the Object-Oriented Programming language, There is many programming language of design to develop a network chat room with perfect function.This graduation thesis of design introduction how to use the java language design and carry out network chat room, The system adoption the C/ S structure design, the whole system is divided into the server and client .Used standard modules of Swing of latest Java2, develop a simple and direct beauty user interface ,We make use of the Socket technology to interconnect the server and client by net-work ;organize the data by good design of data stream to sent or accept the message between users and to record the message for ever; we also use the multi-thread multi-action to make the program with many function.I have leaned many method and things to use the Object-Oriented Programming. And make me know how use the development environment Eclipse to new program and the process to make the program.Keyword: chat;Java;application;swing component;socket目 录目 录毕业设计说明书(论文)中文摘要I毕业设计说明书(论文)英文摘要II第一章绪 论11.1本课题的来源11.2本课题的目的、内容、要求21.2.1目的21.2.2内容21.2.3要求3第二章系统开发环境与工具的选择42.1本课题开发环境的选择42.2本课题开发工具的选择52.3本课题开发技术的选择5第三章需求分析73.1项目概述73.1.1产品描述:73.1.2产品功能83.2功能需求93.2.1用户注册93.2.2用户登入93.2.3公聊103.2.3私聊103.2.4发送表情113.2.5聊天记录113.2.6系统消息123.2.7字体属性设置123.2.8用户退出133.3质量性能需求133.3.1容错性需求133.3.2稳定性需求133.3.3软件设计可靠性143.3.4安全性143.3.5扩展性143.3.6易用性14第四章概要设计154.1目的154.2运行环境:154.3条件与限制154.4体系结构概述154.5功能设计164.5.1用户注册:164.5.2用户登入164.5.3公聊174.5.4私聊184.5.5表情184.5.6字体设置194.5.7记录保存194.5.8系统消息204.6数据库的选择204.7数据库设计21第五章详细设计225.1客户端注册225.1.1功能描述225.1.2综合设计225.2登入255.2.1功能描述265.3公聊285.3.1功能描述285.3.2综合设计285.4私聊295.4.1功能描述295.4.2综合设计295.5发送系统消息315.5.1功能描述315.5.2综合设计315.6字体设置325.6.1功能描述325.6.2综合设计325.7发送表情335.7.1功能描述335.7.2综合设计335.8记录保存和显示345.8.1功能概述345.8.2综合设计345.9功能逻辑实现355.9.1逻辑功能描述355.9.2综合设计35第六章系统测试376.1测试举例376.1.1测试程序登录界面376.1.2测试程序主界面376.1.3测试程序退出376.2测试项目376.2.1单元测试386.2.2组合测试386.2.3确认测试396.2.4系统测试396.2.5用户验收测试396.3测试方法39第七章缺陷与完善407.1软件存在的问题407.2使界面变得更加美观40结 论41参考文献42致 谢43第1章 绪 论第1章 绪 论1.1本课题的来源中国互联网络信息中心(CNNIC)发布了第21次中国互联网络发展状况统计报告,报告显示,截至2007年12月,中国网民数已经达到了2.1亿,略低于美国居世界第二位,其中宽带用户早已经突破1.37亿,达到1.63亿,另外手机上网人数与日剧曾,根据信息产业部公布的2007年10月通信行业统计月报,目前中国已有5.3亿手机有效卡数。近几年来,中国手机有效卡数增长一直维持在17%以上,平均每年增长6000万张卡,增量非常可观。 上网计算机已经达到了7800万,网民的人均每月上网费用为74.9元;中国互联网行业继续了2006年快速发展的态势。2007年一年中国网民增加了7300万人,年增长率达到53.3%。相当于在过去一年中,平均每天增加网民20万人,或平均每分钟增加网民近140人。按照这个增长速度,预计2008年一月份过后,中国网民将超越美国成为全球第一。随着网络普及和上网人数的大增,在国内各大门户网站都架设了大型聊天室。如:新浪聊天室、中华网社区聊天室、搜狐等都成为网民们的热门聊天室。以新浪聊天室为例看,聊天室呈现积聚人气作用,并开设不同主题的聊天室以使网民们具有针对性的使用聊天室。新浪开设许多主题鲜明的聊天室:如针对不同地域开设了“同城联盟”,可以方便网民们和同乡之间联络和方便开展一些地域性质的活动。为针对不同年龄层而开设的“同龄话题”,使各年龄层的用户可以方便的选择自己的聊天对象群体,找到自己的合适的聊天话题。并且针对目前社会流行的热门话题和流行话题都有相应的主题室。随着网络技术的不段提高和改进,近些年来视频聊天成为上网的热门聊天方式,除了可以方便互相的交流外,可以更直观的了解对方,真正实现面对面的即时聊天。并且现在随着网络聊天室的发展,其功能已经超越了普通的聊天活动,如新浪聊天室定期邀请当今社会知名人士、专家、业界领袖、优秀人物、政府部门领导等开展一些社会活动、宣传和讨论等多种形式的活动。通过网络的形式更直接的和人们进行互动,实现意见即时反馈,即时回答和解决网民们提出的问题。使活动的效果更快更好的得到发挥。发达国家的3G许可证发放工作都已经基本完成,随着3G技术标准、网络设备、终端和业务的逐步成熟,3G许可证的发放已经开始从欧美地区向亚洲、非洲和中东欧地区转移。日韩是全球3G发展最为成熟的地区,截止到2006年3月底,日本和韩国的3G用户数分别占总移动用户数的53%和94%。日本WCDMA用户占全球WCDMA用户的44%。韩国CDMA2000 1X EV-DO用户占全球EV-DO用户的52%。西欧移动通信市场整体发展比较成熟,移动用户普及率处于饱和状态。截止到2004年底,西欧移动用户3.52亿,普及率高达90.1%,个别国家像英国、丹麦、希腊等移动用户普及率达到100%。到2007年4月底,我国移动用户数为4.87亿以上。从调查中可以得知,移动上网用户显著增多,对网络聊天室的功能提出更多的要求和功能。同时网络聊天室也是网络应用中出现较早的应用软件,其开发技术和设计思想都已经得到成熟的发展,并且已经具有许多成功的案例。在开发技术上已经没有什么技术难题,并且具有广泛的应用和市场空间。1.2本课题的目的、内容、要求1.2.1目的网络聊天室是一项应用广泛,并且实用性强的一个应用,虽然其功能简单,但是在其开发技术和过程中,能够充分学习和使用JAVA2的技术,如:开发各界面(登入、注册、公聊、私聊等界面)使用 Swing组件技术,实现网络的功能使用 Socket/Server Socket 技术,实现数据的保存使用JDBC数据库连接和操作技术,并且在开发过程当中,能充分的使用和体会面向对象技术的原理和方法。 所以该项目可以使自己在JAVA技术方面得到全面应用,使自己项目开发能力的一个很好体现。1.2.2内容一个网络聊天室的运行,首先是要有一个完整稳定的服务器端,并且拥有多个客服端。客服端要具有实现用户注册和用户登入,在登入成功后,要显示出公聊界面,实现聊天功能并且能够发送表情和保存聊天内容和显示聊天记录等功能,在新用户上线和用户下线时要更新每个客户端在线用户列表名,并且可以和在线的用户实现一对一的私聊功能。在服务器端可以实现不断的监听客户的连接,并且根据客户端发送过来的不同信息,如注册信息、登入信息、公聊信息、私聊信息、退出信息等,服务器端要作出不同的响应,并且要实现数据库的操作,如根据用户注册的信息保存在数据库中,根据登入时发送来的用户名和密码检测是否合法用户等。1.2.3要求主要涉及图形用户界面的开发、布局和输入/输出流数据的控制,并且要通过Socket技术实现网络功能,整个程序采用Swing图形界面,要求熟练掌握Java2图形用户界面的事件处理及部分Swing组件的使用。在代码的编写上要充分体现Java面向对象开发思想和多态性,提高代码的重用性和高效性,要深入理解接口的作用和内部对象等特性等。第2章 系统开发环境与工具的选择第2章 系统开发环境与工具的选择2.1本课题开发环境的选择在进行开发之前,首先决定的第一个问题就是,该使用什么开发环境来编写该系统?以目前常用的开发语言来讲有C/C+、.NET技术,JAVA、 Visual Basic几种。还有Eclipse,、Borland JBuilder等,这些并不是程序语言,而是程序语言在建构程序时的“集成开发工具”,不过它们在开发设计的过程中也占有相当重要的角色,因为选用正确的集成开发工具,可以加速程序设计的进行、测试与排错,因而对整体进度具有决定性的影响。基于以下几点,选择JAVA语言开发技术。1、就执行平台而言,必须考虑的问题之一是用户可能使用的操作系统。用户可能使用的是Windows Linux。JAVA语言具有平台无关性,可以不需要任何修改就可以运行在支持JAVA的任何计算机上。2、JAVA的Swing 组件开发技术可以开发丰富的图形界面,并且Swing API类提供了丰富的外部接口和方法,可以方便实现系统功能。3、就项目开发而言,纯粹的面向对象,加上数量巨大的类所提供的方法(函数)库的支持,使得利用Java开发各种应用程序,可以说是易如反掌。此外,在程序除错、修改、升级和增加新功能等方面,因其面向对象的特性,使得这些维护也变得非常容易。4、Java支持内在的多线程运行,提供分布式的并发机制,运行效率高。5、异常处理,为了使Java程式更稳定、更安全,Java引入了异常处理机制。能够在程序中产生异常情况的地方,执行相对应的处理,不至于因突发或意外的错误造成执行中断或是死机。通过这种异常处理,不仅能够清晰地掌握整个程序执行的流程,也使得程序的设计更为严谨。6、高性能,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C+的性能没什么区别。7、网络功能,Java可以说是借助因特网而重获新生的,自然具备编写网络功能的程序。不论是一般因特网局域网的程序,如Socket、Email、基于Web服务器的Servlet、JSP程序,甚至连分布式网络程序,如CORBA、RMI等的支持也是非常丰富的,使用起来也很方便。8、源回收处理,GarbageCollection是由JVM对内存实行动态管理的。程序需要多少内存、哪些程序的内存已经不使用了,需要释放归还给系统,这些烦琐且危险的操作全部交由JVM去管理。让我们能够更专心地编写程序,而不需要担心内存的问题。内存的统一管理,对于跨平台也有相当大的帮助。2.2本课题开发工具的选择Java的开发工具很多,而且各有优缺点,Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。支持最新的Java标准,并且缩短了开发周期。一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是Eclipse一直是广大程序员最喜爱的Java开发工具的原因之一。Eclipse的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。可以说在Eclipse集成开发环境中开发Java程序,快速而且高效。其主要特点如下:1.开放的可扩展的IDE2.成功的底层图形界面API3.强大的插件加载功能4.可以通过导入一些CVS相关的插件来实现版本管理的便易性2.3本课题开发技术的选择本课题选择了java Socket技术开发网络聊天室。什么是socket? socket是一种用于表达两台机器之间连接“终端”的软件抽象。对于一个给定的连接,在每台机器上都有一个socket,你可以想象一个虚拟的电缆工作在两台机器之间,“电缆”插在两台机器的socket上。当然,物理硬件和两台机器之间的“电缆”这些连接装置都是未知的,抽象的所有目的就是为了让我们不必了解更多的细节。 简单的说,一台计算机上的socket同另一台计算机通话创建一个通信信道,程序员可以用这个信道在两台机器之间发送数据。当你发送数据时,TCP/IP协议栈的每一层都给你的数据里添加适当的报头。有个好消息是java语言隐藏了所有这些细节,这也是为什么他们有时被叫做“流socket”。 思考一下socket像电话听筒一样在电话的任意一端你和我通过一个专门的信道来进行通话和接听。会话将一直进行下去直到我们决定挂断电话(除非我们使用蜂窝电话),除非我们挂断电话,否则我们各自的电话线路都会占线。 如果你需要在两台机器之间进行通讯而不使用高级机制像ORBs(以及CORBA, RMI, IIOP等等),socket比较适合你。Socket的底层机制则相当棘手。幸运的是,java平台给我们一些虽然简单但是相当强大的高层抽象以至于我们创建和使用socket更加容易一些。一般而言,java socket有下面两种类型:TCP socket(由Socket类实现,下面的章节我们将对其讨论)UDP socket(由DatagramSocket类实现)TCP和UDP扮演同样的角色,但是实现是不同的。两者都接收传输协议数据包并把它们传递到表示层。TCP把信息分解成数据包(datagrams)并在接收端重新组装起来。它还对丢失的数据包进行重新传输的请求。TCP减少了上层的担忧。UDP没有组装和重传请求的功能。它只是传输数据包。更高层的层必须确保信息的完整性以及组合顺序的正确性。第3章 需求分析第3章 需求分析3.1项目概述3.1.1产品描述: 人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。一个操作简单、界面友好、运行稳定的网络聊天室对于小型局域网内的用户可以起到很好的交流作用。本聊天室,所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过网上聊天室将自己融入整个主流社会中。由于目前上网的一般都是具有高学历的新一代创业者,因此,在网上聊天室这个虚拟的社会中,可以结交各层次各地方的朋友,从而为自己获取更多的知识和更多的阅历。该小聊天室是为许多喜爱上网聊天的朋友开发设计的,希望能在现有的众多聊天室中给大家多一种的选择。和许多大型的网络聊天室相比该小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。本聊天室主要由注册界面、登录界面、聊天室界面、私聊界面、查看聊天内容界面、功能设置界面等构成。整个设计简洁明了、实用,使用简单。客户端登入用户登入用户注册通信公聊私聊功能设置字体颜色字体类型字体大小表情记录保存公聊记录添加文字图3-1 客户端结构图服务器监听请求显示登入情况发送系统消息图3-2 服务器结构图3.1.2产品功能本项目具有以下主要功能客户端: 用户注册功能,实现用户的登入ID注册和个人信息,并存入服务器数据库 中。 用户登入功能,实现合法注册用户的登入。 公聊功能,实现用户和在线的所有用户聊天方式。 私聊功能,实现用户和在线的其他用户一对一的聊天方式。 查看聊天记录,实现用户查看已聊天的历史聊天内容,分为公聊记录和私聊记录。 发送表情和设置聊天内容字体,并可以设置字体颜色和背景色等。服务端: 可以不断的监听客户端请求 显示登入客户的信息 发送系统消息3.2功能需求3.2.1用户注册需求描述:用户填写系统给出的注册项目,并提交给系统,成功注册后,系统生成用户所注册的登入ID,并保存在数据库当中。执行者:用户前置条件:无后置条件:无正常过程: 向服务端发送注册请求 服务端响应客户端,客户端弹出注册信息表单 用户填写完表单后将注册数据传给服务端处理,并保存在数据库中 返回客户端一个响应,显示用户注册的ID,提示注册成功。异常过程(可选): 用户填写表单的数据格式不正确或表单中存在空缺的项,客户端给予提示 信息,并将光标定位到出错的地方。 用户注册的项在数据库中发生冲突,客户端提示注册不成功并提示用户 重新填写表单。 服务器未启动或出现异常3.2.2用户登入需求描述:用户填写登入ID 和密码,经服务器验证成功后进入聊天室主界面。执行者:用户前置条件:用户成功注册或已经拥有一个合法的ID号后置条件:无正常过程: 向服务端请求连接,并发送登录信息。 服务端处理并查询数据库中的用户信息 返回客户端一个响应,提示登录成功,弹出聊天室主界面。 刷新其他在线用户的用户列表信息异常过程(可选): 用户填写的ID或密码与数据库中的纪录不匹配,客户端 提示登录失败。 客户端设置的服务器地址或端口有误 服务器未启动或出现异常3.2.3公聊需求描述:用户在聊天室公聊界面的发言内容,聊天室中的其他在线用户可以正常接受并正确显示(包括发送的表情和用户设置的字体颜色)。执行者:登入用户前置条件:用户登录成功后置条件:无正常过程: 客户端用户登入成功后,启动客户端功能线程 客户端将用户发送的信息打包传送给服务端 服务端进行数据分析后,并将用户的信息进行正确的处理 传给处在聊天室的所有在线其他用户并正常显示。异常过程(可选): 客户端与服务端断开连接,客户端提示信息发送失败。 客户端发送的内容为空或包含不合法的字符内容3.2.3私聊需求描述:用户可选择聊天室的在线用户列表中其他用户聊天。并且对方有消息提示,双方发送的信息对于聊天室的其他用户是不可见的。执行者:用户前置条件:用户登录成功,私聊的对方在线后置条件:无正常过程: 客户端与服务端建立通讯 客户端将用户发送的信息打包传送给服务端 服务端进行数据分析,查找目的用户的ID,并将用户的信息传给目的用户 目的用户收到服务器的信息后,正确的显示并保存。异常过程(可选): 客户端与服务端断开连接,客户端提示信息发送失败。 客户端发送的私聊内容包含不合法的字符特殊需求(可选):不能与不在线的用户进行私聊3.2.4发送表情需求描述:用户的聊天内容可以是表情图片执行者:用户前置条件:用户可以正常聊天后置条件:无正常过程: 客户端与服务端建立通讯 客户端将表情所表示的信息传送给服务端 服务器端进行数据分析后,查找目的用户的ID,并将所处理的信息传给目 的用户 目的用户端通过本地文件将信息翻译成表情并正确显示在显示窗体中。异常过程(可选): 客户端与服务端断开连接,客户端提示服务器异常。 客户端发送的表情信息不正确或本地文件不存在异常3.2.5聊天记录需求描述:用户可以查询聊天的历史纪录,包括公聊记录和私聊记录。执行者:用户前置条件:用户正确登入后后置条件:无正常过程: 发送、接收信息的同时将信息保存在本地文件中 信息发送框中可以查询历史聊天记录 从本地文件中读取信息,并显示在记录显示匡中。异常过程(可选): 服务端异常导致客户端退出,客户端提示服务器异常。 客户端读取信息时目标文件不存在3.2.6系统消息需求描述:在聊天室的每一个用户都能接收服务端发送的的信息提示消息。执行者:服务端前置条件:服务端正常运行后置条件:无正常过程: 服务器向所有在线用户发送消息 客户端接收到消息,进行消息处理,并正确显示。异常过程(可选): 服务端异常,重启服务器。 出现网络异常,发送系统消息失败。3.2.7字体属性设置 需求描述:用户可改变输入消息的字体及颜色执行者:用户前置条件:用户可以正常聊天后置条件:无正常过程: 用户为聊天信息选择新的字体和颜色 客户端将聊天信息及字体和颜色信息封装,发送到服务端。 服务端处理接受到的数据并正确转发 目的客户端将接收到的信息解包,根据信息的内容,改变信息显示的字体 及颜色,并在目的客户端正确显示出字体效果 。异常过程(可选): 双方系统库中的字体不匹配,信息将以默认的字体显示。 对方不支持字体属性的显示3.2.8用户退出需求描述:用户在正常情况下退出聊天室。执行者:用户前置条件:用户成功登录聊天室后置条件:无正常过程: 向服务器发送用户登出消息 服务器进行用户退出的数据处理 服务器向聊天室其他用户发送登出消息 刷新其他在线用户的用户列表信息3.3质量性能需求3.3.1容错性需求当出现代码异常时,出现正确的提示,不会影响整个系统的运行。用户之间信息传输不会因为数据封装问题出现丢失或乱码。因用户的误操作产生的异常应做出及时的处理或信息提示。3.3.2稳定性需求软件应正常完成所有功能需求。服务器端应长时间运行无故障,故障修复时间一般控制在3小时内,除非出现恶性攻击、病毒破坏、系统资源不足、硬件故障、操作系统或数据库系统崩溃网络中断等情况,要求系统连续运行一周,不允许出现内存泄露。要求系统可以承受告警风暴和大数据量的冲击,不出现内存溢出等现象3.3.3软件设计可靠性要确定合适的模块粒度,各模块之间要求松耦合,高内聚;从而使整个系统的可靠性和稳定性得到提高,并且便于系统维护,和新模块的添加。3.3.4安全性安全性是防止网络方面的攻击3.3.5扩展性系统建成后,应在现行系统上不需要做大的改动或不影响整个系统结构,就可以增加功能模块,这就必须在系统设计时留有接口,使其具有可扩展性和维护性。3.3.6易用性系统操作的界面必须简洁、操作方便易用、设计合理第4章 概要设计第4章 概要设计4.1目的该阶段目的在于明确网络聊天室系统的数据结构和软件总体结构,各个软件模块的功能说明,数据结构的细节,系统运行配置与应用方式以及使用的关键技术。4.2运行环境:运行环境见下表。 表4.1名 称操作系统类型推荐操作系统版本推荐硬件(CPU/RAM/HD)数据库客户端Windows平台windows 2000以上(IE6.0 以上)P4 1.7G/256M/40G服务器Windows平台windows 2000以上P4 3.6G/8G/120GMYSQL/Microsoft Access20034.3条件与限制1.软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。2.设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。3.设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。4.应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。4.4体系结构概述本系统采用C/S的结构设计模式,客户端接收用户的发送的信息到服务器,服务器通过处理转发到另一个客户端。客户端采用图形用户界面,方便与用户交互。服务器端用控制台的方式方便控制操作。系统设计总体原则:本设计不限制用户的组网方式。但对于互联网环境下的安全问题,本系统不能保证解决。系统要具有较强的灵活性,包括对功能设置的管理。整个系统要使用简单,界面要美观、大方,具有人性化特点。模块划分尽量简单明了,充分考虑用户已经习惯的划分分类。 客户端分为用户注册、用户登录、信息通讯、管理和查询聊天记录。用户注册和用户用登录封装在用户登录的界面中,用户列表模块封装在系统的主界面中。信息通讯、管理和查询聊天记录模块封装在聊天界面中。服务端实现消息接收、消息转发、检索数据库。4.5功能设计4.5.1用户注册:通过注册模块实现用户的在线注册,所填写的注册项目有:用户名、密码、密码确认、性别、年龄、E-mail。用户注册界面正确填写注册项提交注册成功 填 写 错误 正确图4-1注册活动图4.5.2 用户登入用户用过登入界面,填写登入用户名和密码实现系统的登入用户进入登入界面输入用户名,密码提交进入系统 登入信息不合法 登入信息合法 图4-2登录活动图4.5.3公聊 用户登入成功后进入公聊界面,通过输入聊天内容实现和其他的用户聊天,并可以显示其他用户发送的公聊信息。用户输入信息发送信息 格式有错 格式正确图4-3公聊活动图4.5.4私聊 用户通过选择在线用户列表的其他用户,通过单击列表中的用户名显示与其私聊的对话框,实现和选中的用户进行私聊方式进行交流,其他用户不可见。用户选择其他用户输入信息发送信息 格式有误 格式正确图4-4私聊流程图4.5.5表情 在用户公聊或私聊时可以同时,可以单击表情按钮打开表情窗体,通过鼠标事件可将选择的表情写入发送窗口中,以增强聊天的表达方式和效果。可以使聊天功能、更丰富更有趣。用户单击表情功能表情框显示表情在发送框发送表情图4-5表情活动图4.5.6字体设置 用户在聊天界面的功能模块中,单击字体功能按钮,在弹出的字体设置框中选择所需要设置的字体颜色、字体大小、字体类型、字体显示方式,并在字体设置框中通过字体效果图显示出当前设置的字体效果,并将设置好的字体属性应用到自己的发送信息中。用户单击字体功能字体设置框显示设置的字体效果应用到发送信息中图4-6字体设置活动图4.5.7记录保存 用户在公聊和私聊的过程的同时,将显示在信息窗体中的聊天内容保存到本地文件中,用户可以通过单击查看记录按钮查看历史聊天内容,并可以在本地机器下次登入后,查看历史聊天的记录。用户记录按钮记录显示框本地记录文件信息显示单击 保 存 信 息 读取图4-7 记录保存活动图4.5.8系统消息 用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发送系统消息,用于发送公告,提示等系统消息,可以方便管理员和客户的交流和管理。用户服务器显示出系统消息发送系统消息 启动 发送系统消息 消息内容有误 正确图4-8系统消息活动图4.6数据库的选择数据库采用Microsoft Access2003数据库,因为程序只涉及到一个表,对数据库的要求不是很高。选择此数据库的原因如下:(1)存储方式单一 ,Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。 (2)面向对象 ,Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。4.7数据库设计数据库采用Microsoft Access2003数据库,因为程序只涉及到一个表,对数据库的要求不是很高,通过Access建立一张chatspace表用于保存用户注册时所填写的姓名,年龄,性别和电子邮件的信息,并且可以通过查询数据库表中的信息判断注册用户名是否存在和用户登入时匹配用户登入的用户名和密码是否正确。通过设置数据源实现系统正确连接到数据库。 图4-9数据库表图保存用户信息的表chatspace 图4-10设置数据源第5章 详细设计第5章 详细设计本系统采用C/S设计模式,系统分为客户端和服务器端,客户端包括注册模块、登入模块、公聊模块、私聊模块、功能设置模块、和客户端功能实现模块等。服务器端包括服务器界面,服务器功能实现模块等。5.1 客户端注册5.1.1功能描述用户必须填写注册给定的全部选项,并且按照正确的格式输入,如年龄一项只能输入数字,的格式等等,并可以在申请注册前验证输入的用户名是否已被使用。5.1.2综合设计实现该功能所写的类为:(1)、Register类: 用于构建注册的主界面主要成员变量 :String name,String c_password,String c_age,String c_email;主要方法: Register() /实现界面元素和设定元素属性 checkinfo() /发送提示的错误信息 mes() /点击事件处理actionPerformed() 图5-1注册的主界面(2)、SendRegInfoThread类 用来检测注册的用户名是否已被使用主要成员变量 String username; Socket socket; ObjectInputStream o_in; ObjectOutputStream o_out;主要方法:public SendRegInfoThread(String name) username=name;/构造方法用于初始化public void run() /实现将信息的发送给服务器图5-2SendRegInfoThread的类图图5-3验证用户名可以使用 图5-4检测注册的用户名已被使用(3)、SendRegInfoSucThresd类 /发送注册消息内容主要成员变量Socket socket; ObjectOutputStream o_out; ObjectInputStream o_in; HashMap hm; Object info; 主要方法public SendRegInfoSucThread(Object info) =info;/构造方法public void run() /实现将注册信息发送给服务器图 5-5SendRegInfoSucThresd类图(4)、RegisterData /用户发送给服务器端的注册类型数据主要成员变量: private String userName; private String passWord; private String userAge; private String email; private String sex;主要方法:分别get,set上面的五个变量,获得用户的输入的名字,密码,年龄,电子邮件和性别的信息。图5-6注册时序图5.2 登入图5-7登入时序图5.2.1功能描述 在设置好IP和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登入,通过验证后登入聊天室主界面,输入错误返回提示。实现该功能的主要类和方法(1)、Land类 /实现登入的主窗体 主要成员变量String hostid; /服务器IP地址int server_port; /服务端口Socket client_socket; /final File propertyFile; /属性文件:主要方法:public Land() /用于初始化登入界面的元素public void actionPerformed(ActionEvent e)/连接服务器的方法体public void run() /显示登入主窗体主方法图5-8 Land类图图5-9登入的主窗体图5-11登入失败(2)、LoginData 类 /发送登入数据类型主要变量:private String userName; private String passWord;主要方法:非别用get,set方法获得userName和passWord两个变量的值。5.3 公聊图5-12公聊时序图5.3.1 功能描述 用户在公聊界面的信息输入框中输入要发送的信息和表情等,用户可以通过功能设置按钮设置自己定义的字体属性 ,如:字体类型 、字体大小 、字体颜色 、字体显示方式、表情等,并可以应用到信息输入框中, 点发送按钮实现信息的发送。并可以显示其他用户发送的公聊信息和系统所发送的系统信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。用户上线或下线时要在显示窗体中给出提示,并刷新用列表中的用户名。并可以通过双击用户名弹出与该用户进行私聊的对话窗体。5.3.2 综合设计 实现该功能的主要类和方法(1)、PublicChat类 /公聊界面本模块主要要实现显示在线用户列表,可以保存聊天记录,可以发送表情图片,可以显示对方发过来的字体信息,并且自己可以发送消息,显示自己的用户名的功能。并且有保存聊天记录,背景,字体,表情的按钮。 图5-13 Public

温馨提示

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

评论

0/150

提交评论