局域网聊天系统的设计与实现-项目开发总结报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
局域网聊天系统的设计与实现
项目开发总结报告
1。1需求分析
本项目的名称为“局域网聊天系统的实现与设计”,为本学期的项目实践课题。本项目将运行在Windows XP下操作系统中,在Visual C++ 环境下,由服务器对客户端提供各种数据的记录、存储、认证等功能,并在客户端实现基本的即时聊天功能。软件的总体要求:实现用户在局域网内可以点对点的聊天,可以群聊,发送表情图片等等功能.编写这份开发总结报告一方面可以让开发者总结开发以来的问题,另一方面可以给领导了解开发过程。Visual C++是一个功能强大的可视化应用程序开发工具,用于Windows环境下32位的应用程序的开发,是计算机界公认的最优秀的应用开发工具之一。在提供可视化的编程方式的同时,Visual C++也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具。在Visual C++环境下,利用Microsoft的基本类库MFC (Microsoft Foundation Class Library),可以使用完全的面向对象的方法来进行Windows 95/98/NT应用程序的开发,使得Windows程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的灵活性。
Visual C++编程是一个面向对象的程序设计方法.同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序.
面向对象的程序设计吸取了结构化程序设计的精华,它利用了人们根据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点。与结构化程序设计不同的是,面向对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程。函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面向对象的程序设计方法非常近现实,所以越来越流行.
Visual C++中集成了大量的最新技术,如ActiveX、COM等技术,程序开发人员可以紧紧地把握住软件开发技术发展的方向,开发出功能强大的应用程序。
1。2背景
a。待开发的软件系统的名称:局域网聊天系统。
b. 本项目的任务提出者、开发者:姚贺翔.
c。该软件的使用范围:公司内部的局域网之中.
1。3定义
局域网聊天系统:局域网终端使用者的网络沟通服务,使用者可以通过安装了局域网聊天系统客户端的终端机进行两人或多人的聊天,内容包括文字,图片等。
SOCKET:套接字;
TCP:传输控制协议;
UDP:数据包协议;
2。1项目设计文档
最终制成的产品,包括:
a.可运行的局域网聊天系统应用程序。
b.关于局域网聊天系统方面的有关文档,例如:需求分析报告、软件
设计说明书、软件使用说明书、测试分析报告等等一系列文档。
c.程序目前只有一个版本。已经通过用户在使用过程中去发现存在的
BUG。
d.建立的数据库名称为MyQQ。mdb和Java自带的derby数据库。
e.主程序是聊天系统,其中还自带了备忘录和小游戏两个模块。代码
量大概在10000左右。
2.2主要功能和性能
2。3基本流程
3编码与环境
package Chat2;
import java。awt。*;
import java.awt。event。ActionEvent;
import java.awt.event.ActionListener;
import java.awt。event.KeyAdapter;
import java。awt。event。KeyEvent;
import java.awt.event。WindowAdapter;
import java。awt。event.WindowEvent;
import java.io.*;
import .*;
import java.text。SimpleDateFormat;
import java。util.*;
import javax.swing。*;
public class Chat extends JFrame {
private static final long serialVersionUID = 1;
private JScrollPane list_text_gdt = null;
Toolkit kit = Toolkit。getDefaultToolkit();
Dimension screenSize = kit。getScreenSize();
private int screenWidth = screenSize。width;// 得到当前用户屏幕的尺寸private int screenHight = screenSize。height;
Image iconImg = kit.getImage("。/222.gif”);// 得到一个图标文件
public static Calendar ocal = null;// 系统时间
public static Date current_time = null;
public static SimpleDateFormat sdff = new SimpleDateFormat(
”yyyy—MM—dd HH:mm:ss");
public Image[][] img = new Image[5][6];
public static int imgnum = 0;
private JFileChooser chooser;
static JTextArea list_text = null;
static JTextArea send_text = null;
boolean flagEnter = false;
private boolean Bconnect = false;
public String ipAdd = null;
// 读写数据
DataInputStream dataReader = null;
DataOutputStream dataWriter = null;
Socket clientConnectServer = null;
Thread redthred = new Thread(new ReadThread());
JButton send_info_button = null;
JButton send_close_button = null;
JButton file_send_button = null;