ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:320.53KB ,
资源ID:10044928      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10044928.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaJ2SE程序设计实训任务书.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

JavaJ2SE程序设计实训任务书.docx

1、JavaJ2SE程序设计实训任务书J2SE程序设计课程“网络聊天室”的设计与实现任务书2016年10月“网络聊天室”的设计与实现 (共26学时)任务一:“网络聊天室”需求分析一、任务内容1、“网络聊天室”业务、技术背景分析。2、“网络聊天室”需求分析。二、任务目标1、知道需求分析的主要内容;2、掌握需求分析的主要原则及方法;3、能按软件工程规范进行应用系统需求分析;4、能根据需求分析选择合适的开发技术;5、提升学生自主学习和团队合作的意识;6、帮助学生养成良好严谨的工作习惯。三、任务环境1、操作系统:WindowsXP或Windows72、开发环境:MyEclipse8.5, Rational

2、 Rose 20033、数据库服务器:SQLServer2005或MySQL5.04、任务实施1、业务背景分析随着网络社会的不断发展,具有相同兴趣的网民需要互相远程交流,既要能省钱又要能即时交互,电话太贵、email又嫌慢,所以开发一个类似QQ 的及时通讯系统就变得非常有意义了。“Happy Chat”聊天系统应运而生,它较之QQ的唯一好处是自主开发,用的放心,更适合在局域网内使用。它提供的功能远不如QQ丰富,但应具有如下功能:(1)与聊天室成员一起聊天;(2)可以与聊天室成员私聊;(3)用户注册、登录;(4)服务器监控聊天内容;(5)服务器发送通知;(6)服务器踢人;(7)保存服务器日志。(

3、8)保存用户聊天信息。2、技术背景分析本系统要求使用java技术开发,使用文件保存数据,集成开发环境使用eclipse。开发者应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse的基本知识和技能。系统采用两层C/S体系结构,C端通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。C端和S端是通过网络交互的,其基本原理如图1所示:图1 C/S通讯基本原理图首先服务器启动,它会建立一个专门用于接收客户端连接请求的“倾听Socket”(相当于总服务台,有

4、固定的IP地址和端口号),然后等待客户的连接请求。当用户想聊天时,从界面输入信息,然后与服务器建立Socket连接(连接时应指定服务器的IP地址和端口号,而客户端socket的端口由本方操作系统从空闲端口中确定),服务器端的“倾听Socket”收到连接请求后,一般会接受连接请求,并生成一个服务端socket(其端口号由服务端操作系统从空闲端口中确定),专门负责与此客户端socket的通信。一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端的相应socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相

5、应的处理(如登录、转发信息等)。服务方也可以根据需要,通过socket输出流发送信息和请求给客户端(公告)。客户方和服务方都可以通过关闭本方的socket而结束一次通讯过程。不难发现服务器需要能同时接受多个客户的请求,为了实现这一点,一般使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程专门负责处理(相当于一个服务员专门服务一个以IP地址和端口号唯一标识的客户)。上述方式两个聊天者之间通信必须通过服务器进行转发,聊天者多时,显然服务器是个性能瓶颈。能不能聊天者之间直接通信?当然可以,这是所谓的P2P聊天室,缺点是对聊天者缺乏集中监管的手段。也有界于二者之间的,即有一服务器,接受

6、注册和登录,实际聊天双方通信时,仍然是直接通信,此时服务器相当于一个婚姻介绍所,只管牵线搭桥,具体谈还是聊天者自己的事。本系统采用聊天信息通过服务器转发的方式,而且只支持一个聊天室。因为其他典型系统如电子邮件系统,FTP系统均采用类似结构,WEB服务系统本质上也是C/S系统,只不过其客户端是浏览器,采用了HTTP通信协议和HTML,所以变成了B/S结构,可以认为是C/S的一个具体应用,其机理是相似的。3、需求分析请根据业务分析中关于系统主要功能的介绍,从系统使用者(客户端和服务器端)角度进行具体需求分析,确定主要用例描述。(1)客户端功能名称具体需求用例描述用户注册(1)客户启动程序,显示出登

