关于Java的课程在线答疑系统
2023-09-08 09:06:15
论文总字数:12346字
摘 要
伴随着互联网及其相关技术的发展,如今的我们早已享受到它的便利快捷的好处。然后,结合再如今大学生存在遇到不懂的东西不能及时咨询相关老师的问题,开发一款提供师生在线问答的平台系统是广大师生所希望的。而本系统就是一个基于Java的在线课程答疑系统,给予师生一个良好开放的课程交流平台。所有的师生在注册并且被审核通过后,可以在这个平台进行相关课程的问答,这可以有效解决以上的问题,即学生遇到问题不能及时咨询相关老师。通过使用这个系统,学生的问题可及时有效地得到回答,对学生的学习生活会有很大的帮助。关键词:大学生,答疑,系统,Java
Abstract:With the development of the Internet and its related technologies, we have already enjoyed its convenience and convenience. Then, combined with that the things the current college students do not know can not be solved timely by the relevant teachers, the development of a platform system to provide online question-and-answer is what teachers and students hope. This system is a java-based online course answering system, giving teachers and students a good open course communication platform. After registration and approval, all teachers and students can ask or answer questions about relevant courses on this platform, which can effectively solve the above problems, that is, students cannot timely consult relevant teachers when they encounter problems. By using this system, students" questions can be answered timely and effectively, which will be of great help to students" study and life.
Keywords:College students, answering questions, the system, Java
目录
1 绪论 4
1.1 课题背景 4
1.2 本文的工作 4
1.3 论文结构与安排 4
2 项目背景 4
2.1 Java简介 4
2.2 前端技术简介 5
2.3 Springboot简介 5
2.4 Mysql简介 5
3 需求分析 5
3.1 可行性分析 5
3.2 系统功能需求分析 6
3.3 系统业务流程分析 6
4 系统结构设计 6
4.1 系统功能设计 6
4.2 系统架构设计 7
4.3 数据库设计 7
5 系统设计与实现 10
5.1 系统流程图与项目详细设计 10
5.2 功能模块设计与实现 13
6 系统测试 15
6.1 测试目的 15
6.2 测试主要内容 15
6.3 步骤和结果 15
6.4 测试结论 22
1 绪论
1.1 课题背景
随着目前互联网不断深入我们的生活,给我们带来了很多便利,毫无疑问,我们现在已经几乎离开不了网络给我们带来的便利。
如今的大学生生活也是如此,网络技术产品无时无刻使之变得方便快捷。而作为一名大学生的我,观察到在日常的学习生过中,遇到一些课程上的问题不能及时有效地得到解决,所以,我觉得开发一个师生在线答疑的系统是符合所有人期待的。开发出的产品也必定可为大家带来些许便利。
1.2 本文的工作
本文主要是讲解所开发的答疑系统及其相关内容,包括所用到的技术的简介、系统的功能以及系统项目方面的具体细节,还有项目测试的展示等。
1.3 论文结构与安排
以下是本文后面章节的安排:
第二章是项目的背景介绍,包含了项目所涉及技术和框架的简介。
第三章是该项目的需求分析,首先对项目的可行性进行分析,然后对该项目的功能需求、业务流程进行分析。
第四章是该项目的系统结构设计的介绍,依次对项目系统的功能、框架以及数据库进行说明。
第五章是系统设计与实现,首先对后端实现进行说明,而后讲解了系统前端的实现。
第六章则是最后的对系统的测试章节,用项目上的截图说明项目运行一切正常,符合最初的系统需求。
2 项目背景
2.1 Java简介
Java是面向对象编程的一门语言,Java不仅仅吸收了C 的各种优点,而且摒弃了C 里面那些难以理解的多继承、指针等东西,所以呢,Java语言就有了功能强大、简单易用的两种特征。Java作为静态的面向对象编程的语言的代表,它很好地实现了面向对象的理论,允许编程发开人员使用优雅的思维方式对代码进行复杂的编程。它具有多线程、简单性、分布式、面向对象、安全性、健壮性、平台独立、可移植性、动态性以及分布式等特点。Java可以用来编写Web应用程序、嵌入式系统、分布式系统桌面应用程序和应用程序等[1]。
2.2 前端技术简介
HTML5: HTML5虽然现在仍然处在发展阶段,但是很大部分的浏览器都已支持一些HTML5的技术。HTML5两大主要的特点:第一,它强化 Web 网页的表现的性能。第二呢,HTML5追加本地数据库等 Web的应用功能。广义地谈及HTML5时,实际是指的是包括了HTML、CSS和java script三种技术在内的一套技术的组合。它自己希望可以减少浏览器对于需要插件的丰富的网络的服务,并且提供了很多可以高效地增强网络应用标准集。
HTML5为了Web标准化发展,有的公司联合起来,成立了 Web Hypertext Application Technology Working Group的组织。WHATWG 致力在 Web 表单和应用程序的领域,但是W3C致力于XHTML2。之后双方决定合作,创建一个新版本的 HTML,于是便出现了现在的HTML5。
在12年12月17日,W3C正式宣布了凝结了很多网络工作者心血的HTML5规范已定稿。根据了W3C发言稿称:“HTML5是开放的Web网络平台奠基石。”
HTML5所支持的浏览器有火狐,IE9及其更高版本,谷歌,Safari等;国内的就有傲游,以及之前推出的360、搜狗、QQ浏览器、猎豹浏览器等浏览器,这些同样都具备支持HTML5的能力[2]。
2.3 Springboot简介
Spring Boot[3]是Pivotal团队所开发的一款框架,这个框架的设计目的是简化新的Spring的应用的初始搭建及其开发过程。这个框架用了一种特别固定的方式队项目进行配置,因此开发者不需要定义固定样式的配置。通过这个方式,SpringBoot在不断发展壮大的快速应用开发领域(rapid application development)成为先锋和主流者[4]。
2.4 Mysql简介
MySQL是一种开源的关系型数据库管理系统(RDBMS),MySQL使用了最常用的数据库管理语言,即结构化查询语言(SQL),进行对数据库的管理。它是开源的,所以所有人都能在General Public License许可之下进行下载并且可以根据个性化的需要对它进行修改。并且它因速度快、可靠性和适应性备受关注。每个人都觉得在不需要处理事务化的情况下,MySQL是用来管理内容的最好选择[5]。
3 需求分析
3.1 可行性分析
在线课程答疑系统,它的主要功能是提供师生一个交流答疑的平台:学生根据自己的疑惑提出自己的问题,老师再根据这些问题作出相应的回答。因为涉及到一定的数据信息的处理和存储,所以需要合适的开发平台,合适的开发环境和合适的开发工具。同时,系统也要具有良好的设计结构,可以保证稳定地运行。基于此,springboot框架就是一个很好的选择[6]。
3.2 系统功能需求分析
根据普通的系统所需要的基本需求,再结合课程在线答疑系统的特有需求,获取了本本系统的基本需求:
(1)注册登录功能:用户注册获取用户信息,并使用户获取登入时所需的权限信息。
(2)用户信息管理:用户可以自主修改自己的个人信息。
(3)数据浏览:用户登陆后可以根据自己的需求来根据条件筛选自己想要看到的课程答疑。
(4)答疑:根据用户身份的不同,他们可以提问或者回答。
(5)后台管理功能:后台管理员可以查看用户的所有信息资料,并且有冻结用户、解冻用户、审核用户申请的权限。
3.3 系统业务流程分析
根据上阶段的需求分析,可获取本系统应该具备的主要功能,从而分析得出具体的业务流程:
(1)用户的注册:用户注册输入相应的信息后,会有用户身份的选项,选项分为学生和教师,点击教师后,弹出选择擅长科目的弹窗。
(2)用户的登录:因为身份不同,学生和教师登录后进入不同的主页面。学生的主页面有提问的按钮,教师的主页面有回答的按钮。
(3)学生页面的信息展示:首页展示了所有问题的列表,学生可以点击查看详情的按钮查看各个问题的内容,并可以点击查看回答的按钮查看关于这个问题的所有教师的回答。也可以对问题信息的列表做条件搜索。另外,学生可以进入自己的问题页面,查看自己提出的问题的相关信息。
(4)教师页面的信息展示:首页和学生主页大致相同,但没有提问功能,并多出对每个问题的回答按钮。另外,可以进入自己的回答页面,查看自己回答的问题的相关信息。
(5)信息修改:所有用户可以自行更改自己的昵称和密码信息。
(6)后台冻结/解冻用户:管理员登录进入管理员首页面,页面展示所有用户的信息,并且有冻结和解冻的按钮,点击相关按钮可以对相关用户进行冻结或者解冻的操作。
(7)后台审核用户申请:管理员进入管理员首页面,首页面上有“用户申请管理”按钮,点击后显示所有的用户申请,并且对每条申请数据都会有通过或者拒绝按钮,点击相关按钮可以对相关用户进行审核通过或者拒绝的操作。
4 系统结构设计
4.1 系统功能设计
前台页面主要针对用户展示,用于提供用户查看答疑信息和答疑的功能。总体可以分为两大模块:信息的查看,对信息的操作。信息的查看包括对所有信息、条件信息、自己相关信息的查看;对信息的操作则体现为对问题的提问与回答,以及对自己信息的修改。设计结构图如下。
图4.1 系统结构设计结构图
4.2 系统架构设计
系统被分为三层,分别是表面层、控制层、持久层。同时本系统是在java基础上的Springboot来编写的,管理代码也更加方便。表面层,即用户使用的页面,采用的是HTML5搭配AJAX技术,来完成与后台的交互。而在持久层,运用了Mybatis技术,java文件和包含sql语句的xml文件相映射,完成MySQL数据库中表数据的增删改查[7]。
总而言之,系统也可以分为四层:结合HTML5和AJAX,用于与用户交互的表面层;进行业务逻辑接口调用,以实现功能点的控制层;真正进行逻辑推算的服务层;最后就是实现与数据库交互的DAO层。
这样的分成操作使得系统的耦合度降低,层次分明,提高效率,简化管理。
4.3 数据库设计
(1)数据库概念设计
任何系统的功能,说到底其实就是对各种各样数据的增删改查[8]。本系统也不会例外。
本系统所涉及的数据大概可归纳为三种:用户信息,提问信息,回答信息。它们彼此间相互联系并且相互关联。下面是该系统的E-R图。
提问
回答
编写
1
N
1
N
N
1
图4.2 系统E-R图
(2)数据库表设计
本系统的数据库涉及了4张表,分别为用户表(t_user)、教师科目关联表(t_teacher_type)、提问表(t_question)、回答表(t_answer)。
每张表都会有一个自己的int类型的id字段,并以之为主键,在数据库中自增添加,作用是标识每条记录。
用户表中包含了决定用户登录的邮箱(email)以及密码()字段,姓名和昵称是存储用户的基础信息字段,还会有一个status字段,代表了用户的身份:学生或者老师。state字段表示该账号目前的状态,0代表还处于审核状态中,1代表已经通过审核并且一切正常,-1代表申请被拒绝,-2代表该账号处于冻结状态。create_on表示该账号申请的时间。
图4.3 信息表t_user
教师科目关联表将教师和固定科目相关联,在学生选择科目提问时会给予和该科目绑定的教师的列表,供学生选择。
id为该条数据的ID;teacher_id为教师的ID;type_name为科目类型。
图4.4 教师科目关联表t_teacher_type
问题表是存储学生身份的用户发布问题的表。
剩余内容已隐藏,请支付后下载全文,论文总字数:12346字