欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    《Java课程设计》需求分析文档要求.docx

    • 资源ID:4927223       资源大小:257.61KB        全文页数:19页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《Java课程设计》需求分析文档要求.docx

    目录1. 选题背景12. 开发技术概述13. 功能需求分析14. 功能设计24.1登录界面功能表24.2注册界面功能表34.3聊天界面功能表44.4文件功能表55. 系统流程分析55.1系统总体设计流程图55.2详细设计流程图66. 界面设计96.1登录界面96.2注册界面96.3聊天界面107. 系统测试118. 关键代码说明13小结16参考文献171. 选题背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而 产生的聊天工具越来越多.目前国内外做即时通讯软件的公司很多,产品也琳琅满目,国内 有诸如腾讯QQ、新浪UC、网易泡泡、淘宝旺旺等,国外有著名的MSN (新版改名为Live Messenger)以及跨平台的米聊等。QQ是国内即时通讯软件市场上无可争议的“老 大”,您使用QQ可以与好友交流,信息及时发送,及时回复,收发及时功能全面。QQ与国 外最大的即时通讯软件MSN功能强大,但它们唯一不足的地方就是必须要联网或者下载到 它们的服务端,否则无法脱离Internet使用。本聊天系统,是可以在局域网聊天的一个工具。无需联网,即可进行群聊。所以也存 在局限性,只有在同一局域网内的用户才能聊天交流,除此之外,该系统未设置私聊功能。2. 开发技术概述本系统采用java技术开发,使用文件保存数据,集成开发环境使用eclipse。开发者 应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse 的基本知识和技能。系统采用两层c/s体系结构,c端负责通过GUI与客户交互,实现注册、 登录、收发信息、退出等功能;c端和s端是通过网络交互的。首先服务器启动,建立一个专门用于接收客户端请求的”倾听Socket”,然后等待客 户的连接请求。当客户想聊天时,从界面输入信息,然后与服务器建立Socket连接,服务 器端的“倾听Socket”收到连接请求后,一般会接收连接请求,并生成一个服务器端socket, 专门负责与此客户端socket的通信。一旦连接请求成功,通过I/O流来实现数据的输入输 出。用多线程来实现多人聊天功能。3. 功能需求分析使得第一次使用的用户可以通过填写个人信息来注册,已注册用户可以在验证他的登 录信息后登录,允许在线用户查看其他在线用户的列表,允许用户在公共聊天室中聊天。 客户端和用户端的需求如下:a. 客户端(1)用户注册界面及结果(2)用户登录界面及结果(3)用户发送信息及结果(4)用户得到信息及结果(5)用户退出界面及结果b. 服务器端(1)处理用户注册(2)处理用户登录(3)处理用户发送信息(4)处理用户退出(5)保存服务器日志(6)保存用户聊天信息4. 功能设计4.1登录界面功能表表4-1登录功能表序号功能内容控件对象名备注1.用户名输入框JTextFieldtextfield2.密码输入框JPasswordFieldpassword3.登录JButtonbl4.取消JButtonb25.注册JButtonb36.存放组件的容器JPanelP1存放bl b2 b37.盒式容器BoxbaseBox存 boxl box28.盒式容器Boxbox1 box29.标签JLabel标记用户名密码表4-2注册功能表序号功能内容控件对象名备注1.用户名输入框TextFieldtextfield12.密码输入框TextFieldPw13.确认密码输入框TextFieldPw24.年龄输入框TextFieldtextfield25.复选框男JCheckBoxC1选定6.复选框女JCheckBoxC27.注册按钮JButtonbsubmit8.取消按钮JButtonbcancel9.存放组件的容器JPanelP1存放信息10.存放组件的容器JPanelP2存放两个提交取消按钮11.存放组件的容器JPanelP3存放性别选项4.3聊天界面功能表表4-3聊天功能表序号功能内容控件对象名备注12.聊天内容显示框TextAreatextareaMessage13.用户列表显示框TextAreatextareaList14.发送内容输入框TextFieldtextfield15.用户列表标签JLabeluserlist16.聊天室标签JLabelchatroom17.退出按钮JButtonbuttonout18.发送按钮JButtonbuttonsent19.存放组件的容器JPanelpanelout存放退出按钮20.存放组件的容器JPanelp21.显示指定组件内容JScrollPanemessagepaneltextareaMes sage22.显示指定组件内容JScrollPanelistpaneltextareaLis t23.显示指定组件内容JScrollPanesendpaneltextfield24.格式布局GridBagLayout()25.GridBagLayout 类布直的 组件的约束GridBagConstraintsbgc4.4文件功能表表4-4文件功能表序号功能内容控件对象名备注1.指定流里面读取对象ObjectInputSt reambr2.从流里读取内容getInputStrea m3.文件写PrintWriterpw4.读对象readObject5.客户端套接字SocketfromClient建立连接6.服务器端套接字ServerSocketserver建立连接5. 系统流程分析5.1系统总体设计流程图聊天应用程序包括登录界面和注册界面,当启动登录界面,用户填写信息后登录,登录的 信息将反馈给聊天服务器,服务器验证用户信息,若验证成功则跳到聊天界面,否则,服务器 反馈给登录界面拒绝登录消息。启动注册界面,用户在界面填写注册信息,注册信息反馈给服 务器,服务器要验证用户信息,验证成功,跳到登录界面,否则,服务器反馈给注册界面,显 示错误消息。图5-1系统总体流程图5.2详细设计流程图1.服务器结构服务器端,处理用户的请求,当收到“来自定时器”消息时服务器给客户反馈,客户端在 聊天界面更新消息和在线用户信息;服务器收到“登录信息”请求时验证登录信息,验证成功 则更新聊天界面里的消息和在线用户信息,否则给客户端反馈“用户不存在”消息;当服务器 端接收到“注册消息”请求时,服务器验证注册信息,若验证成功,将注册信息写入文件保存, 并反馈给客户端“注册成功”信息,跳到登录界面,否则在注册界面给客户端反馈“用户已经 存在”消息。图5-2服务器结构流程图2.客户端结构登录界面,将登录消息发送给聊天服务器,聊天服务器验证登录消息,如果验证成功将“欢 迎”消息发送给登录界面,登录界面向用户显示聊天界面;如果验证不成功,则将拒绝消息发 送给登录界面,登录界面显示错误对话框。注册界面,同登录界面。开始证登录信息结束否是聊天服务器将拒绝登录消息发送给登录界面将“欢迎”消息发送给登录界面将登录信息发送给聊天服务器登录界面显示错误对话框登录界面向用户显示聊天界面登录界面图5-3登录界面流程图聊天界面,服务器接收“来自定时器”的消息,随时更新消息和在线用户信息,若用户 在聊天界面中单击“发送”按钮,服务器接收用户“发送”请求,服务器将用户的发送信 息保存,向聊天界面,若用户退出,服务器收到用户“用户退出”请求,将在线列表中删 除用户,并更新聊天界面里的消息和在线用户信息。图5-4聊天界面流程图6. 界面设计6.1登录界面运行Login.java程序会出现如下界面。图6-1登录界面6.2注册界面运行Resigter.java可出现如下界面,注册信息时,用户名不能为中文,程序采用了 RandomAccessFile来随机读取文件,为单独设置类来处理中文字符,用户若注册用户名信 息含有中文将无法读取,尽管注册成功,登录时将报错:用户名或密码错误。6.3聊天界面用户先注册,在登录,登录成功可以出现如下界面。图6-3聊天界面7. 系统测试用户xiaowang和wang注册后登录聊天室,xiaowang在聊天室里发送消息:你好;wang 发送消息:好。两个用户都能看到彼此所发的信息。图7-1系统测试鸟| Funcaft:wang图7-2系统测试8. 关键代码说明表8-1关键代码表序号事件内容事件名对象名1登录JButtonbl2注册JButtonb23聊天JButtonb34发送JButtonpublic Connect(Socket inFromClient) (/ 建立一个用户/vcList = new Vector<String>();String msg =""String mesg =""try /服务器端先读再写streamFromClient = new BufferedReader(new InputStreamReader( inFromClient.getInputStream();/System.out.println("客户端连接成功");streamtoClient = new ObjectOutputStream( inFromClient.getOutputStream();/System.out.println("服务器反馈信息给用户");msg = streamFromClient.readLine();System.out.println("从客户获得的信息为:"+ msg);if (msg.equals("来自定时器")streamtoClient.writeObject(vector);/ 将指定的对象写入/ ObjectOutputStream streamtoClient.writeObject(vcList);else if (msg.equals("登录消息")msg = streamFromClient.readLine();System.out.println("客户信息为:"+ msg);int ver = verify(msg);System. out .println("验证消息为:"+ ver); if (ver = 1) String colon = new String(":");int index = msg.lastIndexOf(colon);String username = msg.substring(0, index);System.out.println("usernaem->>"+username);if (!(vcList.indexOf(username) >= 0) / 如果用户列表中不存在该用户则在列表中添加该用户streamtoClient.writeObject("欢迎");/ addElement将指定的组件添加到此向量的末尾,将其大小 增加/ 1。如果向量的大小比容量大,则增大其容量。vcList.addElement(String)username);System. out.println("用户列表人数为: "+vcList.size(); else 已经登录了streamtoClient.writeObject("欢迎”);/"+vcList.size();System.out.println("用户列表人数为:streamtoClient.writeObject("拒绝登录”);/ 给客户端反馈信息 else streamtoClient.writeObject("该用户不存在");else if (msg.equals("注册消息")msg = streamFromClient.readLine();System. out .println("从客户端接收的信息为:"+ msg);int ret = checkFile(msg);System.out.println("用户存在为 0 " + ret);if (ret = 0) streamtoClient.writeObject("用户已经存在");if (ret = 1) /创建在文件中写入的文件流System.out.println("在文件中写入信息");FileOutputStream out = newFileOutputStream("UsrPwd.txt",true);PrintStream p = new PrintStream(out);p.println();p.println(msg);p.close();streamtoClient.writeObject("注册成功");System.out.println("注册成功");else if (msg.equals("用户退出")System.out.println("用户退出");String remuser = streamFromClient.readLine();/boolean b = vcList.removeElement(remuser);/移除退出用户 vcList.removeElement(remuser);else /发送信息message = message + msg;System.out.println("message:" + message);vecto尸.addElement(message);/向聊天列表中添加用户发送的聊天信息streamtoClient.writeObject(vector);/反馈给用户现在的向量集合 catch (Exception e1) e1.printStackTrace();System. out.println("无法获取客户端的流对象”+ e1);/ try.catch 结束finally try inFromClient.close(); catch (IOException e2) e2.printStackTrace();System. out .println("发生异常”+ e2);小结本次系统设计总结,我将对我在做这次系统设计中遇到过的问题以及新学的内容进行 总结。本系统的登录界面,我采用7Box容器来排版界面格式,注册界面与聊天界面采用 了 GirdBagLayout()布局格式,来排版界面。用Vector类来实现添加、删除用户的操作, Vector类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的 组件。但是,Vector的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或 移除项的操作。用RandomAccessFile来实现文件内容的读取,RandomAccessFile创建从中 读取和向其中写入的随机访问文件流,类里面有getFilePointer方法来返回文件中的当前 偏移量,到此文件开头的偏移量,在该位置发生下一个读取或写入操作。采用 objectOutputStream类来读取流里的对象,用其中的writerObject()方法来向流里传递(写 入)一个对象。最重要的一点,在调用close ()方法关闭读写流之前一定要先flush。, flush是清空而不是刷新,一般主要用在Io中,即清空缓冲区数据,当我们用读写流的时 候,数据先被读到了内存,然后用数据写到文件中,当数据读完,数据并没有写完,还有 一部分可能留在内存这个缓冲区中,如果你调用了 close()方法关闭了读写流,那么这部 分数据就会丢失,所以应该在关闭读写流之前先flush()(把缓冲区中的内容强制写出), 先清空数据。参考文献1 王雷,潘英.J2EE专业项目实例开发M.北京:中国水利水电出版社,20062 耿祥义,张跃平.Java程序设计实用教程M.北京:电子工业出版社,20073 王保罗.Java面向对象程序设计M.北京:清华大学出版社,20034 张珣,杨三成.关键技术JSP与JDBC应用详解M.中国铁道出版,20105 刘腾红,孙细明.信息系统分析与设计M.北京:科学出版社,20036 林邦杰.彻底研究JavaM.北京:电子工业出版社,20027 毕广吉.Java程序设计实例教程M.北京:冶金工业出版社,20078 王保罗.Java面向对象程序设计M.北京:清华大学出版社,20039 耿祥义,张跃平.Java设计模式M.北京:清华大学出版社,200910 Bruce Eckel.Java编程思想M.北京:机械工业出版社,2003Java程序设计课程设计成绩评定成绩评定:指导教师签字:年 月 日

    注意事项

    本文(《Java课程设计》需求分析文档要求.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开