简单聊天系统的设计与开发.doc_第1页
简单聊天系统的设计与开发.doc_第2页
简单聊天系统的设计与开发.doc_第3页
简单聊天系统的设计与开发.doc_第4页
简单聊天系统的设计与开发.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简单聊天系统的设计与开发 摘 要随着计算机的普及和快速发展,计算机网络已经渗入到我们的日常生活中,而网络聊天系统的使用最为频繁。网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的,通过网络聊天系统,不仅可以联络人们之间的感情,增进人们之间的友谊,而且还使这个世界越来越小,同时也越来越方便。因此,研究网络聊天系统是十分有意义的。 该聊天系统是一个基于c/s架构(即客户机/服务器的系统),采用visual studio 2005作为该聊天系统的开发环境,c#作为开发语言,运行的环境为windows xp操作系统,后台的数据库使用microsoft sql server 2005。该聊天系统能在局域网实现聊天功能,提供用户注册、登录、聊天、修改个人信息、查找/添加好友、更换皮肤、听音乐等功能。关键词:网络聊天系统;数据库 microsoft sql server 2005;visual studio 2005 iabstractwith the development of computer, internet has entered our daily life, the most frequently use of internet is internet chatting system. therefore, it is very valuable 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 able 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 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 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 200527目 录摘 要iabstractii第一章 引言11.1 课题的研究背景和目的11.2 课题的研究现状11.3 课题的研究意义11.4 课题的设计开发平台21.4.1 开发平台21.4.2 选型的原则21.5 论文总体结构2第二章 系统分析42.1 概述42.2 需求分析42.3 开发目标4第三章 数据库设计53.1 数据库概念设计53.2 数据库逻辑设计53.3 数据库物理设计113.3.1 数据库选型113.3.2 完整性规则113.3.3 安全性考虑123.4数据库访问接口设计123.4.1 数据访问接口选择123.4.2 具体实现12第四章 系统设计134.1 系统总体结构设计134.2 登录界面134.3 主界面设计154.4 好友管理模块设计164.5 个人设置模块设计164.6 聊天模块设计174.7 系统托盘模块的设计204.8 找回密码模块的设计204.9 myqq音乐模块的设计20第五章 系统测试分析225.1 系统测试的目标225.2 系统功能的验证235.3 系统测试结论23结束语24致 谢25参考文献26第一章 引言1.1 课题的研究背景和目的网络聊天系统是通过多终端的通讯技术打造了一种集文字、声音、图像于一体的综合通讯平台,对人们的学习和生活产生了深远的影响,同时也提出了诸多的研究课题。网络聊天系统是一种以网络为中介的即时同步的通讯平台。即时通讯不仅具有软件产品的特性,而且还体现了网络产品的特性,同时又兼有网络信息服务业的特性。鉴于此,研究网络聊天系统是非常有必要的,而且是非常有意义的。一方面可以对网络聊天系统有个更加深入的了解,熟悉网络聊天系统的细节流程;另一方面可以通过研究网络聊天系统,检验自己,在研究中不断的进步。1.2 课题的研究现状在现在这个信息爆炸的时代,计算机发挥了自己强大的功能,人们之间的通信交流也都由计算机所取代。关于网络聊天系统,它经过了四个阶段。1. 单一的即时通讯系统,如qq、msn messenger和yahoo messenger。 特点主要是进行通讯,包括语音、文本甚至视频。2. 在通讯上附加了娱乐,p2p功能。如uc和popo,他们除了可以进行聊天之外,还可以传输文件,既快捷又方便。3. 以p2p功能为主,同时可以进行文本聊天。4. 在一个软件中可以把其他聊天通讯系统集成过来,当然这种集成是可以通过多种方式的,比如trillian是安装一个软件替代其他的,并可以与其他的进行通讯。目前我们处于第四阶段,即处在一个软件中可以把其他聊天通讯系统集成过来并可以与其进行通讯。1.3 课题的研究意义网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的。通过网络聊天系统,在可以即时聊天的同时,还可以增进人们之间的感情,使这个世界越来越小,越来越方便。除此之外,它还越来越多地被作为办公系统来使用。如此多的优点之下开发一个简单聊天系统是很有意义的。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) 稳定和可靠2。这是人们最关心的性能,开发系统不能经常发生错误或在访问数据库时经常出现问题。(2) 可视化的开发。只须用鼠标拖拉控件就可以完成界面的设计,并且画出来的界面非常漂亮,可以根据自己的喜好设置背景图片。(3) 提供可扩展的第四代编程语言。这样开发人员就不需要关心复杂的底层工作,只需要把控件和类库中的方法拿过来用就行了。(4) 对windows技术的广泛支持。包括对windows 95/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号,密码,用户状态,好友策略,昵称,头像,性别,年龄,姓名,星座,血型,密码保护问题,密码保护问题答案)用户表er图设计如图3.1所示:用户表id号密码好友策略头像性别年龄姓名星座血型密码保护问题答案昵称用户状态密码保护问题图3.1 用户表e-r图各字段的定义及说明如表3.1所示:表3.1 用户表字段定义列名数据类型允许空备注idint否主键loginpwdvarchar(50)否userstatevarchar(20)否friendshippolicyidint否nicknamevarchar(50)否faceidint否sexvarchar(8)否ageint否续表(3.1 用户表字段定义)列名数据类型允许空备注namevarchar(50)否staridint否bloodtypeidint是questionntext是answerntext是(2) 好友表(id号,myqq号,好友的myqq号)好友表er图设计如图3.2所示:好友的myqq号id号myqq号好友表图3.2 好友表e-r图各字段的定义及说明如表3.2所示:表3.2 好友表字段定义列名数据类型允许空备注idint否主键hostidintfriendidint(3) 群表(id号,群公告,管理员myqq号,群名称)群表er图设计如图3.3所示:群表id号群名称管理员myqq号群公告图3.3 群表e-r图各字段的定义及说明如表3.3所示:表3.3 群表字段定义列名数据类型允许空备注idint否主键informationntext否adminidint否groupnamevarchar(50)是(4) 消息表(id号,发消息id,接收消息id,消息内容,消息类型,消息状态,消息时间,是否响应)消息表er图设计如图3.4所示:消息表id号消息内容接收消息id发消息id消息类型消息状态消息时间是否响应图3.4 消息表e-r图各字段的定义及说明如表3.4所示:表3.4 消息表字段定义列名数据类型允许空备注idint否主键fromuseridint否touseridint否messagentext是messagetypeidint否messagestateint否messagetimedatetime否isringedint否(5) 群用户表(id号,myqq号,姓名,电话,手机,对方qq号码,邮箱,备注)群用户表er图设计如图3.5所示:群用户表id号是否接收消息群号用户myqq号图3.5 群用户表e-r图各字段的定义及说明如表3.5所示:表3.5 群用户表字段定义列名数据类型允许空备注idint否主键groupidint否useridint否hasmessageint否(6) 群消息表(id号,群号,发消息id,消息内容,消息时间)群消息表er图设计如图3.6所示:群消息表id号消息内容发消息id群号消息时间图3.6 群消息表e-r图各字段的定义及说明如表3.6所示:表3.6 群消息表字段定义列名数据类型允许空备注idint否主键groupidint否fromuseridint否messagentext否messagetimedatetime否(7) 个人通讯录表(id号,myqq号,姓名,电话,手机,对方qq号码,邮箱,备注)个人通讯录表er图设计如图3.7所示:个人通讯录表id号电话姓名myqq号手机对方qq号码邮箱备注图3.7 个人通讯录表e-r图各字段的定义及说明如表3.7所示:表3.7 个人通讯录表字段定义列名数据类型允许空备注idint否主键qqidint否namevarchar(50)否telephonevarchar(16)否mobilevarchar(16)否qqvarchar(16)否emailvarchar(16)否remarkvarchar(8)是(8) 好友策略表(id号,好友策略)好友策略表er图设计如图3.8所示:好友策略表id号好友策略图3.8 好友策略表e-r图各字段的定义及说明如表3.8所示:表3.8 好友策略表字段定义列名数据类型允许空备注idint否主键friendshippolicyvarchar(16)否(9) 星座表(id号,星座)星座表er图设计如图3.9所示:星座表id号星座图3.9 星座表e-r图各字段的定义及说明如表3.9所示:表3.9 星座表字段定义列名数据类型允许空备注idint否主键starvarchar(24)否(10) 血型表(id号,血型)血型表er图设计如图3.10所示:血型表id号血型图3.10 血型表e-r图各字段的定义及说明如表3.10所示:表3.10 血型表字段定义列名数据类型允许空备注idint否主键bloodtypevarchar(8)否(11) 消息类型表(id号,消息类型)消息类型表er图设计如图3.11所示:消息类型表id号消息类型图3.11 消息类型表e-r图各字段的定义及说明如表3.11所示:表3.11 消息类型表字段定义列名数据类型允许空备注idint否主键messagetypevarchar(8)否3.3 数据库物理设计3.3.1 数据库选型网络聊天系统是一种以网络为中介的即时同步的通讯平台。根据该系统的要求,选择的数据库管理系统需要考虑到如下因素:(1) 符合关系型的标准: sql server 2005是比较流行的关系型数据库。(2) 数据库的体系结构: 数据库系统应该是基于客户机/服务器体系结构的分布式数据库,用户的应用程序运行在不同的工作站上5。(3) 事务的完整性和恢复: 数据库服务器应具有事务完整性机制,如日志文件、回退,并能从各种异常情况下恢复数据。(4) 分布式处理: 数据库必须支持分布式环境中节点自治的原则,以保证数据的分布式管理和完整性,对用户提供分布式透明以便于应用系统的使用。(5) 应用开发: 数据库所支持的宿主语言应包括c#,还必须能提供足够的系统供开发者选择,这些系统应涉及数据库分析设计、应用开发、调试和运行等各个不同的阶段。 根据上述要求,结合现实网络聊天系统的具体情况,选用microsoft sql server 2005作为该聊天系统的数据库管理系统。sql server 2005是一个多用户的关系型数据库系统,它结合了 microsoft windows xp操作系统的能力,提供一个安全的、可扩展的、易管理、高性能的客户机/服务器平台;提供了一套图形化的方便易用的系统;对多用户应用提供了充足的保护措施,能够阻止冲突和防止错误产生,并且能高效地给多用户分配可用的资源6。3.3.2 完整性规则所谓数据的完整性规则是指数据的正确性和相容性,完整性规则是保证数据库中数据正确的有力系统。本系统中数据完整性规则包括:主键完整性规则:每个基本关系中id号的值必须是唯一的,不允许重复;其他完整性规则:上述完整性规则都应在系统中实现,以保证系统中的数据的正确,能真实反映客观世界的情况,这些完整性规则有的通过应用程序实现,有的通过规范的操作过程来控制。3.3.3 安全性考虑数据库安全性是数据库系统的一个重要方面,它是指保护数据库防止被不合法的使用,包括恶意的破坏和非法的存取等。但由于本系统涉及到的数据都不是保密性数据,无须采取很复杂的安全措施,只须防止数据被人随意改动即可7。系统采取的安全措施是利用sql server 2005与windows xp的安全性集成功能 。3.4数据库访问接口设计3.4.1 数据访问接口选择对于一个数据库应用程序来说,选择一个合适的数据访问接口是很重要的,它与应用程序的性能密切相关。在 visual studio 2005 中,可用的数据访问接口有三种:activex 数据对象(ado)、远程数据对象(rdo) 和数据访问对象(dao)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用visual studio 2005,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据8。ado是为 microsoft最新和最强大的数据访问范例 ole db 而设计的,是一个便于使用的最新的应用程序层接口。ole db 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ado 在关键的 internet 方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,总之,ado提供了一个轻量、高性能的接口。鉴于以上的分析,我们选用ado2.0作为本系统的数据访问接口,并且ado是未来的发展趋势,将取代所有其他接口,所以选用ado能增强应用程序的可扩充性9。3.4.2 具体实现通过ado访问数据库有两种方式:ado date控件和代码。通过ado date控件访问数据库最大的优点是实现方法简单,编程量少。但由于本应用程序有多个涉及到数据库访问的窗口,每个窗口访问不同的表,所以必须为每个窗口都放置一个控件,这样就产生了代码重复的问题,并且最主要的是会造成在应用程序的运行过程中不断连接和断开数据库,而连接数据库是很费时的操作,这是用户所不能容忍的。为此选择采用纯代码的方式,根据面向对象的设计原则,将与数据库的连接代码封装成一个类,取名为dbhelper,通过该类可以实现与数据库的连接10。第四章 系统设计4.1 系统总体结构设计根据聊天系统的功能需求,本聊天系统的总体结构由用户注册、用户登录、聊天、用户的基本操作、系统托盘模块组成。系统总体结构图如图4.1所示:聊天系统注册基本资料选填详细资料忘记密码注册新号码用户注册用户登录系统托盘模块透明度更换皮肤用户基本操作个人设置查找/添加好友刷 新系统消息用户登录创建群个人通讯录myqq音乐聊 天多对多一对一一对多图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,用户可以输入对方账号或对方昵称,通过用户输入的条件从数据库中的用户表中查询符合条件的用户,并且将查询的结果显示出来;高级查找,即输入年龄和性别,通过用户输入的年龄和性别从数据库中的用户表中查询符合条件的用户,并将查询出来的结果显示出来;群查找,即输入群号,通过用户输入的群号从数据库中的群表中查找符合条件的群,并将查询的结果显示出来。4.5 个人设置模块设计用户在进入主窗体以后,单击个人设置按钮会进入修改个人信息窗体。在这里,用户可以修改自己的基本信息(包括昵称、性别、年龄、头像、星座、血型等),也可以修改自己的密码和安全策略。关于修改个人信息,当点击“个人设置”按钮后,系统会根据当前用户的myqq号码查询到这个用户的所有个人资料,并将这些个人资料显示在对应的位置上。当用户修改完个人信息点击“确定”按钮后,系统将取得用户修改过后的个人资料,并将这些个人资料重新写入到数据库中的用户表中,从而达到更新个人信息的作用。个人设置窗体界面设计如图4.7所示:图4.7 个人设置窗体关于安全设置,当点击“个人设置”按钮后,系统会根据当前用户的myqq号码查询到这个用户的密码和好友策略,并将这些信息显示在对应的位置上。当用户修改完安全信息点击“确定”按钮后,系统将取得用户修改过后的安全信息,并将这些安全信息重新写入到数据库中的用户表中,从而达到更新安全信息的作用。安全设置界面设计如图4.8所示:图4.8 安全设置窗体4.6 聊天模块设计网络聊天系统最主要的功能就是要能聊天。该网络聊天系统可以实现一对一、一对多、多对多的聊天。当用户点击“发送”按钮时,系统会获取用户输入的内容(下方的textbox中的内容),并将这些内容存入数据库中的消息表中,根据主窗体上设置的timer控件,定时扫描数据库表,如果有给该用户发送的消息,则发送消息方的头像会闪,并且将发送的消息显示在上方的textbox控件中(显示内容包括对方昵称、发送时间、发送内容)。一对一聊天:当用户a给用户b发送消息时,会获取用户b的id号并且将获取的id号和发送的消息存入到消息表中,当用户b登录时,系统会定时扫描数据库中的消息表,并读出未读消息,实现a与b的一对一聊天。一对多聊天:当用户a给多个用户发送消息时,会分别获取各个用户的id号,并将它们的id号和所发送的消息一一对应的存放到数据库中的消息表中,当这些用户登录时,系统会同样扫描消息表,并将未读消息显示出来,这些用户同样也可以给用户a发送消息,实现了一对多聊天。多对多聊天:相当于群聊,利用数组,数组名为该群的群号,每个用户id相当于各个数组元素的值,它们把发送的消息存入群消息表中,当这个群的任何一个或多个用户登录时,都会看到该群其他用户发送的消息,并且发送消息给该群的所有用户,实现了多对多的聊天。以一对一聊天为例,发送及接收消息功能的主要代码及流程图如下:发送消息流程图如图4.9所示:输入内容是否为空选择好友打开聊天对话框否将输入内容写入数据库消息表是图4.9 发送消息流程图发送消息功能的主要代码:string sqlupdatemessagetext = string.format(select id,message,messagetime from messages where fromuserid=0 and touserid=1 and messagetypeid=1 and messagestate=0, userhelper.id, frmmain.friendid); sqlcommand cmdshow = new sqlcommand(sqlupdatemessagetext, dbhelper.connection); sqldatareader datareader = cmdshow.executereader(); while (datareader.read() string messagetime = convert.todatetime(datareadermessagetime).tostring(); string messagetext = (string)datareadermessage; string showtext = string.format(0 1rn2rnrn, userhelper.nickname, messagetime, messagetext); txtmessage.appendtext(showtext); txtwrite.text = ; txtwrite.focus(); datareader.close();接收消息流程图如图4.10所示:timerfind_tick()定时扫描数据库消息表是否有发给自己的消息结束自己是否在线无有消息表中的isringed为1并显示消息消息表中的isringed为0是否图4.10 接收消息流程图接收并显示消息功能的主要代码:dbhelper.connection.open();sqldatareader datareader2 = cmdgetmessages.executereader();while (datareader2.read() messageidstring += convert.tostring(datareader2id) + _; string messagetime = convert.todatetime(datareader2messagetime).tostring(); string messagetext = (string)datareader2message; string showtext = string.format(0 1rn2rnrn, friendnickname, messagetime, messagetext); txtmessage.appendtext(showtext); datareader2.close();聊天窗体界面设计如图4.11所示:图4.11 聊天窗体4.7 系统托盘模块的设计通过右击电脑右下角的系统托盘显示窗体,可以将隐藏的主窗体显示出来。在该系统中,除了这以外,还把其他的一些功能(如更换皮肤和透明度等)加入到了系统托盘中。要实现系统托盘,必须要为窗体添加notifyicon控件和contextmenustrip控件12。notifyicon控件主要实现系统运行期间在windows任务栏右侧的通知区域显示myqq图标,contextmenustrip控件主要实现当用户右击系统托盘上的myqq图标时显示快捷菜单。系统托盘效果如图4.12所示:图4.12 系统托盘效果图4.8 找回密码模块的设计找回密码主要是当用户忘记自己的密码时,可以根据注册新账号时填写的密码保护问题进行找回密码,如果密码保护问题回答正确,则找回密码成功;否则找回密码失败。密码保护问题界面设计如图4.13所示:图4.13 密码保护问题窗体4.9 myqq音乐模块的设计用户在登录成功后,可以单击myqq音乐按钮,进入myqq音乐界面。当用户选中音乐后,系统会动态的根据用户选择的音乐获取该音乐的大小和位置,并且启动播放功能。当用户点击“播放”按钮时,播放功能又重新启动。系统获取音乐后,会根据选中音乐的大小动态的计算进度条的显示速度。该模块使用了windows自带system.media.sound_player,声音 api 只支持播放 pcm(.wav格式) 波形文件。myqq音乐窗体界面设计如图4.14所示:图4.14 myqq音乐窗体第五章 系统测试分析5.1 系统测试的目标为了设计出有效的系统测试方案,g.myers给出了关于测试的一些规则,这些规则也可以看做是测试的目标或定义。(1) 测试是为了发现系统中的错误而执行系统的过程。(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3) 成功的测试是发现了至今为止尚未发现的错误的测试。从上述规则可以看出,测试的正确定义是“为了发现系统中的错误而执行系统的过程”。这和某些人通常想象的“测试是为了表明系统是正确的”,“成功的测试是没有发现错误的测试”等是完全相反的。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了表明系统是正确的而进行测试,就会设计一些不易暴露的测试方案;相反,如果测试为了发现系统中的错误,就会力求设计出最能暴露错误的测试方案13。一般有两种不同的方法考虑测试数据:黑盒方法和白盒方法14。黑盒方法又称为功能测试或数据驱动测试方法,按这一方法进行测试时,程序被看作不能打开的黑盒,在完全不考虑程序内部结构的情况下,依靠程序的规格说明书,从可能的输入条件和输出条件中确定测试数据,也就是根据程序的功能或程序的外部特征设计测试数据。白盒测试又称为结构测试或逻辑驱动测试,这种测试允许测试者检查程序的内部结构。一个系统产品在交付使用前需经历三种测试:(1) 单元测试也称为模块测试,是针对各个程序单元或模块单独进行的测试。单元测试一般和程序编写结合起来,着重发现和解决程序编写中产生的错误。(2) 集成测试把已经通过单元测试的模块连接起来,着重检验模块间接口以及系统设计中的一些问题,通常使用功能测试的方法。(3) 验收测试验收测试是为了确认已开发的系统能否满足验收标准,客户决定是否接受的正式测试过程。需求是否达到,特别是功能是否达到是最主要的检验目标。验收测试是对系统质量的全面考核,验收测试常常由客户主持或参加15。由于实际条件的限制,要对本系统做严格意义上的测试是不可能的。例如,对系统测试应由其他程序员来完成,但开发本系统自始至终都是由一个人完成的,并且该系统只是作为一个利用现成的数据库管理系统的数据库应用程序,绝大多数对数据的处理都是由数据库管理系统来完成,所以对输入条件的测试没有很大意义。实际上,对于单元测试和集成测试,已经在编码过程中进行了,所发现的错误都即时予于改正,所以这里主要进行的是验收测试,即主要对系统的各项功能进行测试,验证系统是否达到系统的开发目标。具体做法是模拟现实生活中的网络聊天系统,逐一对系统提供的功能进行验证。5.2 系统功能的验证系统功能验证的目的是在系统测试过程中,验证系统各个功能是否可以完成预期目标,以及在测试中出现错误时如何改正以达到其拟定功能16。下面以登录功能验证为例进行说明:用户在注册新账号后,系统给定了其一个唯一的账号,登录功能验证主要验证用户根据自己的账号和密码是否能够登录系统。具体做法是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论