java课程设计报告(聊天软件)

上传人:第*** 文档编号:56883626 上传时间:2018-10-16 格式:DOC 页数:41 大小:3.99MB
返回 下载 相关 举报
java课程设计报告(聊天软件)_第1页
第1页 / 共41页
java课程设计报告(聊天软件)_第2页
第2页 / 共41页
java课程设计报告(聊天软件)_第3页
第3页 / 共41页
java课程设计报告(聊天软件)_第4页
第4页 / 共41页
java课程设计报告(聊天软件)_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《java课程设计报告(聊天软件)》由会员分享,可在线阅读,更多相关《java课程设计报告(聊天软件)(41页珍藏版)》请在金锄头文库上搜索。

1、Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 1Java2 实用教程课程设计报告实用教程课程设计报告课题名称:用课题名称:用 JAVAJAVA 设计的聊天软件设计的聊天软件系别:系别: 计算机科学系计算机科学系 班级:班级: 0808 软件工程软件工程 2 2 班班 学号:学号: 081403223081403223 姓名:姓名: 目录目录一、课程设计的目标二、开发及运行环境三、设计方法1. 程序功能1) 服务器功能2) 客户端功能2. 程序实现3. 类的实现4. 程序结果1)服务器端的运行结果2)客户端的运行结果四、设计心得五、参考文献Java2 实用教程课程

2、设计报告 08 软件工程 2 班 081403223 2一、一、课程设计的目标课程设计的目标此次课程设计的目标是用 JAVA 语言实现一个功能比较完善的聊天软件,功能包含(用户注册、登录、修改昵称、更新心情、查找并添加好友、基本的文字聊天、传送文件、发送图片、窗口抖动、保存聊天记录等等 ) ,在设计该软件的过程中,综合运用了本学期所学的所有 JAVA 语言的基本知识,特别是线程、数据库、Swing、异常处理等知识。通过这次课程设计,使我们对 JAVA 语言以及面向对象编程有了更深的体会,我们的程序设计能力也有了很大地提高。二、二、开发及运行环境开发及运行环境硬件:PC 机操作系统:Window

3、s XP 数据库:MySQL开发工具:EclipseJDK 要求 jdk 7.0 Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 3三、三、设计方法设计方法1. 程序功能程序功能(1) 服务器功能服务器功能(2) 客户端功能客户端功能层次功能图:层次功能图:Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 4程序流程:程序流程:(1)登录模块流程图开始输入用户账号和密码数据库核对信 息,合法?建立socket连接,登录信息保 存在服务器中结束返回错误信息NY查询数据库,把好友信息,在线好友信息和用户 信息返回给客户端,保存在客户端本地程

4、序中更新服务器端在线用户列表(2) 注册模块流程图开始结束选择头像,输 入账号,密码提交数据数据提交到数据库返回系统赠送的账号Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 5(3)发送文件模块流程图开始结束选择文件,向好好友 发送文件申请创建发送文件的socket, 等待好友的连接好友同意接 收?返回拒绝接收信息为用户创建发送进度条,接 收者创建接收进度条返回同意接收并开 始接收的信息接收方接收路 径存在?创建文件路径NYYN2. 程序实现程序实现客户端:设计的类功能FriendData保存每个好友的数据类FriendList保存好友列表类FriendMap保存

5、好友图类PersonalData保存自己的数据类UserManager管理数据库处理相关函数的类ChatMainMap管理主界面的图类ChatWinMap管理聊天窗口的图类ClientConnServerThread客户端连接到服务器的线程类 ClientThreadMap管理客户端的线程类FileClient接收文件的客户端类FileServer发送文件的服务器类LoginCheck客户端登录检验类 ConnMySQL建立连接数据库类Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 6ChatLogin登录界面类ChatMain_center主界面中间部分面板类C

