您的当前位置:首页正文

聊天室程序

来源:帮我找美食网
中北大学2011届毕业设计说明书

目 录

1 引言 .............................................................. 1 1.1 项目背景......................................................... 1 1.2 国内外研究现状................................................... 2 1.3 主要思路......................................................... 2 2 需求分析 .......................................................... 4 2.1 设计目标......................................................... 4 2.2 开发环境......................................................... 4 2.3 功能要求......................................................... 4 2.4 实现效果......................................................... 5 2.5 网络聊天室系统E-R图............................................. 6 3 系统概要设计 ...................................................... 7 3.1 需求规定......................................................... 7 3.2 系统层次结构..................................................... 7 3.3 系统数据结构设计................................................. 8 3.4 系统流程图....................................................... 9 4 详细设计及编码方式 ............................................... 11 4.1 登录功能模块设计................................................ 11 4.2 注册功能模块设计................................................ 13 4.3 房间选择功能模块设计............................................ 14 4.4 聊天室主界面设计................................................ 16 4.4.1 聊天室整体框架设计............................................ 16 4.4.2 导航区设计.................................................... 18 4.4.3 显示在线区用户设计............................................ 19 4.4.4 显示聊天信息区设计............................................ 20 4.4.5 发送信息区设计................................................ 21 4.5 修改密码功能模块设计............................................ 23 4.6 选择头像功能模块设计............................................ 25

第 I 页 共 II 页

中北大学2011届毕业设计说明书

4.7 用户管理功能模块设计............................................ 26 5 系统测试 ......................................................... 29 5.1 系统测试目标.................................................... 29 5.2 系统测试内容.................................................... 29 5.3 系统测试结论.................................................... 30 6 结论 ............................................................. 31 参考文献 ............................................................ 32 致谢 ................................................................ 33

第 II 页 共 II 页

中北大学2011届毕业设计说明书

1 引言

1.1 项目背景

21世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。要实现这些就要依靠完善的网络,因此网络现在已经成为信息社会的命脉和发展知识经济的重要基础。网络对社会生活的方方面面已经产生了不可估量的影响[1]。

截止2010年6月底,我国网民规模达4.2亿,互联网普及率持续上升增至31.8%,这其中手机网民增长明显,半年内新增4334万,达到2.77亿人[2]。我国网民的互联网应用表现出商务化程度迅速提高、娱乐化倾向继续保持、沟通和信息工具价值加深的特点。社交网站、即时通信使用率增长较快,半年用户增长19.6%和11.7%[3]。

由于交通的发达,现代人会经常地流动,因此面对面的亲身交流往往不可企及。而网络恰好就为这些希望能够经常交流的人们提供了加强联系、增进交流的平台。社交网络源自网络社交,网络社交的起点是电子邮件。早期的电子邮件解决了远程邮件传输的问题,至今它也是互联网上最普及的应用,而后BBS把网络社交推进了一步。即时通信的出现更像是前面两个社交工具的升级版本,提高了即时效果和同时交流能力[4]。社科院2005年调查关注了人们使用这些网络交流工具的情况,调查表明,人们最常用的网络交流工具为电子邮件,其次是ICQ和聊天[5]。

聊天室作为因特网应用工具之一,在社会上起着越来越重要的作用。70年代末,有一种冒险游戏,在这个游戏中,就有一些对话,它帮助了互联网中聊天室的诞生。也就是IRC。IRC是芬兰人Jarkko Oikarnen于1988年首创的一种在网络中进行聊天的协议。直到今天,大部分聊天室都会以IRC为基础。网络聊天室刚开始的时候是以文本聊天为主,后来出现了语音聊天,到了今天,视频、语音、文字都很好的融入到了聊天工具当中。网络聊天之所以不同于现实聊天,是因为网络聊天是在虚拟的环境中完成的,从某种意义上讲,网络聊天是现实聊天的延伸。虚拟的网络聊天客服了现实聊天中的空间限制,是的聊天的空间大大的扩展了。网络聊天因其技术的发展实现了空间的无限扩展,形成了只要有互联网,不同地方的人们就可以聊天的状况,使得现实生活的交往范围大大扩展了。随着互联网技术的不断发

第 1 页 共 33 页

中北大学2011届毕业设计说明书

展,衍生出各种形式的非文字类的交互式媒体元素,如FLASH、流媒体、互动白板等。这些元素在2004年后逐步被整合到了具有实时互动性概念的网络聊天室应用。而此时,聊天室的概念也逐步转向所谓“富媒体交互服务房间” [6]。随着互联网人数的不断增多,聊天室还会有更大的发展。 1.2 国内外研究现状

在国内许多网站开设了聊天室,比如“新浪网”聊天室、“263在线”、“网易”聊天室等。而人气最旺的,莫过于有“全球最大中文聊天社区”之称的“新浪网”聊天室。该网站为不同年龄、不同职业、不同地区、不同爱好的网友量身定制了数百个不同主题的房间[7]。在国外,也出现了很多的聊天室,比如Omegle、Facebook、MSN、MySpace等。在这些聊天室中,Omegle聊天室比较特别,这是一个针对陌生人交流的Web产品,这个网站与众不同之处就在于能够随机的向每位用户推送一个陌生人与之进行交流。在这里,你不会知道对方的任何信息,所有的信息被红色的“Stranger”一词代替,因此会给人一种全新的感觉[8]。

