在线答疑系统设计.docx

上传人:b****1 文档编号:2087899 上传时间:2023-05-02 格式:DOCX 页数:18 大小:177.90KB
下载 相关 举报
在线答疑系统设计.docx_第1页
第1页 / 共18页
在线答疑系统设计.docx_第2页
第2页 / 共18页
在线答疑系统设计.docx_第3页
第3页 / 共18页
在线答疑系统设计.docx_第4页
第4页 / 共18页
在线答疑系统设计.docx_第5页
第5页 / 共18页
在线答疑系统设计.docx_第6页
第6页 / 共18页
在线答疑系统设计.docx_第7页
第7页 / 共18页
在线答疑系统设计.docx_第8页
第8页 / 共18页
在线答疑系统设计.docx_第9页
第9页 / 共18页
在线答疑系统设计.docx_第10页
第10页 / 共18页
在线答疑系统设计.docx_第11页
第11页 / 共18页
在线答疑系统设计.docx_第12页
第12页 / 共18页
在线答疑系统设计.docx_第13页
第13页 / 共18页
在线答疑系统设计.docx_第14页
第14页 / 共18页
在线答疑系统设计.docx_第15页
第15页 / 共18页
在线答疑系统设计.docx_第16页
第16页 / 共18页
在线答疑系统设计.docx_第17页
第17页 / 共18页
在线答疑系统设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

在线答疑系统设计.docx

《在线答疑系统设计.docx》由会员分享,可在线阅读,更多相关《在线答疑系统设计.docx(18页珍藏版)》请在冰点文库上搜索。

在线答疑系统设计.docx

在线答疑系统设计

在线答疑系统

院(系):

专业:

班级:

学生:

学号:

指导教师:

职称:

设计日期:

年月日

至年月日

 

一、设计目的

当今社会已经进入信息化时代,信息正以前所未有的速度急剧增长,各类信息汇聚在一起构成知识的海洋。

面对信息爆炸时代,人们只有通过学习和交流帮助自己和他人提高学识水平和综合素质,在学习的过程中,必然会遇到各种各样的问题,孔子说:

“三人之行,必有我师”,因此问答是解决和回答问题的一个重要手段。

传统的问答方式限于书面和口头交流,容易受时间和空间影响,互联网时代的到来使得世界各地的人们有机会共享资源和交流信息,在线答疑系统的目的是及时收集各地人们提出的各种类型的问题,让来自不同行业、不同背景、不同年龄的人们集体参与解决。

最终使提问者获得满意的答案。

不同背景、不同年龄的人们集体参与解决。

最终使提问者获得满意的答案。

在线答疑系统的最终目的是帮助用户解决学习生产生活中的各种类型的问题,由于系统基于网络平台,因此来自不同地方的用户可以集体参与解决一个问题,让问题及时得到解决,突出了“一人有难,八方支援”的特点,这是互联网特有的优势,同时在线答疑系统将用户问题和回答保存在数据库中,建立了问题库,用户可以直接搜索与自己问题相类似的问题答案,省去了提问和等待浪费的时间。

行业背景:

经过调查发现,目前许多网站的在线答疑系统非常简单,只是一个简单的留言板,不能对用户提出的各种类型的问题做出准确的分类。

也没有提供问题库搜索功能。

改系统针对这些问题做了一些改进,实现了问题分类、问题搜索、用户积分等级制和消息互发等功能,有效的改善了用户回答问题的积极性,这样也使提问者能够及时的找到最佳答案。

而且系统为每个用户建立了个人中心,用户可以修改自己的资料,比如选择个性头像、个性签名等,用户也可以加其它用户好友,查看好友的资料、查看好友回答和提出的问题,还可以给用户发送消息,共同商讨问题的解决办法,这样做大大方便了用户提问和查找答案。

二、设计任务

本系统基于B/S,包含以下几个功能模块。

2.1用户管理模块

由用户登录、用户注册和用户退出3个部分组成。

用户可以以两种身份登录本系统:

普通用户和管理员;不同身份登录被系统授予不同的使用权限,这样提高本系统的安全性,避免无关人员获取不在他权限反范围内的信息。

2.2基本数据的维护

这个功能模块主要实现对问题库信息、答疑问题库信息和用户信息等基本数据的维护。

