基于web的舞蹈选课管理系统设计与实现

news2024/11/24 19:11:17

基于web的舞蹈选课管理系统的设计与实现

摘 要

现如今,学生网上选课越来越便利,但是大多数在线下教育机构工作的教务人员,在进行教务管理的时候,并没有完全采用信息化管理。随着选择线下教育机构的人数不断增加,人工管理的难度也越来越大,大量的学员信息、教师信息以及学员的选课情况、缴费情况等等,都需要教务人员准确记录并及时更新,工作繁重而且杂乱、资料信息多,使教务人员们每天忙碌的焦头烂额。
传统的选课管理系统显然是不能满足实际的需要,效率也是很低的。而且这种传统的管理方式存在着很多的弊端,如:保密性不强、查询不方便、效率不高,很难及时更新信息等。基于以上现状,借鉴高校的管理工作,通过需求分析确定系统应具有的功能,并进行系统的总体架构设计、数据库设计以及功能的详细设计,最后通过java语言开发出基于web的舞蹈选课管理系统。
系统用于教务管理人员对学生以及课程信息的管理、查询、更新,使用方便,易用性强,图形界面清晰明了。系统基于面向对象编程的web应用程序,用计算机进行信息化数据管理,提高了管理的方便性、安全性等,也适应了当今社会信息化高速发展的特征。
本文通过对线下舞蹈机构教务管理工作流程的分析,以更好的管理功能和更低廉的成本费用为目的,提出一套系统设计方案。

关键词:管理系统;web;系统设计

Design and Implementation of Web-based Dance Course Selection Management System

ABSTRACT

Nowadays, it is more and more convenient for students to select courses online, but most of the educational administrators working in offline institutions, the information management is not completely adopted. As choose offline continued increase in the number of education institutions, the difficulty of artificial management information is becoming more and more big, a lot of information of students, teachers and the students’ course selection of payment situation, etc., all need to educational administration personnel accurately record and update, work hard and mixed and disorderly,date information , make the educational administration personnel busy everyday.
The traditional course selection management system is obviously cannot meet the actual demand, the efficiency is also very low. And this kind of traditional way is existing a lot of malpractice, be like: confidentiality is poor, inquiry is not convenient, efficiency is low, update information in time very hard. Then the overall architecture design and detailed design.Finally, the web-based dance course selection management system was written in the Java language.
The system is used to manage, inquire and update the courses of students in educational institutions. The system is based on the web application program of face oriented object programming, and uses the computer to carry on the information data management, which improves the convenience and security of management, and also adapted to the characteristics of the rapid development of information in today’s society.
Based on the analysis of the work flow of the educational administration management of offline dance institutions, this paper proposes a set of system design scheme for the purpose of better management function and low cost.

Keywords: management system the web the system design

目 录

1引言………………………………………………………………………………1
1.1舞蹈选课管理系统的背景及意义……………………………………………………………1
1.2系统的研究现状及存在的问题……………………………………………………………1
1.3本文的结构………………………………………………………………………………2
2系统的可行性分析………………………………………………………………………3
2.1 社会可行性分析………………………………………………………………………………3
2.2技术可行性分析………………………………………………………………………3
2.3经济可行性分析……………… ………………………………………………………3
3系统的需求分析 ………………………………………………………………………3
3.1系统的功能需求分析………………………………………………………………………3
3.2系统的性能需求分析………………………………………………………………………4
4系统的概要设计………………………………………………………………………4
4.1总体架构设计……………………………………………………………………………4
4.2系统的功能模块描述………………………………………………………………………5
4.3系统的数据库设计…………………………………………………………………………5
5系统的详细设计及实现………………………………………………………………………8
5.1系统实现所采用的技术………………………………………………………………8
5.2系统实现所用的环境及开发工具…………………………………………………12
5.3关键功能的详细设计与实现……………………………………………………………12
6系统的测试……………………………………………………………………………17
6.1系统的测试概述………………………………………………………………………17
6.2主要功能的测试………………………………………………………………………17
6.3测试结论……………………………………………………………………………21
7系统的总结与展望……………………………………………………………………………21
参考文献 ……………………………………………………………………………22
致谢……………………………………………………………………………23

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 数据库介绍
SQL Server除了是一个实现强大功能的系统以外,它更易于用户交付使用,安装少且易于管理。
MyBatis可以进行更为细致的SQL优化减少查询字段,因为本系统主要是对数据库的数据进行处理,因此对SQL语句应进行更高度的优化,所以本系统选择MyBatis作为数据库持久层框架[2]。
JDBC支持两层模型,也支持三层模型访问数据库。两层模型中,一个Java Apple或者一个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.1 SSM框架技术介绍及运用
(一)Spring MVC概述
Spring MVC框架是通过实现视图-模型-控制器的模式来将业务、展现与数据进行分离。Spring MVC框架基本上提供了构建Web应用程序的全部功能,使用Spring可以插入MVC架构,因此在使用Spring迸行WEB项目并进行开发时,可选择使用Spring MVC框架[13]。
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的框架,也可以说是使用了MVC架构模式的思想,Spring Web MVC框架可以简化日常Web的开发[13]。
Spring Web MVC框架也是一个基于请求驱动的Web框架。
Spring Web MVC处理请求的流程如图5-1所示:
在这里插入图片描述