7、陆界面(2)客户选择其中的注册按钮,系统显示注册界面(3)客户填写用户名、密码、确认密码、性别、年龄、电子邮件,按确定按钮(4)系统验证密码和确认密码是否相符、用户名(不能重复)、电子邮件格式、年龄(大于10小于100)(5)系统发送上述信息及“注册请求”到服务端,等待服务端返回“注册成功”消息(6)系统提示注册成功(7)系统返回登陆界面若验证失败,提示“重新输入”若服务端返回“注册失败”,提示“注册失败”若服务端返回“注册失败 用户名重名”,则提示“注册失败 用户重名”。用户登录发送信息接收信息(2)服务器端功能名称具体需求用例描述用户注册用户登录发送信息接收信息用户退出五、评价评价内容具

8、体 要 求分值评 分自评互评师评得分ABCDE得分得分文档质量结构严谨,逻辑性强,论述层次清晰;文字通顺,技术用语准确;设计思路阐述清晰,格式符合要求。使用说明描述及使用步骤全面准确。1515131197答辩水平思路清晰,语言表达准确;基础理论知识扎实。回答问题有理论根据,基本概念清楚。主要问题回答准确、有深度。有较强的实际动手能力和计算机应用能力。404036322824程序功能能运用所学知识技能去发现与解决实际问题;达到设计目标符合设计要求,功能齐全完善;能正确处理实验数据。10108654创新能力系统设计与实现方法有技巧性、新颖性、有创新意识;有一定的理论或应用价值,有难度。设计思路新颖

9、,对问题有较深刻的认识。202018161412综合素养学习态度端正;主动参与性强,能够与指导教师及时沟通;学风严谨务实;按期圆满完成规定的任务。1515131197总 分指导教师签名任务二:“网络聊天室”总体设计一、任务内容1、“网络聊天室”系统总体结构分析。2、“网络聊天室” 服务器端、客户端总体设计。二、任务目标1、了解网络应用系统的体系结构;2、知道网络应用系统服务器端的总体设计方法;3、知道网络应用系统客户端的总体设计方法;4、能进行网络应用系统服务器端、客户端总体设计;5、帮助学生养成良好严谨、精益求精的工作作风。三、任务环境1、操作系统:WindowsXP或Windows72、开

10、发环境:MyEclipse8.5,Rational Rose 20033、数据库服务器:SQLServer2005或MySQL5.0四、任务实施1、系统总体结构分析 总体设计阶段主要是确定系统的体系结构和主要模块 ,显然系统分客户端子系统和服务器子系统。系统体系结构如图1所示:收发界面业务逻辑网络通信 聊天服务器监管界面聊天业务处理 数据网络通信 访问客户B客户A客户C数据库/文件TCP/IPTCP/IPTCP/IP 图1 系统体系结构图 客户端可以划分成三子层,服务端也可以划分出三个子层,客户和服务器间通信采用的是可靠的TCP协议。请确定基本的聊天过程:(1) (2) (3) (4) (5)

11、 (6) 2、服务器端总体设计 服务器端主要的模块和结构如图2所示,请确定各个.java主要功能:图2 服务器端结构图(1)AppServer.java (2)ServerFrame.java (3)Connection.java (4)WordFilter.java 3、客户端总体设计客户端主要模块和结构如图3所示,请确定各个.java主要功能:图3 客户端结构图(1)ChatClient.java (2)Login.java (3)ChatRoom.java (4)Clock.java 五、评价评价内容具 体 要 求分值评 分自评互评师评得分ABCDE得分得分文档质量结构严谨,逻辑性强,论

