主页 > 案例大全 >

论文案例大全-基于J2EE的网上在线答疑系统

2021-03-24 16:07


   当下,网页开发技术日新月异,在此基础上诞生的面向广大师生群体的答疑平台逐渐崭露头角。这样,在题目的回答速度有所提高的同时,人力资源的压力也得到了有效的缓解。本章节为绪论,将首先简述该系统建立的各方背景,在此基础上,指出本文的研究意义及内容,从而厘清全文的行文思路。

 
  1.1开发背景
 
  由于信息时代的网络普及更加广泛,人们处理事务也会更加方便。利用网络来进行生活和工作间的交流再平常不过。与此同时,互联网的快速发展也使得"远程教学"这一观念成为可触碰的现实。为了在其他空余时间补上教学内容,不少学校都增添了“网上远程授课”这一形式。然而,远程授课一定会伴随着师生沟通和解决学习困难等问题的出现,如此便需要在线答疑系统来减少人力资源成本,从而有效增进学生和教师之间的交流,进而有效提升教学质量[1]。
 
  1.2研究意义
 
  得益于中国当今教育水平的飞速提升,越来越多的人成为教育的受益者,更多学生的出现以及更多对知识的需求使得线下当面授课解惑变得愈发困难,时间上和空间上也很难满足所有人的所需,在这个背景下,网络教育成为了新的焦点。
 
  作为网络教育的一个重要环节,线下教育中的答疑解惑的方式转变为线上授课的方式,同时增加师生间的互动。该系统通过网上交流形式,成功缓解了学生询问老师问题时的胆怯和尴尬,让师生间的交流更加频繁。网上回答学生提问的设想初衷,是希望能够让师生之间的距离更近,减少传统教育中可能面临的拘谨和尴尬问题,同时为课堂增添了一丝趣味性,同时搭建了学生与老师之间沟通的桥梁,老师们也能够通过网上授课期间的交流更加了解学生在学习上遇到的重难点并加以总结。本次设计实现的网上在线答疑系统不仅能促进学习,也能为现代教育行业的发展献出一份力。
 
  1.3研究内容
 
  在线答疑系统的设计与实现,它有效地从教师和学生的答疑出发,着手优化当前的答疑模式。味了研究该问题,本文作者对诸多校园官方页面进行了细致调研,并且参考了多方的声音,进而完成了一个可以有效实现课堂问答的系统。在该系统下,师生想要回答问题或者是提问,都必须首先在该系统内部注册相关课程才可进行,于是,提问与回答环节都能得到质的提升,从而直观地体现出系统对于师生双方的帮助。
 
  用户在线校园应答系统,主要有三方,即师生双方以及管理员:师生双方在整个体系中处于前端使用者,而管理员则为后端使用者,负责系统的后台维护等工作。管理者首先为系统录入原始信息,接着身为使用者的师生便可以在该系统上注册和登陆。在此基础上,学生们可以进一步地报名所提供的课程,这些课程由管理者事先提供,而学生们则可以在所注册的课程上发布提问或回答。数据接收系统管理员需要生产或享受管理。
 
  上述系统,其前端页面和功能实现分别通过WebStorm和MyEclipe进行编写。实验所使用的服务器为汤姆猫,选取MySQL作为本系统的数据库,选取SpringMVC以及MyBatis作为本系统的主要开发框架,选择了Java作为本软件的系统层面的开发平台,并选取了MVC模式进行开发,以期在轻盈和稳定之间取得合理的均衡。此外,值得一提的是,该系统无论在软件还是硬件层面的需求均不高,从而即便在Windows7系列系统下,也能够轻松获得轻盈迅捷的使用体验,且加之明晰而便于理解的操作逻辑,使得本系统十分方便后端操作。
 
  1.4论文章节安排
 
  本文在权衡各部分内容后,将正文划分为七个主要章节,以期能对前文所述的系统有明晰而细致的说明。各个部分所包含内容分别为:
 
  第一章:绪论。该章节为全文的统领,将首先简述该系统建立的各方背景,在此基础上,指出本文的研究意义及内容,从而厘清全文的行文思路。
 
  第二章:开发平台与技术。该章节为所论述系统的基础,对本文所采取的各类软件和平台等进行了全面概述。
 
  第三章:系统需求分析。该章节对于系统的需求方进行了分析,主要包括作为使用前端的师生方和作为后方的管理方。
 
  第四章:系统总体设计。该章节是从宏观角度对该系统进行设计,具体包括了建筑、数据库等多种角度和层面。
 
  第五章:系统功能实现。该章节是本文的核心部分,对系统具体实现方式和流程进行了较为翔实的叙述。
 
  第六章:系统测试。基于前述系统,该章节首先讲述了进行测试的目的和意义,并对系统进行了实际的测试,并将实际完成结果列举了出来。
 
  第七章:总结。基于前文所述的测试结果,本章节进行了有针对性的总结,并对相关平台的技术型研究提供了较有针对性的发散性的思考。
 
  2开发平台与技术
 
  2.1开发平台
 
  计算机硬件:普通家用电脑,Intel酷睿i7-6700HQ@2.60GHz4核CPU,三星16G内存,128GB固态硬盘
 
  操作系统:Windows10
 
  开发环境:MyEclipse
 
  网页服务器:汤姆猫
 
  数据库:MySQL
 
  2.2开发工具
 
  2.2.1WebStorm
 
  作为Web前端页面的主力开发手段,WebStorm同时具备了便捷和强大两种属性:仅需要使用者学会html和JavaScript语言,并且能够熟练使用css样式,便能够方便地使用该平台进行开发。而同时,其所具备的代码调试功能也使得开发者能够通过各类浏览器来研究实际效果,这使得兼容性问题的相关测试得到了很好的解决。此外,WebStorm还具备代码提示的功能,该功能在程序员实际的使用过程中也颇受好评。在本文中,作者使用该软化进行页面开发,极大地加快了开发速度。
 
  2.2.2Myeclipse
 
  MyEclipse是一款面向企业的平台,其底层来自于Eclipse。该平台的优势在于易于编译与开发,尤其是在数据库的发布等方面,更是能够和企业的各类服务器进行很好的结合,从而取得更佳的工作效率。MyEclipse能够很好的整合JavaEE以及相关的从编码到最终发布等多个流程,同时还对包括HTML、SQL以及CSS等在内的八种语言提供了很好得支持,总的来说,该平台作为开发软件十分合适,且其对各类多技术都有非常好的支持,使得其备受开发者的好评。
 
  2.2.3MySQL
 
  这是一个备受瞩目的数据库系统,MySQL的使用十分广泛,该系统诞生在瑞典,当下已纳入甲骨文的麾下。MySQL的特色在于,其管理的数据不会统一存储,而是能够被录入许多表里,MySQL采用这种方法来存储它的数据,从而数据的读取更加灵活。此外,MySQL在网页实现方面的优异表现,也使得其成为了广受好评的RDBMS之一,诸多公司官网都采用了该系统进行数据管理[2]。
 
  MySQL具有如下主要特点:首先,它是开源免费的;其次,它能够很好的处理各种大数据;再次,其所支持的标准SQL语言,这使得开发者能够很方便地使用统一化的语言进行基础的维护,同时MySQL也能实现PHP语言进行开发,此外,它对包括C语言在内的多种基础语言也有很好的支持,可谓十分强大。
 
  2.3关键技术及框架
 
  2.3.1JavaScript
 
  JavaScript可谓是当下使用最多的脚本语言,其在诸多网站上都有十分深度的使用,基于Java开发的JavaScript能够很好地兼容多种浏览器,能够轻松实现包括页面优化在内的多种流程,且其能够置入HTML中,从而很方便开发者在页面进行调控,且其"自定义"用户的浏览器,使web更加用户友好和用户友好。
 
  2.3.2Java
 
  诞生于上世纪九十年代的Java时至今日依然展现出极强的生命力,Java一词包含了基本的语言以及其编写平台,是一个具备了跨平台能力的页面开发软件。
 
  Java的编写平台由两部分组成,分别是其虚拟机,和其API。Java的语言同时具备了编译和解释两种形态,也就是说,程序员仅需对之进行1次编译,那么之后所有流程Java都可以自行进行解释。得益于其广适性,Java无论在哪个平台,皆仅需进行1次编译即可。当前最新的Java语言为Java2,其中囊括了三种版本,具体包括:J2ME,这是其面向嵌入式系统的micro版本;J2EE,这是其面向开发分布式的企业版,诸多电商官网均采取了该版本;J2SE则是其面向各类普通电子平台的基本款。
 
  2.3.3SpringMVC框架
 
  本文所采用的SpringMVC是一种常见的框架。其中,MVC三个字母分别为model、view和controller的缩写,即意味着该框架可以实现各类业务处理,将服务器到终端的数据走向进行展示,并能够将终端的请求变为展现在模型上的操作。任何通过该框架的Output以及Input等指令,它均可以清晰地辨别,各方相对独立,也正是因此,该框架得到了无数开发者的青睐,并经常选作页面开发软件。
 
  而本文所使用的SpringMVC,则一个相对新颖的框架,是一个能将页面开发设计的“请求-响应”进行实现的框架,SpringMVC相较于大部分框架来说十分轻盈,且由于采取了MVC的框架,页面层的职能分离也能够轻松实现。
 
  SpringMVC主要优点如下:首先,该框架不会和Spring产生不兼容,其次,该框架在保障轻盈的同时,还拥有比Struts2更加可靠安全的性能。
 
  2.3.4MyBatis框架
 
  该框架的诞生略有渊源,其产生于apache旗下的开源项目iBatis,后该框架被划入谷歌名下,被正式命名为MyBatis。MyBatis的出现使得以JDBC为代表的诸多与参数相关的结果集得到了有效的缓解。此外,该框架能够很好地支持各类数据库的定制化以及数据读写等流程,得益于其在数据库上的诸多功能,开发者能够通过数据库语句在该框架的基础上实现不少功能。
 
  该框架作为前代的继任者,具备了很多更新颖的特性:首先,其接口可以自动生成,为开发者节约了时间和经历,其次,该框架成功地加快了对象关系映射的速度,再次,其所引入的新式表达式有效地减少了干扰项的影响。
 
  
 
  3系统需求分析
 
  顾名思义,该分析可以综合相关的调研信息来实现对系统的各个需求方的信息整合和分类。符合B/S模式,校园应答系统的开发,以满足Q的基于教师和学生之间的需求。本系统的主要受众为高等教育中的教师和学生群体,本文以这两个群体作为研究的起点,分别研究他们对于线上答疑解惑功能的需求量,并力图把握他们的痛点。
 
  3.1性能需求
 
  本文所设计的平台的B线的开发/S模式为主,故而具备优异的易使用、易管理的特点。此外,因为本系统的各类新增功能和扩展以及维护等工作均实现于服务器端,故而仅需在网页上进行浏览就能体验到到新版的系统。可以说,本系统具备非常优秀的扩展性。此外,在UI设计上,作者也颇费心思地为其设计了一套易于师生使用的UI,以便各方能在使用的过程中能有轻松便捷的体验。
 
  3.2功能需求
 
  通过对现有网站的调查和访问教师和学生,可以清楚地看到使用者分别是前段的师生以及后端的管理者。根据这一分类方法,可进行如下界定:即以师生二者为主的前端使用者,和以管理者为主的后端使用者。下面将依照该分类对二者分别进行叙述。
 
  (1)学生群体的需求
 
  作为校园中的主体,学生群体也是本平台最直接的受众,学生群体能够在本平台进行如下操作:
 
  注册和登录:学生们能够在本平台通过既定的方式通过注册流程来实现拥有一个可登入平台的账号。
 
  编辑个人信息:学生在完成上述操作后,便可以编辑自己的信息。
 
  编辑密码:学生被赋予了自己主动修改登入密码的权限。
 
  课程报名:学生群体在走完注册和登入的流程以后,学生可以在该系统上查看自己可报名的课程,然后根据自身需求报名课程,而报名记录和结果都可在学生自己的管理中心查得。
 
  答题浏览:在前台浏览所有的问题和答案;在前台用户的个人中心检查你的问题。
 
  (2)教师群体的需求
 
  教师也是校园的主要活动方,他们在一定程度上是学生群体的对立面,因而他们同样也是本平台的重点使用者,教师对于系统的使用张家平体现在对学生提问的反馈方面,具体为:
 
  注册和登入:与学生群体一样,教师群体也可以完成既定的流程后,获得登入系统的权限。
 
  编辑个人信息:教师群体在登入本平台后,也可以编辑自身的基本信息。
 
  编辑密码:教师群体可以在平台上不定期修改辑登入密码,从而获取更安全的使用体验。
 
  课程查看:该权限为教师所特有的,教师能够浏览自己的授课课程。
 
  学生管理:教师能够对自己课程名下的学生进行包括删除在内的基本管理,被从课程中除外的学生经过再次报名方可继续正常上课。
 
  查看问答记录:和学生类似,教师也可以在自身的中心浏览相关的问答记录。
 
  问题反馈:针对学生所提出的问题,教师可以进行解答或评价,该功能也可在上述界面实现。
 
  (3)后端管理者需求
 
  本平台中的后端管理者被称为超级管理员,超级管理员具有前者所不具备的部分权限,具体为:
 
  初始化用户密码:超级管理员可将师生账号的密码进行包括恢复初始设定在内的操作。
 
  编辑用户信息:超级管理员能够对本校师生的账号信息进行编辑和初始化操作。
 
  注册账号管理:管理员可以通过后台,对已注册的师生账号进行包括删除在内的基础的管理。
 
  课程管理:通过后台,课程可以被直接加入,也可以实现对课程的包括删改在内的基础管理功能。
 
  4系统总体设计
 
  作者为本平台制定了一套有针对性且切实可行的方案,该方案综合了数据库以及相关管理权限,成功地实现了软件的从宏观到微观的合理把控。
 
  4.1系统设计目标
 
  本软件诞生之初的宗旨,是为了实现师生之间实时的答疑解惑的功能,且该功能无需双方都在校内也可实现。为了方便学生提问,本系统还能依照不同的条件为学生提供有针对性的问答入口,从而也方便教师进行有针对性的回答,就原本设计初衷而言,本软件的存在能够解决教学双方在答疑方面可能存在的不及时问题。
 
  4.2系统架构设计
 
  作者选取了WebStorm,而在功能开发方面则选取了免费的MyEclipse以及Tomcat,其开源的特性使得开发更为方便。本文选取了SpringMVC,同时辅以MyBatis作框架,将MySQL作为基础数据库,并使用了被广泛接受的Java语言来编写。在页面的设计方面,本文采取了JSP的方式,并辅以JavaScript进行动态渲染。
 
  4.3软件功能设计
 
  本软件为主要受众提供了不尽相同的操作权限,具体为:
 
  (1)面向学生群体的功能
 
  注册和登录:这是账户系统的基础,师生首先需要通过注册流程才可以使用该系统,实际上,注册系统也是一次简单的筛选,唯有目标师生才能成功注册。师生想要注册,需要提供学号等信息,系统依次判断注册者是否符合注册标准,从而完成筛选。
 
  资料修改:学生在系统中所录入的信息包括了学号、姓名等多种信息。这种信息中,联系方式为学生自行填写,其余信息为系统自动获取。
 
  修改密码:为了保障用户数据的安全,系统提供了修改密码的功能以方便学生及时保障信息安全。
 
  报名课程:该功能为基础和本系统的主打功能之一,学生可以在系统中查看自己可以报名的课程,在选定课程以后便可以报名,进而可以在课程中发布问题。报名课程的记录回报留在个人中心里。
 
  问答查看:学生可以通过上述路径,查阅已经发布的问答动态。
 
  回答问题:同样是在报名课程后,学生群体方可获得回答问题的资格。
 
  (2)面向教师群体的功能
 
  注册和登录:与学生用户相同,教师用户也需要首先通过注册才能够使用系统,教师可采用身份证或者工号进行注册和登录。
 
  个人信息编辑:教师所提供的的个人信息也包含了工号等在内的信息,与学生用户相同,教师用户也可以通过该功能对联系方式进行编辑。
 
  修改密码:处于安全问题的考量,教师也可以及时修改密码。
 
  课程查看:在个人中心查看来自管理员指定的教授课程。
 
  学生管理:该功能是学生用户所没有的,注册教师可通过该功能查看自身参与的课程中所报名的学生列表,并可以对学生进行包括删除在内的基本的管理。被从课程中删除的学生不能参与课程的问答,必须再度报名方可重新参与。
 
  问答查看:教师用户可以通过个人中心的路径浏览与自身相关的学生问答记录。
 
  回答问题:教师们被赋予了回答学生提问的权限,但是所回答的问题仅限于自身所教授的课程。
 
  (3)面向管理员群体的功能
 
  密码修改:后端管理员能够直接对注册师生的账号的密码进行修改。
 
  用户信息管理:用户信息管理:除了初始化前端使用者的密码以外,管理者还可以通过本软件的后台,对校内的师生的个人信息进行直接编辑。唯有将相关数据录入系统,对应师生方可正常注册、登陆和使用。
 
  用户管理:管理员可以通过系统将在系统中录入的师生的信息进行包括删除在内的一系列操作,而被管理者从后台剔除的用户,需要重新注册方可正常使用。
 
  课程管理:后台管理能够发布和删改课程,并将分配相关的教师。
 
  管理问答记录:超级管理员能够浏览、剔除前端所产生的问答记录。
 
  4.3.1系统总体结构
 
  本系统所对应的使用者三方均具备不同的身份,故其在该系统各个流程方面操作的逻辑也不尽相同,故针对三者,系统会提供不同的基本流程和处理方式。在对各方需求进行研究之后,本系统分别为三者设立了三种不同的模块,例如,师生的各类操作被划分为从注册到回答问题等流畅的过程。从宏观角度看,该系统大致可用下述流程描述:
 
  图4-1系统总体模块图
 
  4.3.2前台学生功能模块
 
  学生在使用该系统时,主要是浏览可选课程并报名以及提问和回答问题,在这之前还有一个注册和登录的基础前提。此外,学生还需要对自己的基本信息进行编辑,或者修改自己的登录密码等。总的来说,可以对学生群体进行大致的描述:
 
  图4-2面向学生群体的功能模块图
 
  4.3.3前台教师功能模块
 
  教师用户在该系统中被赋予了比学生用户更多和繁杂的权限除了浏览课程以及提问和回答问题以外,教师用户不仅仅需要先完成注册和登录这一基础环节,还需要获取后台管理员的授权方可进行提问和回答问题。此外,教师用户也能够对自身的基本信息和密码进行不定期的修改,同时,还可以剔除所教授课程里的学生。
 
  图4-3面向教师群体的功能模块图
 
