《Java程序设计》课程设计报告简易聊天室系统.doc
《《Java程序设计》课程设计报告简易聊天室系统.doc》由会员分享,可在线阅读,更多相关《《Java程序设计》课程设计报告简易聊天室系统.doc(51页珍藏版)》请在三一办公上搜索。
1、华 北 科 技 学 院课程设计说明书班级: 信息与计算科学B091 学号: 姓名: 设计题目: 简易聊天室系统 设计时间: 2011.12.26 至 2011.12.30 指导教师: 评 语:_ _评阅成绩: 评阅教师: 目录1 引 言11.1课程设计选题11.2课程设计的目的11.3本选题的设计背景12.1 功能需求12.2 系统的开发运行环境22 总体设计23.1 系统体系结构设计23 详细设计与实现34.1 登录模块34.2 客户端注册界面模块54.3 客户端聊天模块84.4 服务器端模块104 小结和展望13参 考 文 献14附 录15使用说明书15源程序清单181 引 言1.1课程设
2、计选题简易聊天室系统1.2课程设计的目的使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。1.3本选题的设计背景聊天是是网络中广泛应用的服务之一,特别是现在信息社会对聊天的依赖也越累越大,我们品是在生活中很多人都在用的QQ就是一种很好的聊天工具,它不仅只是聊天那么简单,其它的功能也非常强大。基于Java语言在网络编程中的广泛应用与我们基本每时每刻都在接触的聊天系统。我选择尝试对一简单的聊天系统进行开发。对本聊天系统开发的意义:网络聊天系统交流是系统的
3、关键目的所在,能让我们在简单的语句中对复杂社会的了解;交流的过程中使得人与人之间距离彻底拉近,就像面对面的交谈彼此之间没有界限,没有差别,只有心与心的共振。它没有压抑,只有争论,就是心灵之间的一种平台。也是另一种交友的一种重要方式。缺少它你会感觉没什么,但是你一旦有了它你会发现它是那么的重要。需求分析在信息社中,信息是第一手资料,人们聊天也是信息的传播。曾经的会议及面谈已不再发挥主宰作用了,随着各种聊天工具的上市,大家都对聊天产生浓厚的兴趣,聊天系统的存在也有了很大价值。2.1 功能需求用户角度考察系统应具有哪些功能及非功能性需求。能实现用户注册、用户的登录、各客户端能连接起来,服务器能与客户
4、端相连实现用户之间信息的发送与共享。2.2 系统的开发运行环境本系统开发平台: Java 本系统集成开发环境:MyEclipse本系统运行环境: windows 7 2 总体设计3.1 系统体系结构设计聊天系统客户端服务器用户登录用户注册建立连接监听客户用户数据操作聊天交互3 详细设计与实现4.1 登录模块1.功能设计(1)主要实现用户的登录与注册。2.界面设计图1 登录窗口3模块主要算法(1)事件的处理方法public void actionPerformed(ActionEvent e) Object source = e.getSource();/确定按钮 if(source = btn
5、Ok) btnOkClick();/取消按钮if(source = btnCancle) btnCancleClick();/“注册”按钮if(source = btnRegist) btnRegistClick();(2)单击btnOk按钮处理方法private void btnOkClick() String username = txtName.getText();String userpwd = new String(txtPwd.getPassword();if(username.equals() JOptionPane.showMessageDialog(btnOk,“用户名”不能
6、为空,提示,JOptionPane.WARNING_MESSAGE);return;if(userpwd.equals() JOptionPane.showMessageDialog(btnOk,“密码”不能为空,提示,JOptionPane.WARNING_MESSAGE);return;if (userpwd.equals(haiersoft) /默认密码“haiersoft”/验证通过,隐藏登录窗口,显示聊天主窗口this.setVisible(false);/FrmMain frmMain = new FrmMain();JFrame frmMain = RongQi.getFrm(F
7、rmMain);if (frmMain = null) frmMain = new FrmMain ();RongQi.putFrm(FrmMain, frmMain);/FrmMain frmMain = new FrmMain();frmMain.setVisible(true); else JOptionPane.showMessageDialog(btnOk,错误的用户名或密码,提示,JOptionPane.WARNING_MESSAGE);4调试与测试 调试过程当中,遇到密码文本框设计没有和实际设计符合,最后通过同学的一起解决了这个问题;在处理“取消”的事件时出现一点小错误,经过反复
8、调试及对程序的时间分析发现将“取消”这个事件的处理错写为“确定”按钮。4.2 客户端注册界面模块1.功能设计(1)有用户的用户名、昵称、密码、性别和头像的选择,用这些信息来实现用户的注册。2.界面设计图2 注册窗口3模块主要算法 (1)创建一个头像栅格布局指定的行数和列中。所有的部件都享有同等的布局的尺寸。JPanel pimg = new JPanel(new GridLayout(2,5);ButtonGroup bgimg = new ButtonGroup();for (int i = 0; i ckbImage.length; i+) ckbImagei = new JRadioBu
9、tton(String.valueOf(i + 1),new ImageIcon(images/+(i + 1) + .gif);ckbImagei.addItemListener(new ImageLIstener();bgimg.add(ckbImagei);pimg.add(ckbImagei);/头像读取(2)单击btnOk按钮处理的方法private void btnOkClick() String username = txtName.getText();String nickname = txtNickname.getText();String userpwd = new Str
10、ing(txtPwd.getPassword();String repwd = new String(txtRePwd.getPassword();int sex = 0;if (rbFemale.isSelected() sex = 1;if (username.equals() JOptionPane.showMessageDialog(btnOk,“用户名”不能为空,提示,JOptionPane.WARNING_MESSAGE);return;if(nickname.equals() JOptionPane.showMessageDialog(btnOk,“昵称”不能为空,提示,JOpt
11、ionPane.WARNING_MESSAGE);return;if(userpwd.equals() JOptionPane.showMessageDialog(btnOk,“密码”不能为空,提示,JOptionPane.WARNING_MESSAGE);return;if (userpwd.length() 10) JOptionPane.showMessageDialog(btnOk,“密码”长度范围在610之间,提示,JOptionPane.WARNING_MESSAGE);return;if (repwd.equals() JOptionPane.showMessageDialog(
12、btnOk,“确认密码”不能为空,提示,JOptionPane.WARNING_MESSAGE);return;if (!repwd.equals(userpwd) JOptionPane.showMessageDialog(btnOk,“确认密码”和“密码”必须相同,提示,JOptionPane.WARNING_MESSAGE);return;if (userpwd.equals(haiersoft) JOptionPane.showMessageDialog(btnOk,注册成功,提示,JOptionPane.WARNING_MESSAGE);/调用btnCancleClick()方法,清
13、空信息btnCancleClick();else JOptionPane.showMessageDialog(btnOk,注册失败,提示,JOptionPane.WARNING_MESSAGE);return;4调试与测试 在调试用户注册界面曾出现当选者用户头像时该头像就被隐藏了,但我对程序中多次的调试,这个问题都没有得到好的解决,最后我尝试将头像的大小改变这个问题就得得到圆满的解决。4.3 客户端聊天模块1.功能设计(1)界面分为3部分:中间部分显示所有聊天信息,右边显示所有在在线客户,底部用于信息的输入与发送。2.界面设计图3 聊天窗口3模块算法(或重要代码段)只要求给出1-2主要模块的算
14、法(1) 从服务器获取聊天信息的线程,接受服务器发送信息的方法。class GetMsgFromServer extends Thread /private String strMsg = null;public GetMsgFromServer() super();public void run() tryreadMsg = new BufferedReader(new InputStreamReader(socketMsg.getInputStream();dostrMsg = readMsg.readLine();/在文本域显示聊天信息txtContent.append(strMsg +
15、 n); while (strMsg != null); catch(Exception e) e.printStackTrace();(2)事件发送的处理方法public void actionPerformed (ActionEvent e) Object source = e.getSource();if (source = btnSend) String str = txtSend.getText();if (!str.equals() /网络通信错误printMsg.println(nickname + : + str);printMsg.flush();txtSend.setTex
16、t();4调试与测试 测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。聊天室的设计是较为重要的部分,在先前简单的界面设计时较为简单,当通过在该类中添加实现对发送按钮监听时由于没有定义该类的方法连接使得发送按钮不能实现。对这个小问题的检查较为简单。4.4 服务器端模块1.功能设计(1)界面分为3部分:中间显示所有聊天信息,右边显示所有在线用户,底部用于发送系统信息。2.界面设计图4 服务器窗口3模块算法(1)接收客户发送聊天信息的线程class GetMessageThread extends Thread private String stringFromClient = nu
17、ll;private BufferedReader bufferedReaderFromClient;public GetMessageThread(BufferedReader buffer) throws Exception bufferedReaderFromClient = buffer;public void run() try do stringFromClient = bufferedReaderFromClient.readLine();msgList.addFirst(stringFromClient); while (!stringFromClient.toLowerCas
18、e().endsWith(bye);int index = bufferedReader.indexOf(bufferedReaderFromClient);bufferedReader.remove(index);printWriter.remove(index); catch (Exception e) e.printStackTrace();(2)向所有客户端发送消息的线程class SendMessageThread extends Thread public SendMessageThread() throws Exception super ();public void run()
19、 while (isRun) try String s = null;if (!msgList.isEmpty() s = (String) msgList.removeLast();txtContent.append(s + n);for (int i = 0; i printWriter.size(); i+) if (printWriter.get(i) != null) printWriter.get(i).println(s);printWriter.get(i).flush(); else sleep(100);/休眠 catch (Exception e) e.printStac
20、kTrace(); 4调试与测试 服务器的是聊天系统中很重要的部分,这个界面设计较为简单,挡在当中添加一些树组件及对客服端信息的发送时,问题接二连三的出现,很多都出现异常,主要是由于在定义语句不小心出现专业术语错误。特别是将字符流放字节流刘缓冲区当中是后由于吧new给忘记了,在结果的运行中,服务器总是接收不到客户端信息,这个问题占据了我大半天得时间才叫我给检查出来了。通过这句简单的话我深感细节决定成败。4 小结和展望对于本系统的实现,首先是构建一个聊天系统主要的框架,通过查找关于聊天系统的相关知识,建立一个聊天系统主要由服务器和客户端,用户的登录界面和注册界面,这是一个很简易的聊天系统。然后通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java 程序设计 课程设计 报告 简易 聊天室 系统

链接地址:https://www.31ppt.com/p-2387308.html