网络聊天室带来了很多便利,但也出现了一些问题。以在线聊天这种方式出现的网络人际沟通,数量及其巨大,参与对话的人数众多,但与现实不同的是,良好沟通并不多见,通常一个人以他人的顺利交流是以数倍于此甚至更多的沟通失败为代价的[9]。同时,由于网上聊天室中,没有规范,没有固定感;人们来去自由,甚至仅仅只有相互的问候,它只是一种表达情感的介质,而且人们往往在表达是不考虑后果[10]。所以在网络聊天中出现了很多不良的信息,对于青少年的健康成长是很不利的[11]。但是随着技术的不断提高,这些必定会被改进。 1.3 主要思路

一般的在线聊天室体系结构都包括数据库设计、数据访问层、业务逻辑层和页面显示层。数据库设计是最基础的工作,数据库的设计模型是整个系统设计的基础,一旦确定了数据库的结构,在开发过程中不要轻易地修改,否则会对后面的工作造成巨大的影响[12]。数据访问层完成所有与数据库的交互操作。业务逻辑层实现在线聊天室系统的所有业务逻辑,包括用户管理和发表信息的管理等。页面显示层用于实现最终显示在浏览器上的用户可以看到的界面,其主要功能包括业务逻辑层的调用、动态显示数据以及显示方式等[13,14]。

一般在设计程序前,需要对系统功能进行分析,并确定数据库中数据表机存储

第 2 页 共 33 页

中北大学2011届毕业设计说明书

过程的定义。而一般的聊天室具有以下的功能:

(1) 采用数据库记录在线用户信息及聊天信息; (2) 登录及注册功能; (3) 群聊与私聊功能; (4) 聊天用户实时更新等。

俗话说“三分技术,七分管理,十二分基础数据”,可见数据库的设计也是十分重要的。数据库设计步骤为:

(1) 需求分析; (2) 概念结构设计; (3) 逻辑结构设计; (4) 物理结构设计; (5) 数据库实施;

(6) 数据库运行和维护[15]。

本系统采用ASP.NET语言编写,并结合数据库,完成一个具有登录、注册、选择聊天室、群聊、私聊等功能的在线聊天室。

第 3 页 共 33 页

中北大学2011届毕业设计说明书

2 需求分析

该部分主要叙述了该网络聊天室系统的设计目标、拥有的功能以及实现后的应具有的效果。 2.1 设计目标

该系统为一个在线聊天室的网站,除了具备所有聊天室的基本功能外,在设计以及实施的过程中要尽可能做到使该聊天室系统具有易操作性、良好的扩展性、易用性等特性,确保在未来的安装、管理、运行维护中,使普通用户和专业管理人员得到最大的方便。 2.2 开发环境

开发环境为:

(1)SQL Server 2008数据库工具; (2)Windows Visual Studio 2010 编程软件。 2.3 功能要求

该网络聊天室系统使用人员分为两类,一类为普通用户,另一类为管理员用户,他们具有不同的功能。普通用户是该系统的实际使用者,他们具有聊天室中的基本功能,包括:注册与登录、选择房间、群聊与私聊、更换头像和修改密码等功能。管理员是该系统的管理人员,他们除具有普通用户的基本功能外,还具有管理普通用户的功能,具体为:设置黑名单。

根据系统功能的不同,系统的功能结构图分三部分,第一部分为总的功能结构图,第二部分是普通用户的功能结构图,第三部分是管理员的功能结构图。总的功能结构图如图2.1。

图2.1 系统总功能结构图

第 4 页 共 33 页

中北大学2011届毕业设计说明书

普通用户功能结构图如图2.2。

图2.2 普通用户功能结构图

管理员功能结构图如图2.3。

图2.3 管理员功能结构图

2.4 实现效果

该聊天室拥有两种不同的用户身份:普通用户和管理员。在登录时需要判断用户身份,当用户名、密码和身份输入正确进入后,用户将选择所要进入的聊天室,该系统默认设置了四个聊天室供用户选择。选择聊天室进入后,是聊天界面,聊天界面由三部分组成,分为显示在线用户、聊天信息显示和发送信息。显示在线用户是统计在线人数并列表显示,用户名列表中将显示用户头像和用户的用户名。聊天信息显示分为群聊信息显示和私聊信息显示。在聊天界面的菜单中有修改密码、退出和修改头像的功能。修改头像可以选择自己喜爱的头像,系统有十五个头像供用户选择。管理员除了具有这些普通用户的基本功能外,还具有管理用户的功能,可

第 5 页 共 33 页

中北大学2011届毕业设计说明书

以将某个用户加入黑名单,黑名单中的用户是不可以发言的,其他的功能没有影响。

总的来说,本网络聊天室系统实现了以下的功能:

(1) 注册功能,首先检测用户名是否使用,若未使用,则该用户可以使用; (2) 登录功能,输入用户名和密码,并且选择用户登录的角色; (3) 聊天室房间的选择,系统预置四个房间; (4) 在线用户显示,定时更新在线用户列表;

(5) 聊天信息的显示,分为群聊和私聊,定时更新聊天信息; (6) 发送信息,选择对象后,确定是私聊还是公聊; (7) 更改密码功能;

