仿QQ聊天系统实验报告.docx

上传人:b****0 文档编号:9497279 上传时间:2023-05-19 格式:DOCX 页数:15 大小:455.59KB
下载 相关 举报
仿QQ聊天系统实验报告.docx_第1页
第1页 / 共15页
仿QQ聊天系统实验报告.docx_第2页
第2页 / 共15页
仿QQ聊天系统实验报告.docx_第3页
第3页 / 共15页
仿QQ聊天系统实验报告.docx_第4页
第4页 / 共15页
仿QQ聊天系统实验报告.docx_第5页
第5页 / 共15页
仿QQ聊天系统实验报告.docx_第6页
第6页 / 共15页
仿QQ聊天系统实验报告.docx_第7页
第7页 / 共15页
仿QQ聊天系统实验报告.docx_第8页
第8页 / 共15页
仿QQ聊天系统实验报告.docx_第9页
第9页 / 共15页
仿QQ聊天系统实验报告.docx_第10页
第10页 / 共15页
仿QQ聊天系统实验报告.docx_第11页
第11页 / 共15页
仿QQ聊天系统实验报告.docx_第12页
第12页 / 共15页
仿QQ聊天系统实验报告.docx_第13页
第13页 / 共15页
仿QQ聊天系统实验报告.docx_第14页
第14页 / 共15页
仿QQ聊天系统实验报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

仿QQ聊天系统实验报告.docx

《仿QQ聊天系统实验报告.docx》由会员分享,可在线阅读,更多相关《仿QQ聊天系统实验报告.docx(15页珍藏版)》请在冰点文库上搜索。

仿QQ聊天系统实验报告.docx

仿QQ聊天系统实验报告

软件工程项目实践大作业仿QQ软件的设计与实现

软件工程项目实践大作业

仿QQ软件的设计与实现

班级:

20090615

学号:

2009061503

姓名:

教师:

于金峰

平时成绩30分:

+大作业成绩:

70分:

=总分:

__成绩:

_

教师评语:

 

小计

F1

F2

F3

F4

F5

3

6

2

2

2

 

5

2

8

4

6

5

3

2

5

5

5

 

 

 

 

 

 

 

 

F6

F7

F8

F9

F10

2

5

4

4

3

15

2

2

4

3

2

4

 

 

 

 

 

 

 

 

教师签名:

2012年6月

一、项目可行研究

新近一两年Android手机如雨后春笋般涨势迅猛,由此基于Android系统的应用开发也变得更加普遍,结合本次课程的学习,也为了更好的培养我们的自主开发能力,我们小组开发了这个模仿QQ的聊天系统。

二、需求阶段

1.系统功能需求

(1)登录功能。

(2)客户可以通过服务器转发,实现一对一和多对多聊天。

(3)实现呼叫功能。

(4)客户端程序应该可以实时显示目前其它用户的状态。

(5)应该具有易用、美观的图形界面。

2.系统性能需求

实用性:

为信息交流提供方便,有效进行作业管理。

操作简单:

本系统应该适用于不同水平的使用者,包括事业单位和企业单位,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。

技术先进:

产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。

使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。

安装使用简便:

服务器端的安装简洁明了,客户机无需再装任何软件就可以直接注册登陆聊天。

适应性:

应该能广泛应用于不同类型的企事业单位。

系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。

代码可读性好:

文中的代码将尽可能简洁,易懂。

3.系统运行需求

1、移动客户端需500MHz及以上的处理器

2、移动客户端需256MB及以上的ROM空间

3、移动客户端需256MB及以上的RAM空间

4、移动客户端需具有WiFi/GRPS网络接收模块,能正常连接到网络

5、服务端需具有P41.6GHz及以上的处理器

6、服务端需具有80GB及以上的硬板空间

7、服务端需具有1GB及以上的内存空间

三、设计过程

1.业务流程图

业务流程图

2.功能结构图

3.数据流图

4.ER图

图6ER图

5.后台数据库设计

基于服务器跨平台运行的架构,服务器的后台数据库使用了SQLServer2005。

6数据库设计表

主键表:

四、概要设计

1.系统实现原理

即时通讯的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而即时通讯只要提供满足访客双方直接实时聊天即可。

因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:

在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。

因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

图9系统实现原理图

2.系统实现层次图:

图10系统实现层次图

3.各模块详细功能

服务器端结构

Program.cs:

服务器启动操作。

DBHelper.cs:

服务器端连接数据库,负责服务器端与数据库连接读取数据操作。

SocketHost.cs:

服务器端监听客户端连接,并处理各种请求。

SocketRequest.cs:

服务器端接受客户端消息链转化为json格式的数据定义。

SocketResponse.cs:

服务器端发送客户端消息链转化为json格式的数据定义。

IResponseManager.cs:

服务器接受消息处理的抽象类。

LogonResponseManager.cs:

服务器接受客户端登录请求操作。

SocketFindUser.cs:

服务器接收客户端查找好友消息转化为json格式的数据定义

UpdateUserList.cs:

服务器更新在线用户链表的json格式的数据定义

SendResponseManager.cs:

服务器端接受客户端聊天信息和请求并进行转发。

五、详细设计.

1.系统总体流程图

图11系统总体流程图

六、代码开发

服务器端代码开发:

1.用户注册

1).下面是注册验证账户代码:

2.用户登陆

(1)去数据库读用户数据

打开用户数据库文件“User.txt”,将用户数据对象集载入内存,以供下面的程序使用。

//读文件

FileInputStreamfile3=newFileInputStream("user.txt");

ObjectInputStreamobjInput1=newObjectInputStream(file3);

vList=(Vector)objInput1.readObject();

(2)验证用户

代码实现

用户登陆程序模块如下

3.消息管理

客户端:

CLoginDlg---登陆到服务器

COptionsDlg----设置要连接的服务器的地址及端口号

CReplyDlg----显示好友发送的信息

CSendMsgDlg----给好友发送信息

CApplyDlg-----申请新的用户

CServerInfo----显示服务器消息

CLogDlg-----显示聊天纪录

服务器端:

用户及发送信息结构体类型:

structUserInfo//---用户信息结构体

{

char_QQnum[9];//号码

char_QQname[10];//昵称

int_nSex;//性别,

char_Ip[20];//ip

int_Port;//端口号

bool_bState;//当前状态

char_nFace[5];//头像

}

structMsgInfo//消息结构体

{

UserInfo_pSender;//发消息人

char_cRecieverNum[9];//接收人

char_msg[255];//消息内容

long_nTime;//发送时间

char_cPasswd[11];//登陆密码

int_nType;//消息类型

}

统屏蔽。

4.用户退出

(1)接收退出信息

当用户退出时,客户端将会用基于Socket的对象输出流发送给服务器退出对象。

(2)在线列表中删除用户

用户退出后应该把用户从在线列表中删除,否则用户退出用户还在在线列表中,那么该用户下次将会无法登录。

(3)更新在线列表

用户退出后将服务器端监控界面的用户列表更新。

否则用户数据将会不同步。

用户退出模块程序:

publicvoidserverExit(){

Exitexit=newExit();

exit=(Exit)obj;

removeUser(exit);

//chenmin

if(sFrame.ti.equals(exit.exitname)){

sFrame.ti="";

}

Datet=newDate();

log("用户"+exit.exitname+"已经退出,"+"退出时间:

"+t.toLocaleString());

freshServerUserList();

}

(4)返回给客户端

当以上信息都封装成功后,打开与客户端连接的Socket的输出流,然后再用ObjectOutputStream对象输出流包装后输出给客户端。

publicvoidserverChat(){

//将接收到的对象值赋给聊天信息的序列化对象

ChatcObj=newChat();

cObj=(Chat)obj;

//chenmin

cObj.chatMessage=WordFilter.filter(cObj.chatMessage);

chatLog(cObj);

//将聊天信息的序列化对象填加到保存聊天信息的矢量中

userChat.addElement((Chat)cObj);

return;

}

七、项目管理

由组长宁海名分配

八、测试

服务器端运行图:

聊天测试图:

九、

总结

通过这次实验我进一步熟悉了程序开发的过程,从里边也发现了自己还存在很多问题,学习不够踏实,因此做项目的时候也遇到不少困难,还好经过我们小组讨论最终解决了问题,最好我们完成了试验项目,心里很欣慰,同时也有点失望,发现了自己的缺点就要改正,以后的学习生活中要加倍努力,更好的完成老师留下的任务。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2