论文案例大全-基于J2EE的网上在线答疑系统
  4.3.4后端超级管理员功能模块
 
  超级管理员是本平台后端的主要操作者,具备比前两者用户更深入而直接的权限,包括了对注册用户基础信息的管理以及对所发布提问的管理等在内的多种权限。管理者能够在系统中录入师生的原始信息,能够为相关教师分配课程,从而教师能够在系统中成为任课教师并发布问题和回答学生提问等。值得一提的是,由于问答的具体内容均由前端的师生所产生,故后端管理员仅能对该记录进行删除而不能增改。同时,管理者也能对自身的密码等基本信息进行不定期的修改,以维持安全性。总的来说,可以做出如下描述:
 
  图4-4超级管理员功能模块构成图
 
  4.3.5用户的注册和登录
 
  若非登录用户,则系统判定其为游客账户,游客账户需要首先注册方可使用系统。注册阶段包括填写用户名、设立密码等基础环节。在这其中,注册所使用的用户名需为已事先在系统中录入了原始信息的人才可正常注册。上述流程可画成下图:
 
  图4-5用户注册和登录的流程图
 
  4.3.6师生用户实际使用流程
 
  在师生们使用本平台并准备执行注册操作时,软件将首先对使用者是否登录进行判断,由此区分游客账户和登录账户。游客账户不能进行包括提问等在内的操作,但是可以浏览各类已发布的课程,以及对问答进行查看。仅当使用者成功登入本平台,方可查看发布上去的课程列表,此外,在登入了的使用者执行发问、回答等操作时,系统将进行一次是否登录的判断。此外,对于教师用户,需要系统判定为教师身份时,方可进行包括提问和回复等在内的基本功能。上述流程可画为下图:
 
  图4-6师生用户实际使用流程图
 
  4.3.7超级管理员发布课程流程
 
  注册账户了的学生群体若想要报名课程、教师若想要发布课程,都需要后台的管理者事先将课程发布在系统上。每一个课程都有一个属于自己的识别码,此外,后台系统需要将任课教师权限分配给制定课程,在此期间,系统将首先对教师身份通过其登录账号进行一次识别,而后方可将课程上传至平台成功。上述流程可画为下图:
 
  图4-7超级管理员发布课程流程图
 
  4.4数据库设计
 
  4.4.1数据库概念结构设计
 
  所谓设计,整体来说就是为达成某项指标,把目标进行数据化,从而实现将其通过机器语言进行调控的的模型。E-R图是一种常用来设计概念结构的工具。
 
  E-R图中的E和R分别为英文Entity和Relationship的缩写,意即将现实目标联系起来的手段,E-R图是多种概念模型之一,其采取了图形化进行表述,基于该理论,该系统可描述如下:
 
  (1)平台E-R可以画为:
 
  图4-8平台E-R图
 
  (2)原始前端使用者的实体属性可画为:
 
  图4-9原始前端使用者实体的属性图
 
  (3)系统用户的实体属性可画为:
 
  图4-10用户实体的属性图
 
  (4)系统所发布的实体属性可画为:
 
  图4-11课程实体的属性图
 
  (5)“学生-课程”程实体的关联属性可画为:
 
  图4-12“学生-课程”实体关联的属性图
 
  (6)提问囊括的实体属性可画为:
 
  图4-13提问实体的属性图
 
  (7)回答囊括的实体属性可画为:
 
  图4-14回答实体属性图
 
  4.4.2数据库逻辑结构设计
 
  本软件在方面的具体逻辑是:把上述的E-R图录入关系模型并对之进行优化,这其中的E-R图独立于数据模型之外,无法被DBMS所识别,故中心流程为想办法将其变成可识别的模型。于是将系统功能纳入考量范围,并列举了6个图表以展现其中的数据存储和调用的相关关系,具体分别为:
 
  (1)包含id(即学生的工号或者教师的工号)、名称、身份(包含教师、学生和管理员三种)和性别在内的前端使用者的原始信息表。
 
  (2)包含编号(将由系统自动生成)、名称、工号、密码、联系方式、id编码、注册时间、性别等在内的使用者的个人信息表。
 
  (3)包含课程编码(将由系统自动生成)、名称及对应id、课程概略、任课教师姓名及其id、编号、课程创建时间等在内的课程的基本信息表格。
 
  (4)包含学生-课程编号(将由系统自动生成)及对应id、任课教师姓名、课程名称及其对应编码、学生姓名及对应id、报名时间、任课教师id的学生-课程信息表。
 
  (5)包含所提问的编号、标题、详情、提问者姓名及其id、提出时间、对应课程名称及其id、编号(将由系统自动生成)以及问题现状(将显示问题是否被教师批阅或回答)等信息在内的问题信息表格。
 
  (6)包含回答编号(将由系统自动生成)及内容、对应教师姓名及其id、回答时间、对应问题编号等信息在内的回答信息表格。
 
  4.4.3数据库物理结构设计
 
  (1)stu_tea_info(使用者原始信息表),该语句用于检测游客注册阶段时,判别其身份(学生或教师)用的。具体如下:
 
  表4-1使用者原始信息表
 
  字段 Null 主键 含义
 
  Id 学号或工号
 
  Name 姓名
 
  Role 身份
 
  Sex 性别
 
  (2)user(用户的详情信息表),记录用户注册时的信息。具体如下:
 
  表4-2用户的详情信息表
 
  字段 Null 主键 含义
 
  pkUser 用户id
 
  userName 姓名
 
  userCode 学号或工号
 
  passord 密码
 
  telNumber 手机号码
 
  roleId 身份
 
  createDate 用户创建时间
 
  sex 性别
 
  (3)an_course(课程的详情信息表),主要记录课程信息。具体如下:
 
  表4-3课程的详情信息表
 
  字段 Null 主键 含义
 
  pkCourse 课程编号
 
  courseName 课程名
 
  courseId 课程id
 
  courseDescribe 课程描述
 
  courseTeaName 授课老师名
 
  courseTeaId 授课老师工号
 
  courseTeaPk 授课老师编号
 
  createDate 课程创建时间
 
  (4)stu-course-rela(学生-课程信息表),记录学生与课程之间的关联,具体如下:
 
  表4-4学生-课程信息表
 
  字段 Null 主键 含义
 
  pkStuCourseRela 编号
 
  courseId 课程id
 
  courseTeaName 授课老师名
 
  courseName 课程名
 
  pkCourse 课程编号
 
  userCode 学号
 
  userName 学生名
 
  createDate 课程报名时间
 
  courseTeaId 授课老师的工号
 
  (5)an_question(学生提问表),记录学生提的问题。具体如下:
 
  表4-5学生提问表
 
  字段 Null 主键 含义
 
  pkQuestion 问题编号
 
  questionTitle 问题标题
 
  questionContent 问题内容
 
  questioner 回答老师名
 
  questionerId 回答老师工号
 
  createDate 问题创建时间
 
  courseName 课程名
 
  courseId 课程id
 
  pkCourse 课程编号
 
  status 回答状态
 
  (6)an_question(教师回答表),记录教师对于问题的回答。具体如下:
 
  表4-6教师回答表
 
  字段 Null 主键 含义
 
  pkAnswer 回答编号
 
  answerContent 回答内容
 
  answerName 授课老师名
 
  answerId 回答老师工号
 
  createDate 回答创建时间
 
  pkQuestion 问题编号
 
  4.5平台页面设计
 
  该平台下,教师和学生群体均为前端使用者,故其UI等设计能够直接影响受众对象对本平台的感受。因此,本文作者对各方的需求进行了研究,并有针对性地对首页等重要界面的UI进行了悉心设计。
 
  4.5.1网站首页
 
  在分析了各方需求以后,本文认为,平台首页以及较前的页面需要配备包括注册、登录等入口在内的基础设置。教师和学生群体作为前端使用者,会对课程提问等相关功能有更多需求,故本平台在首页配备了相关课程的信息,并同时提供了包括报名和上课等常用功能的按钮。UI是使用者对一个平台最直观感受的来源,不合适的UI会致使使用者感到厌恶。本平台采用了简洁的设计,以期能让使用者能感受到便捷而精准地使用体验。
 
  4.5.2问题列表页
 
  该页面为除却平台首页以外最重要的展示页面,该页面将展示学生的提问以及教师的解答或批阅,且能够依照课程进行分类,从而便于使用。该界面同时设计有进入对应课程的按钮,并且采取了明晰而简约的方式将每一条信息罗列出来,不仅方便使用者操作,更容易激发学生翻阅的热情。
 
  4.5.3问题详情页
 
  每一个学生的问答记录都能产生一条问题详情信息,故对于问题详情,也需要专门设置一个界面来展示,并且在这个界面上展示关于该问题相关的发散性按钮。从而便于师生透彻学习。
 
  4.5.4学生个人中心页
 
  个人中心是每个使用者的个人专属界面,对于学生使用者,该界面将展示包括个人信息、课程、提问以及密码等在内的四大类主要入口,并采取左右分布的设计,出发左侧入口,便可以进入右侧详情。
 
  4.5.5老师个人中心页
 
  与学生的类似,教师的该界面比学生的有所增改,除了资料、密码、课程以外,教师的比学生增加了学生名单、待回答、已回答三个入口。从整体布局而言,气操作逻辑和学生版并无差异。
 
  5系统功能实现
 
  5.1前台模块
 
  该部分将对平台从前端和后端两方面做详细介绍。其中前端包含了注册、登陆、报名、问答等环节,后端包含了用户信息管理、问答信息管理等环节。下面将具体展开叙述。
 
  5.1.1用户注册模块
 
  对系统而言,尚未登陆的用户被归类为“游客账户”,唯有经过注册方可成为正式用户。在使用者注册时,会被要求提供个人id,并要求为账号设置登入系统的密码。上述实际操作界面如下:
 
  图5-1注册界面
 
  在使用者在注册界面录入数据后,出发“注册”入口的同时,平台会首先使用register()来对用户名与所设置的密码进行非空判断,以及所设置密码和再次输入的密码相同与否的判断。如果使用者所键入的用户名和密码不合所设定的格式,即密码为空或者再次键入的内容和首次键入的有差异,那么就会注册失败,且弹窗。而如果无差异,系统将会采用register()来调用controller层的register()。在该逻辑下,系统将先依照使用者所键入的id和系统后台所具备的数据进行比对,来确认使用者是否本校实际人员,如果匹配到了,则提示已被注册,否则进行下一步,将使用者所键入的id和系统后天事先录入的原始数据进行比对,如果匹配的到,那么系统中的该使用者的原始数据将被记入,并弹窗“成功”,否则将弹窗“请用学号或工号注册!”的字样。
 
  5.1.2使用者登录模块
 
  在该模块的作用下,游客账户(即尚未注册的使用者)对所发布的课程以及提问等内容仅可进行查看。使用者登入系统后,便可以针对个人信息与课程等内容进行互动。本平台的登入界面如下图:
 
  图5-2登录界面
 
  在使用者完成基本信息的键入,并触发登入的入口时,本平台将首先调用checkuserform()来对使用当前所键入的用户名和密码进行非空判断以及对应格式的判断。假使二者不匹配,又或者密码格式有误,则会显示错误,而如果无误,则checkuserform()会调用controller层的dologin()。在此流程下,平台会先将使用者所键入的id与系统后天所记录的id列表进行比对,如果不存在的话,就会报错,否则进行密码正误的判断,如果有误就无法登入并弹窗,而如果无误就可以正常登入。
 
  5.1.3面向学生的课程报名模块
 
  学生在完成了前述流程后便可以进入报名的流程,在该部分的作用下,使用本平台的学生仅可在报名了的课程上发问。对于一门课程,一个学生仅能报名1一次,报名成功后,原本的报名入口将会显示为已经报名。具体实现的界面如图所示:
 
  图5-3课程报名界面图
 
  平台界面显示报名入口时,即意味着当前使用者能够报名该课程,而在试哟个女孩则出发报名入口后,该平台将调用js中enroll()方法来对学生的这次操作进行判断,如果未能确认就意味着取消报名,否则平台将进入下一步,即调用controller层的add()方法,把使用者所报名的课程和使用者联系起来,并记录在一起。
 
  5.1.4面向学生的提问模块
 
  在该部分的作用下,学生发问时,系统会首先对该生的报名情况进行判断,报名了的才可正常发问。发问流程所涉及到的内容囊括了学生名、标题、详情与时间等信息都会实时体现在问题列表中。实际界面如图:
 
  图5-4提问界面图
 
  在使用者发问的同时,该平台将使用controller层的checkAuthor()对进行本次操作的使用者进行权限判断。不过,值得一提的是,该系统在进行权限判定的时候,无论对于学生还是教师用户都是通过该方法的,故在此之前还需要先对使用者身份进行一次判断,判定成功方可获取该生的id以及该课程的id,进而获取其课程信息。如果匹配到该生的课程信息,就意味着这位学生报名了该课程,从而能够发问,同时界面会显示输入界面,否则将提示报名。
 
  5.1.5回复模块
 
  与上述类似,任课教师仅能回答对应课程的学生提问,因此,在执行回答流程时,本平台会首先对操作者的身份进行一次核实。具体实现界面如图:
 
  图5-5回答界面图
 
  在进行该操作时,本平台同样也采取checkAuthor(),以此实现对学生提问者身份的判别。而无论教师还是学生,回答流程皆采取Controller层的add(),在该指令下,用户做出回答后,用户信息、回答信息等内容豆浆杯记录在回答表中。此外,对于教师回答,该指令还可使问题的回具体状态进行及时的更新。
 
  5.2后端管理员模块
 
  5.2.1使用者原始信息管理模块
 
  在该模块的运作下,前端使用者的信息能够被后台管理者进行增减。
 
  (1)添加师生原始信息
 
  学生和教师的信息需要首先被事先录入系统后台,这样在范围内的使用者在按照规定注册时,才能够成功匹配并完成注册。上述流程的实际使用界面为:
 
  图5-6添加时使用者原始信息的界面图
 
  后端的超级管理员首先进入原始信息的编辑界面,并触发添加入口,该入口会调用postData(oper)方法,并通过赋予oper以add的方式,实现该入口被触发时反馈添加操作。而后,该指令会再调用controller层的addOrUpdate()方法实现添加,在该方法下,名称非空的检验将首先被执行,如果该项是空的,就会向JSP返回状态“4”,而JSP则可以依照该状态向使用这反馈出名称不能为空的警示,并结束该流程。而反之,如果名称不空,那么将继续按照该方法对id部分进行判断,如果id部分是空的则会提示不许为空的警示并结束该流程,而如果id部分不为空,就可以继续将所键入的id信息和后台的原始数据库进行比对。如果比对成功,即表示原始信息中有该用户,那么就可以反馈用户已注册的警示,闭结束该流程。而反之,如果比对不成功,则意味着可以注册,那么系统会把所键入的信息录入原始信息里,且向使用者做出注册成功的警示。具体编码如下述:
 
  (2)修改使用者的原始信息
 
  后台管理者能够实时观测到注册的数据更新,对于前端使用者而言,登入平台即可在个人中心查看自身的相关数据,但是对于尚未注册的人而言,其数据如果产生了变动,就必须采取用变动后的信息来注册平台。上述操作的实际界面为:
 
  图5-7修改使用者的原始信息界面图
 
  该操作的主体是对addOrUpdate()的调用。该方法将首先获取用户原始数据,并进入update流程,从而变动后的数据得以被录入原始数据中。值得一提的是,该方法之所以能够进入update流程,是由于JSP所提供的action值正是此,故在该段代码会在添加、操作所共用的这个方法中,对二者进行一次区分的判定。
 
  (3)剔除使用者的原始信息
 
  被超级管理员剔除了原始信息的使用者不能够继续登入该平台,同时也不能再度注册。而此时依然尚未注册的用户也依然不能注册。
 
  如果被后端所删除了原始信息的是已注册了的师生,那么删除信息不会对其产生影响,这是由于已注册了的使用者的信息将被保存在用户列表里,而其对系统的操作仅会对其他表产生影响,和用户的原始数据并无关联。但是,如果是将尚未注册的师生信息删除了,那么被删除信息的师生就不能给使用其id进行注册,仅能通过后端将其原始信息重新添加,方可正常注册。实际实现界面如图:
 
  图5-8删除师生原始信息界面图
 
  后端的原始信息界面通过js调用相关java文件,java文件根据queryList()的途径,获取到所需要的用户的原始信息,并把该结果显示在该界面上。在从后端将用户原始信息删除后,本平台将用户id作为查询字段,调用sql语句来把对应的数据从原始信息表中剔除。
 
  5.2.2管理员管理使用者账户模块
 
  后台管理者能够对已注册的使用者账号进行包括取消其登入在内的管理,并凭借此杜绝使用者账号被盗登时产生的风险。被从后台删除的账户,其使用者必须再次注册,方可恢复登入平台。实际显示如图:
 
  图5-9删除用户界面图
 
  后台人员在平台内部触发学生或者教师列表的入口,与此同时,本平台会使用js调用java文件,该文件能够依照所提供的账号id找出全体目标使用者,并把该结果返回和反馈给后台人员。后台人员在进行删除账户的操作的时候,本平台能够依照所提供的对应账户id来调用sql语句来实现该功能。
 
  5.2.3课程管理模块
 
  课程的发布与编辑等功能是交由后端的超级管理员实现的。
 
  (1)发布课程
 
  超级管理员在平台上发布课程的同时,还可以为其分配特定的任课教师。课程发布之后,学生方可报名课程和发问,而教师则可以对自己的课堂中的学生提问进解答。上述操作的实际界面为:
 
  图5-10发布课程界面图
 
  超级管理员在触发发布课程的入口的同时,本系统将采取postData(oper),且其中的oper的参数值是add,意即增加。同时,该语句会调用controller层中的add()以实现发布课程的目的。add()方法会先对所键入的课程编号进行非空检验,如果所键入的编号是空,就会返回状态“2”至JSP,同时JSP将依照该状态反馈出该编号不能为空的警示,并结束该流程。而反之,如果所键入的编号不空,系统就会进一步对教师的工号进行非空检验。如果该号为空,那么便会反馈出许为空的警示,并结束该流程。而反之,如果该号不空,那么将进一步判断账号列表里有无对于教师的信息。如果没有,那么就会反馈出该号不存在的警示,并结束该流程。而反之,如果有的话,同就会把对应教师的信息存进po对象里。此外,本系统也能对课程里有无已存在的课程编号进行判别,如果有的话,系统就会反馈出该号已经存在的警示,并结束该流程。而反之,如果没有的话,系统就会把po对象里的课程和教师的相关信息录进对应的表里。
 
  (2)对已发布课程进行编辑
 
  后台人员能够对已发布的课程的简介进行编辑。编辑完成后,本平台的包括首页、个人中心等在内的前端界面将能够体现出来。该功能的实际界面如图:
 
  图5-11对已发布的课程进行编辑界面图
 
  超级管理员在编辑课程的简介后,本平台的前端也会实时进行追踪记录。
 
  (3)对已发布的课程进行删除操作
 
  后台人员能够对已发布的课程进行删除操作,该操作执行时,所涉及的学生、教师、课程及其问题和回答都会被一并删除。该流程的实际界面如下:
 
  图5-12对已发布的课程进行删除界面图
 
  后台人员对已发布的课程进行删除操作时,本平台将调用del(),该语句在实际运作中,会首先依照超级管理员从后端键入的课程编号来搜索报名了该课程的学生列表,如果搜索到了,那么系统就会循环查询每一个“学生-课程关系”表中的编号,然后依照其实现对对应学生信息的删除。在此之后,系统就会依照课程编号继续搜索对应的提问的信息。如果有,那么系统就会在该删除提问信息的循环里,首先比照提问编号将其名下全部信息清空,然后依照提问编号循环清空提问信息。在完成上述流程后,本系统会把所键入的课程编号所对应的数据清空。从而实现删除已发布了的课程的功能。
 
  5.2.4已发布的问题管理模块
 
  由于本平台中的学生用户没有被赋予删改提问的能力,故该功能将由后台人员实现。于是,如果有学生提出了有误或有负面影响的问题,与此同时,后台也能浏览所发布的问题具体内容,那么后台则可以及时进行删改。执行该操作时,所涉及的提问以及其对应内容都将同时被清空。上述操作的实际界面如下:
 
  图5-13删除已发布的问题界面图
 
  超级管理员进行该删除操作,同样采取的是controller层的del(),根据该语段,首先依照所键入的提问编码调用deleteByPrimaryKey(),从而可以实现对相关问题的清空效果。如果能够清除,那么系统会依照“回答”表里的各类编号来使用deleteByExample()方法实现其名下全部回答的清空效果。而如果不能够清楚对应的提问,那么上述语句就不会继续进行。
 
  5.2.5已发布的回答管理模块
 
  同样,和学生用户类似,使用本平台的教师和学生都不能自行对回答进行删改,该功能同样由后台管理者进行操作。后台将对应信息清空时,前端所显示的相关数据也能一并被清楚。该功能的实际界面如图:
 
  图5-14删除回答界面图
 
  后台人员在触发清除的操作时所采取的是controller层中的del()方法,依照问题的编号调用deleteByPrimaryKey()方法来实现对对应信息的清除效果。并且采取cnt变量来展现具体结果,删除成功的话讲cnt赋值为1,否则为-1,依照此可知该语句是否成功执行。
 
  6系统测试
 
  6.1测试目的及意义
 
  该流程可谓是在实际投入使用之前的演练,是展示一个系统整体使用的实际体验的展示,开发者能够从中及时发现相关问题,进而对系统进行修正。本系统整体基于网页开发,因此在测试环节中,对于各个浏览器使用体验也需要进行关注。
 
  6.2功能模块测试
 
  该模块的测试主要采取了黑盒的方法。平台所面向的使用者可分为两类,即前端的师生,以及后端的管理者。下文将依据此分类进行分别叙述。
 
  6.2.1前台模块测试
 
  软件的前端使用者为教师和学生,二者主要通过提问和回答进行互动。本系统依据使用者在该互动中所可能面临的操作做出了分别和详细的实际演练,下面将分别展示结果:
 
  表6-1前端模块测试用例表
 
  测试项目 说明 操作 预期结果 实际结果
 
  注册
 
  &
 
  登入 注册 注册阶段要使用实际id 在使用id时成功,未使用则不然 正常
 
   注册提醒 检验后端有无对应数据 后端实时获取该数据 正常
 
   登入 以已注册和游客id登入 已注册的成功,游客失败 正常
 
  报名 报名 先查看是否为学生id,出发报名入口后将反馈为已报名 唯有使用学生id方可执行该操作,执行后界面有反馈 正常
 
   报名提醒 在教师用户中心检验是否可查看学生的报名情况 教师用户可以查看学生的报名情况 正常
 
  问题 提问 对用户id进行发问权限检验 唯有报名对于课程的学生用户方可发问 正常
 
   提问提醒 检测对应课程及个人中心是否有记录发问相关的数据 都有发问相关的数据的记录 正常
 
  表6-1前台模块测试用例表(续表)
 
  测试项 描述 操作方法 预期结果 实际结果
 
  回答 回答问题 查验执行该操作的用户是否有对应权限 唯有课程名下的师生id方能回答,且能进行数次 正常
 
   回答提醒 检验回答后平台后端是否有对应的记录 问题在得到回答后,师生可以在课程名下的列表、个人中心查看,同时平台后端也会实时记录 正常
 
  个人信息编辑 个人信息编辑 检验用户对基本信息进行包括删改在内的编辑,平台后端是否有实时记录 师生能够对自身的基本信息进行包括删改在内的编辑,同时平台后端将实时记录 正常
 
  密码编辑 编辑密码 查验是否能编辑密码,检验能过凭借此进入平台 使用者可以编辑登入密码,并能够凭次登入平台 正常
 
  6.2.2后台模块测试
 
  本系统的后端使用者是管理人员,他们能够使用后端管理模块对所需要的数据和信息进行录入、编辑和删除。该部分的详细测试结果如下:
 
  表6-2后台模块测试用例表
 
  测试项 描述 操作方法 预期结果 实际结果
 
  原始数据编辑 新增用户原始数据 在对应界面出发新增的入口 在对应界面出发新增的入口将能新增对应数据 正常
 
   编辑用户数据 编辑对应数据,这些数据包括了注册了的和游客 编辑完成。如果编辑了注册了的,会实时录入相关数据 正常
 
   剔除原始数据 能够被剔除的包括注册的和游客 剔除后二者皆不能注册和登入本平台 正常
 
  账号编辑 剔除账号 检验被剔除账号能否登入,检验再次注册后能否进行 被剔除的账号不能登入,再次注册后方可进行 正常
 
  表6-2后台模块测试用例表(续表)
 
  测试项 描述 操作方法 预期结果 实际结果
 
  编辑课程 发布 在对应页面出发发布入口 在对应页面出发发布。发布后指定任课教师。 正常
 
   编辑 检查对课程的简介进行编辑 编辑课程的简介,此时师生所查看的页面也能实时录入 正常
 
   剔除 检查被执行了剔除操作的课程,其名下的包括师生及入口提问数据能否被同时剔除 被执行了剔除操作的课程,其名下的包括师生及提问数据也被同时剔除 正常
 
  问题编辑 剔除 被剔除了发问的那一条数据以及其名下的其他数据是否均被剔除 被剔除了发问的那一条数据以及其名下的其他数据都将被剔除 正常
 
  回复编辑 剔除 是否能针对单个回复内容进行剔除操作 可以针对单个回复内容进行剔除操作 正常
 
  密码编辑 更换账号密码 检查能够编辑使用者的密码等,并凭次进入系统 能过编辑使用者的密码等,并可凭次进入系统 正常
 
  6.3WEB表单测试
 
  表6-3网页表单测试
 
  项目 页面表单测试
 
  目标 检验对应表单是否完整
 
  内容 (1)检验键入内容是否合法
 
   (2)检验键入数值是否在标准内
 
  结果 正常
 
  上述操作实际效果为:
 
  图6-1表单页面中必填项的判断
 
  图6-2表单页面中数据临界值、超界值的反应
 
  6.4浏览器兼容性测试
 
  由于本平台主要将在浏览器中被使用,故需要针对林林总总的浏览器分别进行实验。作者选取了当前国内较为常见和广泛使用的浏览器作为实验标的。下文将分述。
 
  表6-4浏览器兼容性测试
 
  项目 浏览器兼容性测试
 
  目标 检验不同浏览器的使用效果
 
  项目 IE内核:IE11
 
   非IE内核:火狐浏览器、库容浏览器
 
  结果 正常
 
  上述操作实际效果为:
 
  IE11浏览器:
 
  图6-3IE11兼容性测试效果
 
  火狐浏览器:
 
  图6-4火狐兼容性测试效果
 
  谷歌浏览器:
 
  图6-5谷歌兼容性测试效果
 
  结论
 
  本系统编写至今,已经能够将前文所述的功能很好地实现,且其所具备的功能基本能够覆盖正常师生之间提问和回答的互动所需,从这一点来看,已经实现了该项目创立之初的设想。
 
  总体而言,本文从数据库的选取到平台设计以及开发语言和框架的选择,都符合实际工作和使用的需求。在此基础上,作者整理出了该系统的开发所做出的进一步贡献:
 
  首先,作者设立该项目的初衷,是为了进一步解决当下高等教育中师生之间答疑解惑的难点,并期待能从中发现新的解决途径。其次,作者为了实现更加贴近实际使用需求的效果,亲自对高等教育的参与者们进行了实际和深刻的调研,并将调研结果纳入考量范围,再反映在本系统中。再次,本系统为使用者设计了一套简练而易用的UI,从而能够为广大师生提供便捷的使用体验。最后,受限于自身条件,本系统依然有一些包括自定义头像等小功能在内的遗憾。期待作者日后进一步增改。
 
  高等教育中,由于纷繁复杂的教学工作,经常使得学生难以和教师取得和初等教育类似的知识答疑体验,本系统从实际使用需求出发,试图环节该问题,并期能启发后人找出更加更新颖的解决方案。此外,答疑解惑的流程不能满足于一次性回答,更要注重发散性的问答。基于此,作者有两点新的后期开发思路:
 
  第一点,希望问答的形式能够突破传统思维,即不仅仅局限于文字层面。本平台期待能够开发出包括语音和视频等在内的多媒体互动方式,以期为师生提供更明晰和直观的问答体验。另一点,希望本平台能够开发出消息推送的效果,以及对已经回复的内容能做出更进一步的评价或提问。


知网查重福礼


微信扫码关注公众号登录

x
客服QQ 返回顶部