12、述层次清晰;文字通顺,技术用语准确;设计思路阐述清晰,格式符合要求。使用说明描述及使用步骤全面准确。1515131197答辩水平思路清晰,语言表达准确;基础理论知识扎实。回答问题有理论根据,基本概念清楚。主要问题回答准确、有深度。有较强的实际动手能力和计算机应用能力。404036322824程序功能能运用所学知识技能去发现与解决实际问题;达到设计目标符合设计要求,功能齐全完善;能正确处理实验数据。10108654创新能力系统设计与实现方法有技巧性、新颖性、有创新意识;有一定的理论或应用价值,有难度。设计思路新颖,对问题有较深刻的认识。202018161412综合素养学习态度端正;主动参与性强,

13、能够与指导教师及时沟通;学风严谨务实;按期圆满完成规定的任务。1515131197总 分指导教师签名任务三:“网络聊天室”客户端详细设计一、任务内容1、“网络聊天室”客户端用户注册子模块的设计与实现。2、“网络聊天室”客户端用户登录子模块的设计与实现。3、“网络聊天室”客户端收发信息子模块的设计与实现。二、任务目标1、理解网络应用系统客户端设计的基本方法;2、知道J2SE应用程序GUI界面设计步骤;3、能进行J2SE应用程序界面设计;4、能根据实际需求,完成应用程序模块代码编写与调试;5、提升应用系统开发过程中学生自主学习和团队合作的意识;6、培养学生良好严谨的工作作风和软件开发可持续发展能力

14、。三、任务环境1、操作系统:WindowsXP或Windows72、开发环境:MyEclipse8.5,Rational Rose 20033、数据库服务器:SQLServer2005或MySQL5.05、任务实施1、“用户注册”子模块的设计与实现。程序将通过Register.java用户注册界面收集用户的用户名、密码、年龄、电子邮箱等。参考界面如图1。图1 客户端注册界面处理过程:当用户注册时,客户端的Register.java界面收集并验证了用户的注册信息后,封装成Register_Customer类然后通过建立在Socket的连接之上的对象输出流将用户注册信息发送给服务器端,服务器端将请

15、求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在数据库中查找该用户名是否已经注册,然后将注册信息加入数据库,最后将注册结果返回给客户端。客户端显示结果(重名、成功、失败),并断开连接。验证要求:(1)验证用户名是否为空:即用户名的字符长度不为0,如果验证通过,就继续下面验证,否则返回“用户名为空”错误。(2)验证密码是否为空:即密码的字符长度不为0,如果验证通过,就继续下面验证,否则返回“用户密码为空”错误。(3)验证密码的一致性:验证密码两次输入是否一致,如果验证通过,就继续下面验证,否则返回“密码两次输入不一致,请重新输入”错误。 (4)验证年龄是

16、否为空:即用户年龄的字符长度不为0,如果验证通过,就继续下面验证,否则返回“用户名为空错误”(5)验证年龄的合法性:即用户年龄介于10到100之间,如果验证通过,就进行继续下面验证,否则返回“用户年龄为空” (6) 验证电子邮箱的合法性:即电子邮箱字符串必须有“” ,如果验证通过,就进行继续下面验证,否则返回“电子邮箱不合法”。在“用户注册”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: 2、“用户登录”子模块的设计与实现。程序将通过Login.java用户登录界面收集用户的用户名、密码,如图2所示。图2 客户端登录界面 处理过程:当用户登录时,客户端由Login.j

17、ava 界面收集并验证用户登录信息后,封装成Customer对象类然后通过建立在Socket的连接之上的对象输出流将用户登录信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在对象型数据库中查找该用户名是否已经注册,然后将注册用户的信息与登录请求信息进行密码验证,在登录成功后将该用户添加到在线用户列表,最后将登录结果返回给客户端。如果登录成功,客户端将继续启动聊天室主界面。验证要求:(1)验证用户名是否为空:即用户名的字符长度不为0,如果验证通过,就进行继续下面验证,否则返回“用户名为空”错误,(2)验证密码是否为空:即密码

