Java聊天室系统程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java聊天室系统程序设计
实验报告
题目:******
院(系):******
年级专业:******
学生姓名:******
指导老师:******
开始时间:******
完成时间:******
第一部分:课程设计总述
课程设计目的:
1.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java
程序开发的全过程。
2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、
Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java
数据库编程等。
3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
课程设计总体要求:
1.问题的描述与程序将要实现的具体功能。
2.程序功能实现的具体设计思路或框架,并检查流程设计。
3.代码实现。
4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。
5.设计小结(包括)
课程设计题目:
目标
本软件是一个实用聊天程序。项目要实现以下目标:
1)允许用户注册;
2)允许注册用户登录聊天室;
3)登录用户之间进行聊天文件传输;
4)用户可以更改背景音乐;
用户信息的保存
本软件只是一个聊天室程序,所以用户只要打开程序就可以登录。本软件使用文本文件或者数据库来保存用户数据。
需求分析
对功能的规定
1.系统的用例图(对注册用户)
2.用户注册过程
3.用户登录过程
对性能的规定
由于本软件只是一个聊天室程序,程序只是提供用户之间的聊天和文件传输,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。
需要管理的数据
用户的信息如下:用户名,密码,头像,电子邮件,地址。
4 开发环境
本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。
总体设计思路
系统主要包含两个java文件,Server.java和UserLogin.java
图形界面主要通过\\org\netbeans\lib\awtextra目录下的两个类:AbsoluteConstraints.class和AbsoluteLayout.class来控制。
启动系统通过依次点击批处理文件:1.bat,2.bat
Server.java中包含:
其中Server类又包括如下类和方法:
UserLogin.java包括:
其中UserLogin类又包括如下类和方法:
而UserLoginWindow类又包含如下事件和方法:
系统为C/S模式。首先根据功能模块将系统分为两部分:服务端(Server)和客户端(UserLogin)。然后构造可以序列化的User类,这是本系统的对象。根据需求功能细分类和方法。建立文件和网络的传输通信。实现聊天室的基本功能
具体设计
代码:
//server.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import .*;
import java.io.*;
import java.util.*;
//用户信息
class User implements Serializable
{
String UserName;
String UserPassword;
String UserHeadPhoto;
String UserEmail;
String UserAge;
String SinkName;
String FileName;
byte FileData[];
String Message;
String Command;
Vector vectorUserList;
}
public class Server extends JFrame
{
static Vector vectorStreamToUser=new Vector(1,1);
static Vector vectorUserList=new Vector(1,1);
private ServerSocket serverSocket;
private JMenuItem aboutMenuItem;
private JMenu commandMenu;
private JMenu fileMenu;
private JMenu helpMenu;
private JMenuItem helpMenuItem;
private JLabel jLabel1;
private JLabel jLabel2;
private JLabel jLabel3;
private JLabel jLabel4;
private JLabel jLabel5;
private JList jList1;
private JPanel jPanel1;
private JScrollPane jScrollPane1;
private JMenuItem warnMenuItem;
private JMenuItem kickMenuItem;
private JMenuBar menuBar;
private JMenuItem msgMenuItem;
private JMenuItem startMenuItem;
private JMenuItem stopMenuItem;
//右键事件菜单
private static JPopupMenu menu;
private String BlackList;