即时通讯管理系统(Java+Socket+MySQL)

目 录

  1. 绪 论 1
    1.1. 开发背景 1
    1.2. 开发意义 1
  2. 系统设计相关技术 2
    2.1 Java语言 2
    2.2 MySQL数据库 2
    2.3 Socket 2
  3. 系统需求分析 3
    3.1 可行性分析 3
    3.2 需求分析 4
    3.3 系统流程图 5
    3.4 非功能性需求 6
  4. 系统设计 7
    4.1 系统功能结构 7
    4.2 数据库设计 8
  5. 系统实现 10
    5.1 系统运行环境和开发平台 10
    5.2 系统实现 11
  6. 系统测试 17
    6.1 测试内容 18
    6.2 测试预期结果 18
    6.3 测试用例 18
    6.4 测试结果 19
  7. 结语 20
    参考文献 21
    3 系统需求分析
    3.1 可行性分析
    对于程序的设计过程中可行性分析是重中之重,优秀的分析可以极大的节约成本,为开发的顺利铺垫坚实的道路。因此要对系统分别进行技术可行性、经济可行性、管理可行性三方面的全面分析。
    1.技术可行性
    互联网技术的迅速发展,使得互联网成为了各类企业必须涉及的部分,同时互联网技术的发展更为成熟,使得各种基于互联网开发的信息系统变成了企业公司、部门单位提高工作效率的优秀方法[8]。另外,即时通讯系统的开发已经很多的实例,技术的要求度并不高,各类进行开发的软件获取并不困难,所以成功开发是可行的。
    (1)系统软件
    操作系统: 能够支持Eclipse运行的各类系统均可
    开发软件:myeclipse 或者 eclipse
    Web Server:JBoss、Weblogic或者tomcat
    JDK版本:jdk 6.0 以上版本
    (2)开发语言
    Java是一门简单易用而且功能强大的技术,由于该语言可以跨平台的特性使得其在开发语言中处于优势地位,它不但包含了C++语言中Object Oriented的特性,而且优化了C中非常困难复杂的指针、多继承等特点,同时又增加了垃圾回收的机制(GC)简化了程序员的开发,及时释放存储空间让开发者不在为此耗费精力。
    2.经济可行性
    从经济方面观察,在该即时通讯软件的开发过程中,消耗的资源并不难以提供与维持。而且软件价值方面来观察,在软件设计成功后是可以为用户提供便利的,并且对于开发初学者来说是有一定参考价值的,所以通过以上两方面来看这一点是可行的。
    3.法律可行性
    即时通讯系统是毕业设计,不会用于商业用途,所以并不会与法律的相关规定产生冲突,所以该方面是可行的。
    4.概述
    基于以上分析,本软件各部分都是符合原则的,而且我们认为,即时通讯软件是受到人们足够重视的。而且在即时通讯系统设计的过程中是可以逐渐了解用户的真实需求的,在理解并实现的过程中对自我的提升是极大的,所以该系统的开发是有价值的。
    3.2 需求分析
    对软件的将来要实现的功能假象就是需求分析的过程,必须要确认用户的需求和目的,准确定位目标功能点,接着对目标进行分析提出解决方案,全面地考虑用户需要哪些功能,这些功能中,哪些是需要做的很完善的,哪些只需要有该功能就可以了;哪些是需要着重用户体验,哪些只要操作性强,所以在开发博网即时通讯系统之前,进行需求分析是特别重要的。并且在开发的过程往往还会有需求的变更,开发会变得反复,有一定难度。其中的难点包括:供给与需求交流上的困难,需求不断的动态变化、后续系统维护修复。这些都是决定一个软件生命周期的重要因素,并且需求分析的结果往往能够把控整个开发过程的大体方向,所以在系统的开发中做需求分析是很必要的。
    Server方面:
    运行监控,打开Server,执行对其它用户的监控。
    关闭监控,关闭Server,不在对其它用户进行监控。
    阅览用户信息,阅览已登录用户信息。
    管理用户,强制使被选择的用户退出登录状态。
    Client方面:
    申请账号功能,使用者有权限在启动客户端后进行注册以及登录。
    添加好友功能,用户将陌生人加为好友。
    删除好友功能,用户有权限可以删除好友。
    修改个人资料功能,用户有权限可以修改以往设置的所有基本信息。
    修改头像功能,用户有权限能够修改自己现在的头像。
    即时聊天功能,用户之间有权限与拥有账号的用户进行即时的聊天。
    查看聊天记录功能,用户有权限查看与好友过往的聊天记录。