18、的字符长度不为0,如果验证通过,就进行继续下面验证,否则返回“用户密码为空”错误当以上信息验证成功时,客户端将打开与服务之间的Socket连接,用对象输出流包装后将用户登录的信息发送给服务器端,并接收服务器处理完用户登录的信息。当客户端收到服务器返回的信息时,将会用信息对话框的形式告知用户是否注册成功,若成功则显示收发主界面ChatRoom,关闭Socket连接。在“用户登录”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: 3、“收发信息”子模块的设计与实现。当用户登录成功后,用户的登录界面将会消失,然后创建用户聊天室窗口,如图3所示:图3 收发信息界面1 用户发送信

19、息当用户需要发送聊天信息时,可以在在线列表中选中聊天对象或者“所有人”,选择发言的语气,和是否私聊就可以发送聊天信息了。当用户点击完发送按钮后,程序开始将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后获取Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。2 接收聊天信息接收用户的聊天信息是用一个单独的接收线程实现的,因为客户端必须随时接收服务器发来的消息,而读取消息的方法采用的一般是读直到有消息到来的“阻塞读”方式,若在事件处理程序中读(占用的是事件处理线程)则会使程序在此后无法响应用户操作,所以需要生成一个单独的线程专门用于读取处理消息。

20、而发送消息的方法则是将消息放入操作系统的发送缓冲区后就返回的,所以发送执行的相当快,可以在事件处理线程中直接调用。发送和接收可以同时进行。在“收发信息”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: 五、评价评价内容具 体 要 求分值评 分自评互评师评得分ABCDE得分得分文档质量结构严谨,逻辑性强,论述层次清晰;文字通顺,技术用语准确;设计思路阐述清晰,格式符合要求。使用说明描述及使用步骤全面准确。1515131197答辩水平思路清晰,语言表达准确;基础理论知识扎实。回答问题有理论根据,基本概念清楚。主要问题回答准确、有深度。有较强的实际动手能力和计算机应用能力。4

21、04036322824程序功能能运用所学知识技能去发现与解决实际问题;达到设计目标符合设计要求,功能齐全完善;能正确处理实验数据。252522181512创新能力系统设计与实现方法有技巧性、新颖性、有创新意识;有一定的理论或应用价值,有难度。设计思路新颖,对问题有较深刻的认识。10109876综合素养学习态度端正;主动参与性强,能够与指导教师及时沟通;学风严谨务实;按期圆满完成规定的任务。10109876总 分指导教师签名任务四:“网络聊天室”服务器端详细设计一、任务内容1、“网络聊天室”服务器端用户注册子模块的设计与实现。2、“网络聊天室”服务器端用户登陆子模块的设计与实现。3、“网络聊天室

22、”服务器端收发信息子模块的设计与实现。4、“网络聊天室”服务器端用户退出子模块的设计与实现。二、任务目标1、理解网络应用系统服务器端设计的基本方法;2、知道J2SE应用程序GUI界面设计步骤;3、能进行J2SE应用程序界面设计;4、能根据实际需求,完成应用程序模块代码编写与调试;5、提升应用系统开发过程中学生自主学习和团队合作的意识;6、培养学生良好严谨的工作作风和软件开发可持续发展能力。三、任务环境1、操作系统:WindowsXP或Windows72、开发环境:MyEclipse8.5,Rational Rose 20033、数据库服务器:SQLServer2005或MySQL5.06、任务

23、实施1、“用户注册”子模块的设计与实现。处理过程或步骤:(1)从数据库读取数据:首先创建一个File文件类,载入“user.txt”,再用对象输入流ObjectInputStream包装File文件类,将存储在“user.txt”得向量对象Vector中载入内存中,现在系统中的向量就是对象型数据库,存储着每条用户信息对象。(2)判断是否是第一个注册用户:检测内存中的数据库对象集的当前容量是否为空,如果是,将收集的注册用户信息对象添加到数据库对象集中,然后直接写入数据库,否则继续进行其他判断。(3)判断用户名是否已经存在:检测内存中的数据库对象集的中有没有和当前收集的注册用户名相同的记录,如果有