(8) 选择头像功能,系统预设十五个头像; (9) 更换聊天室功能;

(10) 管理黑名单功能,该功能为管理员的功能。 2.5 网络聊天室系统E-R图

根据功能分析,得到该网络聊天室系统E-R如图2.4所示:

图2.4 网络聊天室系统E-R图

第 6 页 共 33 页

中北大学2011届毕业设计说明书

3 系统概要设计

该部分内容主要讲述了系统的模块划分、模块的层次结构及调用关系、模块接口和人机界面等内容。同时包括了系统数据库的设计。 3.1 需求规定

(1) 对功能的规定:

① 主界面:该系统包括了注册与登录界面、选择房间界面、聊天室界面和管理用户界面。在这些不同的界面中,不同用户拥有不同的权限,根据权限的不同,用户所拥有的功能也是不同的。

② 系统后台:包括系统数据库的建立、重要信息的管理,通过前台界面实现对数据库的查找、修改等功能。

(2) 对功能模块的描述:

① 登录与注册功能模块:实现不同用户的注册与登录功能。

② 选择房间功能模块:进入聊天室系统的用户,需要选择所要进入的房间,系统预设四个房间。

③ 聊天室主界面:该部分包括了显示在线用户、聊天信息的显示和发送信息三个功能模块。显示在线用户主要是统计在线用户人数并将其列表显示;聊天信息显示分为公聊信息显示和私聊信息显示,不同模式信息将显示在不同区域;发送信息则是按公聊或者私聊模式将信息发送出去。

④ 修改密码功能模块:重新修改用户的密码。

⑤ 选择头像功能模块:重新选择用户头像,系统预设十五个头像,头像将显示在在线用户区域。

⑥ 管理用户功能模块:该功能模块是只有管理员才拥有的功能,主要是黑名单的管理。 3.2 系统层次结构

该系统的层次结构以及调用关系如图3.1。在该图中可以看到,经过注册与登录功能模块后,系统模块分为了两大部分,一部分为普通用户模块,另一部分为管理员模块。然后经过选择房间功能模块后,就进入了聊天室主界面模块。该模块中,根据用户角色的不同就包括了不同的功能,除了聊天室的三个主要功能模块外,还

第 7 页 共 33 页

中北大学2011届毕业设计说明书

包括了修改密码、选择头像、黑名单管理等功能。

图3.1 系统层次结构图

3.3 系统数据结构设计

数据库在该网络聊天室系统中占有重要地位,数据库的好坏直接影响到本系统的运行效率和运行效果。根据系统的实际应用情况,本系统采用SQL Server 2008作为后台数据库管理工具。

本系统包括了三张数据库表。表3.1为用户信息表,该表主要记录所有用户的基本信息,包括普通用户和管理员用户的基本信息。

第 8 页 共 33 页

中北大学2011届毕业设计说明书

表3.1 用户信息表(UserTable):

字段名称 UserName Password Role IsBlack ImageUrl

数据类型 varchar(50) varchar(50)

int int varchar(50)

字段大小 50 50 4 4 50

说明 用户名 密码 角色 是否黑名单 头像

主键 T F F F F

表3.2为在线用户表,该表主要用于记录所有的在线用户的信息。

表3.2 在线用户表(ChatUserTable):

字段名称 ImageUrl UserName RoomID

数据类型 varchar(50) varchar(50) varchar(50)

字段大小 50 50 50

说明 头像 用户名 房间名字

主键 F T F

表3.3为聊天信息表,该表主要用于记录所有聊天内容的相关信息。

表3.3 聊天信息表(ChatInfoTable):

字段名称 MessageID RoomID FromUserName ToUserName CreatTime ContentData IsPublic

数据类型 bigint varchar(50) varchar(50) varchar(50) datetime text int

字段大小

8 50 50 50 8 16 4

说明 聊天信息ID 房间名字 发送者 接受者 创建时间 信息内容 是否为私聊

主键 T F F F F F F

3.4 系统流程图

根据系统的功能结构图可以画出系统的流程图,系统流程图如图3.2,注册的流程图如图3.3。

第 9 页 共 33 页

中北大学2011届毕业设计说明书

图3.2 系统流程图

图3.3 注册流程图

第 10 页共 33 页

中北大学2011届毕业设计说明书

4 详细设计及编码方式

该部分主要叙述了本系统的详细设计过程以及各个功能模块的编码方式和页面设计方式。

4.1 登录功能模块设计

登录功能模块主要功能是判断用户是否为注册用户,并进行身份判断。用户在登录界面需要输入相应的信息,若正确则会跳转到相应页面,如果错误,则提示登录失败,重新输入。

(1) 界面设计

图4.1 登录功能模块界面设计

(2) 程序设计

登录功能的主要目的是确定用户名、密码和身份是否匹配,若不一致,则不让用户登录。该功能的设计思路是通过用户输入的用户名,去数据库中查找相对应的密码和身份信息,然后将查询到的密码和身份信息与用户输入的信息匹配,若不一致则提示用户“用户名或密码错误”,并清空用户名和密码输入框;若一致,则记下该用户的个人信息,包括用户名、角色身份和头像,并跳转到房间选择页面。在该功能中,管理员角色用“1”代表,普通用户用“0”代表。该功能主要是通过条件语句实现的,首先从数据库中查到相对应的信息,然后通过条件句判断用户输入是否正确。由于管理员代码与普通用户的代码相似,以管理员为例,程序代码为:

string UserName = this.yonghuming.Text.ToString().Trim();

string Password = this.mima.Text.ToString().Trim();

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

第 11 页 共 33 页

中北大学2011届毕业设计说明书

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"select * from [UserTable] where [UserName]='\" + UserName + \"'\";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); if (guanliyuan.Checked == true) {

int Role = 1; myConn.Open();

SqlDataReader sdr = myCommand.ExecuteReader(); while (sdr.Read())

{ string SqlPassword = sdr.GetValue(1).ToString(); int SqlRole = Convert.ToInt32(sdr.GetValue(2)); string Image = sdr.GetValue(4).ToString(); if (Password == SqlPassword && Role == SqlRole) {

Session[\"UserName\"] = UserName; Session[\"Role\"] = 1; Session[\"ImageUrl\"] = Image;

Response.Redirect(\"RoomChoice.aspx\"); } else {

yonghuming.Text = \"\"; mima.Text = \"\";

Label1.Text = \"用户名或密码错误\"; } }

myConn.Close(); }

第 12 页共 33 页

中北大学2011届毕业设计说明书

4.2 注册功能模块设计

注册时首先输入用户名,并检测用户名是否使用。若已经使用,用户需更改用户名直到用户名未使用为止。用户名检测成功后,填入密码,两次密码输入必须一致。在输入用户名和密码时,应注意用户名和密码的位数要求,用户名输入小于12位,密码输入大于6位,小于18位。

(1) 界面设计

图4.2 注册功能模块界面设计

(2) 程序设计

注册功能的主要目的是进行用户注册,使合法用户可以登录该网络聊天室,并拒绝非法用户的登录。用户注册时,首先需要检测用户名的长度是否符合规定,然后再检测用户名是否使用。若输入用户名不符合规定,则提示“用户名输入不符合要求”;然后检测用户名是否使用。若未使用则提示“您可以使用该用户名”,若使用则提示“用户名已存在”。该部分的设计思路是通过用户输入的用户名,去数据库中查找相对应的用户名。用户输入用户名直到检测到未使用的用户名为止,否则该用户不可以注册。检测成功后,输入两次密码,两次密码输入要求一致,并且输入密码需要大于五位,小于十九位。当点击注册后,当两次密码输入一致时则将用户的用户名、密码、角色身份等信息加入到数据库中。以下程序是检测用户名的相关程序:

string UserName = this.yonghuming.Text.ToString().Trim();

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

第 13 页 共 33 页

中北大学2011届毕业设计说明书

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"Select * from UserTable where UserName = '\" + UserName + \"'\";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

SqlDataReader sdr = myCommand.ExecuteReader(); if(UserName.Length!=0&&UserName.Length<=12) {

if (sdr.Read()) {

Label1.Text = \"用户名已存在\"; yonghuming.Text = \"\"; mima.Text = \"\"; Rmima.Text = \"\"; } else {

Label1.Text = \"您可以使用该用户名\"; } } else {

Label1.Text = \"用户名输入不符合要求\"; }

myConn.Close(); }

4.3 房间选择功能模块设计

房间选择模块是供用户选择要进入的房间,系统预设四个。当用户选择某个房间后,将用户的信息和所选房间号加入到在线用户列表,若用户未选择房间就点击

第 14 页 共 33 页

中北大学2011届毕业设计说明书

进入房间,则提示用户选择。

(1) 界面设计

图4.3 房间选择功能模块界面设计

(2) 程序设计

该功能是供用户选择所要进入的房间。在该功能中有用户和管理员两种身份,身份不同会进入不同的房间,管理员进入的是具有管理员功能的“AdminChatRoom”房间,而普通用户则进入的是无管理员功能的“UserChatRoom”房间。当选择某个房间后,点击进入房间则进入到相关房间,否则提示“请您选择所要进入的房间”。该网络聊天室默认设置了四个聊天房间,这四个房间是通过设置四个RadioButton控件来确定用户所选择的房间,然后通过条件句判断用户所进入的房间。当用户选定某个房间后,则记录用户的房间选择信息,并将头像、用户名和房间信息加入到在线用户信息列表中,再跳转到相应的页面。以下所示程序是当用户选定学习天地房间后,系统添加信息并跳转页面的程序: string RoomID = \"StudyRoom\";

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"insert into [ChatUserTable] values ('\" + ImageUrl + \"','\" + UserName + \"','\" + RoomID + \"') \";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

myCommand.ExecuteNonQuery();

第 15 页 共 33 页

中北大学2011届毕业设计说明书

myConn.Close();

Session[\"RoomID\"] = RoomID; if (Role == 0) {

Response.Redirect(\"UserChatRoom.aspx\"); } else {

Response.Redirect(\"AdminChatRoom.aspx\"); }

4.4 聊天室主界面设计

聊天室主界面有用户聊天界面和管理员聊天界面两种。整体采用框架设计,整体分为上部导航区和下部聊天区域,下部聊天区又分为了在线用户显示区、聊天信息显示区和发送信息区。整体页面设计如图4.4。

图4.4 聊天室主界面设计

4.4.1 聊天室整体框架设计

从图4.4可以看到聊天室的整体设计。上部分为导航区,有用户导航区

第 16 页 共 33 页

中北大学2011届毕业设计说明书

(UserMenu)和管理员导航区(AdminMenu)之分,这主要是根据用户的身份不同,所进入的房间模式不同。用户导航是在“UserChatRoom”房间模式,而管理员导航是在“AdminChatRoom”房间模式。聊天室下部分为聊天区域(MessageRoom),不区分用户身份角色。以用户聊天界面“UserChatRoom”房间模式为例,页面整体设计框架代码为:

下部分聊天区域(MessageRoom)又由三部分组成。分别为在线用户区(OnlineUser)、聊天信息显示区(MessageView1-4)和发送信息区(SendMessage)。页面设计框架代码为:

第 17 页 共 33 页

中北大学2011届毕业设计说明书

4.4.2 导航区设计

导航区分为用户导航(UserMenu)和管理员导航(AdminMenu),主要实现了从聊天主界面向其它界面的跳转,比如修改密码等。用户导航区设计如图4.5,管理员导航区设计如图4.6。

图4.5 用户导航区

图4.6 用户导航区

导航区有修改密码、更换聊天室、更换头像、离开等功能按键。这些功能中都要跳出框架,跳转到其他相应页面。以修改密码为例,跳出聊天界面框架并转到修改密码界面的程序语句为:

Response.Write(\"window.parent.location.href='Chang Password.aspx'\");

在更换聊天室功能中,需要删除在线用户的信息,再跳转到房间选择界面,让用户重新选择房间。而退出功能则要删除在线用户的信息,并跳转到登陆界面。删除功能是根据用户名查找到在线用户信息,再将其删除。其中删除在线用户信息的程序语句为:.

string UserName = Session[\"UserName\"].ToString();

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"delete ChatUserTable where UserName = '\" + UserName + \"'\"; SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

第 18 页 共 33 页

中北大学2011届毕业设计说明书

myCommand.ExecuteNonQuery();

myConn.Close(); 4.4.3 显示在线区用户设计

显示在线用户区的功能主要是显示在线的用户,此外还包括统计在线人数和显示用户的头像。显示在线用户区的界面设计如图4.7。

图4.7 显示在线用户界面设计

该功能的主要目的统计在线人数并列表显示。该功能中,统计和显示人数是通过查找数据库中用户所在房间的信息完成的。其中,统计人数是通过循环语句来完成的;显示在线用户的头像和用户名则是通过GridView控件实现的。实现这些功能的程序语句为: int num = 0;

string RoomID = Session[\"RoomID\"].ToString();

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"select * from [ChatUserTable] where [RoomID]='\" + RoomID + \"'\";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

onlineGridView.DataSource = myCommand.ExecuteReader(); onlineGridView.DataBind();

第 19 页 共 33 页

中北大学2011届毕业设计说明书

myConn.Close(); myConn.Open();

SqlDataReader sdr = myCommand.ExecuteReader(); while (sdr.Read()) {

num = num + 1; }

Label1.Text = num.ToString();

myConn.Close(); 4.4.4 显示聊天信息区设计

显示聊天信息区域分为公聊展区和私聊展区,公聊展区是显示群里未加私聊标记的信息,私聊展区则是显示发送给自己和自己发送的并且添加私聊标记的信息。聊天信息显示区域的界面设计如图4.8。

图4.8 显示聊天信息界面设计

该部分的功能是通过查询数据库中的聊天信息数据,并通过循环语句实现输出最近十条聊天记录。查询数据库中的聊天信息,则是通过查找按创建时间倒排后的前十条聊天记录实现的。私聊展区和公聊展区显示信息的程序语句相似,以公聊展区为例,该功能的程序语句为:

string RoomID = Session[\"RoomID\"].ToString();

第 20 页 共 33 页

中北大学2011届毕业设计说明书

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"Select top 10 * from ChatInfoTable where [RoomID]='\" + RoomID + \"' and [IsPublic]='\" + 0 + \"' order by CreatTime desc\"; SqlCommand myCommand = new SqlCommand(strSQL, myConn); SqlDataAdapter sqlDar = new SqlDataAdapter(strSQL,myConn); DataSet MyDataSet = new DataSet(); myConn.Open();

sqlDar.Fill(MyDataSet,\"ChatInfoTable\"); if (MyDataSet != null) {

foreach (DataRow dr in MyDataSet.Tables[0].Rows) {

Response.Write(dr[\"CreatTime\"].ToString());

Response.Write(\" \" + dr[\"FromUserName\"].ToString() + \" \"); Response.Write(\" 对 \" + dr[\"ToUserName\"].ToString()); Response.Write(\" 说道 \");

Response.Write(dr[\"ContentData\"].ToString()); Response.Write(\"
\"); } }

myConn.Close(); 4.4.5 发送信息区设计

发送信息功能区主要功能为发送信息和黑名单功能。发送信息有发送私聊信息和发送公聊信息之分。公聊信息标记为“0”,私聊信息标记为“1”,发送信息是将聊天信息写入数据库。而聊天对象则是通过查询数据库中的在线用户列表,将其显示在DropDownList控件上。快捷回复功能是提供常用语的快速输入,方便用户。黑名单功能是当该用户被管理员加入黑名单后,该用户只能接收查看信息,不能发

第 21 页 共 33 页

中北大学2011届毕业设计说明书

送信息。该功能是通过查询数据库中该用户的黑名单的标记,若为黑名单用户,则将发送信息区域的发送按键的Enabled属性设置为false。发送信息区的界面设计如图4.9。

图4.9 发送信息区界面设计

聊天对象列表是从数据库中通过查询该用户所在房间的在线用户信息,并将这些在线用户的信息显示在DropDownList控件中。该功能与显示在线用户列表功能的程序相似。

黑名单功能是判断用户是否具有发言权。若该用户在黑名单中,则禁止该用户发言,若该用户不在该名单,则可以发言。程序中“1”表示该用户在黑名单,“0”表示该用户不在黑名单。该功能是通过查询数据库中用户的黑名单信息,将黑名单用户聊天界面的发送按键的Enabled属性设置为“false”实现的。该功能实现的程序语句为:

string UserName = Session[\"UserName\"].ToString();

string strSQL1 = \"select IsBlack from [UserTable] where [UserName]='\" + UserName + \"'\";

SqlCommand myCommand1 = new SqlCommand(strSQL1, myConn); myConn.Open();

SqlDataReader sdr = myCommand1.ExecuteReader(); sdr.Read();

int Black = Convert.ToInt32(sdr[\"IsBlack\"]); if (Black == 1)

{ send.Enabled = false; } else

{ send.Enabled = true; }

第 22 页 共 33 页

中北大学2011届毕业设计说明书

myConn.Close();

发送信息是将信息发送给接收者,该功能是通过将信息写入数据库实现的。在该功能中有私聊和公聊之分,公聊信息标记为“0”,私聊信息标记为“1”,是私聊还是公聊是由CheckBox控件决定的。当用户选定私聊框(即CheckBox控件)后,发送的就是私聊信息。当用户点击发送后,会将该信息的发送者、接收者等属性加入到数据库中。发送私聊和公聊信息的程序语句相似,以发送公聊信息为例,程序语句为:

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"insert into [ChatInfoTable] values ('\"+ RoomID +\"','\" +

FromUserName + \"','\" + ToUserName + \"','\" + CreatTime + \"','\" + ContentData + \"','\" + 0 + \"') \";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

myCommand.ExecuteNonQuery(); myConn.Close(); message.Text = \"\"; 4.5 修改密码功能模块设计

修改密码功能主要是修改用户密码,密码位数要求是大于6位,小于18位,并且两次密码输入需要一致。修改密码功能模块界面设计如图4.10。

图4.10 修改密码功能模块界面设计

第 23 页 共 33 页

中北大学2011届毕业设计说明书

该功能主要是通过用户的用户名进行数据库的信息修改。其中密码输入需要位数是大于6位,小于18位,并且两次密码输入需要一致。程序语句为: if (Password == RPassword) {

if (!Password.Equals(\"\")&&Password.Length>=6&&Password.Length<=18) {

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn);

string strSQL = \"update UserTable set [Password]='\" + Password + \"' where [UserName]='\" + UserName + \"' \";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

myCommand.ExecuteNonQuery(); myConn.Close();

LabelView.Text = \"修改密码成功\"; } else

{ LabelView.Text = \"密码输入不符合要求\"; mima.Text = \"\"; Rmima.Text = \"\"; } } else

{ LabelView.Text = \"密码输入不一致\"; mima.Text = \"\"; Rmima.Text = \"\"; }

第 24 页 共 33 页

中北大学2011届毕业设计说明书

4.6 选择头像功能模块设计

选择头像功能是供用户选择自己喜爱的头像,系统内初始预设了十五个头像。头像是用户的一种象征,主要是显示在在线用户列表中。选择头像功能模块界面设计如图4.11。

图4.11 选择头像功能模块界面设计

在该功能中,头像图片是存储在系统文件内的,数据库中存储图片的相对路径。选择头像功能则是通过RadioButton控件实现的。当用户选择某个头像后,则将该用户选择的头像的相对路径加入到在线用户列表和用户信息表两张表中。在该程序中update()函数的目的是更改用户信息表和在线用户表中的头像信息。以选择第一个头像为例,更改头像的程序语句为: string Image = @\".\\Images\\avatar\\2-1.JPG\"; string ImageUrl = Convert.ToString(Image); string UserName = Session[\"UserName\"].ToString();

string strSQL1 = \"update UserTable set [ImageUrl]='\" + ImageUrl + \"' where [UserName]='\" + UserName + \"' \";

string strSQL2 = \"update ChatUserTable set [ImageUrl]='\" + ImageUrl + \"' where

第 25 页 共 33 页

中北大学2011届毕业设计说明书

[UserName]='\" + UserName + \"' \"; update(strSQL1, strSQL2); Session[\"ImageUrl\"] = ImageUrl;

Label1.Text = \"更改头像成功\"; 4.7 用户管理功能模块设计

用户管理功能模块的界面设计如图4.12。其主要功能是黑名单管理,该功能仅限于管理员使用。可以看到,该页面有两个GridView表,上面一个是管理表,下面一个是黑名单用户列表。管理表是实现添加黑名单功能;黑名单显示则是显示所有黑名单用户。

图4.12 管理用户功能模块界面设计

管理表是实现添加黑名单的功能。在该功能中主要使用GridView控件实现数据的更新,在GridView控件中实现了分页、编辑、更新和取消功能,以管理表(UserGridView)为例,其主要代码主要为:

Gridview分页功能实现代码:

protected void UserGridView_PageIndexChanging(object sender, GridViewPage- EventArgs e) {

第 26 页 共 33 页

中北大学2011届毕业设计说明书

UserGridView.PageIndex = e.NewPageIndex; string strSQL1 = \"select * from [UserTable]\"; bindUserGV(strSQL1); }

Gridview编辑功能实现代码:

protected void UserGridView_RowEditing(object sender, GridViewEditEventArgs e) {

UserGridView.EditIndex = e.NewEditIndex; string strSQL1 = \"select * from [UserTable]\"; bindUserGV(strSQL1);

}

Gridview取消功能实现代码:

protected void UserGridView_RowCancelingEdit(object sender, GridViewCancelEdit- EventArgs e) {

UserGridView.EditIndex = -1;

string strSQL1 = \"select * from [UserTable]\"; bindUserGV(strSQL1);

}

更新功能则是将管理员更改过的信息加入到用户信息表。该功能实现的程序代码为:

protected void UserGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) {

string strConn = \"Data Source=LENOVO-PC;Initial Catalog=oline_chat;Integrated Security=True\";

SqlConnection myConn = new SqlConnection(strConn); int Role =

第 27 页 共 33 页

中北大学2011届毕业设计说明书

Convert.ToInt32(((TextBox)(UserGridView.Rows[e.RowIndex].Cells[1].Controls[0])).Text);

int IsBlack =

Convert.ToInt32(((TextBox)(UserGridView.Rows[e.RowIndex].Cells[2].Controls[0])).Text);

string User = UserGridView.DataKeys[e.RowIndex].Value.ToString(); string strSQL = \"update UserTable set Role='\" + Role + \"',IsBlack='\" + IsBlack + \"' where UserName='\" + User + \"'\";

SqlCommand myCommand = new SqlCommand(strSQL, myConn); myConn.Open();

myCommand.ExecuteNonQuery(); myConn.Close();

UserGridView.EditIndex = -1;

string strSQL1 = \"select * from [UserTable]\"; bindUserGV(strSQL1);

string strSQL2 = \"select * from [UserTable] where [IsBlack]='\" + 1 + \"'\"; bindBlackGV(strSQL2); }

第 28 页 共 33 页

中北大学2011届毕业设计说明书

5 系统测试

该部分内容是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。 5.1 系统测试目标

系统测试的目标是验证系统是否满足需求规定等定义要求,找出与需求规定不符的地方和出现错误的地方,使系统变得更加完美。系统测试包括了系统功能测试、系统可用性测试、系统兼容性测试、系统安全性测试和系统性能测试。 5.2 系统测试内容

(1)系统功能测试

系统功能包括了注册、登录、房间选择、在线用户显示、聊天信息显示、信息发送、修改密码、修改头像和黑名单管理等功能。经过测试,系统各项功能均能正常运行,并满足需求规定。系统的所有链接都能按规定链接到对应页面且所链接页面都存在。对系统各项输入信息测试,当系统输入错误时,系统都会给出相应的错误提示,比如当登录时用户名和密码输入有错误时,就会有“用户名或密码错误”的提示。这样就会保证信息提交操作的完整性和提交给服务器的信息的正确性。对系统数据库进行测试后,数据库运行稳定,对数据库进行查询、增加、删除、修改等操作,数据库均未出现异常,均可以正常运行。

(2)系统可用性测试

本网络聊天室系统结构清晰、目的明确。比如修改密码等页面,按键少、目的明确。网站整体布局简洁,颜色搭配比较协调。比如聊天室主界面,是采用框架结构设计,布局简单,功能完整。这说明系统可用性良好。

(3)系统兼容性测试

在安装了Windows系统的客户端电脑上进行测试,系统能够正常运行。在安装了360浏览器、IE浏览器等不同的客户端上进行测试,系统均可以正常运行,而且系统框架和界面风格都没有大的变化。所以该网络聊天室的兼容性较好。

(4)系统安全性测试

本网络聊天室系统采用了先验证后登陆的方式,在登陆时需要验证输入的用户名和密码的正确性且角色需要一致,当三者输入一致时才能进入系统并且跳转到相

第 29 页 共 33 页

中北大学2011届毕业设计说明书

应的页面,如若三者中有不一致的地方则会给出相应的提示,并且拒绝登陆。所以该系统的安全性良好。

(5)系统性能测试

该系统在运行过程中比较稳定,用户提交数据信息的处理也较快,页面跳转时速度一般。在网络聊天室主界面进行聊天时,聊天信息、在线用户是定时更新的,若更新过快,系统会耗费资源;若系统更新过慢,则无法及时显示信息。在该系统中,聊天信息是五秒钟刷新一次,在线用户列表时三十秒钟刷新一次,设置较为合理。所以该系统性能良好。 5.3 系统测试结论

经过系统功能测试、系统可用性测试、系统兼容性测试、系统安全性测试和系统性能测试后得出结论:该系统各项性能良好,满足需求规定的各项要求。

第 30 页 共 33 页

中北大学2011届毕业设计说明书

6 结论

在过去的这一个学期中,完成了网络聊天室这个毕业设计。这是我大学四年中,做过的最大的一个程序,而且是独立完成的。虽然相比于其他同学漂亮的毕业设计逊色不少,但是这是我独立完成的,而且我从中学到了不少知识,这才是值得我高兴的地方。

当我接到这个题目时,我一直在高兴,以为自己捡到了便宜,因为上学期刚刚完成一个网络编程的课程设计,也是这个题目。所以我一直想着套用刚完成的毕业设计,但是却越想越感觉别扭,题目中的很多要求都对不上。等到跟老师沟通过后,才发现自己完全想错了,这个毕业设计跟我刚完成的网络编程课程设计有许多不同的地方。

经过一段时间的努力,毕业设计总算是完成了。经过这段时间的学习,使我所学的专业知识得到了综合的运用,对以前很多抽象、枯燥的理论知识加深了理解。在这次的毕业设计中,我了解到了前期准备的重要性。由于我没有充分做好前期准备,在编程过程中,两次重建数据库表,都是因为需要加入新的属性列。所以在软件开发初期,一定要对用户需求做详细的调研,明确用户的功能需求,这样才能尽可能避免后期的不必要修改。而且在后期软件测试中,也可以让尽可能多的不同用户进行使用,这样才能发现更多的错误。防止软件发布后修改带来的不必要麻烦。

在使用ASP .NET环境开发的过程中,感觉最深的就是程序语言的博大精深,发现自己所学只是些皮毛。很多的知识还有待去学习。在这次开发中,给我感觉最深的就是GradView控件的用法。在这次毕业设计中,我使用了GridView控件的分页、编辑、取消等功能,但是GradView控件还有更多的其他功能,这些都是我所不知道的。所以在以后的学习、工作中,不仅仅学习更多的新知识,而且要学会应用所学到的知识。

第 31 页 共 33 页

中北大学2011届毕业设计说明书

参考文献

[1]谢希仁.计算机网络.第五版.北京:电子工业出版社,2009.1

[2]中国互联网络信息中心.第26次中国互联网络发展状况统计报告. http://www. cnnic.net.cn/dtygg/dtgg/201007/t20100715_13699.html,2010-07-15

[3]网易科技频道.第26次互联网报告:网络应用行为. http://tech.163.com/10/0715 /12/6BKR9FQB00094IJA.html,2010-07-15

[4]百度百科.社交网络. http://baike.baidu.com/view/1405540.htm,2011-03-02 [5]张红兵.从公安管理的角度解读《第23次中国互联网络发展状况统计报告》.上海公安高等专科学校学报,2009,19(3):3340

[6]张祎,徐可.谈互联网中的聊天室.中国科技博览,2010,(31):100103 [7]百度百科.网络聊天室.http://baike.baidu.com/view/2251376.htm,2010-12-22 [8]百度百科.Omegle.http://baike.baidu.com/view/2351204.htm,2010-12-21 [9]陈青芳,蒋超,晏笳.网络聊天室中的人际沟通状况.青年研究,2001,(5):3334 [10]罗雯,李祥坤.网络聊天的言语对话真实性探讨.湖北大学学报,2008,35(5):101106

[11]辛自强,赵秀梅.青少年网络聊天特点探析.首都师范大学学报,2008,(1):146151

[12]李用江,杨世勇,辛向军.Visual C#.NET与网络数据库编程.西安:西安交通大学出版社,2007.100103

[13]龙马工作室.ASP.NET从入门到精通.北京:人民邮电出版社,2009.404415 [14]马瑞新.ASP.NET 2.0程序设计案例教程.北京:清华大学出版社,2009.267292 [15]王珊,萨师煊.数据库系统概论.第四版.北京:高等教育出版社,2006.201

第 32 页 共 33 页

中北大学2011届毕业设计说明书

致谢

毕业设计是对我们所学知识的一次全面考核,也是对我们未来从事工作的基本功的训练,培养我们综合运用所学知识、独立地分析问题和解决问题的能力,为未来学习和工作打下坚实的基础。

本毕业设计能够顺利完成,要非常感谢马巧梅老师在这段时间给我的指导与帮助,从最初的题目理解,到后来的资料收集,再到程序的设计、论文的写作与修改,和最后的定稿,她给了我耐心的指导和无私的帮助。学校规定了一周一次的指导,但是马老师为了指导我们的毕业设计,经常是放弃自己的午休时间给予我们细心地指导。而且在其他时间,马老师也是及时给予我们帮助。马老师的这种无私奉献精神令人敬佩,在此我向她表示我诚挚的谢意。同时,我也要感谢班主任和所有任课老师以及所有同学在这四年里给我的帮助和指导。在这四年中,是老师教会了我各种知识,是老师和同学在我困难时给予了我无私的帮助。正是由于他们,在这四年中我才能在各方面取得明显的进步。在此,我向所有的老师和同学表示我衷心的谢意。并祝愿所有老师培养出越来越多的优秀人才,桃李满天下;祝愿所有同学事业有成。

最后感谢所有专家和老师的批评指导。

第 33 页 共 33 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top