如用户信息的更新、删除;问题库和答疑问题库信息的删除、修改等。

2.3信息查询功能

系统提供了问题库和答疑问题库,问题库保存了用户提出的问题,答疑问题库保存了已经回答的问题。

信息查询是一项非常重要的功能,它主要包括已解决问题的查询、未解决问题查询、关键字问题查询、用户资料查询。

这项功能方便用户查询和自己的问题相关的答案,也有利于管理员维护问题库和用户信息。

2.4在线答疑室

在线答疑室分为主题答疑室和自由答疑室,用户可以在主题答疑室提出和回答与主题相关的问题,在自由答疑室用户可以提出各种类型的问题,让其它用户参与解答。

2.5离线答疑室

用户可以在离线答疑室查看自己提出的问题是否解决、也可以提出问题。

待上线后再将问题上传到在线答疑室。

三、设计内容

3.1系统的功能模块图如下:

 

图3.1系统的功能模块图

3.2用户管理模块

用户管理模块的功能模块图如下:

 

图3.2用户管理模块功能图

1)用户登录

用户输入用户名和密码后,系统对用户名和密码进行验证,如果登录成功,则可以进入主页面。

否则跳转到错误页面,用户最多可以尝试5次,如果5次均未成功,10分钟之内

2)用户注册

这个功能实现把用户基本信息输入到数据库中,用户基本资料包括用户名、密码、性别、电子邮箱等,如果输入了正确完整的信息,则将用户资料保存到数据库中。

基本流程如下:

3)用户退出

用户点击退出后,销毁session,安全退出系统。

3.3基本数据的维护

基本数据维护模块的具体功能如图所示。

基本信息维护包括:

问题库信息、答疑问题库信息和用户信息。

 

图3.3基本数据维护模块功能图

3.4信息查询功能

信息查询是系统不可缺少的一个部分。

信息查询包括:

问题库信息查询、答疑问题库信息查询以及用户信息查询。

用功能图表示如下:

 

图3.4信息查询模块功能图

3.5在线答疑室

在线答疑室包括自由答疑室和主题答疑室。

功能图表示如下:

 

 

图3.5在线答疑室

3.6离线答疑室

用户在线时可以将自己提出的问题信息下载到本地客户端,便于离线浏览。

同时用户可以离线提出问题。

当能够上线时用户可以将自己的问题上传到线上。

用活动图表如下:

图3.6离线答疑室

3.7系统用例

3.7.1通过分析的到以下用例:

Ø用户登录

Ø用户注册

Ø用户信息修改

Ø问题库信息查询

Ø问题库信息修改

Ø问题库浏览

Ø答疑问题库信息查询

Ø答疑问题库信息修改

Ø答疑问题库浏览

Ø主题答疑室增加

Ø在线下载问题库信息

Ø离线提问

Ø在线提问

Ø在线上传问题

Ø退出系统

3.7.1可以创建以下参与者:

Ø系统管理员

Ø用户

3.7.1系统管理员的用例关系图如下所示:

图3.7.1系统用例图

3.7.2用户的用例关系图如下:

图3.7.2用户用例关系图

3.8数据库设计

3.8.1E-R图

 

 

 

图3.8.1在线答疑系统E-R图

3.9数据库表

3.9.1用户表(users)功能:

保存用户名和密码

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

userid

用户编号

int

no

主键

username

用户名称

Nvarchar(30)

no

userpwd

用户密码

Nvarchar(40)

no

roleid

角色id

int

no

0

外键

3.9.2用户信息表(userinfo)功能:

保存用户注册资料

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

userinfoid

用户信息

int

no

主键

userid

用户id

int

外键

sex

性别

Char

(2)

no

男/女

headimg

头像

Varchar(20)

birthday

出生日期

datetime

no

regtime

注册日期

datetime

no

getDate()

userstate

用户状态

int

no

0

userclass

用户等级

int

no

1

userpoint

积分

long

no

20

term

学历

Varchar(10)

no

email

电子邮件

Varchar(30)

no

phone

电话号码

Varchar(15)

yes

introudce

个人介绍

Nvarchar(50)

yes

pwdofqs

密码问题

Nvarchar(50)

no

ansofqs

密码答案

Nvarchar(50)

no

3.9.3用户角色表(roles)功能:

保存用户角色信息

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

roleid

