基本功能设计
(1) 申请QQ号码
第一次登陆的用户,可以先打开申请QQ好功能,提交自己的资料到服务器。申请成功后服务器将QQ号发送给用户。
(2) 用户登录
用户登录时,服务器把该用户在线好友和不在线好友的名单发送给用户,客户端将以不同的形式来显示。
(3) 好友上 下线提示
用户
登陆后,用户可以得到用户上线的提示,会在右下角进行提示,在下线的时候也能得到信息,并把其状态改为下线。
(4) 获得好友资料
用户登录以后,想在客户端得到好友的资料并显示在聊天主界面上,可以把好友的的QQ号码发送到服务器进行数据库连接从而得到该用户的信息,并发送到客户端进行显示。
(5) 发送聊天信息
用户可以给人以一个好友发送信息,不管在线与否,在线的话,会直接发送,不在线的话,会发送到服务器端,当用户登录时,服务器发给该用户。
(6)接受服务器发来的好友信息
用户可以接受好友的聊天信息,包括即时信息和留言。
(7)查看聊天记录
用户登录之后,可以和好友进行聊天可以看到以前的聊天记录。把聊天记录放在客户端。
(8) 接受服务器消息
用户可以接受服务器端发来的信息,例如:发送文件的信息,用户可以选择是否接受要是不接受的话,就断开,接受的话,就接受。
(9)用户下线
用户下线时,会向服务器发送下线通知,服务器将其状态设为不在线,并通知好友。
3.1. 5 客户端系统结构图
客户端功能主框架:
3.1.6 客户器端用例模型设计
客户端用例关系图:
3.2 数据库的设计
数据库设计与实现是该系统开发过程中的一个重要环节,为了设计一个合理有效的数据库,对数据库进行需求分析,概念模型设计,物理模型设计。
3.2.1 数据库概念结构设计
数据库用模型进行设计。
3.2.2 表的设计
用户信息表(QQ号,用户名,密码,性别,年龄,婚否,邮箱)
好友表(好友QQ号)
聊天信息表(聊天信息)、其中聊天信息是一个打包以后的字符串,里面包含内容有:消息发送时间,发送者,接受者,发送内容。
3.2.3 表在数据库中显示
序号 字段名 含义 数据类型 1 qq 用户的号码 Int 2 nickname 用户的昵称 Varchar() 3 password 用户的密码 Varchar() 4 sex 用户的性别 Char() 5 marriage 用户的婚否 Char() 6 pic 用户的头像 Varchar() 7 email 用户的email Varchar()
序号 字段意义 名称 数据类型 长度 是否主键 是否允许空 1 好友QQ friend varchar 10 是 否
序号 字段意义 名称 数据类型 长度 是否主键 是否允许空 1 好友留言 message text 300 是 否 3.3 XML文档设计
连接数据库文档:
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@192.168.1.27:1521:java
scott
tiger
分别表示 用户名,密码。
第4章 .系统的具体实现
4.1 服务器端的实现
4.1.1 服务管理器
本系统用一个继承与JFrame的类来实现的系统的服务管理器来实现对服务器的管理,进行对服务器的各种功能进行操作。
4.1.2客户服务程序
要做一个受大众欢迎的软件,仅仅实现基本功能是不够的,很关键的一点就是人机的交互功能,界面不仅美观,还要使用,本系统的功能和界面都是按照人们的操作习惯来实现的。
4.2 客户端的实现
4.2.1 申请QQ
当用户第一次登陆的时候必须先申请一个QQ号,申请号码的功能在一个继承与JFrame的类中进行实现,代码如下:
package com.qq.view;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.