链接:https://pan.baidu.com/s/1Xwd0U_KktL0hRFPaggIOGQ?pwd=6688
提取码:6688
3.2系统总体结构
根据聊天室的主要功能分析,本系统一共分为七大功能模块:用户注册登陆模块、发言功能模块、聊天内容显示功能模块、显示用户列表模块、辅助功能区模块、管理功能模块以及用户密码修改功能模块。其中辅助功能区包括用户举报模块以及分屏等操作功能,功能结构图如图3.1所示。
添加图片注释,不超过 140 字(可选)
3.3 模块功能分析
(1)用户注册登陆模块
完成新用户注册,将注册信息添加到数据库中,用于用户登陆验证;经过登陆验证的用户,方可进入聊天室进行聊天交流。
(2)用户密码修改模块
当用户不小心忘记或记错了自己的注册密码时,可通过修改密码,重新设定登陆密码,其中要经过密码提示问题的验证,顺利通过才能修改密码。
(3)用户发言模块
除了提供发言内容的输入外,还应能显示当前用户正在对谁发言、可选择发言的颜色和发言的表情。发言的颜色和发言表情通过下拉式组合框实现。发言内容书写完毕后,通过单击“提交”按钮或按回车,实现聊天内容的显示。
(4)聊天内容显示模块
主要完成将每个用户的发言的内容显示在页面中,让这些内容对每个登陆用户均可见(除开私聊内容),同时还能及时显示各用户的发言内容,以便始终能显示出最新的发言内容。
(5)在线用户列表显示模块
该页面实现在线人数和在线用户的统计,并将在线用户依次显示出来。每个显示用户应设置为一个超链接,当单击用户名时,实现将发言区中的发言对象设置为该用户。
(6)辅助功能区模块
提供诸如分屏、清屏、刷新、屏蔽、显示名单的操作功能。同时为用户提供了举报的流言功能。
(7)管理模块
系统管理员可以查看用户注册信息以及用户留言,并对其进行管理。
4 系统总体设计
4.1 系统总体规划
聊天室系统的总体流程由用户登陆开始,通过验证后,用户便可进入聊天页面进行交流聊天,同时,系统会将新登陆用户的用户名添加进在线用户列表,即时更新。总体流程图如图5.1所示。
添加图片注释,不超过 140 字(可选)
4.2 系统数据库设计
4.2.1 数据库概念模型
根据系统功能和和流程所需数据要求,可以确定数据库中数据项和数据结构,其E-R图如图4.2所示。
添加图片注释,不超过 140 字(可选)
E-R(Eneity-Relationship Approach)图是最常用的概念模型表示方法,也是数据库的核心和基础,它是按用户的观点来对数据和信息建模的。
4.2.2 数据库各表设计
对于聊天室系统,所需的数据库表有baseuser和投诉两张表。Baseuser表用于存放注册用户的基本信息,其具体字段设计如表4.1所示。
表4.1 baseuser表字段
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
Name | 文本 | 16 | 否 | 用户注册名 |
Password | 密码 | 50 | 否 | 用户登陆密码MD5值 |
问题 | 文本 | 50 | 否 | 密码提示问题 |
答案 | 密码 | 50 | 否 | 密码提示问题答案MD5值 |
| 文本 | 50 | 否 | 用户邮箱 |
性别 | 文本 | 2 | 否 | 用户性别 |
Leves | 文本 | 10 | 否 | 用户权限 |
Date | 时间 | 10 | 否 | 注册时间 |
投诉表用于存放用户在聊天过程中向管理员反应的举报信息,具体字段设计如表4.2所示。
表4.2 投诉表字段
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
ID | 自动编号 | |||
Username | 文本 | 16 | 否 | 投诉人用户名 |
Username1 | 文本 | 16 | 否 | 被投诉人用户名 |
Qusetion | 文本 | 50 | 否 | 投诉描述 |
Date | 时间 | 10 | 否 | 投诉时间 |
4.2.3 数据库连接的实现
数据库连接操作是一个相当频繁的操作,在ASP的数据库编程中,connection对象是我们不可能离开的一个对象,该对象是ADO对象模块中的一个专门打开和关闭数据库连接的对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须以connection对象的建立为前提。形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,本系统首先建立一个connection对象的实例变量,然后才能在它的基础上建立Recordset对象实例来操作数据库。这里首先利用connection对象的属性ConnStr 设置数据库的连接方式,使用的是Access OLE DB驱动程序。
使用server.createobject方法建立connection对象的实例变量conn,使用connection对象的Open方法打开数据库连接,核心代码如下:
connstr="DBQ="+server.mappath("userdata.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
其中,还使用了server对象的Server.MapPath(Path)方法,作用是将(path)指定的虚拟路径转换为实际路径,大大提高了本系统的移植性。
5 系统功能具体实现
聊天室的功能主要是实现用户的发言和观看大家发言的内容,发言界面和聊天内容需要显示在同一屏界面中,以方便发言和观看,另外,通常还需要显示当前在线的人数和用户列表,以方便选择对谁发言。
用户书写发言的界面、聊天内容的显示、用户列表的显示均需要通过单独的页面来实现,为了能在同一屏界面中同时显示多个页面的内容,此时需要利用带框架集的页面来实现。框架集是多个框架的集合,每一个框架可显示一个页面的内容,在同一屏中需要显示多少个页面,就需要创建一个具有多少个框架的框架集来实现,整个框架集最后存盘形成一个页面,以后浏览该页面时,各框架集中的内容就会自动显示出来。