简单聊天系统的设计与开发.docx
- 文档编号:29252328
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:30
- 大小:557.12KB
简单聊天系统的设计与开发.docx
《简单聊天系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《简单聊天系统的设计与开发.docx(30页珍藏版)》请在冰豆网上搜索。
简单聊天系统的设计与开发
简单聊天系统的设计与开发
摘要
随着计算机的普及和快速发展,计算机网络已经渗入到我们的日常生活中,而网络聊天系统的使用最为频繁。
网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的,通过网络聊天系统,不仅可以联络人们之间的感情,增进人们之间的友谊,而且还使这个世界越来越小,同时也越来越方便。
因此,研究网络聊天系统是十分有意义的。
该聊天系统是一个基于C/S架构(即客户机/服务器的系统),采用VisualStudio2005作为该聊天系统的开发环境,C#作为开发语言,运行的环境为WindowsXP操作系统,后台的数据库使用MicrosoftSQLServer2005。
该聊天系统能在局域网实现聊天功能,提供用户注册、登录、聊天、修改个人信息、查找/添加好友、更换皮肤、听音乐等功能。
关键词:
网络聊天系统;数据库MicrosoftSQLServer2005;VisualStudio2005
Abstract
Withthedevelopmentofcomputer,Internethasenteredourdailylife,themostfrequentlyuseofInternetisInternetChattingSystem.Therefore,itisveryvaluableandmeaningfultostudyandresearchInternetChattingSystem.InternetChattingSystemcanhelppeopleinchattingwithotherpeoplefaraway.YoucanalsohavevisualtalkwithotherpeoplethroughInternetChattingSystem.So,itcanhelppeopletodevelopfriendshipwithanypeoplewhoareabletosearchInternetintheworld.Theearthlookslikesmallerthanbeforebecauseyoucanhaverelationshipwithpeoplemoreconvenient.
ItisbasedonthesystemofC/S,useVisualStudio2005asexploitlanguageoftheenvironment.ItsrunningenvironmentisWindowsXPoperatingsystem.AndusesMicrosoftSQLServer2005asitsbackgrounddatabasemanagementsystem.ClientscanrunthisInternetChattingSystemunderWindowsXPenvironment.Thissystemcandoafullmanagementonscientificprojectandscientificandtechnologypaper,providingnecessaryfunctionsofeverydaymanagement,forexample,datainput,querywithmoreconditions,statistics,reportformsoutputetc.andeasytouse.
Keywords:
Scientificresearchprojectmanagementsystem;DatabaseSQLServer2005;VisualStudio2005
第一章引 言
1.1课题的研究背景和目的
网络聊天系统是通过多终端的通讯技术打造了一种集文字、声音、图像于一体的综合通讯平台,对人们的学习和生活产生了深远的影响,同时也提出了诸多的研究课题。
网络聊天系统是一种以网络为中介的即时同步的通讯平台。
即时通讯不仅具有软件产品的特性,而且还体现了网络产品的特性,同时又兼有网络信息服务业的特性。
鉴于此,研究网络聊天系统是非常有必要的,而且是非常有意义的。
一方面可以对网络聊天系统有个更加深入的了解,熟悉网络聊天系统的细节流程;另一方面可以通过研究网络聊天系统,检验自己,在研究中不断的进步。
1.2课题的研究现状
在现在这个信息爆炸的时代,计算机发挥了自己强大的功能,人们之间的通信交流也都由计算机所取代。
关于网络聊天系统,它经过了四个阶段。
1.单一的即时通讯系统,如QQ、MSNmessenger和YahooMessenger。
特点主要是进行通讯,包括语音、文本甚至视频。
2.在通讯上附加了娱乐,p2p功能。
如uc和popo,他们除了可以进行聊天之外,还可以传输文件,既快捷又方便。
3.以p2p功能为主,同时可以进行文本聊天。
4.在一个软件中可以把其他聊天通讯系统集成过来,当然这种集成是可以通过多种方式的,比如trillian是安装一个软件替代其他的,并可以与其他的进行通讯。
目前我们处于第四阶段,即处在一个软件中可以把其他聊天通讯系统集成过来并可以与其进行通讯。
1.3课题的研究意义
网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的。
通过网络聊天系统,在可以即时聊天的同时,还可以增进人们之间的感情,使这个世界越来越小,越来越方便。
除此之外,它还越来越多地被作为办公系统来使用。
如此多的优点之下开发一个简单聊天系统是很有意义的。
1.4课题的设计开发平台
1.4.1开发平台
聊天系统采用的数据库是MicrosoftSQLServer2005数据库[1],开发语言为C#。
MicrosoftVisualStudio2005(简称VS2005)作为前台的开发系统,用SQLServer2005作为后台数据库,通过VisualStudio2005的服务器资源管理器来连接SQLServer2005并对其编程来实现各种功能。
1.4.2选型的原则
在选择开发平台时主要考虑以下因素:
1.开发系统的性能
(1)稳定和可靠[2]。
这是人们最关心的性能,开发系统不能经常发生错误或在访问数据库时经常出现问题。
(2)可视化的开发。
只须用鼠标拖拉控件就可以完成界面的设计,并且画出来的界面非常漂亮,可以根据自己的喜好设置背景图片。
(3)提供可扩展的第四代编程语言。
这样开发人员就不需要关心复杂的底层工作,只需要把控件和类库中的方法拿过来用就行了。
(4)对Windows技术的广泛支持。
包括对Windows95/98上32位计算的支持以及对DDL、OLE、MDI等的支持。
(5)可以生成真正的可执行文件。
直接双击生成的.exe文件就可以运行程序,较之于伪代码真正的机器代码会使应用的速度和效率得到大幅度提高。
2.数据库的访问能力
(1)能够支持JDBC(java数据库连接)、ODBC(开放式数据库连接)和数据库专用接口。
(2)提供多种数据表现形式。
完成对后台数据库的查询和操作是前端开发系统的主要任务。
因此开发系统必须提供简便而功能强大的数据访问手段,并提供多种数据表现形式,可以生成复杂的报表[3]。
1.5论文总体结构
论文总共分五章来介绍简单聊天系统的开发与设计。
第一章引言,介绍了课题研究的背景和目的,课题研究的现状及意义,除此之外还介绍了课题的设计开发平台。
第二章系统分析,详述系统的需求分析,通过功能需求拟定开发目标。
第三章数据库设计,描述了数据库概念设计,数据库逻辑设计,数据库物理设计和数据库访问接口设计。
第四章系统设计,重点研究系统的总体结构,各个功能的具体实现。
第五章系统测试分析,介绍了系统测试目标和系统功能验证。
第二章系统分析
2.1概述
网络聊天系统是通过多终端的通讯技术打造了一种集文字、声音、图像于一体的综合通讯平台,它是一种即时的通讯平台。
因此,在进行系统分析的时候需要考虑很多因素。
首先应该对网络聊天系统的现状进行分析,提出新的聊天系统要达到的目标,然后确定目标系统的功能,为系统设计提供基础。
其主要任务是将在对网络聊天系统的详细调查中所得的文档资料集中在一起,并对这些资料进行分析,目的是将该聊天系统的功能需求确定下来。
其中的需求分析是聊天系统开发工作中最重要的环节之一,是聊天系统设计的依据。
需求分析已经成为一门独立的学科,称为需求工程,即应用已证实有效的技术、方法进行需求分析,确定用户需求,帮助开发人员理解问题并定义目标系统的所有外部特征。
2.2需求分析
(1)注册新账号:
用户注册时需要填写两类信息,基本资料和选填资料。
即可获取系统分配给用户的一个唯一的MyQQ账号。
(2)用户登录:
用户输入MyQQ账号和MyQQ密码,系统根据用户输入的账号和密码进行验证。
通过在数据库中查询,如果输入正确,进入聊天主窗体;否则会出现相应的系统提示。
(3)修改个人信息:
用户在登录后可以随时修改自己的个人信息,包括基本设置和安全设置两项。
(4)聊天功能:
可以实现一对一、一对多、多对多的聊天功能。
(5)查找/添加好友:
包括基本查找和高级查找,有单个用户的查找,也有群的查找,同时可以将选中的对象加为好友。
(6)其他功能:
实现查看聊天记录、更换MyQQ皮肤、听MyQQ音乐等功能。
2.3开发目标
针对本聊天系统的需求分析,提出以下开发目标:
(1)在用户登录时,即时的提醒用户填写的内容是否为空,防止SQL语句注入[4]。
(2)在用户修改个人信息时,即时的显示用户修改过的信息并且更新。
(3)在聊天时如果有信息,会给用户一个提示,头像闪动加声音提示。
(4)实现群聊功能。
(5)该聊天系统应易于修改和扩充。
第三章数据库设计
3.1数据库概念设计
该聊天系统的数据库设计涉及到十一张表:
用户表、好友表、群表、消息表、群用户表、群消息表、个人通讯录表、好友策略表、星座表、血型表、消息类型表。
每张表都有一个主键ID,是自增的列,不允许为空。
3.2数据库逻辑设计
该聊天系统由以下十一个表构成,其模式结构如下:
(1)用户表(ID号,密码,用户状态,好友策略,昵称,头像,性别,年龄,姓名,星座,血型,密码保护问题,密码保护问题答案)
用户表E—R图设计如图3.1所示:
图3.1用户表E-R图
各字段的定义及说明如表3.1所示:
表3.1用户表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
LoginPwd
varchar(50)
否
UserState
varchar(20)
否
FriendShipPolicyId
int
否
NickName
varchar(50)
否
FaceID
int
否
Sex
varchar(8)
否
Age
int
否
续表(3.1用户表字段定义)
列名
数据类型
允许空
备注
Name
varchar(50)
否
StarID
int
否
BloodTypeID
int
是
Question
ntext
是
Answer
ntext
是
(2)好友表(ID号,MyQQ号,好友的MyQQ号)
好友表E—R图设计如图3.2所示:
图3.2好友表E-R图
各字段的定义及说明如表3.2所示:
表3.2好友表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
HostID
int
FriendID
int
(3)群表(ID号,群公告,管理员MyQQ号,群名称)
群表E—R图设计如图3.3所示:
图3.3群表E-R图
各字段的定义及说明如表3.3所示:
表3.3群表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
Information
ntext
否
AdminID
int
否
GroupName
varchar(50)
是
(4)消息表(ID号,发消息ID,接收消息ID,消息内容,消息类型,消息状态,消息时间,是否响应)
消息表E—R图设计如图3.4所示:
图3.4消息表E-R图
各字段的定义及说明如表3.4所示:
表3.4消息表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
FromUserID
int
否
ToUserID
int
否
Message
ntext
是
MessageTypeID
int
否
MessageState
int
否
MessageTime
datetime
否
IsRinged
int
否
(5)群用户表(ID号,MyQQ号,姓名,电话,手机,对方QQ号码,邮箱,备注)
群用户表E—R图设计如图3.5所示:
图3.5群用户表E-R图
各字段的定义及说明如表3.5所示:
表3.5群用户表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
GroupID
int
否
UserID
int
否
HasMessage
int
否
(6)群消息表(ID号,群号,发消息ID,消息内容,消息时间)
群消息表E—R图设计如图3.6所示:
图3.6群消息表E-R图
各字段的定义及说明如表3.6所示:
表3.6群消息表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
GroupID
int
否
FromUserID
int
否
Message
Ntext
否
MessageTime
Datetime
否
(7)个人通讯录表(ID号,MyQQ号,姓名,电话,手机,对方QQ号码,邮箱,备注)
个人通讯录表E—R图设计如图3.7所示:
图3.7个人通讯录表E-R图
各字段的定义及说明如表3.7所示:
表3.7个人通讯录表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
QQID
int
否
Name
varchar(50)
否
Telephone
varchar(16)
否
Mobile
varchar(16)
否
varchar(16)
否
varchar(16)
否
ReMark
varchar(8)
是
(8)好友策略表(ID号,好友策略)
好友策略表E—R图设计如图3.8所示:
图3.8好友策略表E-R图
各字段的定义及说明如表3.8所示:
表3.8好友策略表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
FriendShipPolicy
varchar(16)
否
(9)星座表(ID号,星座)
星座表E—R图设计如图3.9所示:
图3.9星座表E-R图
各字段的定义及说明如表3.9所示:
表3.9星座表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
Star
varchar(24)
否
(10)血型表(ID号,血型)
血型表E—R图设计如图3.10所示:
图3.10血型表E-R图
各字段的定义及说明如表3.10所示:
表3.10血型表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
BloodType
varchar(8)
否
(11)消息类型表(ID号,消息类型)
消息类型表E—R图设计如图3.11所示:
图3.11消息类型表E-R图
各字段的定义及说明如表3.11所示:
表3.11消息类型表字段定义
列名
数据类型
允许空
备注
ID
int
否
主键
MessageType
varchar(8)
否
3.3数据库物理设计
3.3.1数据库选型
网络聊天系统是一种以网络为中介的即时同步的通讯平台。
根据该系统的要求,选择的数据库管理系统需要考虑到如下因素:
(1)符合关系型的标准:
SQLServer2005是比较流行的关系型数据库。
(2)数据库的体系结构:
数据库系统应该是基于客户机/服务器体系结构的分布式数据库,用户的应用程序运行在不同的工作站上[5]。
(3)事务的完整性和恢复:
数据库服务器应具有事务完整性机制,如日志文件、回退,并能从各种异常情况下恢复数据。
(4)分布式处理:
数据库必须支持分布式环境中节点自治的原则,以保证数据的分布式管理和完整性,对用户提供分布式透明以便于应用系统的使用。
(5)应用开发:
数据库所支持的宿主语言应包括C#,还必须能提供足够的系统供开发者选择,这些系统应涉及数据库分析设计、应用开发、调试和运行等各个不同的阶段。
根据上述要求,结合现实网络聊天系统的具体情况,选用MicrosoftSQLServer2005作为该聊天系统的数据库管理系统。
SQLServer2005是一个多用户的关系型数据库系统,它结合了MicrosoftWindowsXP操作系统的能力,提供一个安全的、可扩展的、易管理、高性能的客户机/服务器平台;提供了一套图形化的方便易用的系统;对多用户应用提供了充足的保护措施,能够阻止冲突和防止错误产生,并且能高效地给多用户分配可用的资源[6]。
3.3.2完整性规则
所谓数据的完整性规则是指数据的正确性和相容性,完整性规则是保证数据库中数据正确的有力系统。
本系统中数据完整性规则包括:
主键完整性规则:
每个基本关系中ID号的值必须是唯一的,不允许重复;
其他完整性规则:
上述完整性规则都应在系统中实现,以保证系统中的数据的正确,能真实反映客观世界的情况,这些完整性规则有的通过应用程序实现,有的通过规范的操作过程来控制。
3.3.3安全性考虑
数据库安全性是数据库系统的一个重要方面,它是指保护数据库防止被不合法的使用,包括恶意的破坏和非法的存取等。
但由于本系统涉及到的数据都不是保密性数据,无须采取很复杂的安全措施,只须防止数据被人随意改动即可[7]。
系统采取的安全措施是利用SQLServer2005与WindowsXP的安全性集成功能。
3.4数据库访问接口设计
3.4.1数据访问接口选择
对于一个数据库应用程序来说,选择一个合适的数据访问接口是很重要的,它与应用程序的性能密切相关。
在VisualStudio2005中,可用的数据访问接口有三种:
ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。
数据访问接口是一个对象模型,它代表了访问数据的各个方面。
使用VisualStudio2005,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据[8]。
ADO是为Microsoft最新和最强大的数据访问范例OLEDB而设计的,是一个便于使用的最新的应用程序层接口。
OLEDB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。
ADO在关键的Internet方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,总之,ADO提供了一个轻量、高性能的接口。
鉴于以上的分析,我们选用ADO2.0作为本系统的数据访问接口,并且ADO是未来的发展趋势,将取代所有其他接口,所以选用ADO能增强应用程序的可扩充性[9]。
3.4.2具体实现
通过ADO访问数据库有两种方式:
ADODate控件和代码。
通过ADODate控件访问数据库最大的优点是实现方法简单,编程量少。
但由于本应用程序有多个涉及到数据库访问的窗口,每个窗口访问不同的表,所以必须为每个窗口都放置一个控件,这样就产生了代码重复的问题,并且最主要的是会造成在应用程序的运行过程中不断连接和断开数据库,而连接数据库是很费时的操作,这是用户所不能容忍的。
为此选择采用纯代码的方式,根据面向对象的设计原则,将与数据库的连接代码封装成一个类,取名为DBHelper,通过该类可以实现与数据库的连接[10]。
第四章系统设计
4.1系统总体结构设计
根据聊天系统的功能需求,本聊天系统的总体结构由用户注册、用户登录、聊天、用户的基本操作、系统托盘模块组成。
系统总体结构图如图4.1所示:
图4.1系统总体结构图
4.2登录界面
在登录界面,由用户输入MyQQ账号和MyQQ密码,系统根据用户输入的账号和密码进行验证。
如果输入的内容为空或者输入了不合法的字符,系统会给出相应的提示;当输入的内容不为空且合法时,系统会到数据库中进行查询。
如果该用户存在且密码正确,则登录成功,进入主窗体;否则登录失败,当然,系统也会给出相应的信息,提示用户登录失败。
除此之外,如果选中隐身登录,则登录后好友看不到其在线状态。
登录窗体界面设计如图4.2所示:
图4.2登录窗体
如果用户没有MyQQ账号,则可以进入注册新账号窗体进行注册。
注册新账号窗体界面设计如图4.3所示:
图4.3注册新账号窗体
其中基本资料是必填项,因为在设计数据库表时,这些字段不允许为空;选填资料可以填也可以不填,因为在设计数据库表时,这些字段是允许为空的。
在填完以上信息后,单击注册按钮,此时,系统会根据用户输入的内容进行合法性验证(比如说两次输入的密码是否一致等),验证通过后,如果注册成功,系统会分配给用户一个唯一的MyQQ账号;如果系统故障或是出现其他异常,系统会提示稍后再试。
用户登录流程图如图4.4所示:
图4.4用户登录流程图
4.3主界面设计
主界面主要是用户的好友列表、陌生人列表、群列表,名称为frmMain。
其中聊天、修改个人信息、查找/添加好友、播放MyQQ音乐等都是通过该界面来实现的。
该界面的设计使用了一个第三方控件——SideBar,它是一个能够以分组形式显示项目列表的控件,能够实现类似QQ的好友分组功能[11]。
主界面窗体设计如图4.5所示:
图4.5主界面窗体
4.4好友管理模块设计
用户可以查找/添加在线好友(包括基本查找和高级查找两种查找),此外,用户还可以对群进行查询。
在基本查找中,用户可以查找所有人,这主要是通过查询数据库中用户表来实现的,将从用户表中读出来的数据显示出来。
查找/添加好友窗体界面设计如图4.6所示:
图4.6查找/添加好友窗体
此外,用户还可以进行精确查找,当用户选中精确查找时,GroupBox的visible属性变为true,用户可以输入对方账号或对方昵称,通过用户输入的条件从数据库中的用户表中查询符合条件的用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 聊天 系统 设计 开发