基于web的在线答疑系统最终版Word格式文档下载.docx
《基于web的在线答疑系统最终版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于web的在线答疑系统最终版Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。
前言
1.1课题研究背景及意义
1.1.1研究背景
随着计算机网络技术的飞速发展,计算机网络已经与我们的生活密切相连,作为当代大学生该如何正确、高效地使用网络来帮助我们学习更多的知识,已成为一个重要的课题。
答疑作为教师教学过程的一个重要环节,对教学的质量有着重要的意义,是教学过程中不可避免的。
但由于受课时与教学进度、师生比例的差距、上课地点的变动等原因,使得无法满足学生的答疑需求。
因此,答疑的方式急需改进。
在这种情况下,基于web的在线答疑系统,无疑是有效的解决方法之一。
它不仅可以充分的利用教育资源,而且可以促进教师与学生之间的交流。
具有高效及时的特性。
1.1.2研究意义
通过对本系统的研究可以充分地利用网络技术带给我们的便利,使教师和同学之间不再有交流的障碍,拉近师生之间的距离,提高答疑工作的高效性与普遍性,增强学校的学习氛围。
1.2背景说明
①待开发系统名称:
在线答疑系统的设计与实现
②开发者:
吴飞龙
③针对人员:
管理员、教师、学生
④技术支持:
javaweb开发相关技术,如servlet、filter、框架技术。
1.3系统目标
开发此系统的目的在于解决以下几类问题:
①答疑时间和地点无法确定的问题
②学生有了自己无法解决的问题不能及时向教师提问的问题
③“独学而无友”的问题
④教师无法了解学生的学习和对知识的掌握情况的问题
⑤答疑工作不及时且效率低下的问题
第一章系统分析
2.1可行性分析
2.1.1技术可行性
本系统是基于浏览器、服务器体系的项目,主体开发主要采用的编程语言是java语言。
现如今计算机硬件的配置足以满足java的开发的需求。
从软件方面来看:
本系统中将使用j2ee技术进行开发,前端主要为DIV+CSS使用到得软件主要为Dreamweaver,后台数据库使用mysql,后台编码使用的软件为myeclipse。
这些软件在网上都可以下载使用。
因此,该项目在技术实现上是可行的。
2.1.2经济可行性
本系统对硬件的要求并不高,因此,在市场上很容易购买的到,且价格相对较为便宜。
所使用的软件Myeclipse、Mysql、tomcat、Dreamweaver等在网上都有免费的版本可供下载,从而在很大程度上节约了开发项目所需要的的成本。
本系统需求明确,功能模块清晰,逻辑简单,因此开发难度不是很大。
至于后期的维护也不需要太大的改动。
因此,不会造成太大的经济负担。
2.2需求分析
2.2.1功能性需求
在开始本系统开发之前需求主要是以问卷调查、情景模拟、当面口头询问的方式获取的,经过分析之后得出的教师、学生、后台管理员其各自的需求与功能如下:
1.学生用户
①注册和登录:
学生用户要想使用本系统就必须先要填写相应的个人信息进行注册。
学生用户通过注册后,要想成功登录本系统就必须使用已注册的正确的用户名和密码进行登录。
否则,登录系统的操作将以失败而告终。
②修改资料:
由于本系统中涉及到的个人信息并不是一成不变的。
因此,如果用户想要修改自己的个人信息,那么首先就要登录本系统,之后便可修改自己的信息。
③查看提问:
作为答疑系统中问题的提出者和使用者,学生用户应该据有查看问题的功能。
学生用户登录成功之后,学生可查看之前提问的回复情况也可以查看其它人提出的问题,如果自己对问题很感兴趣或者是知道该如何解答,那么也可以参与到其中与其他人一起讨论交流。
④查询课程:
学生用户在选择课程之前应该据有了解课程详细信息的功能。
若是自己想学习更多的知识可以通过查找找到相应的课程。
由于有些学生可能对课程名称和编号不是很了解,因此,该查询过程支持模糊查询。
⑤申请课程:
学生用户可以对自己感兴趣的课程提出申请,通过填写申请表单提交到教师处,最终由教师来确定是否批准该请求。
⑥查看自己参与的提问:
学生可以对自己参与的讨论进行查看,这样可以增加同学之间的互动与交流,有助于交到更多志趣相同的朋友。
2.教师用户
①用户的登录:
教师登录本系统时与学生用户使用的为同一系统入口,本系统通过后台可以智能的识别该用户是否为教师用户,进而跳转至相应的首页。
主要原理是通过与数据库中的识别标志字段进行比较。
考虑到教师信息也可能发生变化这一因素。
因此,教师用户应该具有修改自己信息的功能和权利。
③添加学生:
学生用户申请课程成功之后,他的相应信息会提交到该课程的授课教师处,授课教师根据实际情况决定是否添加该学生。
④删除学生:
教师可以根据实际的情况来删除学生。
如毕业离校的学生、故意扰乱秩序、发布恶意信息的不良学生。
⑤查看需要回答的问题:
教师登录系统后,系统会使用红色字体提醒需要回答的问题的个数以及需要处理的申请的个数,教师点击查看之后,可以看到具体的问题信息和申请信息。
⑥查看已经回答的问题:
教师登录系统之后,可以查看已经回答过的问题,若同学有新的疑问可以给出更加详细的回答,直到学生理解为止。
3.后台管理员
①课程管理,管理员可以根据学校开设课程和教师的情况合理的调节资源分配。
②内容管理,管理员对内容的管理主要体现在可以对提出的问题与回答的内容进行审查。
如果提出的问题或问答为非法内容,则及时的删除。
③用户管理,管理员可以对教师用户和学生用户进行管理,主要体现为对非法内容和用户的删除,对授课教师的调整。
在本系统中注册账号时系统默认为学生用户,教师用户是由管理员来任命的,这也是用户管理的一个重要体现。
④管理员管理,在本系统中设置有最高权限的管理员即超级管理员,拥有系统最高使用权限,可以对其他普通管理员进行添加和删除管理。
2.2.2非功能性需求
1.系统安全型需求
从系统软件使用方面来看:
本系统中涉及到得三种不同身份的用户在使用本系统时,必须经过系统的安全认证之后即成功的登陆之后,才可以使用其功能。
各自的功能必须限定在其允许的权限之内。
2.系统的开发与运行环境
①JDK:
提供了java开发和运行环境。
②MyEclipse:
集成了java开发过程中用到的各种技术,本系统的主要开发工具。
③Mysql:
一款中小型关系数据库系统。
最大的优势所有开发人员都可以免费使用。
④tomcat:
常用web服务器之一,体积小,性能稳定,品质优良。
⑤Dreamweaver:
Dreamweaver主要用与快速的构建前台页面,加快开发的效率。
2.2.3系统流程图
使用本系统时首先需要对用户身份的合法性进行验证,如果系统验证成功则成功登录进系统。
否则,返回登录页面提示登录失败。
当用户成功登陆本系统后,此用户才能进行相应的操作。
如果是学生用户登录,则可以修改自己的个人信息、查看自己的个人资料、查看自己的提问、查看自己选择的课程、个人申请的处理情况、查看个人参与的问题的讨论。
如果是教师登录该系统,教师可以查看自己的信息、修改自己的信息、查看自己的课程、学生申请列表、并对学生进行增加删除操作,查看学生对教师提出的问题和问题的讨论情况,根据讨论的结果给出正确的评价并给出正确的结果。
管理员用户,经系统验证之后,若成功登录本系统之后,则可以对学生用户进行添加和删除、对学生用户进行是否禁言的、可以添加新课程、指定新课程的授课教师、对现有的教师和课程进行调整、对非法内容进行删除、可以修改自己的个人信息等操作。
本系统的流程图如图2-1所示。
图2.1系统流程图
2.2.3系统数据流图
本系统数据流的设计如图2.2所示,所有用户的个人信息都会输入存储到系统中,学生提问和教师答疑的过程也依赖与系统实现,管理员通过本系统实现对其他用户和问题与回复的管理。
图2.2系统数据流图
管理员管主要实现了对课程的信息的添加、修改和删除等管理;
对学生用户的添加与删除和对教师的任命和取消任命等管理;
以及对提问回复管理,数据流图如下所示。
图2.3管理员数据流图
教师用户主要实现了对学生、学生申请、自己所授课程信息、以及回答问题的管理,其数据流图如下。
图2.4教师数据流图
学生用户不仅可以查看自己所选择的的课程、查看自己的申请处理情况、自己参与的问题讨论情况而且还可以搜索课程和申请课程等。
数据流图图2.5所示。
图2.5学生数据流图
第三章系统总体设计
3.1项目规划
总体规划:
该在线答疑系统是一个基于Web项目,主要分为前端和后端两部分。
前台展示模块:
主要由用户身份登录验证、参与的讨论、查看自己的课程和提问、自己参与的讨论、申请课程和处理申请、修改自己的资料对于管理员可以对不良用户进行删除操作,并对新生进行添加等功能模块组成。
后台管理模块:
该模块主要负责对管理员用户的增删改查操作、提问和回复的增删改查操作、课程的的增删改查操作、学生和教师用户的的增删改查操作等。
3.2系统总体结构
根据前面对系统所做出的分析和解读,本系统总体的使用人群主要有3类用户组成,即学生用户、教师用户和后台管理员用户。
系统总体构图如下所示。
图3.1系统结构图
3.3系统功能模块
该系统根据用户身份、具体职责、需求的不同可以划分为3类,进而设计了学生、教师、管理员三大功能模块。
其详细的功能介绍如下所示。
3.3.1学生模块功能定义
图3.1学生功能表
3.3.2教师模块功能定义
图3.2教师功能表
3.3.3管理员模块功能定义
图3.3管理员功能表
第四章数据库设计
4.1数据库分析
由于在本系统的设计过程发现数据不是很庞大,因此选择使用Mysql数据库,而且相较于其他数据库Mysql的优点有:
开源、免费、性能稳定、且支持事务处理等方面的好处。
4.2项目E-R图
本在线答疑系统主要针对的是关于教员和学生间的交流障碍问题,其涉及到得实体有:
用户、提问信息、回答信息、课程等实体。
下面将对涉及到的所有实体进行分析,并绘制出相应的E-R图。
①对于用户实体其实体关系图如下图4.1所示,该图中列出了用户实体的所有属性。
图4.1用户实体关系图
②课程实体包含的属性如下图4.2所示。
图4.2课程实体关系图
③提问信息的主要内容包括如下几个方面:
提问人的用户编号、提问所属课程的ID、提问的内容、提问标题、查看次数、提问发表日期等,具体如下图所示。
图4.3提问信息实体关系图
④回复问题信息实体主要包括的属性及之间的关系,具体如下图所示。
图4.4回复信息实体关系图
⑤申请信息实体与所涉及到的属性之间的E-R图如图4.5所示。
图4.5申请信息实体关系图
⑥学生和课程之间存在着学习关系,该关系图如4.6所示。
图4.6-关系实体关系图
⑦实体和实体之间存在着如下图所示的对应关系。
图4.7实体总体关系图
4.3数据库中表的设计
①用户表涉及到得所有内容具体如下图所示。
图4.8用户表设计
②用户课程表设计如下所示。
图4.9课程表设计
③提问信息表设计如图所示。
图4.10提问信息表设计
④回复信息表字设计如下所示。
图4.11回复信息表设计
⑤申请信息表设计如下图所示。
图4.12申请信息表设计
⑥用户-课程表设计如下图所示。
图4.13用户-课程表设计
第五章系统详细设计与实现
5.1界面设计
本系统的界面设计主要目的是为了针对用户得到更好的用户体验。
所以本系统的界面设计需要满足以下几点:
简洁明了的人机交互、美观的界面等。
为了充分体现软件的定位和特点,我们需要设计出符合用户需求的系统界面。
本在线答疑系统的主要是以jsp页面来展示的,主要采用了div和table布局,CSS进行美化,同时又融入了JavaScript、ajax等主流的前端技术,给人一种耳目一新的感觉。
本系统的界面主要以黄绿色为基色,符合大众的审美观念,能给用户很好的使用效果,给人带来深刻的印象。
本系统的部分界面如下:
登陆界面:
图5.1用户登录界面
图5.2管理员功能界面
教师功能界面
图5.3-学生用户主页面
5.2系统分层
该在线答疑系统采用了mvc模式进行开发,model层主要用于数据模型的建立以及与后台数据库的交互连接,view(视图层)主要有jsp构成,负责页面的动态显示,control层主要交由strtus框架来实现,用来处理业务逻辑和页面之间的跳转。
并将Strtus中的action类交由spring来管理,可以很大程度上简化开发。
5.2.1view层设计
在本系统中视图层主要采用jsp技术。
Jsp页面在运行时,会先转成servlet在经过编译生成.java文件。
所以jsp也就具有java语言的特性。
因此,相较于静态的HTML语言,JSP具有运行效率高,跨平台性等优点。
但是由于jsp页面在第一次打开时会先存在编译的过程,所以在第一次打开时可能比较慢,这也是由其自身特性决定的。
为了使本系统具有好的体验效果还采用了级联样式表(css)等技术对前端页面进行美化。
5.2.2model层设计
模型表示数据和业务规则。
在本系统中模型层主要采用jdbc技术来实现与数据库中数据的交互。
Javabean对应本系统中所涉及到的对象,它地属性与数据库中表的字段相对应。
在DBUTil类中将数据库中的数据封装进相应的对象中,在根据前端显示页面决定是否将封装好的对象放置到集合中。
在本项目中还用到了数据库连接池技术,当在tomcat启动时便创建好数据库连接的实例,这样便可以带来资源重用、更快的系统响应速度、避免数据库连接泄露等方面的好处。
采用这种技术需要注意的是:
如果要退出系统必须要先销毁两者之间的连接。
5.2.3control层设计
本系统中控制层主要Struts框架实现,对于由客户端发出的请求全部交由Struts来管理,每一个请求对应一个action类。
本系统中的所有业务逻辑、业务处理都在Struts中的action类中进行处理。
配置Struts环境如下:
①在本web项目工程中添加所需的jar包;
②在web项目中的web.xml中进行配置。
③编写相应的action类,其中涉及到业务逻辑的处理等。
④配置action类,在strtus的配置文件中配置已经编写好的action类。
在该配置文件中可以有多个action,每一个action类中可以有多个方法,其中的result中的name对应着该类中的返回值。
为一个字符串类型对应着相应的跳转页面。
在本系统中有着严格的权限控制,其主要功能是由拦截器实现的,本系统通过自定义的拦截器来实现权限控制。
本系统的字符编码等是由filter拦截器来实现的。
Filter拦截器原理:
所有来自浏览器的请求和服务器的响应都会先经过filter类的拦截,因此可以在该类中对request、response对象的属性进行相应的属性设置。
Struts的运行原理:
对于每一个来自页面的请求,都会被Struts的核心控制器截获进而转向相应的action类进行处理。
在执行action类中的方法之前,strtus会创建一个代理类对象并将相应的对象添加到值栈中,在实例化该代理类时将相应的值赋给对象。
这样在相应的展示页面就可以使用strtus提供的标签获得相应对象的属性值。
Struts与spring的整合:
将上述编写好的action类交由spring来管理,具体的做法是在spring的配置文件中使用bean标签的id和class两个属性来指定其相对应的action和其所在的java类。
这样就避免了手动new对象的过程。
极大地提高开发的效率。
5.3各个功能模块的设计与实现
5.3.1用户注册
学生用户在进入本系统时需要在浏览器地址栏输入地址
http:
//127.0.0.1:
8080/zxdy/index.jsp时,该请求会被相应的action截获,该action会自动获取数据库中的所有的提问信息,并将其封装处理之后自动跳转至主显示页面显示,如果浏览器不支持自动跳转则需要用户手动的点击超链接跳转至主显示页面。
该信息不管你是否为该系统的用户都可以看见。
图5.4主页面
图5.5提示页面
如图5.4与5.5所示,主显示页面,该页面有登录和注册按钮,当用户点击注册按钮跳转至注册页面。
注册页面,如图5.6所示。
其中需要注册的信息有用户名、密码、及邮箱等信息。
在该注册页面,带*号的为必填的项目,为了使用户的信息合法有效,该页面采用ajax技术实现的验证,可以实时的检验您的注册信息如图5.7所示。
该种做法可以减少与数据库之间的交互次数,提高系统的运行效率。
该页面中还设置有验证码输入框,对于需要注册的用户在提交用户信息之前,必须填写验证码。
此项措施的目的在于防止别有用心之人恶意注册。
图5.6注册页面
图5.7注册验证图
只有当填写的所有注册信息符合要求时,才会跳转至注册成功页面。
如图5.8所示:
图5.8注册成功提示图
否则,跳转至注册失败页面。
图5.9注册失败提示图
5.3.2用户登录
当在主显示页面点击用户登录时,跳转至登录页面。
该页面主要有用户名、密码、验证码三部分组成,采用验证码主要是为了防止恶意破解个人密码的情况发生。
只有输入正确的用户名、和相匹配的密码、以及正确的验证码才能跳转至成功登录后的页面。
用户名、密码、验证码三者缺一不可。
页面如图5.10所示。
图5.10登录页面
当填写完登录信息点击登录按钮之后,若登录信息与后台数据库中存储的数据吻合时,即进入登录成功页面。
登录成功后,系统会将用户的信息放置在session中,在页面中可以从session中获取用户信息进行显示。
如图5.11所示登录成功后,从用户session中获取用户名在页面进行显示。
图5.11主页面显示图
若登录信息不正确,则跳转至登录错误页面。
图5.12登录失败提示图
在主显示页面中,还可以根据不同的选项来查询相关的课程信息。
该查询功能可以按课程名和课程编号来查询,并且支持模糊查询。
如下图所示按照课程名字查找。
图5.13搜索操作演示图
查找到的结果,如下图所示。
图5.14搜索结果图
5