欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    软件工程 实验报告.docx

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

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

    软件工程 实验报告.docx

    1、软件工程 实验报告中南民族大学学生实验报告院 系: 计算机科学学院 专 业: 计算机科学与技术 年 级: 2013级 课程名称: 软件工程 组 员: 司少武 (2) 兰少雄 (2) 张宇 (2) 纳洪泽(2)指导教师: 刘卫平 2015年 12月 26 日聊天室1 前言1、1 即时消息系统的研究现状 即时消息系统1(Instant Messenger,IM)就是一种在后 PC 时代兴起的,以 Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这

    2、正就是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式与交友文化,大大拓展了个人生活交流的空间。1、2本工程的主要内容 随着互联网逐步普及,人们的生活与工作也越来越离不开信息网络的支持, 而聊天室就是人们最常见, 最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也就是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统就是基于开放的JA

    3、VA应用程序开发设计的,其主要特性就是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求, 且具有脱离数据库技术方法, 易于维护与更新的特点。2 需求分析本系统所要实现的主要功能就是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气与就是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。接收用户的聊天信息就是由多

    4、线程技术实现的,因为客户端必须时时关注更新服务器上就是否有最新消息,在本程序中设定的就是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。2、1 业务需求 1、 与聊天室成员一起聊天。 2、 可以与聊天室成员私聊。 3、 可以改变聊天内容风格。 4、 用户注册(含头像)、登录。 5、 服务器监控聊天内容。 6、 服务器过滤非法内容。 7、 服务器发送通知。 8、 服务器踢人

    5、。 9、 保存服务器日志。 10、保存用户聊天信息。2、2 系统功能模块2、2、1 服务器端 1、处理用户注册 2、处理用户登录 3、处理用户发送信息 4、处理用户得到信息 5、处理用户退出2、2、2 客户端 1、用户注册界面及结果 2、用户登录界面及结果 3、用户发送信息界面及结果 4、用户得到信息界面及结果 5、用户退出界面及结果2、3 性能需求 运行环境:Windows All 必要环境:JDK 1、5 以上 硬件环境:CPU 400MHz以上,内存64MB以上3数据结构3、1 数据结构 此系统数据库中储存信息采用字符指针储存,将用户的信息用字符的形式进行处理并储存。3、2 逻辑结构 逻

    6、辑结构:用户向服务器发送请求,服务器获取对方IP,若获取成功,用户向其发送消息,服务器将其处理并将其记录,然后将消息发给另一用户。其ER图如下所示:2将E-R图转化为关系模型,建立关系模型为:消息(内容,时间);记录信息(内容,储存信息);服务器(服务器IP); 33、3 功能模块划分3、3、1结构框图3、3、2程序流图(1)整个系统流程图如下: 用户发送的消息或请求结束服务器接收信息查询请求?向用请求户发送消息保存信息向目标用户发送消息就是否图3、系统程序流程图 3、3、3模块功能分析及外部设计模块功能分析:(1)发送消息:用户选择好友,如果好友在线,服务器便获取其IP地址,用户打开消息盒编

    7、辑需要发送的消息,然后发送,服务器接受此消息,并处理记录到记录表中,然后将其发送给好友。(2)接收消息:好友发送的信息通过服务器处理并发送到本用户,如果设置为接收消息,则系统提示并可以打开查瞧此消息,否则服务器不将此消息发送到本用户。(3)消息记录查询:用户向服务器发送查询请求,服务器作出响应并将最近消息记录发送到此用户。外部设计:交互设计就是面向最终用户的设计,就是软件的外部设计,交互设计要求在研究软件技术问题的同时对人加以研究。用户就是什么样的人?用户怎样与新的计算机系统进行交互?用户怎样解释系统产生的信息?用户对系统有哪些期望?这些问题仅仅就是需要在用户交互设计时必须询问与回答的问题。作

    8、为点对点的聊天系统,作为服务使用者得用户与提供服务的聊天系统有着互动与交换信息的过程,用户有请求,系统就必须有应答,需要双方参与。(1)当用户选择好友向其发送消息时,点击好友,向服务器发送请求,如果好友在线,服务器自动获取好友IP并建立双方的连接,进行聊天。否则应该提示好友不在,不能聊天或发送离线信息。(2)用户查询聊天信息时,向服务器发送查询请求,服务器作出响应并将相应记录发送到此用户界面。通过对产品的界面与行为进行交互设计,让产品与它的使用者之间建立一种有机关系,从而可以有效的达到使用者的目标,而好的交互设计会使系统与使用者之间更好的交互,达到“愉悦地合作”,这就是交互设计的最终目的。4

    9、详细设计4、1 类定义 ChatClient、java 为客户端程序启动类,负责客户端的启动与退出。 Login、java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。 Register、java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。 ChatRoom、java 为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器端的Connection、java 亲密合作。 Windowclose 为ChatRoom、java的内部类,负责监听聊天室界面的操作,当用户退出时返回给服务器信息。 Clock、java 为客户端程序的一个小程序,实现的一个石英钟功能。4、2 主要模

    10、块内部设计此点对点聊天系统主要包括以下模块:(1)发送消息;(2)接收消息;(3)查询消息记录。每个模块的主要执行功能函数及算法如下。4、2、1模块1设计4、2、1、1 模块算法模块一:发送消息: 发送消息函数:send messages(char *p,InetAdrress); 发送消息后自动执行储存函数:memory messages(InetAdrress,char *p);4、2、1、2 流程图4.2.2 模块2设计4、2、2、1 模块算法模块二:接收消息: 接收消息消息函数: *receive messages(InetAdrress,char *p); 接收消息后自动执行储存消息

    11、函数:memory messages(InetAdrress,char *p);4、2、2、2 流程图:4.2.3 模块3设计4、2、3、1 模块算法模块三:消息记录查询: 执行发送请求函数:*check notes(InetAdrress,char *p); 删除记录函数:delete notes(InetAdrress); 自动执行接收消息函数:*receive messages(InetAdrress,char *p); 4、2、3、2 流程图:5 测试分析与截图在实现本系统的同时每设计一个模块,就实现模块测试,使其能实现该函数需要实现的功能,此阶段为白盒测试。此阶段将此模块作为单独的一

    12、个实体来测试,而且比较容易实际检验模块正确性的测试方案,保证每个模块单元的正确运行,来确定编码与详细设计的错误。 然后集成测试。集成测试阶段,先将单元测试成功的模块放在一起形成一个子系统来测试,以解决模块间的协调与通信问题。然后将子系统测试通过的模块放在一起形成一个完整的系统测试,检验功能,来发现需求报告中的错误。5、1 测试用例为了检验此系统的正确性,设计了以下的一些测试用例:(1)登录注册 (2)发送与接收消息A:您好B:您好 (3)保存聊天记录 (4)保存聊天记录 (5)保存服务器日志 (6)服务器踢人不同的测试数据发现程序错误的能力差别很大,为了提高测试效率低测试成本,应该选择高效的测

    13、试用例,数据尽量少,做到尽可能完备的测试就可以了。5、2 测试结果 5、2、1登录界面 5、2、2注册界面5、2、3 服务器5、2、4 聊天室聊天对所有人,私人聊天,系统提示信息。5、2、5 聊天记录保存5、2、6服务器日志保存5、2、7服务器踢人5、2、8时钟6 结束语Java面向对象程序设计就是一门应用广泛并且实用性极强的高级程序设计语言。通过本次课程设计,我们对面向对象的基本思想有了进一步的理解,对项目的各个阶段的任务也有了一定的了解。设计开始阶段必须明确设计的目的与需求分析,总体设计要全面分析聊天室系统的架构。通过这次设计,使我们认识到体系的架构就是最重要的,只有准确的系统设计、很好的

    14、定义各个模块及模块之间的关系,才能在编码阶段更轻松的的实现。通过这次课程设计,对我们的逻辑思维能力就是一个很大的锻炼,它不仅加强了我们的系统思考问题的能力,而且还改变了我们以前不好的编程习惯,虽然花费了不少的时间,但就是我们学到了丰富的知识。另外,此次课程设计也提高了我们的团对合作精神,让我们明白不就是不能一个人能单独完成,而就是要集思广益,结合更多的人的创意思维。让我们大家深刻的体会到理论与实际相结合的重要性与微妙之处。对于不同的想法我们都会集中讨论并对好的意见加以借鉴,在这个讨论的过程中,还更正了不少我们各自自身对于某个知识点的误区。这次程序设计也就是一个毅力的考验过程。有时候往往只就是一

    15、个小小的错误,却要花出几小时甚至就是一两天的时间才可能发现它。所以在这个过程不能过于急躁,要很有耐心将程序反复调试。App server、javaimport java、io、*;import java、net、*;import java、util、*;public class AppServer extends Thread private ServerSocket serverSocket; private ServerFrame sFrame; private static Vector userOnline = new Vector(1, 1); private static Vect

    16、or v = new Vector(1, 1); public AppServer() sFrame = new ServerFrame(); try serverSocket = new ServerSocket(1001); / 获取服务器的主机名与IP地址 InetAddress address = InetAddress、getLocalHost(); sFrame、txtServerName、setText(address、getHostName(); sFrame、txtIP、setText(address、getHostAddress(); sFrame、txtPort、setT

    17、ext(1001); catch (IOException e) fail(e, 不能启动服务!); sFrame、txtStatus、setText(已启动、); this、start(); / 启动线程 public static void fail(Exception e, String str) System、out、println(str + 。 + e); public void run() try while (true) Socket client = serverSocket、accept(); new Connection(sFrame, client, userOnlin

    18、e, v); System、out、println(userLength:+userLength); catch (IOException e) fail(e, 不能监听!); public static void main(String args) new AppServer(); Login、javaimport*;public class Login extends JFrame implements ActionListener private static final long serialVersionUID = -89657739L; private JPanel pnlLogi

    19、n; private JButton btnLogin, btnRegister, btnExit; private JLabel lblServer, lblUserName, lblPassword, lblLogo; private JTextField txtUserName, txtServer; private JPasswordField pwdPassword; private String strServerIp; private Dimension scrnsize; private Toolkit toolkit = Toolkit、getDefaultToolkit()

    20、; public Login() super(登录HappyChat聊天室); pnlLogin = new JPanel(); this、getContentPane()、add(pnlLogin); lblServer = new JLabel(服务器(S):); lblUserName = new JLabel(用户名(U):); lblPassword = new JLabel(口 令(P):); txtServer = new JTextField(20); txtServer、setText(127、0、0、1); txtUserName = new JTextField(20);

    21、 pwdPassword = new JPasswordField(20); btnLogin = new JButton(登录(L); btnLogin、setToolTipText(登录到服务器); btnLogin、setMnemonic(L); btnRegister = new JButton(注册(R); btnRegister、setToolTipText(注册新用户); btnRegister、setMnemonic(R); btnExit = new JButton(退出(X); btnExit、setToolTipText(退出系统); btnExit、setMnemoni

    22、c(X); pnlLogin、setLayout(null); pnlLogin、setBackground(new Color(52, 130, 203); lblServer、setBounds(50, 100, 100, 30); txtServer、setBounds(150, 100, 120, 25); lblUserName、setBounds(50, 130, 100, 30); txtUserName、setBounds(150, 130, 120, 25); lblPassword、setBounds(50, 160, 100, 30); pwdPassword、setBo

    23、unds(150, 160, 120, 25); btnLogin、setBounds(50, 200, 80, 25); btnRegister、setBounds(130, 200, 80, 25); btnExit、setBounds(210, 200, 80, 25); Font fontstr = new Font(宋体, Font、PLAIN, 12); lblServer、setFont(fontstr); txtServer、setFont(fontstr); lblUserName、setFont(fontstr); txtUserName、setFont(fontstr);

    24、 lblPassword、setFont(fontstr); pwdPassword、setFont(fontstr); btnLogin、setFont(fontstr); btnRegister、setFont(fontstr); btnExit、setFont(fontstr); lblUserName、setForeground(Color、BLACK); lblPassword、setForeground(Color、BLACK); btnLogin、setBackground(Color、ORANGE); btnRegister、setBackground(Color、ORANGE

    25、); btnExit、setBackground(Color、ORANGE); pnlLogin、add(lblServer); pnlLogin、add(txtServer); pnlLogin、add(lblUserName); pnlLogin、add(txtUserName); pnlLogin、add(lblPassword); pnlLogin、add(pwdPassword); pnlLogin、add(btnLogin); pnlLogin、add(btnRegister); pnlLogin、add(btnExit); Icon logo1 = new ImageIcon(i

    26、magesloginlogo、jpg); lblLogo = new JLabel(logo1); lblLogo、setBounds(0, 0, 340, 66); pnlLogin、add(lblLogo); setResizable(false); setSize(340, 260); setVisible(true); scrnsize = toolkit、getScreenSize(); setLocation(scrnsize、width / 2 - this、getWidth() / 2, scrnsize、height / 2 - this、getHeight() / 2);

    27、Image img = toolkit、getImage(imagesappico、jpg); setIconImage(img); btnLogin、addActionListener(this); btnRegister、addActionListener(this); btnExit、addActionListener(this); SuppressWarnings( deprecation, static-access ) public void actionPerformed(ActionEvent ae) Object source = ae、getSource(); if (so

    28、urce、equals(btnLogin) if (txtUserName、getText()、equals() | pwdPassword、getText()、equals() JOptionPane op1 = new JOptionPane(); op1、showMessageDialog(null, 用户名或密码不能为空); else strServerIp = txtServer、getText(); login(); if (source、equals(btnRegister) strServerIp = txtServer、getText(); this、dispose(); n

    29、ew Register(strServerIp); if (source = btnExit) System、exit(0); SuppressWarnings(deprecation) public void login() Customer data = new Customer(); data、custName = txtUserName、getText(); data、custPassword = pwdPassword、getText(); try Socket toServer; toServer = new Socket(strServerIp, 1001); ObjectOutputStream streamToServer = new ObjectOutputStream(toServer 、getOutputStream(); streamToServer、writeObject(Customer) data); BufferedReader fromServer = new BufferedReader( new InputStreamReader(toServer、getInputStream(); String status = fromServer、readLine(); if (status、equals(登录成功) new ChatRoom


    注意事项

    本文(软件工程 实验报告.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开