角色id

int

no

0

主键

rolename

角色名称

Varchar(6)

no

普通用户

3.9.4消息表(messages)功能:

保存所有用户发送的消息

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

msgid

消息id

int

no

主键

suserid

发送者ID

int

no

ruserid

发送者ID

int

no

msgtitle

消息标题

varchar(50)

no

msgcontent

消息内容

text

no

stime

发送时间

datetime

no

3.9.5好友表(friends)功能:

根据用户ID保存用户的好友ID

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

friendid

id

int

no

主键

userid

登录用户ID

int

no

fuserid

好友ID

int

no

3.9.6问题类型表功能:

保存问题的主题名

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

qstypeid

问题类型

int

no

主键

qstypename

问题类型名

Nvarchar(10)

no

3.9.7问题信息表(questions)功能:

保存所有用户的提问

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

qsid

问题id

int

no

主键

qstypeid

问题类型id

int

no

外键

userid

用户(提问者)id

int

no

外键

title

标题

Nvarchar(50)

no

content

内容

ntext

no

clickcount

点击数

int

no

qstime

提问时间

datetime

no

getDate()

lstrptime

最后回复时间

datetime

no

status

问题状态

Char(6)

no

未解决

3.9.8问题答案表(answers)功能:

根据问题ID保存相应的答案

字段名

中文说明

数据类型

是否为空

默认值

检查约束

键约束

ansid

答案id

int

no

主键

qsid

问题id

int

no

外键

qstypeid

主题id

int

no

外键

userid

用户id

int

no

外键

anstime

回答时间

datetime

no

getDate()

ansinfo

回答内容

ntext

yes

四、测试与评价

本系统采用asp语言开发,数据库采用sqlserver2000,实现了数据交互功能。

整个系统采用三层结构实现,即界面层、控制层和业务逻辑层,比较好的实现了代码的高类聚、低耦合,有利于系统的测试和升级。

同时系统部分采用了ajax技术,实现了页面的局部刷新,减轻了服务器端的压力。

五、体会与收获

通过这一个多月的学习和开发,在线答疑系统已基本完成了主要的功能。

此系统通过使用asp语言和sqlserver2000数据库,让我真正了解了理论与实践相结合的重要性和必要性。

由于初次接触asp语言,这一个月来有辛酸也有开心,在开发的过

程遇到了很多难以解决的问题,有时候真的很想放弃,但我还是坚持下来,当一个

个难题被解决的时候,那种成就感简直难以用言语来形容。

很庆幸彭老师给我们

这样一个可以锻炼自己实际操作能力的机会。

为了能更好的完成本课程设计,我

参考了大量书籍,基本能在预定的时间内完成此系统,在此很感谢老师以及同学

对我的帮助和指导。

六、附录

源代码清单:

1)classMain.asp的源代码:

<%

PublicFunctionExecuteSql(sqlstr)’执行sql语句并返回执行结果

OnErrorResumeNext’忽略错误继续执行

setExecuteSql=conn.execute(sqlstr)

IfErr.Number>0then’如果错误发生错误,则清除错误对象和连接对象

Err.Clear

Setconn=Nothing

Response.Write"数据库出现错误:

"&Err.Description

EndIf

EndFunction

PublicFunctionRsClose(rs)’关闭记录集

rs.close

setrs=nothing

EndFunction

PublicFunctionShowMsg(msg,url)’显示提示并跳转到指定页面

Response.Write(""&vbCrlf)

//获取对标记名为info的html标记的引用

Response.Write("var_td=document.getElementById('info');"&vbCrlf)

//创建文本结点

Response.Write("var_tn=document.createTextNode('"&msg&"');"&vbCrlf)

//添加文本结点到td中

Response.Write("_td.appendChild(_tn);"&vbCrlf)

Response.Write("varurl='"&url&"';"&vbCrlf)

//将页面重定向到指定的url

Response.Write("window.setTimeout('window.location.replace(url)',2000);")

Response.Write("")

EndFunction%>

2)conn.asp文件的源代码:

<%

setconn=Server.CreateObject("ADODB.Connection")’创建连接对象

DB_Name="net-qa"’数据库名

sql="Driver={SQLServer};server=.;uid=sa;database="&DB_Name’连接字符串

conn.Opensql’打开连接对象

%>