图5-1 Spring MVC处理流程

(2)Spring技术研究
Spring是一个为了解决应用程序开发复杂性而创建的开源框架。Spring框架是一个分层架构,由6个定义良好的模块组成,Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式[9]。其核心模块为IOC容器和AOP。
Spring的主要特性:
表5-1 Spring主要特性

  1. 降低系统模块之间的耦合度。其主要技术包括控制反转(I0C)和面向切面编程(AOP)两大方面。Spring降低耦合度的功能主要通过IOC来实现,IOC是框架的核心,其原理可以理解为程序的所有组件都是被动的,初始化和调用都有容器(Spring)的负责。
  2. 可以使用容器提供的众多服务,提高程序的可重用性和开发效率。
  3. 容器提供单例模式支持,开发人员不需要自己来编写实现代码。
  4. 容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
  5. 容器提供的众多辅作类,使用这些类能够加快应用的开发。
  6. 对主流的应用框架提供了集成支持。

5.1.2 MVC开发模式的介绍及运用
使用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.3 JSP技术介绍及运用
JSP(Java Server Pages)是一种基于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驱动程序的Microsoft Direct X 9图形设备

(3)开发工具:Eclipse
Eclipse是一个IDE(集成开发环境),是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件。

5.3关键功能的详细设计与实现
5.3.1用户登录
@RequestMapping(value = “KaTeX parse error: Expected '}', got '&' at position 513: …ncipal != null &̲& !principal.is…{adminPath}/login”, method = RequestMethod.POST)
public String loginFail(HttpServletRequest request, HttpServletResponse response, Model model) {
Principal principal = UserUtils.getPrincipal();
// 如果已经登录,则跳转到管理首页
if(principal != null){
return “redirect:” + adminPath;
}

	String username = WebUtils.getCleanParam(request, FormAuthenticationFilter.DEFAULT_USERNAME_PARAM);
	boolean rememberMe = WebUtils.isTrue(request, FormAuthenticationFilter.DEFAULT_REMEMBER_ME_PARAM);
	boolean mobile = WebUtils.isTrue(request, FormAuthenticationFilter.DEFAULT_MOBILE_PARAM);
	String exception = (String)request.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
	String message = (String)request.getAttribute(FormAuthenticationFilter.DEFAULT_MESSAGE_PARAM);
	
	if (StringUtils.isBlank(message) || StringUtils.equals(message, "null")){
		message = "用户或密码错误, 请重试.";
	}

model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, username);
model.addAttribute(FormAuthenticationFilter.DEFAULT_REMEMBER_ME_PARAM, rememberMe);
model.addAttribute(FormAuthenticationFilter.DEFAULT_MOBILE_PARAM, mobile);
model.addAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME, exception);
model.addAttribute(FormAuthenticationFilter.DEFAULT_MESSAGE_PARAM, message);
if (logger.isDebugEnabled()){
logger.debug(“login fail, active session size: {}, message: {}, exception: {}”,
sessionDAO.getActiveSessions(false).size(), message, exception);
}
// 非授权异常,登录失败,验证码加1。
if (!UnauthorizedException.class.getName().equals(exception)){
model.addAttribute(“isValidateCodeLogin”, isValidateCodeLogin(username, true, false));
}
// 验证失败清空验证码
request.getSession().setAttribute(ValidateCodeServlet.VALIDATE_CODE, IdGen.uuid());
/**
* 登录成功,进入管理首页
*/
@RequiresPermissions(“user”)
@RequestMapping(value = “${adminPath}”)
public String index(HttpServletRequest request, HttpServletResponse response ,Model model) {
Principal principal = UserUtils.getPrincipal();
// 登录成功后,验证码计算器清零
isValidateCodeLogin(principal.getLoginName(), false, true);
if (logger.isDebugEnabled()){
logger.debug(“show index, active session size: {}”, sessionDAO.getActiveSessions(false).size());
}

5.3.2学生信息管理
/**
*

Description:保存学生信息


/
@RequiresPermissions(value={“student:studentInfo:add”,“student:studentInfo:edit”},logical=Logical.OR)
@RequestMapping(value = “save”)
public String save(StudentInfo studentInfo, Model model, RedirectAttributes redirectAttributes) throws Exception{
if (!beanValidator(model, studentInfo)){
return form(studentInfo, model);
}
studentInfoService.save(studentInfo);//保存
addMessage(redirectAttributes, “保存学生信息成功”);
if(“1”.equals(studentInfo.getState())){
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/?repage”;
}else if(“2”.equals(studentInfo.getState())){
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/listScg?repage”;
}else if(“3”.equals(studentInfo.getState())){
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/listScg?repage”;
}else if(“4”.equals(studentInfo.getState())){
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/listScg?repage”;
}else if(“5”.equals(studentInfo.getState())){
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/listScg?repage”;
}else{
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/?repage”;
}
}
/
*
*

Description:删除学生信息


*/
@RequiresPermissions(“student:studentInfo:del”)
@RequestMapping(value = “delete”)
public String delete(StudentInfo studentInfo, RedirectAttributes redirectAttributes) {
studentInfoService.delete(studentInfo);
addMessage(redirectAttributes, “删除学生信息成功”);
return “redirect:”+Global.getAdminPath()+“/student/studentInfo/?repage”;
}

5.3.3缴费页面实现
@RequiresPermissions(value={“student:studentInfo:view”,“student:studentInfo:add”,“student:studentInfo:edit”},logical=Logical.OR)
@RequestMapping(value = “formJf”)
public String formJf(StudentInfo studentInfo, Model model) {
studentInfo.setState(“3”);
model.addAttribute(“crouseList”, courseInofService.findList(new CourseInof()));
model.addAttribute(“studentInfo”, studentInfo);
return “ccqnsoft/data/student/studentInfoJfForm”;
}
5.3.4课程信息管理
/**
*

Description:查看,增加,编辑课程表单页面


/
@RequiresPermissions(value={“course:courseInof:view”,“course:courseInof:add”,“course:courseInof:edit”},logical=Logical.OR)
@RequestMapping(value = “form”)
public String form(CourseInof courseInof, Model model) {
model.addAttribute(“courseInof”, courseInof);
return “ccqnsoft/data/course/courseInofForm”;
}
/
*
*

Description:保存课程


/
@RequiresPermissions(value={“course:courseInof:add”,“course:courseInof:edit”},logical=Logical.OR)
@RequestMapping(value = “save”)
public String save(CourseInof courseInof, Model model, RedirectAttributes redirectAttributes) throws Exception{
if (!beanValidator(model, courseInof)){
return form(courseInof, model);
}
if(!courseInof.getIsNewRecord()){//编辑表单保存
CourseInof t = courseInofService.get(courseInof.getId());//从数据库取出记录的值
MyBeanUtils.copyBeanNotNull2Bean(courseInof, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
courseInofService.save(t);//保存
}else{//新增表单保存
courseInofService.save(courseInof);//保存
}
addMessage(redirectAttributes, “保存课程成功”);
return “redirect:”+Global.getAdminPath()+“/course/courseInof/?repage”;
}
/
*
*

Description:删除课程


*/
@RequiresPermissions(“course:courseInof:del”)
@RequestMapping(value = “delete”)
public String delete(CourseInof courseInof, RedirectAttributes redirectAttributes) {
courseInofService.delete(courseInof);
addMessage(redirectAttributes, “删除课程成功”);
return “redirect:”+Global.getAdminPath()+“/course/courseInof/?repage”;
}

6系统的测试

6.1系统的测试概述
通过测试舞蹈选择管理系统,找出可以通过教学人员使用这个系统时,进一步想方设法提高而造成的错误;也加深的测试方法的理解,并最终满足用户的需求和期望,从而使系统能够更好地为用户服务,并最终满足系统要求。测试内容主要是功能测试,试图找出在系统运行中可能出现的更多的错误,站在学术人员的立场,并认为实际执行信息查询等功能时,教育管理者都会遇到各种各样的错误。异常,从而完善和校正系统。

6.2主要功能的实现

输入正确密码点击登录后,登陆成功,出现课程表和学生信息两个模块(图6-1)
在这里插入图片描述
课程表和学生信息 图6-1

课程信息主要有查询(图6-2 图6-3),编辑(图6-4),删除三个功能
在这里插入图片描述

                      输入教师名称查询相关信息 图6-2

在这里插入图片描述

                       输入课程名称查询相关信息 图6-3

在这里插入图片描述

编辑课程信息 图6-4
点击添加课程,输入test信息(图6-5)
在这里插入图片描述

                          添加课程信息 图6-5                                                        

输入完整信息后保存,成功出现在课表内(图6-6)
在这里插入图片描述

                                   添加成功  图6-6                                         

学生信息模块,增加学生信息(图6-7)
在这里插入图片描述

学生信息的添加 图6-7
在这里插入图片描述

添加测试信息(图6-8)

            添加test信息  图6-8                                                             

保存学生信息成功,出现查询、编辑、推荐试听、删除信息功能 (图6-9图6-10)
在这里插入图片描述

                            保存学生信

在这里插入图片描述

                       拥有相同增删改查功能 图6-10                                                                    

学生信息的查询和编辑(图6-11图6-12)
在这里插入图片描述

                    查看学生信息 图6-11                                    

在这里插入图片描述

编辑学生信息 图6-12

试听结束后,出现缴费功能按钮,点击缴费,自动出现课程选择界面(图6-13图6-14)
在这里插入图片描述

试听结束后缴费的自动跳转 图6-13
在这里插入图片描述

                             缴费页面  图6-14               

选择学生所选课程,自动出现学费信息,需填入缴费金额及缴费时间(图6-15)
在这里插入图片描述

                选择课程后的自动跳转  图6-15  

学生结业后,删除学员信息(图6-16图6-17)
在这里插入图片描述

       图6-16                            图6-17                                   

6.3测试结论
用户登录界面完整,登录需同时拥有用户名及密码,课程信息和学生信息分成两个大模块,有利于信息更好的分类记录,有效提高工作效率;课程信息和学生信息的增加、删除、查询以及编辑都可以有效运行,基本功能实现全面,有可用性;并且功能按照选课流程:咨询、试听、选课、缴费、上课、结业;依次跳转,节省教务人员分类时间,充分实现了系统提高教务人员工作效率的目标。

7系统的总结与展望

经过一个多月的不懈努力,终于完成了选课管理系统的设计与实现。从选到题目到最后完成系统,我经历了无数次的错误,运行的过程明显感觉到平时学的知识的不足。由于对Eclipse的使用不熟悉,所以遇到了很多困难,但是在老师和同学的帮助下都克服了。通过这次系统的设计,我深刻体会到系统开发的每个细微的细节都必须非常注意。在设计中,会经常遇到一些问题,尤其是选择了并不熟悉的SSM框架进行开发,很多时候都是焦头烂额,不知道该如何进行。
通过本次系统设计,对数据库的WEB应用有了更深入了解,加强了自身对数据库语言的熟悉,也培养了独立思考问题和自学的能力,我认识到只有谦虚好学的态度是不行的,要把学到的东西踏踏实实对的转化为自己的能力,必须改掉浮躁的表面学习方式,努力学习,在工作中体现出自己的价值,进而适应社会的需要。

参考文献

[1] 王春明.JSP Web技术及应用教程[M].北京:清华大学,2018.
[2] 张锦煌.基于SSM整合框架开发的项目管理系统[J].电脑知识与技术,2015,(11);109-111
[3] 霍斯特曼克内尔.Java核心技术[M].北京:机械工业出版社.2014
[4] 邓璐娟.JSP程序设计与项目实训教程[M].北京:清华大学出版社,2016.
[5] 赵利庆.Java Web架构中数据库优化模式的研究与实现[D].北京:北京邮电大学.2015
[6] 王养廷.基于Web的Java框架设计与实现[J].软件导刊,2014,(01);58-59
[7] 王永茂.JSP程序设计[M].北京:清华大学出版社,2016.
[8] 傅宏.基于MVC模式的Web框架设计关键技术研究[J].电脑知识与技术,2011,(10):67
[9] Craig Walls.Spring实战[M].北京:人民邮电出版社,2013.
[10] 许令波.深入分析Java Web技术内幕[M].北京:电子工业出版社,2014.
[11] 田晓玲.JSP动态网页设计案例教程[M].科学出版社,2014.
[12] 陈晓勇.MySQL DBA修炼之道[M].北京:机械工业出版社,2017
[13] Geoffroy,Warin.精通Spring MVC 4[M].北京:人民邮电出版社,2017.
[14]杨悦. 探析Serv1et、JSP Web组件和JDBC编程[D]. 哈尔滨师范大学计算机科学与信息工程学院, 2014.

致 谢

本文能顺利的完成,首先要感谢我的指导老师王欣欣老师。是王欣欣老师仔细耐心的看完整篇文章,并且提出本文出现的一些问题和修改建议,让我有了明确的思路和方向。非常的感谢王老师耐心的指导。王老师严谨的治学精神,严肃端正的态度,精益求精的工作作风,深深的感染和激励着我。
同时也感谢这篇论文所涉及到的各位学者。如果没有各位学者的研究成果的帮助和启发,我将很难完成这篇论文。
还要感谢我身边的各位同学的帮助,他们也给了我很多的建议和提示,在论文思路方面也让我有了很多的收获。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jQuery和JavaScript的区别

一、比较原生js和jQuery的区别 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title…

np.random.uniform() 采样得到的是一个高维立方体,而不是球体,为什么?

在代码中&#xff0c;采样是通过以下方式完成的&#xff1a; samples self.center np.random.uniform(-self.radius, self.radius, (num_samples, len(self.center))) 这里&#xff0c;np.random.uniform函数在每个维度独立地生成了一个介于-self.radius和self.radius之间的…

沉默是金,寡言为贵

​ 佛说&#xff1a;“人受一句话&#xff0c;佛受一柱香。”佛教的十善&#xff0c;其中有关口德就占了四样&#xff1a;恶口、妄语、两舌、绮语&#xff0c;可见口德是很重要的。言为心声&#xff0c;能说出真心的话&#xff0c;必然好听&#xff1b;假如说话言不由衷&#x…

Vue路由跳转页面刷新

案例使用映射路由 百度的时候各种操作就是没有注意keepAlive&#xff0c;发现那个为缓存开启之后前端有个小后台Vue生命周期函数失效。同一个页面刷新时这个keep Alive需要关闭。

热部署怎么部署

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言操作流程&#xff1a;在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a832d83c091742eda9d9325931a89df4.png) 这里的跟上面的…

vue3+vite 批量引入局部组件及使用

目录结构 批量引入组件 例如&#xff1a;src/views/oss/components/customComponents.ts import { ref, defineAsyncComponent, markRaw } from vue;const modules import.meta.glob(./*.vue);//这告诉 TypeScript&#xff0c;components.value 是一个键为字符串、值为 define…

埃拉托色尼筛法

def is_prime(n):if n % 2 0 and n ! 2:return Falsefor i in range(3, int(math.sqrt(n) 1)):if n % i 0:return Falsereturn n ! 1def eratosthenes(n):primes []is_prime [True] * (n 1)for i in range(2, n1):if is_prime[i]:primes.append(i)# 用当前素数i去筛掉所有…

知乎禁止转载的回答怎么复制做笔记?

问题 对于“禁止转载”的回答&#xff0c;右键复制是不行的&#xff0c;ctrl-c也不行&#xff0c;粘贴之后都是当前回答的标题。稍微看了代码&#xff0c;应该是对copy事件进行了处理。不过这样真的有用吗&#xff0c;真是防君子不防小人&#xff0c;只是给收集资料增加了许多…

Spring Security 6.x 系列(7)—— 源码分析之建造者模式

一、建造者模式 WebSecurity、HttpSecurity、AuthenticationManagerBuilder 都是框架中的构建者&#xff0c;把他们放到一起看看他们的共同特点&#xff1a; 查看AuthenticationManagerBuilder的继承结构图&#xff1a; 查看HttpSecurity的继承结构图&#xff1a; 查看WebSec…

pycharm编译报错处理

1.c生成工具下载 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 在这里插入图片描述 pip install pycocotools

浅谈用户体验测试的主要功能

用户体验(User Experience&#xff0c;简称UX)在现代软件和产品开发中变得愈发重要。为了确保产品能够满足用户期望&#xff0c;提高用户满意度&#xff0c;用户体验测试成为不可或缺的环节。本文将详细探讨用户体验测试的主要功能&#xff0c;以及它在产品开发过程中的重要性。…

激光雷达毫米波雷达

一.激光雷达 技术指标&#xff1a; 视场角 线数&#xff08;32/64/128&#xff09; 分辨率&#xff08;激光光束夹角越小分辨率越高&#xff0c;0.1度&#xff09; 探测距离&#xff1a;0.3-200m 反射率&#xff08;一般探测10%以上反射率的目标&#xff09; 分类 按照测距方…

pycharm 创建vue并实现简易路由功能

使用pycharm创建vue项目时&#xff0c;选择vite来创建vue。为什么使用vite&#xff1f;因为vite是专门针对vue开发的打包框架&#xff0c;以前使用vue-cli来创建vue项目&#xff0c;就是使用的webpack来进行打包的&#xff0c;现在有了vite&#xff0c;就尽量使用vite来创建vue…

进程--特征、五种基本状态、PCB、进程的创建与终止

一、进程的定义与特征 为了使参与并发执行的每个程序都能独立地允许&#xff0c;在操作系统中为程序配置一个专门的数据结构&#xff0c;称为进程控制块&#xff08;Process Control Block&#xff0c;PCB&#xff09;。系统利用PCB来描述进程的基本情况和活动过程&#xff0c…

VUE2+THREE.JS 模型上方显示信息框/标签(CSS3DSprite精灵模型)

THREE.JS 模型上方显示信息框/标签---CSS3DSprite精灵模型 1.CSS2DRenderer/CSS3DRenderer/Sprite的优劣2.实现模型上方显示信息框2.1 引入2.2 初始化加载的时候就执行此方法2.3 animate循环执行2.4 获取设备状态并在每个设备上显示设备状态2.5 样式 CSS3DSprite精灵模型面向摄…

vscode+ssh连接远程linux系统服务器,并用anaconda管理python环境

vscodessh连接远程linux系统服务器&#xff0c;并用anaconda管理python环境 &#xff08;一&#xff09;vscode连接服务器1. vscode下载插件&#xff1a;remote-SSH2. 连接服务器3. 修改配置 &#xff08;二&#xff09;将代码拷贝到服务器上与代码同步1. 转移代码2.查看3.代码…

c++ 中名空间中using 引入的细节

如果在引入名空间中的特定成员函数的时候&#xff0c; 全局不能定义同名的函数&#xff0c;但是其实只要参数不同就行 namespace a{int x 1;int fun(){return 0;} }using namespace a; using a::fun;void fun(int x) {} int x 10; int main() {fun(10); } 上面就是一个正确…

【MySQL:从零开始练级】环境安装与基础认识

hello大家好&#xff0c;失踪人口回归&#xff0c;今天开始新专栏MySQL&#xff1a;从零开始练级,今天给大家分享MySQL的环境安装与基础认识&#xff0c;希望大家能有所学习收获。 目录 1️⃣ Centos 7环境下安装 2️⃣什么是数据库 3️⃣服务器、数据库、表关系 4️⃣MySQ…

RHEL8.9 静默安装Oracle19C

RHEL8.9 静默安装Oracle19C 甘肃圆角网络科技开发有限公司 说明(GUI)&#xff1a;  1.实际业务场景中&#xff0c;Linux环境一般情况下是没有GUI的。没有GUI并不意味着没有安装图形界面。可能在部署Linux操作系统环境的时候安装了桌面环境&#xff0c;只是启动的时候设置了启动…

Unity 一些常用注解

在Unity中有一些比较常用的注解&#xff1a; 1、[SerializeField]&#xff1a;将私有字段或属性显示在 Unity 编辑器中&#xff0c;使其可以在 Inspector 窗口中进行编辑。 2、[Range(min, max)]&#xff1a;限制数值字段或属性的范围&#xff0c;在 Inspector 窗口中以滑动条…