JAVA聊天室课程设计报告含源代码压缩文件.docx
《JAVA聊天室课程设计报告含源代码压缩文件.docx》由会员分享,可在线阅读,更多相关《JAVA聊天室课程设计报告含源代码压缩文件.docx(8页珍藏版)》请在冰豆网上搜索。
JAVA聊天室课程设计报告含源代码压缩文件
IMBstandardizationoffice【IMB5AB-IMBK08-IMB2C】
JAVA聊天室课程设计报告含源代码压缩文件
南京晓庄学院
《JAVA程序设计》
课程设计报告
题 目:
Java聊天室的设计与实现
姓名:
戴佳伟
学号:
班级:
14软件工程3班
指导教师:
王峥
完成时间
成绩:
信息工程学院
2016年6月
Java聊天室的设计与实现
引言
Java聊天室开发背景
在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。
本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。
如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。
1.1Java聊天室开发的目的和意义
目的:
(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。
(2)理解进程共享变量的进程通信。
(3)熟悉并掌握java语言的代码编写
(4)熟练使用开发工具Eclipse
(5)实现聊天室的一些基本功能
意义:
(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受
(2)用户及时获取自己想要的信息、促进交谈
(3)异常处理,对于用户错误的操作使用程序会有提示消息
(4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc.
(5)后期可便于网站自身的广告宣传与商品推广
因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。
1.2完成的主要工作
(1)需求分析与总体设计、详细设计、代码分析
(2)实现程序所能运行的功能
(3)选择Window系统,并选择该操作系统中一种进程通信的方式。
(4)运用Eclipse开发工具和java语言实现该应用程序。
2需求分析和总体设计
需求分析与设计思路
关键技术说明
程序开发环境与运行环境介绍:
JDK(JavaDevelopmentkit)是SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。
是一个编写Java的Applet小程序和应用程序的程序开发环境。
JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一些Java工具和Java的核心类库(JavaAPI)。
不论什么Java应用服务器实质都是内置了某个版本的JDK。
Java语言介绍:
是一门编程语言,不仅吸收了语言的各种优点,还摒弃了C++里难以理解的、等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、、、、平台独立与可移植性、、动态性等特点。
Java可以编写、、和应用程序等。
Java提供了简单的类机制和动态的构架模型。
对象中封装了它的状态变量和方法
很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型通过继承和重载机制子
类可以使用或重新定义父类或超类所提供的一方法从而既实现了代码的复用又提供了一
种动态的解决方案。
Java是一种完全面向对象的程序设计语一言它除了数组、布尔和字符二个基本数据类
型外的其它类都是对象它不再支持全局变量。
在Java中如果不创建新类就无法创建程
序Java程序在运行时必须先创建一个类的实例然后才能提交运行。
Java同样支持继承特性Java的类可以从其它类中继承行为但Java只支持类的
单重继承即每个类只能从一个类中继承。
Java支持界面界面允许程序员定义方法但又不立即实现一个类可以实现多个界面
利用界面可以得到多重继承的许多优点而又没有多重继承的问题。
编程工具介绍:
:
一个开放源代码的、基于Java的可扩展开发平台
Eclipse语言发展:
Eclipse是着名的跨平台的自由(IDE)。
最初主要用来开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。
IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。
Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括、RationalSoftware、及等。
Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。
随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。
需求分析
随着网络和IT技术的快速发展以及日新月异的更新换代,不断渗透到人们的日常生活。
如今Internet已经成为于人们生活息息相关的一部分,也是人们获取有用信息和促进彼此之间相互交流的便捷重要的途径之一。
同时,日益增多的机构和企业组织开始利用网络资源传递、发布、收集和管理信息,这对网络进行信息交互这种活动是一次很大的机遇与挑战,从而使网络的经营方式充满了活力。
用户需求主要功能分析:
(1)聊天交谈功能:
用户获取信息的有效途径
(2)当前用户显示功能:
用户明确自身的登陆状态
(3)文本框显示聊天功能:
便于用户浏览信息
(4)发送消息框显示功能:
存放用户输入想要发送的信息
(5)发送按钮功能:
鼠标点击——发送用户输入消息框的信息
(6)用户头像显示功能:
个性化用户使用
Java聊天室设计方案与思路
1.设计方案:
(1)把自身本机的IP地址发送给所有正在打开这个聊天室程序的人
(2)其他人获取了这个IP地址后,会监听这个地址
(3)如果有人发送了消息,所有的人都会接收并查看到
(4)设计登录程序,使其显示登录的ip地址端口号,以及用户昵称,通过登录按钮可以调用客户端程序,实现聊天功能
2..设计思路
聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。
因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:
在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。
因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。
1.首先通过继承JFrame类构造服务器界面。
2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。
3.设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。
Java聊天室目录结构说明
对系统包结构、文件结构列表说明,如表2-1、2-2所示。
表2-1
包名
作用
提供了用于系统的输入和输出,通过数据流,序列化和文件系统。
捕获捕获输入输出异常
提供了可移植的网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket
储存接收到的数据,使用其中的方法提取传送的内容
封装IP地址
捕获主机IP地址无法确定异常
提供了一套与本地图形界面进行交互的接口,建立和设置Java的图形用户界面
提供接口和类来解决由awt组件引起的各种类型的事件
抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格,利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面
表2-2
文件名
作用
image
存放用户头像图片
Java聊天室功能结构
对系统实现功能进行说明,分析系统功能结构,画出系统功能结构图,如图2-1所示。
总体功能:
(1)实现在同一局域网的聊天
(2)程序可以自动扫描已经上线的用户
(3)需要与其中的用户进行交谈,则只需双击右侧用户列表,输入对方IP地址,便可在下面的输入框内输入信息进行发送。
(4)添加了用户头像
(5)调整了界面窗口
(6)Enter键实现发送消息功能
分段功能:
1、服务器端功能描述:
启动服务器端。
2、客户端功能描述:
启动客户端;
显示登录昵称:
显示系统时间:
显示聊天记录:
发送信息(实现按回车键发送消息);
退出聊天室。
功能实现:
1、采用套接字实现网络中的数据传输
2、尽量使用某个或某些应用层的协议实现系统的部分功能
3、系统设计规范合理,操作流程方便简单
详细设计
3.1Java聊天室模块实现
3.1.1聊天功能模块实现
一、实现原理
启动该程序时运行如下过程:
(1)把自身本机的IP地址发送给所有正在打开这个聊天室程序的人
(2)其他人获取了这个IP地址后,会监听这个地址
(3)如果有人发送了消息,所有的人都会接收并查看到
二、分层结构及调用关系说明
(1)从main()函数入口开始分析,实例化ChatLineFrame这个类并执行类repaint方法,重绘事件,刷新弹出的窗口的内容
(2)在实例化ChatLineFrame这个类过程中,首先定义ChatLineFrame类继承JFrame,声明成员变量和框架布局内容,然后构造方法,实例化该类的时候,会自动执行函数内的内容。
(3)初始化窗口和其他部分
(4)实例化chatJFrame
(5)实例化ChatJFrame类,该类实现向外广播消息
(6)实例化ReceiveMessage类,该类实现监听并接受消息
(7)启动UDPReceive类、UserBroadcast的线程。
(8)在定义初始化方法中,为按钮增加监听行为,实例化IPListListener类与SendButtonListener类。
三、关键代码分析
classChatJFrameextendsJFrame;IP区分割开
Stringstr2=(0)++获取目的IP地址
Stringstr3=(0,i+1)+(255);
着、论文集、毕业论文、报告等
[序号]作者.书名[文献类型标志].出版地:
出版者,出版年.起止页码(任选).(文献类型标志:
专着M;论文集C;报告R;其它文献Z)
2.期刊
[序号]作者.篇名[J].刊名,年,卷(期刊).
3.电子文献
[序号]主要责任者.电子文献题名[文献类型/载体类型].电子文献的出版或可获得地址,发表或更新的期/引用日期(任选).
例如:
[1]孟彩霞.计算机软件基础[M].西安:
西安电子科技大学出版社,2003.
[1]核心技术卷I基础知识[M].北京:
机械工业出版社,
[2]张光彬孟红蕊张永宝..Java课程设计(案例精编)[M].北京:
清华大学出版社.2007