异步多线程的答疑系统的设计与实现_多线程异步实现

  摘 要: 异步多线程的答疑系统实现了异步多线程。学生可以提出问题,查看问题,教师提供解答,并且还可以对问题进行管理工作。   关键词: 异步多线程 答疑系统 数据库
  
  1.引言
  
  在远程教学中,由于教师与学生不能处在同一场所,学生不能直接与教师交流,只能通过各种媒介来向教师提问,请求解答,因此为答疑带来了很多不便,如何使远程教学系统较好地满足学生提出问题和教师解答问题的需要,成为远程教育系统的一个重要功能。为了解决这个问题,笔者设计了一个异步多线程的答疑系统。
  
  2.答疑系统的分析与设计
  
  2.1 需求分析
  2.1.1系统的需求分析
  本课题希望针对远程教学这一专门领域,为通过网络学习的学生提供一个能够解答学生疑问,帮助学生更好地掌握所学知识,以及减轻教师工作负担的网络环境。
  2.1.2数据库的需求分析
  根据系统需求,可以列出以下数据结构:
  答疑信息:包括提问标题、问题内容、回答内容、提问时间、显示标记、回答标记等。
  后台数据库可以使用SQL Server或Access ,数据库服务器和Web服务器可以配置在同一台计算机上,也可在两台计算机上。本系统是在 Windows 2000 Professional下开发的,开发数据库使用的是Access 2000。
  2.1.3系统的运行环境
  本系统的运行环境可以是Windows 2000+IIS、Windows NT+IIS、Windows 95/98+PWS。
  2.2 系统功能分析
  根据系统功能的要求,答疑系统可以分为两个模块:教师模块和学生模块,首先用户登录,系统根据用户及密码自动区分用户类型,进入各自的用户页面。如果是第一次使用本系统,则需要进行用户注册。
  答疑功能分为非实时答疑和实时答疑。非实时答疑需要完成一个讨论组的功能,以使学生和教师能顺利提问和解答。实时答疑功能类似于聊天室,学生和教师可以同时登录到系统,进行实时交流。我们现在主要讨论一下非实时答疑系统的功能。
  2.2.1教师模块功能分析
  其功能模块划分如图1所示:
  
  图1 教师子系统功能模块划分
  
  (1)管理功能:管理功能可以对冗余数据进行处理,同时维护问题关联的一致性。
  (2)解答问题:登录到答疑系统的解答问题页面,所有未被解答的问题都列于其中,教师需要逐一解答。
  (3)提出新问题:教师可以向答疑系统提出新问题,由学生解答,学生也可自问自答。学生可以先检索问题资源,查看是否有类似的解答,若有,则直接浏览获取答案;若没有,学生可以进入问题中心,提出自己的新问题。
  (4)查询问题:答疑系统就是为学生和教师提供多方面的查询功能。主要的查询方式有:按照关键字查找、按照问题的标题查找、按照问题的内容查找及按照问题的作者查找。
  (5)关键字维护:教师可以将一些使用频率较高的词设置为关键字,系统可以依据关键字汇表进行智能答疑。
  2.2.2学生模块功能分析
  其功能模块划分如图2所示:
  
  图2 学生模块功能模块划分
  
  (1)问题收藏:收藏夹的主要功能是存放用户感兴趣的问题。
  (2)提新问题:学生提出有疑问的问题,等待教师解答。
  (3)查询问题:同教师查询功能。
  (4)问题交流:将问题按照提问人来分类,点击某位提问者可以查询此人的所有问题。
  (5)热点问题:显示当前答疑中心的所有问题及其解答,按照点击率排序,点击次数多的问题排名靠前。
  2.3 系统结构
  在本课题中,我们将实现一个简单的答疑系统,结构如图3所示,页面通过ASP脚本程序访问数据库和文件系统。
  
  图3 系统结构设计
  
  2.4 数据库设计
  关系数据库中存在许多记录表,各个记录表通过表中的关键字段和其他表中的数据建立连接,从而形成一个庞大的记录系统。关系就体现在数据表之间通过关键字段进行的连接。
  数据库:newdata.mdb。
  答疑信息:包括提问标题、问题内容、回答内容、提问时间、显示标记、回答标记等。
  答疑信息表(problem)如表1所示:
  
  表2-1 数据库信息表
  
  id:输入问题的记录号。
  title:问题的标题。
  flag_show:显示标记(缺省值设为是)。
  flag_answer回答标记(缺省值设为否)。
  detail:问题的详细内容。
  answer:问题的解答。
  time_qry:提问的时间。
  
  3.答疑系统的详细设计
  
  3.1 模块说明
  3.1.1提问列表模块
  problem.asp:提问列表。
  进入答疑教室,学生可以看到所有的提问列表。学生所有提出的问题都显示于其中,并且在问题提出的时间后面有回答标志。如图4所示(以下功能模块图示略)。
  
  图4 答疑列表页面
  
  3.1.2问题详细信息模块
  problem_item.asp:提问详细信息。
  学生点击提问列表中的问题,则显示问题的详细内容和解答。
  3.1.3提出新问题模块
  insertproblem.asp:提出新问题。
  学生可以向答疑系统提出自己的新问题,输入完毕后点击“提交问题”。
  3.1.4教师浏览问题列表模块
  problemadmin.asp:教师工作区答疑主页面。
  教师和学生一样可以看到所有问题的列表,可以对过期的问题进行删除。
  3.1.5教师解答问题模块
  problem_detail.asp:答疑详细信息页面。
  教师点击教师主页面中未回答的问题进入答疑详细信息页面,在解答框中给出答案。操作结束后后点击确定。
  3.1.6教师删除信息模块
  problemdelete.asp:删除一条答疑记录。
  对问题库进行维护,删除无用的问题,减少数据库冗余。
  
  4.系统的具体编码实现
  
  4.1 数据库的连接
  4.1.1对数据库操作的页面,可以通过调用下面的函数实现。
  <%
  sub cod_AdoOpen(objConnection,rsCoursesList,dsn,rss)
  Set objConnection = Server.CreateObject("ADODB.Connection")
  objConnection.Open dsn
  Set rsCoursesList = Server.CreateObject("ADODB.Recordset")
  rsCoursesList.ActiveConnection = objConnection
  rsCoursesList.CursorLocation = adUseClient
  rsCoursesList.CursorType = adOpenForwardOnly
  rsCoursesList.LockType = adLockReadOnly
  rsCoursesList.Source = rss
  rsCoursesList.Open
  end sub
  sub cod_AdoClose(objConnection,rsCoursesList)
  rsCoursesList.close
  objConnection.close
  set rsCoursesList = nothing
  set objConnection = nothing
  end sub
  %>
  4.1.2数据库连接具体实现方法。
  <%@ Language = "VBScript" %>
  <%"-包含数据库常数定文件和数据库调用函数文件%>
  <!-- #Include file="include/adovbs.inc" -->
  <!-- #Include file="include/cod_ado.inc" -->
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title></title>
  <%"-包含页面风格定义文件%>
  <!-- #Include file="include/style.inc" -->
  </head>
  <body>
  <%
  ‘-建立数据库连接
  strPage = Request.queryString("page")
  dim objCnn,rs
  strDSN = Application("dsn")
  %>
  (3)关闭数据库的实现方式:
  <%
  ‘-关闭数据库连接
  call cod_AdoClose(objCnn,rs)
  %>
  因篇幅以限,其它具体编码略。
  
  5.结语
  
  本研究课题是网络教学答疑系统,为通过网络学习的学生及教授的教师提供一个友好、高效的答疑环境。本课题为实现网络教学完整的答疑系统进行了基础性的研究,但也有许多不足和需要探讨的地方,仅供大家参考。
  
  参考文献:
  [1]陈亚杰.基于WWW的船舶电站CAI软件及答疑平台的开发.武汉交通科技大学.硕士论文,2000,4.
  [2]董少春,金莹,刘峻诚,徐士进,陆现彩.基于WWW的在线答疑系统.南京大学.
  [3]李存斌,樊建平.ASP高级编程及其项目应用开发.中国水利水电邮版社,2003,3.

推荐访问:多线程 答疑 设计 系统