基于web的舞蹈选课管理系统设计与实现.docx
《基于web的舞蹈选课管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于web的舞蹈选课管理系统设计与实现.docx(24页珍藏版)》请在冰豆网上搜索。
基于web的舞蹈选课管理系统设计与实现
基于web的舞蹈选课管理系统的设计与实现
摘要
现如今,学生网上选课越来越便利,但是大多数在线下教育机构工作的教务人员,在进行教务管理的时候,并没有完全采用信息化管理。
随着选择线下教育机构的人数不断增加,人工管理的难度也越来越大,大量的学员信息、教师信息以及学员的选课情况、缴费情况等等,都需要教务人员准确记录并及时更新,工作繁重而且杂乱、资料信息多,使教务人员们每天忙碌的焦头烂额。
传统的选课管理系统显然是不能满足实际的需要,效率也是很低的。
而且这种传统的管理方式存在着很多的弊端,如:
保密性不强、查询不方便、效率不高,很难及时更新信息等。
基于以上现状,借鉴高校的管理工作,通过需求分析确定系统应具有的功能,并进行系统的总体架构设计、数据库设计以及功能的详细设计,最后通过java语言开发出基于web的舞蹈选课管理系统。
系统用于教务管理人员对学生以及课程信息的管理、查询、更新,使用方便,易用性强,图形界面清晰明了。
系统基于面向对象编程的web应用程序,用计算机进行信息化数据管理,提高了管理的方便性、安全性等,也适应了当今社会信息化高速发展的特征。
本文通过对线下舞蹈机构教务管理工作流程的分析,以更好的管理功能和更低廉的成本费用为目的,提出一套系统设计方案。
关键词:
管理系统;web;系统设计
1引言
由于舞蹈课程的特殊性,舞蹈机构并不能进行线上授课,学生只能在网上预订课程来到线下机构上课。
当学生在线上进行选课结束后,来到线下机构进行培训时,教务人员需进行信息匹配和记录,而大部分线下教育机构仍在采用传统方式记录信息。
大量的学员信息、教师信息以及学员的选课情况缴费情况等等,这些都需要教务管理人员及时记录并更新。
随着舞蹈机构越来越受众人欢迎,越来越多人的选择倾向,也加大了线下教师管理选课以及学员信息的负担。
1.1舞蹈选课管理系统的背景及意义
随着网络技术的发展,越来越多的学校开始启用网上选课系统,而校外机构网上授课选课也已渐成气候。
如中公教育、华图教育、新东方教育等。
随着教育方式的不断进步,人们足不出户就能选择自己想要的课程。
越来越多的线上培训机构为学生提供了更多样的学习方式,如英语四六级、公务员考试等等,学生们越来越倾向于选择线上教育培训机构,线上选课已经成为新时代的趋势。
随着教育方式的不断进步,人们足不出户就能选择自己想要的课程,却忽略了运动对身体的重要,如今跳舞已经成为老少皆宜的运动方式。
人们也逐渐将目光放在了专业舞蹈机构上。
如今舞蹈机构并没有很好的拓展线上选课,随着越来越多人的选择倾向,加大了线下教师管理选课以及学员信息的负担。
人们都将目光放在为学生选课提供便利的同时,也不该忽略为线下机构教务管理提供便捷。
将舞蹈机构与选课管理系统相结合,不仅可以使舞蹈选课更加方便,还能利用系统很好记录学员信息和课程信息,减少教务人员的工作量。
这就更加需要一个方便快捷的选课管理系统。
网上选课管理有很多优势:
(1)信息完整全面等。
网上选课系统所提供的信息的数量之多、介绍之全,是令许多传统授课机构望尘莫及的。
(2)冲破时空局限。
网上选课管理极大地拓展了教务人员的工作区域,无论是在工作时间还是休息时间,只要登录管理系统,就可以随时随地记录学员咨询选课以及缴费情况等各种信息。
(3)节省时间。
可以在一个系统里同时记录多种信息,大大减少了人力物力。
1.2系统的研究现状及存在的问题
人们都将目光放在为学生选课提供便利的同时,也不该忽略为线下教育机构教务管理提供便捷。
该系统的目的主要是实现教务人员记录信息的方便性,让他们可以在任何地方任何时间选择课程,记录前来咨询人员的信息,可以通过登录系统提交、修改及确认学生所选课程,能够实现学生信息、教师课程信息的增删改查,如学生前来咨询的意向,是否试听课程,选择哪位教师的课程以及课程信息和学员缴费,是否结课等。
作为一名舞蹈兴趣爱好者,我经常会选择一些舞蹈机构去通过集训来提高自己,在其他大型教育机构实习时的教务人员经历让我注意到了线下舞蹈机构的信息整理问题,并作出如下总结:
(1)很多舞蹈初学爱好者,对舞蹈种类并不了解,来到线下机构需要教务人员进行课程推荐,这就需要教务人员对其咨询意向和推荐课程做一些记录,教务人员都是轮班制,学员每次来咨询的老师也不同,由于没有统一的记录方式,教务人员需要学员重新阐述咨询意向或课程选择,或者及时联系其他教务人员更新学员及课程信息的记录。
这就很需要教务人员拥有一个统一公用的选课管理系统,传统记录方式很混乱,不利于及时更新,也不便于不同的教务人员共享信息,给教务人员带来更大的工作量。
(2)少儿部舞蹈教学很多选课和缴费都由家长完成,家长平时工作很忙,一般选择利用手机支付转账学费,这就加大了教务人员记录缴费情况的难度,家长在进行缴费时经常联系熟悉的教务人员,时间很有可能并不在工作时间内,这就需要及时通知当时正在上班的其他教务人员进行记录,或等待工作时间进行记录,这中间就不免有遗漏或记录错误的情况发生,不仅容易和家长发生不必要的误会,还会让人对机构产生不信任危机。
这就需要有一个可以随时登录记录并更新信息的系统。
1.3本文的结构
第一章本章阐述了设计该管理系统的背景和它的意义,以及设计之前发现的问题。
第二章对系统进行多方面的可行性分析。
第三章对系统进行了需求分析。
包括系统的功能需求和性能需求。
第四章本章主要对系统的总体架构设计以及数据库设计进行一个概要说明;并对系统的功能模块进行整理,描述数据库的建立等。
第五章本章是对上一章进行补充,详细的介绍系统所采用的的技术及环境;例如SSM框架技术等;并详细的介绍系统主要功能的设计与实现。
第六章本章是对已完成的系统进行测试,包括主要功能的测试用例及测试结果;并作出测试结论。
第七章本章中主要是对本次项目进行一次总结与展望,找出在项目中的不足以及需要完善的地方。
2系统的可行性分析
2.1社会可行性分析
本系统实现的是一个选课管理系统。
系统为教务管理人员对学生信息的录入提供了方便。
通过此系统,每位教务人员获得登陆权限可以登陆此管理系统,可以随时对课程信息进行记录或者更改,可以增加、修改和删除教师基本信息、学生基本信息、课程基本信息。
选课管理系统的优势:
(1)信息完整全面:
选课系统管理所提供的信息的数量之多、之全,是令许多传统授课机构望尘莫及的。
(2)冲破时空局限:
选课管理系统极大地拓展了教务人员的工作区域,无论是在工作时间还是休息时间,只要登录管理系统,就可以随时随地记录学员咨询选课以及缴费情况等各种信息。
(3)节省时间:
可以在一个系统里同时记录多种信息,大大减少了人力物力。
通过以上论述,认为系统具有社会可行性。
2.2技术可行性分析
该系统主要采用web和java技术实现界面操作。
由于web页面可以做到把文本,图像,声音,视像等多种媒体信息集于一体,不但使信息的显示更加生动,而且使信息的浏览更加方便[10]。
JSP技术使得构造基于Web的应用程序更加容易和快捷。
通过以上论述,认为系统具有技术可行性。
2.3经济可行性分析
采用本系统后可以带来以下几个益处:
(1)可以更好的提高工作效率将大部分日常记录信息等工作简化成键盘录入,为管理过程提供快速、准确的方式。
减少手工操作过程的失误。
(2)提供统计功能利于课程管理系统进行分析与统计,最终全面提高管理水平,使选课管理系统走向标准化。
通过以上论述,认为系统具有经济可行性。
3系统的需求分析
3.1系统的功能需求分析
选课管理系统的设计目的是要教育人员对学生选择的课程和学生其他信息进行管理。
将系统需求总结起来,得出以下系统需求:
(1)系统可以运行在Windows操作系统平台上,并具有友好的用户界面。
(2)系统用户类型为教务管理人员。
(3)系统只允许用户以一种身份登录。
(4)只有教务人员可以记录并更新学生、教师、课程的基本信息。
3.2系统的性能需求分析
(1)可靠性:
传输信息数据要求准确,不能丢失数据,能准确记录
(2)易用性:
具有一定的计算机知识和操作能力的管理用户即可使用,对使用人员专业能力要求不高,方便教育机构人员操作。
(3)兼容性:
在windows系列操作系统上都可以正常运行。
对硬件的要求也不高,一般PC机上即可。
4系统的概要设计
4.1总体架构设计
本系统采用MVC架构模式,简化了后续对程序的修改以及应用程序的复杂度,使程序的结构更加直观。
基于MVC架构模式,系统使用SSM框架。
系统采用三个轻量级框架技术,是以spring为中心,集成Spring MVC和mybatis的框架,即SSM整合框架。
在SSM整合框架中开发出可扩展、易维护的系统,可以极大地满足系统的需求。
系统运用MVC开发模式进行开发,是可用于web开发的设计模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,有效的使代码维护更筒单和思路清晰[8]。
视图即表现层是用户看到并与之交互的界面,采用的是JSP+Ajax+jQuery技术,数据访问是DAO组件或数据库连接池数据库则采用mysql数据库建立相应的表。
最后开始工程的搭建开发。
Mybatis是一种半自动化的ORM框架,可以对SQL语句自由的进行优化,而且现在有插件工具可以实现自动生成实体类和基本的一些语句[12]。
综合考虑,本系统采用Mybatis框架。
4.2系统的功能模块描述
(1)用户登录:
选课管理系统的登录页面要求用户输入用户名和密码。
输入用户名和密码之后,系统将验证用户名和密码是否正确,如果验证成功,则进入相应的页面。
否则,显示重新输入密码信息。
(2)记录学生所选课程:
在选择课程页面中,其中课程所包含的信息有课程名、教室、上课时间及授课教师等。
(3)查看或管理学生信息:
教务人员登录后,可以对学生进行相关的操作,包括查看、增加、编辑以及删除学生的信息。
(4)查看或管理教师信息:
教务人员登录后,可以对教师信息进行相关的操作,包括查看、增加、编辑以及删除教师的信息。
(5)查看或管理课程信息:
教务人员登录后,可以对课程信息进行相关的操作,包括查看、增加、编辑以及删除课程的信息。
4.3系统的数据库设计
4.3.1数据库介绍
SQLServer除了是一个实现强大功能的系统以外,它更易于用户交付使用,安装少且易于管理。
MyBatis可以进行更为细致的SQL优化减少查询字段,因为本系统主要是对数据库的数据进行处理,因此对SQL语句应进行更高度的优化,所以本系统选择MyBatis作为数据库持久层框架[2]。
JDBC支持两层模型,也支持三层模型访问数据库。
两层模型中,一个JavaApple或者一个Java应用直接同数据库连接,这就需要能直接被访问的数据库进行连接的JDBC驱动器[14]。
在三层模型中,命令将被发送到服务的中间层,而中间层将SQL语句发送到数据库。
数据库处理SQL语句并将结果返回“中间层”,然后“中间层”将它们返回用户。
“中间层”可以进行对访问的控制并协同数据库的更新,另一个优势就是如果有一个“中间层”用户就可以使用一个易用的高层的API,这个API可以由“中间层”进行转换,转换成底层的调用[14]。
到目前为止,“中间层”通常还是用C或C++实现,以保证其高性能。
但随着优化编译器的引入,将java的字节码转换成高效的机器码,用java来实现“中间层”将越来越实际。
而JDBC是允许从一个java中间层访问数据库的关键[14]。
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作[3]。
4.3.2系统E-R图
E-R图即是数据库的概念设计,也被称为实体-联系图,它是一种概念模型,是对信息进行方便准确的概括。
用矩形框表示实体型,框内写明实体名称;用椭圆圆框表示实体的属性,并且,将有一个实体关系的相关实体由实心线段连接。
以下为本系统各实体E-R图:
图4-1学生信息实体E-R图
图4-2课程信息实体E-R图
4.3.3数据表
本系统创建的SQL数据库包含以下数据表:
表4-2学生信息数据表
列名
数据类型
长度
是否可空
注释
id
int
64
否
id
name
nvarchar
255
是
名字
age
int
64
是
年龄
sex
varchar
255
是
性别
address
varchar
255
是
地址
intention
varchar
255
是
意向
money
double
255
是
缴费金额
money_time
datetime
0
是
缴费时间
state
varchar
255
是
学生状态
course
varchar
255
是
课程
course_str_date
datetime
0
是
课程开始时间
course_end_date
datetime
0
是
课程结束时间
audition_str_time
datetime
0
是
试听开始时间
audition_end_time
datetime
0
是
试听结束时间
jffs
varchar
255
是
缴费方式
create_by
varchar
64
是
创建者
create_date
datetime
0
是
创建时间
update_by
varchar
64
是
更新者
update_date
datetime
0
是
更新时间
remarks
varchar
2000
是
备注信息
del_flag
char
1
是
删除标记
表4-3课程信息数据表
列名
数据类型
长度
是否可空
注释
id
int
64
否
id
course_name
varchar
255
是
课程名称
course_str_time
datetime
0
是
课程开始时间
course_end_time
varchar
255
是
课程结束时间
teacher
varchar
255
是
教师
create_by
varchar
64
是
创建者
create_date
datetime
0
是
创建时间
update_by
varchar
64
是
更新者
update_date
datetime
0
是
更新时间
remarks
varchar
2000
是
备注信息
del_flag
char
1
是
删除标记
5系统的详细设计及实现
5.1系统实现所采用的技术
5.1.1SSM框架技术介绍及运用
(一)SpringMVC概述
SpringMVC框架是通过实现视图-模型-控制器的模式来将业务、展现与数据进行分离。
SpringMVC框架基本上提供了构建Web应用程序的全部功能,使用Spring可以插入MVC架构,因此在使用Spring迸行WEB项目并进行开发时,可选择使用SpringMVC框架[13]。
Spring Web MVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的框架,也可以说是使用了MVC架构模式的思想,Spring Web MVC框架可以简化日常Web的开发[13]。
SpringWebMVC框架也是一个基于请求驱动的Web框架。
SpringWebMVC处理请求的流程如图5-1所示:
图5-1Spring MVC处理流程
(2)Spring技术研究
Spring是一个为了解决应用程序开发复杂性而创建的开源框架。
Spring框架是一个分层架构,由6个定义良好的模块组成,Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式[9]。
其核心模块为IOC容器和AOP。
Spring的主要特性:
表5-1Spring主要特性
1.
降低系统模块之间的耦合度。
其主要技术包括控制反转(I0C)和面向切面编程(AOP)两大方面。
Spring降低耦合度的功能主要通过IOC来实现,IOC是框架的核心,其原理可以理解为程序的所有组件都是被动的,初始化和调用都有容器(Spring)的负责。
2.
可以使用容器提供的众多服务,提高程序的可重用性和开发效率。
3.
容器提供单例模式支持,开发人员不需要自己来编写实现代码。
4.
容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
5.
容器提供的众多辅作类,使用这些类能够加快应用的开发。
6.
对主流的应用框架提供了集成支持。
5.1.2MVC开发模式的介绍及运用
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器[8]。
MVC应用程序总是由这三个部分组成。
它强制性的使应用程序的输入、处理和输出分开。
MVC设计模式的工作原理View部分即是应用程序的用户界面,用户通过View层发送请求提交到Controller层,Controller层接受请求根据具体需求调用Model层来处理,再根据Model层调用回来的结果进行跳转[8]。
Controller层在整个流程中起到了桥梁的作用,控制数据的流向,而Model层负责业务逻辑的处理和数据库访问。
MVC模式偶合性低,视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可[8]。
由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合构件。
MVC模式的处理流程(图5-2)
图5-2 MVC模式的处理流程
用户输入信息后,控制器层(Controller)会将相应的数据传输给模型层(Model),然后模型层会进行相关的业务处理(例如:
调用相关类、对数据库进行相应的操作等),在很具处理结果的不同寻找不同的视图(View),视图层将传过来的结果加载到相应的位置,最后显示给用户[8]。
5.1.3JSP技术介绍及运用
JSP(JavaServerPages)是一种基于Java的脚本技术,这种技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法[7]。
JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,JSP可以将内容的生成和显示进行分离,用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容[7]。
而且几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻,从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的[4]。
当一个JSP页面被请求后,JSP引擎将该页面转换为一个Servlet,并将Servlet编译成一个class文件,让服务器进行处理,处理完成后,将内容一HTML代码的形式返回给客户端,并在页面中显示出来[1]。
在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息,如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件[4]。
5.2系统实现所用的环境及开发工具
(1)环境:
Windows10
(2)安装要求:
表5-2系统的安装要求
处理器
1千兆赫或更快
内存
1GB(32位)或2GB(64)位
可用硬盘空间
16GB
图形卡
带有WDDM驱动程序的MicrosoftDirectX9图形设备
(3)开发工具:
Eclipse
Eclipse是一个IDE(集成开发环境),是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件。
5.3关键功能的详细设计与实现
5.3.1用户登录
@RequestMapping(value="${adminPath}/login")
publicStringlogin(HttpServletRequestrequest,HttpServletResponseresponse,Modelmodel)throwsIOException{
Principalprincipal=UserUtils.getPrincipal();
if(logger.isDebugEnabled()){
logger.debug("login,activesessionsize:
{}",sessionDAO.getActiveSessions(false).size());
}
//如果已登录,再次访问主页,则退出原账号。
if(Global.TRUE.equals(Global.getConfig("notAllowRefreshIndex"))){
CookieUtils.setCookie(response,"LOGINED","false");
}
//如果已经登录,则跳转到管理首页
if(principal!
=null&&!
principal.isMobileLogin()){
return"redirect:
"+adminPath;
}
/**
*登录失败,真正登录的POST请求由Filter完成
*/
@RequestMapping(value="${adminPath}/login",method=RequestMethod.POST)
publicStringloginFail(HttpServletRequestrequest,HttpServletResponseresponse,Modelmodel){
Principalprincipal=UserUtils.getPrincipal();
//如果已经登录,则跳转到管理首页
if(principal!
=null){
return"redirect:
"+adminPath;
}
Stringusername=WebUtils.getCleanParam(request,FormAuthenticationFilter.DEFAULT_USERNAME_PARAM);
booleanrememberMe=WebUtils.isTrue(request,FormAuthenticationFilter.DEFAULT_REMEMBER_ME_PARAM);
booleanmobile=WebUtils.isTrue(request,FormAuthenticationFilter.DEFAULT_MOBILE_PARAM);
Stringexception=(String)request.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
Stringmessage=(String)request.getAttribute(FormAuthentic