程序工作原理图如图2所示:
在这里插入图片描述

图2 程序工作原理
4 系统设计
4.1 系统功能结构
该即时通讯系统是有两部分组成,服务器端可以通过启动来监听客户端信息的传递与执行各种对客户端的监控,客户端则是通过人性化与美观的界面来使用户可以易上手和舒适的体验快速与简便的通讯[9]。
应用从这两部分分别进行了详细的功能设计,服务器端功能主要为启动对于客户端的监听与关闭监听,还有对于已注册用户的实时监控与管理,客户端功能主要为使用者该软件账号的申请与进入操作界面,还有自己资料的修改以及对于其他账号好友的添加与管理等等。
软件功能层次图如图5所示
在这里插入图片描述

图5 软件功能层次图
4.2 数据库设计
数据库是该即时通讯系统的中枢结构,进行信息处理的各个部分都是在数据库的基础上的,从而能够达成对于各类数据安全完整的存储,并进行合理的运用[10]。有必要时可以设置数据字典,数据字典对于开发非常的有效,它的存在避免了程序员之前互相作繁杂的沟通,大家按照统一的标准来进行,即保证了效率也提高了整体的可维护性,下面是必须要注意的一些关键点:
(1)性能:数据库必须具有足够能力进行数据管控;
(2)兼容性:数据库是否支持开发所需的其他环境;
(3)封闭性:数据库对于数据的存储与处理是否足够保密;
(4)可靠性:数据库能不能承担对于数据的管理与传递;
(5)并行性:数据库是否可以并行运行在多节点上;
(6)可操作性:数据库是否在使用前需要大量时间学习。
根据该即时通讯系统开发时的各类现状需求,我们最终选择了MySQL作为信息处理的载体。
4.2.1 概念结构设计
我们将系统中用到的各类数据抽象成各种数据体系,这些数据类型所组建成的体系正是概念结构的构建过程,进而组建全局的概念结构。

package cn.itbaizhan.client;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class SaveChat extends JDialog{
	 BufferedReader bufr;
	 JPanel jp=new JPanel();
	 JLabel jl=new JLabel("聊天记录");
	 JButton jb=new JButton("关闭");
	 JTextArea jsave=new JTextArea();
	 JScrollPane js=new JScrollPane(jsave);
	 String line_separator=System.getProperty("line.separator");
public SaveChat(JFrame owner, String title, Boolean b, BufferedReader bufr) 
{
	super(owner,title,b);
	this.bufr=bufr;
	this.setLocationRelativeTo(null);
	this.setLayout(null);
	init();
	this.add(js);
	this.add(jp);
	this.setSize(380, 500);
}
public void init()
{
	jp.setLayout(null);
	jp.setBackground(Color.PINK);
	jp.setBounds(0, 0, 380, 30);
	jl.setFont(new Font("楷体",Font.BOLD,17));
	jl.setForeground(Color.WHITE);
	jl.setBounds(5, 3, 100, 25);
	jp.add(jl);
	jb.setBackground(Color.WHITE);
	jb.setForeground(Color.BLACK);
	jb.setFont(new Font("楷体",Font.PLAIN,14));
	jb.setBounds(290, 3, 70, 23);
	jb.addActionListener(new ActionListener(){

		@Override
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			SaveChat.this.setVisible(false);
		}
		
	});
	jp.add(jb);
	jsave.setEditable(false);//不可编辑
	jsave.setLineWrap(true);//自动换行
	jsave.setFont(new Font("黑体",Font.PLAIN,15));
	jsave.setBackground(Color.WHITE);
	jsave.setForeground(Color.BLACK);
	js.setBounds(0, 30, 380, 470);
	try {
		String s=bufr.readLine();
		while(s!=null)
		{
			jsave.append(s+line_separator);
			 s=bufr.readLine();
		}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值