1、简单聊天系统的设计与开发 简单聊天系统的设计与开发 摘 要随着计算机的普及和快速发展,计算机网络已经渗入到我们的日常生活中,而网络聊天系统的使用最为频繁。网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的,通过网络聊天系统,不仅可以联络人们之间的感情,增进人们之间的友谊,而且还使这个世界越来越小,同时也越来越方便。因此,研究网络聊天系统是十分有意义的。 该聊天系统是一个基于C/S架构(即客户机/服务器的系统),采用Visual Studio 2005作为该聊天系统的开发环境,C#作为开发语言,运行的环境为Windows XP操作系统,后台的数据库使用Microsoft SQL S
2、erver 2005。该聊天系统能在局域网实现聊天功能,提供用户注册、登录、聊天、修改个人信息、查找/添加好友、更换皮肤、听音乐等功能。关键词:网络聊天系统;数据库 Microsoft SQL Server 2005;Visual Studio 2005 AbstractWith the development of computer, Internet has entered our daily life, the most frequently use of Internet is Internet Chatting System. Therefore, it is very valuab
3、le and meaningful to study and research Internet Chatting System. Internet Chatting System can help people in chatting with other people far away. You can also have visual talk with other people through Internet Chatting System.So, it can help people to develop friendship with any people who are abl
4、e to search Internet in the world. The earth looks like smaller than before because you can have relationship with people more convenient.It is based on the system of C/S, use Visual Studio 2005 as exploit language of the environment. Its running environment is Windows XP operating system. And uses
5、Microsoft SQL Server 2005 as its background database management system. Clients can run this Internet Chatting System under Windows XP environment.This system can do a full management on scientific project and scientific and technology paper, providing necessary functions of everyday management, for
6、 example, data input, query with more conditions, statistics, report forms output etc. and easy to use.Keywords:Scientific research project management system;Database SQL Server 2005;Visual Studio 2005 第一章 引言 1.1 课题的研究背景和目的网络聊天系统是通过多终端的通讯技术打造了一种集文字、声音、图像于一体的综合通讯平台,对人们的学习和生活产生了深远的影响,同时也提出了诸多的研究课题。网络聊
7、天系统是一种以网络为中介的即时同步的通讯平台。即时通讯不仅具有软件产品的特性,而且还体现了网络产品的特性,同时又兼有网络信息服务业的特性。鉴于此,研究网络聊天系统是非常有必要的,而且是非常有意义的。一方面可以对网络聊天系统有个更加深入的了解,熟悉网络聊天系统的细节流程;另一方面可以通过研究网络聊天系统,检验自己,在研究中不断的进步。1.2 课题的研究现状在现在这个信息爆炸的时代,计算机发挥了自己强大的功能,人们之间的通信交流也都由计算机所取代。关于网络聊天系统,它经过了四个阶段。1. 单一的即时通讯系统,如QQ、MSN messenger和Yahoo Messenger。 特点主要是进行通讯,
8、包括语音、文本甚至视频。2. 在通讯上附加了娱乐,p2p功能。如uc和popo,他们除了可以进行聊天之外,还可以传输文件,既快捷又方便。3. 以p2p功能为主,同时可以进行文本聊天。4. 在一个软件中可以把其他聊天通讯系统集成过来,当然这种集成是可以通过多种方式的,比如trillian是安装一个软件替代其他的,并可以与其他的进行通讯。目前我们处于第四阶段,即处在一个软件中可以把其他聊天通讯系统集成过来并可以与其进行通讯。1.3 课题的研究意义网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的。通过网络聊天系统,在可以即时聊天的同时,还可以增进人们之间的感情,使这个世界越来越小,越
9、来越方便。除此之外,它还越来越多地被作为办公系统来使用。如此多的优点之下开发一个简单聊天系统是很有意义的。1.4 课题的设计开发平台1.4.1 开发平台聊天系统采用的数据库是Microsoft SQL Server 2005数据库1,开发语言为C#。Microsoft Visual Studio 2005(简称VS2005)作为前台的开发系统,用SQL Server 2005作为后台数据库,通过Visual Studio 2005的服务器资源管理器来连接SQL Server 2005并对其编程来实现各种功能。1.4.2 选型的原则在选择开发平台时主要考虑以下因素:1开发系统的性能(1) 稳定和
10、可靠2。这是人们最关心的性能,开发系统不能经常发生错误或在访问数据库时经常出现问题。(2) 可视化的开发。只须用鼠标拖拉控件就可以完成界面的设计,并且画出来的界面非常漂亮,可以根据自己的喜好设置背景图片。(3) 提供可扩展的第四代编程语言。这样开发人员就不需要关心复杂的底层工作,只需要把控件和类库中的方法拿过来用就行了。(4) 对Windows技术的广泛支持。包括对Windows 95/98上32位计算的支持以及对DDL、OLE、MDI等的支持。(5) 可以生成真正的可执行文件。直接双击生成的.exe文件就可以运行程序,较之于伪代码真正的机器代码会使应用的速度和效率得到大幅度提高。2数据库的访
11、问能力(1) 能够支持JDBC(java 数据库连接)、ODBC(开放式数据库连接)和数据库专用接口。(2) 提供多种数据表现形式。完成对后台数据库的查询和操作是前端开发系统的主要任务。因此开发系统必须提供简便而功能强大的数据访问手段,并提供多种数据表现形式,可以生成复杂的报表3。1.5 论文总体结构 论文总共分五章来介绍简单聊天系统的开发与设计。 第一章引言,介绍了课题研究的背景和目的,课题研究的现状及意义,除此之外还介绍了课题的设计开发平台。第二章系统分析,详述系统的需求分析,通过功能需求拟定开发目标。第三章数据库设计,描述了数据库概念设计,数据库逻辑设计,数据库物理设计和数据库访问接口设
12、计。第四章系统设计,重点研究系统的总体结构,各个功能的具体实现。第五章系统测试分析,介绍了系统测试目标和系统功能验证。第二章 系统分析2.1 概述网络聊天系统是通过多终端的通讯技术打造了一种集文字、声音、图像于一体的综合通讯平台,它是一种即时的通讯平台。因此,在进行系统分析的时候需要考虑很多因素。首先应该对网络聊天系统的现状进行分析,提出新的聊天系统要达到的目标,然后确定目标系统的功能,为系统设计提供基础。其主要任务是将在对网络聊天系统的详细调查中所得的文档资料集中在一起,并对这些资料进行分析,目的是将该聊天系统的功能需求确定下来。其中的需求分析是聊天系统开发工作中最重要的环节之一,是聊天系统
13、设计的依据。需求分析已经成为一门独立的学科,称为需求工程,即应用已证实有效的技术、方法进行需求分析,确定用户需求,帮助开发人员理解问题并定义目标系统的所有外部特征。2.2 需求分析 (1) 注册新账号:用户注册时需要填写两类信息,基本资料和选填资料。即可获取系统分配给用户的一个唯一的MyQQ账号。(2) 用户登录:用户输入MyQQ账号和MyQQ密码,系统根据用户输入的账号和密码进行验证。通过在数据库中查询,如果输入正确,进入聊天主窗体;否则会出现相应的系统提示。(3) 修改个人信息:用户在登录后可以随时修改自己的个人信息,包括基本设置和安全设置两项。(4) 聊天功能:可以实现一对一、一对多、多
14、对多的聊天功能。(5) 查找/添加好友:包括基本查找和高级查找,有单个用户的查找,也有群的查找,同时可以将选中的对象加为好友。(6) 其他功能:实现查看聊天记录、更换MyQQ皮肤、听MyQQ音乐等功能。2.3 开发目标针对本聊天系统的需求分析,提出以下开发目标:(1) 在用户登录时,即时的提醒用户填写的内容是否为空,防止SQL语句注入4。(2) 在用户修改个人信息时,即时的显示用户修改过的信息并且更新。(3) 在聊天时如果有信息,会给用户一个提示,头像闪动加声音提示。(4) 实现群聊功能。(5) 该聊天系统应易于修改和扩充。第三章 数据库设计3.1 数据库概念设计该聊天系统的数据库设计涉及到十
15、一张表:用户表、好友表、群表、消息表、群用户表、群消息表、个人通讯录表、好友策略表、星座表、血型表、消息类型表。每张表都有一个主键ID,是自增的列,不允许为空。3.2 数据库逻辑设计该聊天系统由以下十一个表构成,其模式结构如下:(1) 用户表(ID号,密码,用户状态,好友策略,昵称,头像,性别,年龄,姓名,星座,血型,密码保护问题,密码保护问题答案)用户表ER图设计如图3.1所示:图3.1 用户表E-R图各字段的定义及说明如表3.1所示:表3.1 用户表字段定义列名数据类型允许空备注IDint否主键LoginPwdvarchar(50)否UserStatevarchar(20)否FriendS
16、hipPolicyIdint否NickNamevarchar(50)否FaceIDint否Sexvarchar(8)否Ageint否续表(3.1 用户表字段定义)列名数据类型允许空备注Namevarchar(50)否StarIDint否BloodTypeIDint是Questionntext是Answerntext是(2) 好友表(ID号,MyQQ号,好友的MyQQ号)好友表ER图设计如图3.2所示:图3.2 好友表E-R图各字段的定义及说明如表3.2所示:表3.2 好友表字段定义列名数据类型允许空备注IDint否主键HostIDintFriendIDint(3) 群表(ID号,群公告,管理员
17、MyQQ号,群名称)群表ER图设计如图3.3所示:图3.3 群表E-R图各字段的定义及说明如表3.3所示:表3.3 群表字段定义列名数据类型允许空备注IDint否主键Informationntext否AdminIDint否GroupNamevarchar(50)是(4) 消息表(ID号,发消息ID,接收消息ID,消息内容,消息类型,消息状态,消息时间,是否响应)消息表ER图设计如图3.4所示:图3.4 消息表E-R图各字段的定义及说明如表3.4所示:表3.4 消息表字段定义列名数据类型允许空备注IDint否主键FromUserIDint否ToUserIDint否Messagentext是Mes
18、sageTypeIDint否MessageStateint否MessageTimedatetime否IsRingedint否(5) 群用户表(ID号,MyQQ号,姓名,电话,手机,对方QQ号码,邮箱,备注)群用户表ER图设计如图3.5所示:图3.5 群用户表E-R图各字段的定义及说明如表3.5所示:表3.5 群用户表字段定义列名数据类型允许空备注IDint否主键GroupIDint否UserIDint否HasMessageint否(6) 群消息表(ID号,群号,发消息ID,消息内容,消息时间)群消息表ER图设计如图3.6所示:图3.6 群消息表E-R图各字段的定义及说明如表3.6所示:表3.6
19、 群消息表字段定义列名数据类型允许空备注IDint否主键GroupIDint否FromUserIDint否MessageNtext否MessageTimeDatetime否(7) 个人通讯录表(ID号,MyQQ号,姓名,电话,手机,对方QQ号码,邮箱,备注)个人通讯录表ER图设计如图3.7所示:图3.7 个人通讯录表E-R图各字段的定义及说明如表3.7所示:表3.7 个人通讯录表字段定义列名数据类型允许空备注IDint否主键QQIDint否Namevarchar(50)否Telephonevarchar(16)否Mobilevarchar(16)否QQvarchar(16)否Emailvarc
20、har(16)否ReMarkvarchar(8)是(8) 好友策略表(ID号,好友策略)好友策略表ER图设计如图3.8所示:图3.8 好友策略表E-R图各字段的定义及说明如表3.8所示:表3.8 好友策略表字段定义列名数据类型允许空备注IDint否主键FriendShipPolicyvarchar(16)否(9) 星座表(ID号,星座)星座表ER图设计如图3.9所示:图3.9 星座表E-R图各字段的定义及说明如表3.9所示:表3.9 星座表字段定义列名数据类型允许空备注IDint否主键Starvarchar(24)否(10) 血型表(ID号,血型)血型表ER图设计如图3.10所示:图3.10
21、血型表E-R图各字段的定义及说明如表3.10所示:表3.10 血型表字段定义列名数据类型允许空备注IDint否主键BloodTypevarchar(8)否(11) 消息类型表(ID号,消息类型)消息类型表ER图设计如图3.11所示:图3.11 消息类型表E-R图各字段的定义及说明如表3.11所示:表3.11 消息类型表字段定义列名数据类型允许空备注IDint否主键MessageTypevarchar(8)否3.3 数据库物理设计3.3.1 数据库选型网络聊天系统是一种以网络为中介的即时同步的通讯平台。根据该系统的要求,选择的数据库管理系统需要考虑到如下因素:(1) 符合关系型的标准: SQL
22、Server 2005是比较流行的关系型数据库。(2) 数据库的体系结构: 数据库系统应该是基于客户机/服务器体系结构的分布式数据库,用户的应用程序运行在不同的工作站上5。(3) 事务的完整性和恢复: 数据库服务器应具有事务完整性机制,如日志文件、回退,并能从各种异常情况下恢复数据。(4) 分布式处理: 数据库必须支持分布式环境中节点自治的原则,以保证数据的分布式管理和完整性,对用户提供分布式透明以便于应用系统的使用。(5) 应用开发: 数据库所支持的宿主语言应包括C#,还必须能提供足够的系统供开发者选择,这些系统应涉及数据库分析设计、应用开发、调试和运行等各个不同的阶段。 根据上述要求,结合
23、现实网络聊天系统的具体情况,选用Microsoft SQL Server 2005作为该聊天系统的数据库管理系统。SQL Server 2005是一个多用户的关系型数据库系统,它结合了 Microsoft Windows XP操作系统的能力,提供一个安全的、可扩展的、易管理、高性能的客户机/服务器平台;提供了一套图形化的方便易用的系统;对多用户应用提供了充足的保护措施,能够阻止冲突和防止错误产生,并且能高效地给多用户分配可用的资源6。3.3.2 完整性规则所谓数据的完整性规则是指数据的正确性和相容性,完整性规则是保证数据库中数据正确的有力系统。本系统中数据完整性规则包括:主键完整性规则:每个基
24、本关系中ID号的值必须是唯一的,不允许重复;其他完整性规则:上述完整性规则都应在系统中实现,以保证系统中的数据的正确,能真实反映客观世界的情况,这些完整性规则有的通过应用程序实现,有的通过规范的操作过程来控制。3.3.3 安全性考虑数据库安全性是数据库系统的一个重要方面,它是指保护数据库防止被不合法的使用,包括恶意的破坏和非法的存取等。但由于本系统涉及到的数据都不是保密性数据,无须采取很复杂的安全措施,只须防止数据被人随意改动即可7。系统采取的安全措施是利用SQL Server 2005与Windows XP的安全性集成功能 。3.4数据库访问接口设计3.4.1 数据访问接口选择对于一个数据库
25、应用程序来说,选择一个合适的数据访问接口是很重要的,它与应用程序的性能密切相关。在 Visual Studio 2005 中,可用的数据访问接口有三种:ActiveX 数据对象(ADO)、远程数据对象(RDO) 和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用Visual Studio 2005,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据8。ADO是为 Microsoft最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的最新的应用程序层接口。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数
26、据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的 Internet 方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,总之,ADO提供了一个轻量、高性能的接口。鉴于以上的分析,我们选用ADO2.0作为本系统的数据访问接口,并且ADO是未来的发展趋势,将取代所有其他接口,所以选用ADO能增强应用程序的可扩充性9。3.4.2 具体实现通过ADO访问数据库有两种方式:ADO Date控件和代码。通过ADO Date控件访问数据库最大的优点是实现方法简单,编程量少。但由于本应用程序有多个涉及到数据库访问的窗口,每个窗口访问不同的表,所以必须为每个窗口都放置一个控
27、件,这样就产生了代码重复的问题,并且最主要的是会造成在应用程序的运行过程中不断连接和断开数据库,而连接数据库是很费时的操作,这是用户所不能容忍的。为此选择采用纯代码的方式,根据面向对象的设计原则,将与数据库的连接代码封装成一个类,取名为DBHelper,通过该类可以实现与数据库的连接10。第四章 系统设计4.1 系统总体结构设计根据聊天系统的功能需求,本聊天系统的总体结构由用户注册、用户登录、聊天、用户的基本操作、系统托盘模块组成。系统总体结构图如图4.1所示:图4.1 系统总体结构图4.2 登录界面 在登录界面,由用户输入MyQQ账号和MyQQ密码,系统根据用户输入的账号和密码进行验证。如果
28、输入的内容为空或者输入了不合法的字符,系统会给出相应的提示;当输入的内容不为空且合法时,系统会到数据库中进行查询。如果该用户存在且密码正确,则登录成功,进入主窗体;否则登录失败,当然,系统也会给出相应的信息,提示用户登录失败。除此之外,如果选中隐身登录,则登录后好友看不到其在线状态。登录窗体界面设计如图4.2所示:图4.2 登录窗体如果用户没有MyQQ账号,则可以进入注册新账号窗体进行注册。注册新账号窗体界面设计如图4.3所示:图4.3 注册新账号窗体其中基本资料是必填项,因为在设计数据库表时,这些字段不允许为空;选填资料可以填也可以不填,因为在设计数据库表时,这些字段是允许为空的。在填完以上
29、信息后,单击注册按钮,此时,系统会根据用户输入的内容进行合法性验证(比如说两次输入的密码是否一致等),验证通过后,如果注册成功,系统会分配给用户一个唯一的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,用户可以输入对方账号或对方昵称,通过用户输入的条件从数据库中的用户表中查询符合条件的用户
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1