团队项目--设计类图
团队项目-设计类图
负责人:董光耀
杨文雅
一、整体方案的制定
聊天工具的系统运行图
二、数据表设计
本聊天工具建立的数据库中各个表的设计结果如下面表格所示。每个表格表示数据库中的一个表。
(1) 用户的基本信息表(表名personalinfo)
其中qnum字段为自动增加。(其他还可以添加诸如电话号码等字段作为更多选择)
(2)用户的好友表(表名friend)
(3) 用户的陌生人表(表名stranger)
(4) 用户的黑名单表(表名blacklists)
就上述几张表,下面给出表的E-R关系图,如下图所示:
三、类规范设计
类名: Server.java
功能: 主要处理来自客户端的请求
主要方法:
1、public void run() 作用:处理客户端来的请求
2、public static void main(String args[]) 作用:无限监听客户端的请求,并且处理该请求 处理逻辑:新建一个SOCKET,无限的监听来自客户的请求,如果接收到来自用户 的请求,就创建一个线程来处理该请求。
类名: Login.java
功能:主要实现用户的登陆还有提供用户注册界面的跳转
主要方法:
1、private void jbInit() 作用:初始化登陆界面
2、void LButton_actionPerformed(ActionEvent e)
作用:处理用户登陆 处理逻辑:向服务器端发送用户登陆请求,并等待服务器响应,然后验证密码和 QQ用户 name status qnum petname ip password picindex 好友QQ 好友 1 n name status qnum petname ip password picindex 所填写的密码是否正确,如果正确就弹出主页面。
3、void RButton_actionPerformed(ActionEvent e) 作用:处理用户注册 处理逻辑:如果用户点击注册就弹出注册框。
类名:Register.java
功能:主要实现用户的注册
主要方法:
1、void jButton1_actionPerformed(ActionEvent e) 作用:添加新注册用户信息到服务器; 处理逻辑:如果判断用户名、密码域不为空,以及两次输入的密码相同,则向 服务器端发送新建用户请求,并等待服务器响应。
类名:MainWain.java
功能:主要实现用户登陆后进入的界面
主要方法:
1、public void ConnectServer(int myqno) 作用:该函数连接服务器
2、public MainFrame(int qno,String sername,int serport) 作用:该函数主要是实现主界面的构造还有加载用户好友,黑名单和陌生人信息 处理逻辑:用Vevtor对象保存从服务器发来的用户好友,黑名单和陌生人信息, 然后显示在主界面,然后建立线程无限监听来自好友发来的消息。
类名:MessageSend.java
功能:主要实现用户间发送消息
主要方法:
1、void jButton2_actionPerformed(ActionEvent e) 作用:发送消息响应事件 处理逻辑:创建消息包, 发送消息包, 将发送消息添加到聊天记录中。
类名:AddFriend.java
功能:主要实现处理添加朋友信息的功能
主要方法:
1、 public class AddFriend implements Serializable 作用:将AddFriendBox中的加对方为好友的理由和用户和对方号码串行化。
类名:AddFriendBox.java
功能:主要实现添加朋友的界面
主要方法:
1、private void jbInit() 作用:初始化添加好友对话框
2、void jButton1_actionPerformed(ActionEvent e) 作用:向对方发送添加信息
类名:Find.java
功能:主要实现查找用户的界面
主要方法:
1、 private void jbInit() 作用:初始化查找对话框
2、void findbutton_actionPerformed(ActionEvent e) 作用:用号码查找,并添加其为好友 处理逻辑:如果对方在线就发送添加好友信息,对方确认后,系统添加,否则对 发不在线就留言等待,等对方确认后,系统添加。
类名:FindResult.java
功能:主要实现查找用户的结果
主要方法:
1、private void jbInit() 作用:处理查询结果 处理逻辑:连接服务器读取信息,然后用表格形式显示出来。
类名:MessageReceive.java
功能:主要实现用户聊天信息的接受
主要方法:
1、public MessageReceive (Socket s) 作用:接收消息并且将消息显示在聊天记录中
2、private void receive() 作用:接收消息
3、private void showMessage() 作用:将消息显示在聊天记录中
处理逻辑:判断此时与发送消息的蜜友的聊天对话框是否已经打开, 打开,则 将Mesage显示在已经打开的聊天记录中, 没有,则打开并显示。
类的UML图如下图所示:
类的UML图
四、应用功能设计
1、新用户的注册
当服务器收到用户的注册请求,便开始接受客户传第的信息,诸如客户的呢称啦, 性别,籍贯,头像,个人资料等,接受完毕后,便通过JdbcOdbc与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其qnum号码,客户收到服务器返回的信息后,便打开主程序窗口。
2、登陆
在客户端,用户输入其qnum号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JdbcOdbc读取数据库,然后与用户输入的信息比较,如果相同就向客户返回成功消息并将其Status字段设为1表示上线了,否则返回错误,如果客户收到成功信息就打开主窗口,否则提示出错。如果成功,便打开主程序窗口,并同时开始创建UDP以便在用户之间建立联系。然后客户向服务器请求读取好友、陌生人和黑名单,服务器收到该请求,开始读取数据库中的friend表、stranger表和blacklists表,得到好友、陌生人和黑名单的号码后,再在表中读取好友、陌生人和黑名单资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友、陌生人和黑名单,比如头像,呢称。并且建立几个矢量(Vector)用以存储好友的呢称,qnum号码,头像编号,ip地址等信息。
3、查询朋友
客户登录后,按查找按钮后,开始向服务器发出查找请求,服务器读取数据库表personalinfo并向客户返回其结果,客户收到后在查找窗口中显示,如果用户选择了一个好友,就向服务器发送添加好友请求,服务器收到后就向数据库表friend中添加自己的号码以及好友的号码,并从personalinfo表中读取其基本信息返回给客户端,然后客户收到并在主窗口显示该好友。并且通过UDP通知该客户,对方收到该消息后,可以选择添加该用户为好友或者不。
4、聊天消息的接受和发送
用户之间通过UDP连接来实现用户间的通讯.每个用户在该聊天工具进入主界面时便创建一个线程,无限监听其他好友发来的消息,如果某个好友发来消息,便接受该消息并弹出聊天界面和显示其发来的消息.
聊天消息的接受的部分的核心程序流程如下图
聊天消息的发送的部分的核心程序流程如下图
5、服务器端的设计
服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8000,然后无限循环调用accept()方法接受客户程序的连接。
转载于:https://www.cnblogs.com/sitianya/p/4559701.html
团队项目--设计类图相关推荐
- 毕业论文系统的设计类图
毕业论文系统的设计类图: ER图: 转载于:https://www.cnblogs.com/zjm97/p/8735300.html
- 在线购物系统——设计类图
一.实验链接 问题陈述:https://blog.csdn.net/jie_flght/article/details/80081940 用况图:https://blog.csdn.net/jie_f ...
- 火车售票管理系统 设计类图
目录 1 开发文档版本更新记录 2 1. 历史链接 3 2. 设计类图 4 3. 类描述 5 3.1 Person 5 3.2 SystemAdmin 6 3.3 User 6 3.4 Ticket ...
- 单例模式访问mysql设计类图_如何应用策略设计模式分离JDBC数据库连接中的外部环境信息...
软件项目实训及课程设计指导--如何应用策略设计模式分离JDBC数据库连接中的外部环境信息 1.什么是策略(Strategy)设计模式 策略设计模式把"算法"(也就是软件应用系统中的 ...
- 使用powerdesigner设计类图并生成代码
创建模型:OOM:Class Diagram:下面选中语言类型Java: 类图工具条:第二个是类图: 在设计视图画一个类图:然后输入属性:类名: 输入类的属性,成员变量: 输入类的方法: 选中一个方法 ...
- OOAD教学管理系统 设计类图
实体类设计: 一.选课管理类图 (1)类学生: 学生 整体说明: 类名:学生 类的责任:用于参与课程 继承:类用户 被引用情况:选课情况 属性说明: 除了从用户继承的属性,无新属性生成 操作说明: + ...
- 休假管理系统——设计类图
类图文档 Version 2.2 日期 I版本 描述 作者 19/04/2019 V1.0 类图文档 潘嘉茹 22/05/2019 V2.0 修改类图文档 郑承波 24/05/2019 V2.1 增加 ...
- OEA 扩展属性系统 - 主要设计类图
时间有限,简单快速的完成本篇博客--(很多问题在此就不细说清楚了,主要还是记录一下成果.) * 先是整个子系统要完成的需求列表: * 然后是对它的分析,以及整个逻辑方案的结构. 图中的"概要 ...
- 单例模式访问mysql设计类图_利用单例模式设计数据库连接Model类
之前在<[php]利用php的构造函数与析构函数编写Mysql数据库查询类>(点击打开链接)写过的Mysql数据库查询类还不够完美,利用<[Java]单例模式>(点击打开链接) ...
最新文章
- 网页素材大宝库:50套非常精美的图标素材
- OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack
- python--微信小程序获取手机号码报错
- python elasticsearch update_使用python的elasticsearch部分更新
- 前端小白该如何学习?前端开发工程师掌握哪些能力
- python如何保存计算数据_python如何将客户的数据一直保存
- 支付人必读:一文彻底搞清楚银联和现代支付系统运行过程
- shell脚本编程基础(三)
- 周信静-从职高到MIT计算机博士录取
- 各种字符集和编码详解(转)
- 某程序员吐槽阿里给自己侮辱性薪资!阿里定级P6+,目前薪资33k,阿里才给35k,没有股票!...
- 解决vuecli-vue2项目ie浏览器白屏
- MIT6.824 Lab1 MapReduce
- Ip探针_信息探针_社工查询个人信息php网站源码
- AutoSar DaVinci Developer工具的基本介绍
- 自动化工具Pyautogui和Pywinauto详细介绍和使用
- MEncoder的基础用法—6.4. 编码为Sony PSP视频格式
- excel将一个工作表根据条件拆分成多个sheet工作表
- 共享文件夹在本机桌面创建快捷方式
- (毕业设计资料)基于单片机智能输液器监控系统的设计
热门文章
- vue 一直加载_Vue无限加载vue-infinite-loading使用详解
- springmvc登录拦截器访问报错 SyntaxError: expected expression, got ''
- Qt文档阅读笔记-RadioButton的基本使用
- Qt文档阅读笔记-OpenGL Window Example的解析笔记
- Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
- Qt工作笔记-Qt之自定义属性Q_PROPERTY
- 大四课程设计之基于RFID技术的考勤管理系统(二)读取COM口数据
- Django获取request header信息
- gcc编译c文件 python.h 未找到
- 3dmax体积雾渲染不出来_corona渲染,非常实用的小技巧