6、hatMain主界面类ChatWindow_right聊天窗口右侧面板类ChatWindow聊天窗口类ConfirmRequestMessage确认消息框MessageBox自定义普通消息框Online_message上线消息框ReceiverFileTransMessage接收文件确认消息框ReceiverMessage消息管理器类ReceiverRequestMessage好友请求显示框Register注册面板TransportFile发送文件的文件选择器 FileTranMes发送文件携带信息类Message发送信息类MessageType信息类型User用户ColorTools自定义颜

7、色工具FontTools自定义字体工具 ImagePanel图片面板 ChatServer服务器处理类 ServerConnClientThread服务器接收线程类 ThreadMap管理客户端连接到服务器的线程类 ServerWindow服务器窗口类服务器端:设计的类功能 ChatServer服务器处理类 ServerConnClientThread服务器接收线程类 ThreadMap管理客户端连接到服务器的线程类 ServerWindow服务器窗口类Message发送信息类MessageType信息类型User用户3. 类的实现类的实现各主要类的方法、函数的核心代码:(各主要类的方法、函数

8、的核心代码:(附:源代码)(1) 数据库处理源代码:数据库处理源代码:Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 7/* 在数据库中查询用户的资料,保存在本地的 PersonalData 中* return*/ public void checkPersonalData(String id) PersonalData pd = PersonalData.getInstance(); Connection conn = null; ResultSet rs = null; PreparedStatement pstmt = null; String sql =

9、“select * from user where userid=?“; try conn = ConnMySQL.getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, id); rs = pstmt.executeQuery(); if (rs.next() pd.setUserId(rs.getString(“userId“); pd.setUserName(rs.getString(“username“); pd.setPicNo(rs.getString(“picNo“); catch(SQLEx

10、ception e) e.printStackTrace(); finally ConnMySQL.close(rs); ConnMySQL.close(pstmt); ConnMySQL.close(conn); (2) 其他数据处理关键语句:其他数据处理关键语句:/* 在数据库中查询用户的资料,保存在本地的PersonalData中* return*/ String sql = “select * from user where userid=?“;/* 在数据库中查询最新的心情* return*/ String sql = “select moodcontent from moodlis

11、t where moodid = Java2 实用教程课程设计报告 08 软件工程 2 班 081403223 8(select max(moodid)from moodlist where pid=?)“;/* 查找用户的所有好友,保存在本地程序中* param id* return*/ String sql = “select * from user where userId in (select friendid from relationlist where pid=?)“;/* 修改用户的昵称* return*/ String sql = “update user set usern

12、ame=? where userId=?“;/* 修改用户的密码* return*/ String sql = “update user set password=? where userId=?“;/* 获取自动编号ID* param gen_name* return*/ String sql = “select gen_number from generator where gen_name =?“;/* 更新Id维护列表,此方法给此类别的函数调用* param gen_name* param current_id* param conn*/ String sql = “update ge

13、nerator set gen_number =? where gen_name = ?“;/* 添加心情* param userId* param mood* returnJava2 实用教程课程设计报告 08 软件工程 2 班 081403223 9*/ String sql = “insert into moodlist values(?,?,?,?);“;String sql = “select * from moodlist order by moodId desc limit 20“;/* 加好友* param args*/ String sql = “insert into re

14、lationlist values(?,?,?);“;String sql = “insert into user values(?,?,?,?);“;(3) 客户端接收线程的客户端接收线程的 run()函数:函数: public void run() while(run1) try ObjectInputStream ois = new ObjectInputStream(sk.getInputStream(); Message mes = (Message)ois.readObject(); String messageType = mes.getMessageType(); String

15、 sender = mes.getSender(); String receiver = mes.getReceiver(); if(messageType.equals(MessageType.CONTENT) | messageType.equals(MessageType.EXPRESSION) /System.out.println(receiver); ChatWindow cw = ChatWinMap.getChatWindow(sender); /System.out.println(“来自用户“+cw); if(null = cw) if(null != FriendMap.getFriendData(mes.getSender() ReceiverMessage rm = new ReceiverMessage(mes); Thread th = new Thread(rm); th.start(); else cw.showMessage(mes); else if(messageType.equals(MessageType.ON_LINE) System.out.pri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号