24、,就退出检测,否则继续下一个检测。(4)判断用户名是否为系统关键字:检测当前收集的用户名是否为“所有人”,如果是,就退出检测,否则继续下一个检测。因为“所有人”这个名字会和系统发生冲突,用户发给所有人的信息将会使用“所有人”这个特殊用户名。(5)用户名有效后写入数据库:当前面的验证全部都通过的时候,将用户的注册信息对象添加到用户数据库中,然后创建文件输出流,再用对象输出流包装后写入本地文件将其持久化。最后关闭对象输出流和文件输入流。(6)给客户端返回信息:将用户注册成功或失败的信息用打印流包装Socket以后,输出给客户端注册结果的详细信息。(7)在监管界面上显示信息,如图1所示。图1 服务器

25、管理界面(8)关闭Socket连接:当以上的程序都正常运行后,需要关闭Socket连接,否则将会浪费服务器与客户端之间的资源。在“用户注册”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: 2、“用户登陆”子模块的设计与实现。处理过程或步骤:(1)去数据库读用户数据:打开用户数据库文件“user.txt”,将用户数据对象集载入内存,以供下面的程序使用。(2)验证用户名是否存在:在对象数据库中查找是否有与登陆用户的用户名相同的记录,如果有继续验证,否则退出验证处理,返回“没有此用户”错误。(3)验证用户密码是否正确:如果有与登录用户的用户名相同的记录,接着判断密码是否正确

26、。如果密码正确,继续验证,否则退出验证处理,返回“用户密码错误”。(4)验证用户是否已经登录: 在服务器的已登录用户列表中查找是否有该用户,如果有该用户,退出验证处理返回“该用户已经登录”错误。否则继续下面的验证。(5)验证是否已经超过最大登录人数:检测服务器的在线人数是否已经达到限制的最大人数,如果是,退出验证处理返回“当前服务器人数已满,请稍后再试”错误。否则继续下面的验证。(6)返回客户端信息:如果以上验证全部正确,就返回客户端“用户登录成功”。(7)在监控界面显示信息。(8)关闭Socket连接:当以上的程序都正常运行后,需要关闭Socket连接,否则将会浪费服务器与客户端之间的资源。

27、在“用户登陆”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: 3、“收发信息”子模块的设计与实现。处理过程或步骤:(1)接收用户聊天信息:当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Message对象。(2)过滤用户聊天内容的非法信息(可选):分析聊天信息对象的聊天内容,用语言过滤类将非法字符过滤掉。语言过滤的时候将会打开“badword.txt”文件,不允许出现的关键词将会存储在文件中,关键字之间以逗号分割。当聊天内容中出现要过滤的关键字是 将会被系统屏蔽,而聊天内容也将替换成“非法内容,系统屏蔽”。 (3)返回

28、聊天信息:系统从Message中提出消息类型,再根据类型将消息强制转化ChatMessage,调用ChatMeaage中方法,获取目的客户名称列表,根据目的地用户名从用户名、socket键值表中获取socket,再通过socket将Message转发到目的客户。 Message定义如下:1消息类型 接收消息请求,登录请求,登录响应,注册请求,注册响应 2 获取类型方法getTypeChatMessage继承自Message,增加如下属性:(1).目的用户名列表;(2)用户聊天内容;相应的还有LoginMessage、LoginACKMessage、RegisterMessage,Registe

29、rACKMessage. LogoutMessage(客户退出)等。在“收发信息”模块开发过程中,你遇到了哪些问题?是怎么解决的?遇到的问题: 解决方法: LogoutMsgQuitMsgAcceptMsgAcceptMsgLoginMsgLogoutMsgLogoutMsgAcceptMsgAcceptMsgLoginACKMsgRegisterACKMsgRegisterMsg客户方A服务方LoginMsg客户方X图2 通信协议交互图4、“用户退出”子模块的设计与实现。处理过程或步骤:(1)接收退出信息:当用户退出时,客户端将会用基于Socket的对象输出流发给服务器退出对象。(2)在线列表中删除用户:用户退出后

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2