安理在线答疑系统设计课程设计.docx
《安理在线答疑系统设计课程设计.docx》由会员分享,可在线阅读,更多相关《安理在线答疑系统设计课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
![安理在线答疑系统设计课程设计.docx](https://file1.bdocx.com/fileroot1/2022-10/13/76fd4dcc-c3b0-400c-a23e-550ec4593936/76fd4dcc-c3b0-400c-a23e-550ec45939361.gif)
安理在线答疑系统设计课程设计
目录
2需求与功能分析1
3概要设计2
3.1用户登陆和注册2
1.BaseAction基类设计2
2.利用Ajax验证注册用户名2
3.用户登陆的开发2
3.2前台显示页面的开发2
3.3参与答疑功能2
3.4个人控制页面3
3.5课程管理3
3.6内容管理3
3.7用户管理3
4核心数据库设计4
4.1用户E-R图设计4
4.2逻辑结构设计4
5详细设计6
5.1用户登录6
5.2用户注册8
5.3管理后台模块9
5.3.1课程管理10
5.3.2内容管理12
总结与展望14
参考文献:
15
1概述
随着高校规模不断扩大,学生和老师人数倍增,加之上课地点的变动等原因,师生之间的答疑工作不好开展,经分析传统答疑方式有如下缺点:
答疑时间和地点不好确定。
学生有了新问题无法及时向老师提问。
由于同学可能不住一起,学生间的讨论和交流比较少。
老师和学生的交流少,以致老师不了解学生的学习和掌握知识的程度。
为了弥补这些缺陷,提高答疑工作的便捷性和及时性,增加师生之间和学生之间的互动,我们决定开发该基于B/S的在线答疑系统。
Ascollegesanduniversitieshavebeenexpanding,doublingthenumberofstudentsandteachers,coupledwithpoorvenuechangesandotherreasons,theQ&Abetweenstudentsandteacherscarryouttheanalysisoftraditionalansweringthefollowingdisadvantages:
Q&Atimeandplacewellestablished.Thestudentshavenotbeenabletoaskteachers.Studentsmaynotlivetogether,discussionandexchangeamongstudentsisrelativelysmall.Theexchangeofteachersandstudents,sothatteachersdonotunderstandthestudentstolearnandmasterdegreeofknowledge.Tocompensatefortheseshortcomings,Q&Aworktoimprovetheconvenienceandtimeliness,toincreasetheinteractionbetweenteachersandstudentsandbetweenstudents,DongchengUniversityofScienceandTechnologydecidedtodeveloptheonlinequestionansweringsystembasedonB/S.
2需求分析与功能分析
开发任何系统之前,进行足够的系统分析都是很有必要的,主要是分析客户的要求和本系统的一些特点及模块等,以确定如何进行实际的开发。
经过与小组成员的详细交流和抽样调查,确定该系统包含三类用户,分别为学生用户、教师用户和后台管理员用户,其各项具体功能如下。
(1)学生端
注册用户和登录:
学生可自由地注册用户并登录在线答疑系统。
资料修改:
注册后学生可以修改自己的注册资料。
查询课程:
查询自己感兴趣的课程,支持模糊检索。
申请课程:
如果学生还不属于某课程,可提交该课程的申请表。
查看提问:
学生提出问题后,可以查看该问题的回答情况。
查看参与的提问:
学生可以查看所有参与的提问。
(2)教师端
查看未回答的提问:
老师登录后,可以查看未回答的问题列表。
查看已回答的提问:
对于已经回答的问题,老师也可查看并继续回复讲解。
添加学生:
老师可以为自己的某个课程添加学生用户。
删除学生:
老师可以删除自己教授的课程下的学生用户。
(3)管理端功能
课程管理:
管理员可以对课程信息进行维护。
用户管理:
管理端可以对学生用户和老师用户进行管理。
内容管理:
管理员可以对提问内容和回复内容进行管理。
管理员管理:
主要是超级管理员对普通管理员的管理。
3概要设计
图3-1系统模块图
3.1用户登陆和注册
1.BaseAction基类设计
2.利用Ajax验证注册用户名
3.用户登陆的开发
3.2前台显示页面的开发
1.开发完注册和登陆模块后,就可以接着开发前台的一些的显示页面了,如首页显示的是一些课程,并可以对这些课程进行简单的模糊搜索。
2.分页的基类Action
3.首页显示内容的实现
4.课程提问列表的实现
5.提问明细的实现
6.利用拦截器实现权限控制
3.3参与答疑功能
1.对于一个在线答疑系统来说,光能浏览和查看提问是远远不够的,还要参与到其中来,如提出问题和回复问题,或者申请课程等功能,本模块将介绍这些功能的开发。
2.提出新问题
3.回复提问
4.申请课程
3.4个人控制页面
1.为了方便用户使用,我们开发出了个人页面,在个人页面里可以进行个人信息的一些管理。
2.上传头像
3.修改密码
4.申请处理
5.提示功能
6.添加学生
3.5课程管理
1.到此为止,前台的一些功能均已开发完毕,现在开始介绍后台管理的一些模块,主要是课程管理、内容管理、用户管理等功能,下面首先介绍课程管理。
2.添加新课程
3.编辑课程信息
3.6内容管理
1.在答疑过程中,如果有不法用户发布一些与答疑无关的内容,肯定会影响到答疑工作的进行,所以管理端应该有对用户发表的内容进行管理,如果发布与答疑无关的内容,则可以删掉。
2.提问管理
3.回复管理
3.7用户管理
1.上一模块介绍了在线答疑系统的内容管理,包括提问和回复的管理,主要是查看、搜索和删除等功能,本小节将介绍用户管理的开发。
2.用户列表
3.重置用户密码
4核心数据库设计
在线答疑系统是学生和老师之间提出问题和解答问题的桥梁,所以该系统的实体主要包括用户、提问信息、回答信息、课程和申请信息等。
下面将依次介绍各个实体的E-R图。
4.1E-R图设计
用户的E-R实体图主要包括用户的编号、用户名、密码和电子邮件等信息,具体情况如下图所示。
图4-1
提问信息实体主要包括提问的编号、提问用户的ID、提问时间等信息,具体情况如图4-2所示。
图4-2
回复信息实体主要包括所回复提问的ID、回复标题和内容等信息。
其E-R图如图4-3所示。
图4-3
课程实体主要包括课程编号、课程名以及备注信息,其E-R图如图4-4所示。
图4-4
申请信息主要包括申请人ID、所申请课程ID、申请原因,以及是否处理的一些标识信息,其E-R图如图4-5所示。
图4-5
学生和课程之间存在学习的关系,该关系记录了学生的ID和课程ID信息,具体如图4-6所示:
图4-6
实体之间存在一定的关系,如一个老师可以教授N门课程等等,具体关系如图4-7所示:
图4-7
4.2数据库表的设计
表4-1用户表(user)
表4-2课程信息表
表4-3提问信息表
表4-4回复信息表
表4-5申请信息表
表4-6用户-课程关系表
5详细设计
5.1用户登录
图5-1登录界面
实现主要代码如下:
packagewyy;
importcom.opensymphony.xwork2.*;
importorg.springframework.jdbc.core.*;
publicclassLoginActionextendsUnameUniqueAction{
@Override
publicStringexecute()throwsException{
StringrandNum=(String)getSession().get("randNum");//得到存在Session中的验证码
randNum=randNum.toUpperCase();//将验证码转大写
if(!
randNum.equals(valcode)){
message="验证码输入错误,登陆失败,现在将跳转到登陆页";
url="login.jsp";//验证码错误
returnSUCCESS;//返回登录页面
}
sql="selectURolefromDY_UserwhereUName='"+//根据用户名和密码搜索
uname+"'andUPwd='"+pwd+"'andURole<2";//出该用户的URole属性
Stringrole=dbu.getStringInfo(sql);//执行搜索得到登陆用户的权限
sql="selectUIDfromDY_UserwhereUName='"+uname+"'";//得到用户的ID的SQL
Stringuid=dbu.getStringInfo(sql);//执行查询
if(role!
=null){
getSession().put("uname",uname);//将登陆用户名放进session
getSession().put("role",role);//将用户角色放进session
getSession().put("uid",uid);//将用户ID放进session
sql="updateDY_UsersetULastLogin=now()whereUID="+uid;
dbu.update(sql);//更新用户最后登陆时间
message="欢迎回来,"+uname+"。
现在将要跳转到主页";
url="IndexAction.action?
actionStr=all";//登陆成功进入首页
}
else{
message="用户名和密码不匹配,登陆失败,现在将要跳转到登陆页";
url="login.jsp";//用户名和密码不匹配
}
returnSUCCESS;//返回结果视图
}
}
5.2用户注册
图5-2用户注册界面
packagewyy;
importcom.opensymphony.xwork2.*;
importorg.springframework.jdbc.core.*;
publicclassRegActionextendsUnameUniqueAction{
privateStringgender;//用户性别
privateStringemail;//电子邮件
publicStringgetGender()