mydata.asp的部分代码:

--#includefile="../safe.asp"-->//安全文件

--#includefile="../conn.asp"-->//连接文件,连接对象由它生成

xmlversion="1.0"encoding="gb2312"?

>

<%

dimiPagesize,rs,sSQL,iCurPage,ipresize,icount,ipagecount,fuserid,sqlstr

fuserid=trim(request.QueryString("fuserid"))

'fuserid=36'测试数据

icurpage=trim(request.QueryString("curpage"))

iPagesize=10'页大小

setrs=server.createObject("ADODB.Recordset")’创建记录集对象,保存查询结果

sqlstr="selectcount(*)fromquestions,answerswherequestions.qsid=answers.qsid"&_

"andanswers.qsidin(selectqsidfromanswerswhereuserid="&fuserid&")groupbyanswers.qsid"

rs.opensqlstr,conn,1,1

icount=rs.recordcount'总记录数

rs.close

%>

<%ificount>0then%>

<%

ipagecount=int((icount-1)/iPagesize)+1'总页数

ificurpage=""then’如果是首次打开页面,则将当前页面icurpage置1

icurpage=1

else

icurpage=cint(icurpage)’否则获取当前页码

endif

ificurpage<1then’当前页码小于最小页码,则置当前页码icurpage=1

icurpage=1

endif

’当前页码大于最大页码,则置当前页码icurpage等于最大页码数ipagecount

ificurPage>ipagecountthenicurpage=ipagecount

ipreSize=(iCurPage-1)*ipagesize

ifipresize=0then

sqlstr="selectanswers.qsid,title,count(ansid),status,qstimefromquestions,answerswhere"&_

"questions.qsid=answers.qsidandanswers.qsidin(selectqsidfromanswerswhereuserid="&fuserid&")"&_

"groupbytitle,status,qstime,answers.qsid"

else

sqlstr="selecttop"&ipagesize&"*fromquestionswhereuserid="&fuserid&_

"andqsidnotin(selecttop"&ipresize&"qsidfromquestionsorderbyqsiddesc)orderbyqsiddesc"

sqlstr="selecttop"&ipresize&"answers.qsid,title,count(ansid),status,qstimefromquestions,answerswhere"&_

"questions.qsid=answers.qsidandanswers.qsidin(selectqsidfromanswerswhereuserid="&fuserid&")"&_

"andanswers.qsidnotin(selecttop"&ipresize&"answers.qsidfromquestions,answerswhere"&_

"questions.qsid=answers.qsidandanswers.qsidin(selectqsidfromanswerswhereuserid="&fuserid&"))"&_

"groupbytitle,status,qstime,answers.qsid"

endif

rs.opensqlstr,conn,1,1’执行sql语句

%>

"pagesize="<%=ipagesize%>"pagecount="<%=ipagecount%>">

<%

’循环读取数据,生成XML文件

whilenotrs.eof

%>

">

[CDATA[<%=rs(0)%>]]>

--生成问题编号-->

<!</p><p>[CDATA[<%=rs</p><p>(1)%>]]>

--生成问题标题-->

<%=rs

(2)%>

--问题回答数-->

<%=rs(3)%>

--问题状态-->

<%=rs(4)%>

--提问时间-->

<%

rs.movenext’记录下移一行

wend

%>

 

自评

意见

在此次系统系统开发过程中,我比较严格的按照课程设计任务书的要求完成了在线答疑问系统的需求分析和数据库设计,实现了系统指定的功能。

并采用UML语言的用例图、状态图和活动图完成了系统的功能需求分析。

系统采用asp+sqlserver+ajax技术实现了基于网络平台的多用户在线答疑,所有用户都能及时的看到别人提出的问题和自己的回答,用户可以在个人中心给其他用户发送或接受其他用户发送的消息。

部分页面采用ajax技术实现了页面的局部刷新,减轻了服务器负担。

由于系统开发经验有限,可能部分功能分析不够透彻明朗,但是总体感觉还对各个部分的功能描述得比较得体。

系统自我评价:

优点:

界面比较美观,使用简单人性化,采用了模块设计和最新技术,

缺点:

由于是模拟项目,部分功能有待用户考验,有些功能比较简单,没有完全从用户得角度考虑。

自评

等级

良好

指导

教师

意见

 

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2