【网站项目】139选课排课系统

news2024/11/19 1:48:40

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。

  1. 代码可以私聊博主获取。🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《python网站项目》600套

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目演示(需要演示视频可以私信我)

摘  要

互联网的普及,改变了人们正常的生活学习及消费习惯,而且也大大的节省了人们的时间,由于各种管理系统都再不断的增加,更方便了用户,也改良了很多的用户习惯。对于选课排课系统查询方面缺乏系统的管理方式,为提高选课排课系统效率,特开发了本选课排课系统。

选课排课系统的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很轻松明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。

选课排课系统开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与选课排课系统的实际需求相结合,讨论了JSP开发选课排课系统的使用。

关键词:选课排课系统; JSP;MYSQL

第1章  绪论

1.1  系统开发背景

机遇与挑战始终并存。在开放的互联网平台面前,选课排课系统的信息管理面临着巨大的挑战。传统的管理模式局限于简单数据的管理,无法适应不断变化的市场格局。在早期阶段,在将计算机技术和网络技术融入学生选课数据管理方法之前,所有管理方式都通过人工操作完成了管理信息的交换和处理,效率低,错误率高,导致严重浪费物质资源,人力资源和财政资源。

系统管理也都将通过计算机进行整体智能化操作,对于网上选课排课系统所牵扯的数据信息及数据保存都是非常多的,举例像所有的个人中心、公告信息、班级管理、学生管理、教师管理、课程名称管理、课程信息管理、课表信息管理、学生选课管理、退课信息管理等,为此开发了本选课排课系统,为用户提供一个网上选课排课系统的平台,同时方便管理员对学生和教师进行课程选课信息进行处理。该系统满足了不同权限用户的需求,即管理员、及用户,管理相关信息可以及时、准确、有效地进行系统化、标准化和有效的工作。

1.2  课题意义

由于现在的选课排课系统用户所负责的工作越来越多,所以涉及到的数据也是相应增多。传统的学生选课信息查询模式面对大量数据信息,再给用户提供数据的时候效率会慢,而且用户等待的时间也相应的比较长,所以这样既不能满足用户的需求,不能给用户提供更有效的数据信息的同时,对于学生选课和教师课程等信息,进行查看或编操作,管理人员的工作效率低,所以开发网上选课排课系统可以改变这些缺憾。

目前,网上选课排课系统是吸引很多人的注意,通过互联网来搭建网上选课排课系统可以给用户提供更好的服务而且对于用户可以更好的提高工作效率。也可以更好的为我们建造更多区域及数据信息。

传统的学生选课信息的统计都是采用人工检查与核实,信息量大,由于使用的是人手工统计数据工作量大,而且出错率高,当然还会存在很多数据存储及丢失的问题,对于查找某一条数据比较麻烦,耽误时间,影响工作效率,为了提高工作效率我们急需开发出这套选课排课系统,网上选课排课系统相关信息成为必然。

1.3  研究内容

选课排课系统采用JSP和开发环境所使用技术开发,实现了选课排课系统的系统化、高效化、科学化。

选课排课系统主要有用户通过登录进入到用户操作界面,方便用户对学生选课信息的查看及管理操作,对于管理员可以对数据信息的统计及管理操作,选课排课系统的实现主要是对整个系统想要实现的功能及功能的每一步实现、系统的整体的分析、设计、代码的编写等内容进行实现操作,最后完成整个智能化管理系统的操作。

第2章  系统需求分析

2.1可行性分析

1、技术可行性分析:

技术可行性主要取决于系统设计和开发中使用的软硬件配置是否能满足应用要求,相关技术是否能保证系统设计完成后的正常运行。本网站在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。

系统的开发环境和配置都是可以自行安装的,使用比较成熟的MYSQL数据库进行对系统后台的数据交互,根据技术语言对数据库管理,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。该系统目前采用比较成熟的JSP技术,它可以在普通文本编辑器上编辑而无需编译,它可以直接在服务器上执行。它易于学习和操作,使用B/S模型作为软件开发的基础是高度兼容和灵活的,从技术可行性上来分析系统开发时完全可行的。

2、经济可行性

选课排课系统的开发,第一步要考虑到所要开发的系统在开发完成所要使用的费用问题,把该系统作为毕业设计,所以在经济可行性是要必须分析的,系统的开发是否需要花钱购买其他的软件或作者硬件,还有一些接口的对接,如果开发整个系统需要费用去置办这些,肯定是行不通,当然,通过学生自己动手开发,遇到比较难解决的问题,可以通过寻找指导老师及一些同学,进行帮助解决问题,不需要其他费用的支出,所以说学生开发的选课排课系统在经济上是可行的。

3、 操作可行性

可操作性主要是对选课排课系统设计完成后,用户的使用体验度,对于管理员可以通过系统随时管理相关的数据信息,并且对于管理员、学生、老师三个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。

2.2非功能分析

对于性能分析,与传统的管理方式相比,传统的管理方式是使用人工通过用纸和笔进行数据信息的统计和管理,并且这种方式对于存储和查找某一数据信息都比较麻烦,随着计算机网络的到来,这种传统的方法很难适应当下社会的发展,不仅降低人们的办事效率,而且还需要很多的人力和物力,对于使用的时间和所要花费的费用都是比较高的,为了降低成本费用,提高用户的工作效率,进行开发一套基于计算机和网络技术的选课排课系统。

选课排课系统的开发设计时一个独立的系统,以MYSQL数据库进行数据的存储开发,主要是为了实现学生选课信息的处置和管理,并且系统采用B/S结构,进行搭建于JSP技术的选课排课系统平台,这样不仅不会出现传统的管理差异、低效率,而是跟传统的管理信息恰好相反,选课排课系统的实现可以节约资源,并且对于业务的处理速度也提高,速度快、效率高,功能性强大。

2.3 项目设计原则

1、关于选课排课系统的基本要求

(1)功能要求:管理员可以实现个人中心、公告信息、班级管理、学生管理、教师管理、课程名称管理、课程信息管理、课表信息管理、学生选课管理、退课信息管理等功能模块。

教师可以实现个人中心、公告信管理、课表信息管理、课程信息管理、学生选课管理、退课信息管理功能模块,进行相对应操作。

学生可以实际个人中心、公告信息管理、课表信息管理、课程信息管理、学生选课管理、退课信息管理等功能模块,进行相对应操作。

(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。

(3)安全与保密要求:用户都必须通过身份验证才能进入系统,并且用户的权限也需要根据用户的类型进行限定。

(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。

2、开发目标

选课排课系统的主要开发目标如下:

(1)实现管理系统信息关系的系统化、规范化和自动化;

(2)减少维护人员的工作量以及实现用户对信息的控制和管理。

(3)方便查询信息及管理信息等;

(4)通过网络操作,改善处理问题的效率,提高人员利用率;

(5)考虑到用户多样性特点,要求界面简单,操作简便。

3、设计原则

本系统采用JSP技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

选课排课系统的设计与实现的设计思想如下:

1、操作简便、界面良好:简单明了的页面布局,方便查询相关信息

2、即时可见:对系统信息的处理将立马在对应地点可以查询到,实现了“即时发布、即时见效”的功能。

3、功能的完善性:可以对用户所能用到的各个方面的功能模块的添加、修改、维护操作。


3 关键技术简介

3.1 JSP技术介绍

JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了用户的需求。JavaBeans 可以对JSP技术的程序进行扩展,从而形成新的应用程序,而且JavaBeans的代码可以重复使用,所以就便于对程序进行维护。JavaBean 组件有内部的接口,可以帮助不同的人对系统进行访问。1999年,Sun微系统公司正式推出了JSP技术,这是一种动态技术,是基于整个JAVA体系和JavaServlet提出的,是具有普遍适用性的WEB技术,也是本系统设计的核心技术之一。JSP技术能够极大的提高WEB网页的运行速度。这些内容会与脚本结合,并且由JavaBean和Servlet组件封装。所有的脚本均在服务器端运行,JSP引擎会针对客户端所 提交的申请进行解释,然后生成脚本程序和JSP标识,然后通过HTML/XML页面将结果反馈给浏览器。因此,开发人员亲自设计最终页 面的格式和HTML/XML标识时,完全可以使用JSP技术。

所以结合物流管理系统的需求及功能模块的实现,使用JSP技术是最合适的,而且JSP的拓展性比较好,对于物流管理系统在后期使用过程中可以不断对系统功能进行拓展,是系统更完成,更方便的满足用户管理。

3.2 JAVA简介

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。多进步。例如,当我在微软Word中写这篇文章时,我还打开了一个MP3播放器来播放音乐。偶尔,我也会编辑Word,让我的机器执行打印作业,我也喜欢通过IE。对我来说,这些操作是同时执行的,我不需要等待一首歌来完成我的论文编辑。似乎他们都在我的机器上同时为我工作。事实是,对于一个CPU,它只能在某个时间点执行一个程序。CPU在这些程序之间不断地“跳跃”。那么为什么我们看不到任何破坏呢?这是因为,与我们的感情相比,它的速度太快了。因此,尽管我们看到一些同步操作,实际上对于计算机来说,它只能在某个时间点执行一个程序,除非您的计算机是多CPU的。

Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。

Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。

3.3 MyEclipse开发环境

MyEclipse支持广泛、兼容性高并且功能强大,是一个Eclipse 插件集合,普遍适应于JAVA和J2EE的系统开发,支持 JDBC,Hibernate,AJAX,Struts,Java Servlet,Spring,EJB3等市面上存在的几乎所有数据库链接工具和主流Eclipse产品 开发工具。

MyEclipse在业内是所熟知的开发工具,该平台在开发的过程中运用的就是该工具。MyEclipse又被称之为企业级的工作平台,它是以Eclipse IDE为基础的。MyEclipse可以帮助我们进行数据库的研发和J2EE的使用,除此之外,还可以提高系统的运营能力,这突出表现在服务器的整合过程中。MyEclipse的功能相当完备,能够为J2EE的集成提供必要的环境支持,从而完成编码、测试、调试及发布等功能。它可以支持JSP,HTML,MYSQL,Javascript,Struts, CSS等。

3.4 Tomcat服务器

Tomcat属于一种轻型的服务器,所以说在中小企业中并不具有普适性。但是当程序员需要开发或调试JSP 程序时,则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说,计算机系统具有一个好的Apache服务器,可以很好的对HTML 页面进行访问。Tomcat 虽然是Apache的扩展,但是它们都是可以独立运行的,二者是不互相干扰的。当配置正确的时候,Apache服务器为HTML 页面的运行提供技术支持,Tomcat 的任务则是运行Servle和JSP 页面。Tomca也具有一定的HTML页面处理功能。

3.5 MYSQL数据库

Mysql的语言是非结构化的,用户可以在数据上进行工作,并且学起来比较容易,功能大,储存量也大,Mysql主要应用于数据的查询、编辑,现在普遍存在的关系数据库有很多,并得到了普遍的应用。使用Mysql数据库在应用编辑中带来了方便,可以对数据进行广泛地查询,Mysql数据库的应用并不需要用户了解其存储的方式,更不用掌握数据存放的方法,Mysql数据库的灵活性较强,功能也较强大,多,在其他程序中实现某功能需要编写一大堆代码,而在Mysql数据库中只需要一小段代码就可以实现功能,所以,Mysql数据库的语言较简洁。

3.6 SSM三大框架

当今流行的“SSM组合框架”是Spring + SpringMVC + MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring属于一个轻量级的反转控制框架(IoC),但它也是一个面向表面的容器(AOP)。SpringMVC常常用于控制器的分类工作模式,与模型对象分开,程序对象的作用与自动取款机进行处理。这种解耦治疗使整个系统的个性化变得更加容易。MyBatis是一个良好的可持续性框架,支持普通SQL查询,同时允许对存储过程的高级映射进行数据的优化处理。大型Java Web应用程序的由于开发成本太高,开发后难以维护和开发过程中一些难以解决的问题,而采用“SSM组合框架”,它允许建立业务层次结构,并为这个问题提供良好的解决方案。


第4章  系统设计

4.1 系统功能需求

架构设计的目的是反映一个结构和其他元素之间的关系,抽象,通常用于指导大型软件系统。将一个巨大的任务细分为多个小任务的过程是系统架构的总体设计。完成小任务后,整个任务就可以完成了。具体的实现过程是分解系统,分析各部分的功能、接口和逻辑关系。信息传递的设计,最后一步是优化,系统页面是一个一个模块组建而成的,层次结构分明,思想运用的是面向对象,一个实体对应一个数据类型,还要对每个数据类添加一个实施类。

在进行程序开发时,不仅要考虑用户的功能需求,还要保证界面友好,所以功能板块的设计显得尤其重要。系统在设计伊始,立足于满足学生选课信息和教师课程信息的基本管理需求,具有一般实用性。因此,可将系统进行划分,对每个小模块进行细节的添加,管理员进入到系统进行对一级功能模块进行编辑维护,然后再根据需求进行下一级划分。

系统功能结构,如图4.1所示:

图4.1 学生功能模块图

4.2 系统E-R图

学习编程,我们都知道数据库设计是基于系统功能需要设计的,我们需要建立一个数据库关系模型,用来存储数据信息,这样当我们在程序中时,就没有必要了为程序页面添加了数据,从而提高了系统的效率。数据库存储了大量信息,可以说是信息管理系统的核心和基础,数据库还提供了添加,删除,修改和检查,使系统可以快速找到自己想要的信息,而不是在程序代码中查找。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。

数据库是整个软件程序设计中最核心的环节,因此开发的首要问题就是确定数据库的数量以及结构式的创建。上面已经介绍,本论文将使用MYSQL技术实现对数据库的管理,以保证它的可用性、一致性、保密性和完整性。有些非法用户可能会对系统数据库进行攻击,以获取数据库中的资料,MYSQL可以起到很好的保护作用。

根据需求分析,本系统包括以下几个实体。

学生信息信息实体E-R图,如图4.3所示。

图4.2学生信息E-R图

课程信息管理E-R图,如图4.3所示。

图4.3课程信息E-R图

学生选课信息E-R图,如图4.5示。

图4.5学生选课信息E-R图

4.3 数据库表的设计

我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。

基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑选课排课系统的功能,而且组织比较清晰。数据库设计如下:

表1:banji表

列名

数据类型

长度

约束

id

bigint

11

PRIMARY KEY

banji

varchar

200

DEFAULT NULL

表2:config表

列名

数据类型

长度

约束

ID

bigint

11

PRIMARY KEY

name

varchar

100

DEFAULT NULL

value

varchar

100

DEFAULT NULL

表3:gonggaoxinxi表

列名

数据类型

长度

约束

ID

bigint

11

PRIMARY KEY

gonggaobiaoti_

varchar

200

DEFAULT NULL

tupian

varchar

200

DEFAULT NULL

表4:jiaoshi

列名

数据类型

长度

约束

id

int

11

PRIMARY KEY

jiaoshigonghao

varchar

200

 DEFAULT NULL

mima

varchar

200

 DEFAULT NULL

jiaoshixingming

varchar

200

 DEFAULT NULL

xingbie

varchar

200

 DEFAULT NULL

zhaopian

varchar

200

 DEFAULT NULL

nianling

varchar

200

 DEFAULT NULL

zhicheng

varchar

200

 DEFAULT NULL

lianxidianhua

varchar

200

 DEFAULT NULL

5kebiaoxinxi

列名

数据类型

长度

约束

ID

int

11

PRIMARY KEY

banji

varchar

200

 DEFAULT NULL

xueqi

varchar

200

 DEFAULT NULL

diyijie

varchar

200

 DEFAULT NULL

dierjie

varchar

200

 DEFAULT NULL

disanjie

varchar

200

 DEFAULT NULL

disijie

varchar

200

 DEFAULT NULL

diwujie

varchar

200

 DEFAULT NULL

6kechengmingcheng

列名

数据类型

长度

约束

ID

int

11

PRIMARY KEY

kechengmingcheng

varchar

200

 DEFAULT NULL

7kechengxinxi

列名

数据类型

长度

约束

ID

int

11

PRIMARY KEY

kechengmingcheng

varchar

200

 DEFAULT NULL

kechengleixing

varchar

200

 DEFAULT NULL

tupian

varchar

200

 DEFAULT NULL

banji

varchar

200

 DEFAULT NULL

xueqi

varchar

200

 DEFAULT NULL

jiaoshigonghao

varchar

200

 DEFAULT NULL

jiaoshixingming

varchar

200

 DEFAULT NULL

8token

列名

数据类型

长度

约束

ID

bigint

20

PRIMARY KEY

 `userid

bigint

20

 DEFAULT NULL

username

varchar

100

 DEFAULT NULL

tablename

varchar

100

 DEFAULT NULL

role

varchar

100

 DEFAULT NULL

token

varchar

100

 DEFAULT NULL

9tuikexinxi

列名

数据类型

长度

约束

ID

bigint

20

PRIMARY KEY

kechengmingcheng

varchar

200

 DEFAULT NULL

kechengleixing

varchar

200

 DEFAULT NULL

banji

varchar

200

 DEFAULT NULL

xueqi

varchar

200

 DEFAULT NULL

xuankeriqi

varchar

200

 DEFAULT NULL

tuikeshuoming

varchar

200

 DEFAULT NULL

tuikeriqi

varchar

200

 DEFAULT NULL

jiaoshigonghao

varchar

200

 DEFAULT NULL

jiaoshixingming

varchar

200

 DEFAULT NULL

xuehao

varchar

200

 DEFAULT NULL

xueshengxingming

varchar

200

 DEFAULT NULL

sfsh

varchar

200

 DEFAULT NULL


第5章 系统实现

5.1用户登录界面

用户后台登录,对于登录窗口是一个系统功能操作的安全门,如果没有这个登录安全门,任何人都可以进入到系统操作平台进行对功能模块的操作,那么系统的数据信息将会出现错乱,不同用户拥有不同的管理权限,所以对于登录窗口是系统实现的重要窗口,用户通过输入自己的用户名和密码,信息填写完成,系统对用户输入的信息进行在线匹配,匹配完成后登录成功,进入到系统操作界面,进行相对应的功能模块的修改维护等操作,如图5.1所示。

图5.1 系统登陆页面设计

5.2管理员功能模块

管理员通过登录进入到系统操作界面,通过系统操作界面可以对个人中心、公告信息、班级管理、学生管理、教师管理、课程名称管理、课程信息管理、课表信息管理、学生选课管理、退课信息管理等模块进行查看管理等操作。

公告信息管理:通过列表可以查看公告标题、图片、发布日期等信息,进行查看详情、新增、修改或删除操作,或通过输入公告标题进行查询,如图5.2所示。

5.2公告信息管理界面图

学生管理:通过列表可以查看学号、学生姓名、性别、头像、班级、手机、邮箱等信息,进行查看详情、修改或新增、删除操作,如图5.3所示。

图5.3学生管理界面图

教师管理:通过列表可以查看教师名称、教师描述等信息,管理员可以进行查看或修改、删除、新增教师信息,如图5.4所示。

 图5.4教师管理界面图

课程管理:通过列表可以查看课程名称等信息,管理员可以进行查看详情、新增、修改或删除操作,如图5.5所示。

图5.5课程名称管理面图

 课表信息管理:通过列表可以查看班级、学期、星期、第一节、第二节、第三节、第四节、第五节等信息,管理员可以进行查看详情、新增、修改或删除操作,如图5.6所示。

图5.6课表信息管理面图

 课程信息管理:通过列表可以查看课程名称、课程类型、图片、班级、学期、发布日期、教师工号、教师姓名等信息,管理员可以进行查看详情、新增、修改或删除操作,如图5.7所示。

图5.7课程信息管理面图

学生选课管理:通过列表可以查看课程名称、课程类型、班级、学期、选课日期、状态、教师工号、教师姓名、学号、学生姓名、备注、审核回复、审核状态等信息,管理员可以进行查看详情、审核、修改、删除操作,如图5.8所示。

图5.8学生选课管理面图

5.3教师模块

老师通过登录窗口,进行输入自己的用名和密码,信息输入完成后进入到用户的操作界面,通过系统操作界面可与对个人中心、公告信管理、课表信息管理、课程信息管理、学生选课管理、退课信息管理等模块进行查看管理等操作。

课程管理,通过教师处理课程列表可以进行查看课程名称、课程类型、图片、班级、学期、发布日期、教师工号、教师姓名等信息,进行查看详情操作,如图5.9所示。

图5.9课程信息管理界面图

课表信息管理:通过列表可以获取班级、学期、星期、第一节、第二节、第三节、第四节、第五届等信息,进行在线查看课表信息,如图5.10所示。

图5.10课表信息管理界面图

学生选课管理:通过列表可以查看课程名称、课程类型、班级、学期、选课日期、状态、教师工号、教师姓名、学号、学生姓名、备注、审核回复、审核状态等信息,管理员可以进行查看详情、修改、删除操作,如图5.11所示。

图5.11学生选课管理界面图

退课信息管理:通过列表可以查看课程名称、课程类型、班级、学期、选课日期、状态、教师工号、教师姓名、学号、学生姓名、审核回复、审核状态等信息,管理员可以进行查看详情操作,如图5.12所示。

图5.12退课信息管理界面图

5.4学生模块

学生通过登录窗口,进行输入自己的用名和密码,信息输入完成后进入到用户的操作界面,通过系统操作界面可与对个人中心、公告信息管理、课表信息管理、课程信息管理、学生选课管理、退课信息管理等模块进行相对应操作。

课表信息管理:通过列表可以获取班级、学期、星期、第一节、第二节、第三节、第四节、第五届等信息,进行在线查看课表信息,如图5.13所示。

图5.13课表信息界面图

 课程信息管理:通过列表可以查看课程名称、课程类型、图片、班级、学期、发布日期、教师工号、教师姓名等信息,管理员可以进行查看详情、在线选课操作,如图5.14所示。

图5.14课程信息界面图

学生选课管理:通过列表可以查看课程名称、课程类型、班级、学期、选课日期、状态、教师工号、教师姓名、学号、学生姓名、备注、审核回复、审核状态等信息,管理员可以进行查看详情、退课、删除操作,如图5.15所示。

图5.15学生选课管理界面图

退课信息管理:通过列表可以查看课程名称、课程类型、班级、学期、选课日期、状态、教师工号、教师姓名、学号、学生姓名、审核回复、审核状态等信息,管理员可以进行查看详情、修改、删除操作,如图5.16所示。

图5.16退课信息管理界面图


第6章  系统测试

6.1系统测试的目的

程序设计不能保证没有错误,这是一个开发过程,在程序运行的过程中是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息,系统无法正常启动等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要系统的开发。

软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。

选课排课系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在系统正式上传和使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。

6.2系统测试方法

在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量有所保证,并且开发的周期会大大缩短;还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

6.3功能测试

登录测试:

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:admin  密码:123  

弹出错误提示,提示密码错误

弹出错误提示,提示密码错误

通过

登录模块

用户名:123   

密码:admin   

弹出错误提示,提示用户名错误

弹出错误提示,提示用户名错误

通过

登录模块

用户名:admin   

密码:admin   

管理员登录成功

管理员登录成功

通过

删除分类测试:

模块名称

测试用例

预期结果

实际结果

是否通过

删除分类模块

分类名:最新通知  

删除成功、页面自动跳转

删除成功、页面自动跳转

通过

修改密码测试:

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:666

新密码:123

确认密码:123  

弹出错误提示,提示原密码错误

弹出错误提示,提示原密码错误

通过

修改密码模块

原密码:admin   新密码:123

确认密码:333  

弹出错误提示,提示确认密码不一致

弹出错误提示,提示确认密码不一致

通过

修改密码模块

原密码:admin   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

通过对功能的测试,选课排课系统的基本功能都是可行的,不管是系统里面的功能还是界面的设计都是可值得推广宣传的。
                                   

在选课排课系统设计中,我花了很多时间来了解系统开发中使用的知识,最后通过这段时间的努力完成了系统设计。通过这段时间的学习,我发现了自己的缺点并完全掌握了必要的应用技巧。一步一步,深入研究丰富了我的知识基础,从而完成了这项艰巨的任务。当我遇到问题时,我会及时寻求老师的帮助,并通过专业网站和相关文献资料解决。他们帮助我克服困难问题,一步一步走向成功。系统设计过程并不容易,需要不断充实自己,勇于克服疑难问题。功能是系统开发的一部分并不完美,后期需要不断完善,通过用户体验进行修改,设计出完美的系统,让用户获得更好的体验,我觉得很开心因为这是我的第一个系统通过他们自己努力实现,但不是我的最后一个,我将在未来更加努力,争取更好的作品完成。

回顾毕业设计的整个过程,既付出汗水也收获了很多。虽然经历了各种各样的困难,自己的不断研究探索,系统的实现仍有不足之处。

这个毕业设计取得了很大的成就感,这也使我对未来的生活更有信心。


致  谢

选课排课系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。

第一个要感谢的就是我的指导老师,谢谢您在设计和论文中给我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。

最终选课排课系统可以顺利的运行,我们在交流、谈论的这段时间,将是我未来的财富,我要深深地感谢你们!

感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。

毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人。第一个要感谢的就是我的指导老师,谢谢您在设计和论文中给我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。

最终选课排课系统可以顺利的运行,我们在交流、谈论的这段时间,将是我未来的财富,我要深深地感谢你们!

参考文献

  1. 范立峰,乔世全,程文彬 JSP程序设计 人民邮电大学出版社 2009。
  2. (美)Kevin Mukhar, Chris Zelenak , James L.Weaver,Jim Crume ,JavaEE 5 开发指南,机械工业出版社,2006。
  3. 陈雄华 企业应用开发详解 电子大学出版社,2017。
  4. 李宁Java Web开发技术大全--JSP+Servlet清华大学出版社,2018。
  5. 聂哲 JSP动态WEB技术实例教程。
  6. 李绪成,闫海珍 java Web开发教程—入门与提高篇(JSP+Servlet) 清华大学出版社 2009 。
  7. 史胜辉,王春明,沈学华 JavaEE基础教程 清华大学出版社 2016 。
  8. 霍尔等著 MyMYSQL与JSP核心编程 北京 清华大学出版社 2016
  9. Joyce Farrell著 Java编程(英文影印版) 科学出版社 2011
  10. 郭克华编  JavaEE程序设计与应用开发  北京 清华大学出版社 2011
  11. 埃克尔著,陈昊鹏译.Java编程思想[M].(第4版).北京:机械工业出版社,2007:17-690.
  12. Robert W.Sebesta著,刘伟琴等译.Web程序设计[M].(第4版).北京:清华大学出版社,2008:9-450.
  13. 赵强 编著.精通JSP编程[M].北京:电子工业出版社,2006:34-56.
  14. 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2000:10-180.
  15. 陈刚.Eclipse从入门到精通[M].(第2版).北京:清华大学出版社,2007:17-380.
  16. 孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004:19-421.

核心代码展示

/**
 * 公告通知
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-09 11:33:59
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news")); 
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news")); 
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询公告通知成功").put("data", newsView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

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

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

相关文章

栈与队列力扣经典例题20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值

对于栈与队列&#xff0c;我们首先要搞清楚&#xff0c;栈是先入后出&#xff0c;而队列是先入先出&#xff0c;利用这个特性&#xff0c;我们来判断题目用什么STL容器&#xff0c;便于我们去解决问题 20. 有效的括号 这道题&#xff0c;首先我们要知道哪些情况&#xff0c;是会…

Kubernetes的Sevice管理

服务原理: 所有服务都是根据这个服务衍生或者变化出来,根服务---- 服务感知后端靠标签 slelector 标签选择器 kubectl label pods web1 appweb kubectl cluter-info dump | grep -i service-cluster-ip-range 服务ip取值范围 Service 管理: 创建服务: --- kind: Serv…

C++ //练习 10.2 重做上一题,但读取string序列存入list中。

C Primer&#xff08;第5版&#xff09; 练习 10.2 练习 10.2 重做上一题&#xff0c;但读取string序列存入list中。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /******************************************************…

Vue3:用vite创建Vue3项目

一、简介 vite是新一代前端构建工具&#xff0c;官网地址&#xff1a;https://vitejs.cn vite的优势如下&#xff1a; 轻量快速的热重载&#xff08;HMR&#xff09;&#xff0c;能实现极速的服务启动。对 TypeScript、JSX、CSS 等支持开箱即用。真正的按需编译&#xff0c;不…

Linux配置网卡功能

提示:工具下载链接在文章最后 目录 一.network功能介绍二.配置network功能2.1 network_ip配置检查 2.2 network_br配置2.2.1 配置的网桥原先不存在检查2.2.2 配置的网桥已存在-修改网桥IP检查2.2.3 配置的网桥已存在-只添加网卡到网桥里检查 2.3 network_bond配置检查 2.4 netw…

王者荣耀整蛊搭建直播新玩法/obs贴纸配置教程

最近很火的王者荣耀整蛊直播&#xff0c;相信很多玩王者的玩家也想开一个直播&#xff0c;但是看到这种直播娱乐效果很有意思也想搭建一个&#xff0c;这里梦哥给大家出了一期搭建的教程&#xff01; 进阶版视频教程&#xff1a; 这期的教程是进阶版新玩法升级&#xff0c;具体…

动态gif怎么在线制作?轻松实现gif在线制作的小窍门

日常我们在使用聊天软件聊天时会使用一些好玩有趣的gif表情包&#xff0c;其实很多gif表情包都是从视频中的提取出来的画面。那么&#xff0c;如何将视频转换成gif动画&#xff1f;通过使用在线动画制作&#xff08;https://www.gif.cn/&#xff09;工具就能轻松实现这一操作&a…

大模型(LLM)的训练语料信息汇总

大规模语料是模型训练的基础 大模型的训练&#xff0c;大规模的语料是很重要的 大型语言模型在许多自然语言处理任务上取得了显著进展&#xff0c;研究人员正在转向越来越大的文本语料库进行训练 大多数基于Transformer的大型语言模型 (LLM) 都依赖于英文维基百科和Common C…

深入探讨 AutoGPT:彻底改变游戏的自主 AI

原文地址&#xff1a;Deep Dive into AutoGPT: The Autonomous AI Revolutionizing the Game 2023 年 4 月 24 日 AutoGPT 是一个功能强大的工具&#xff0c;它通过 API 使用 GPT-4 和 GPT-3.5&#xff0c;通过将项目分解为子任务并在自动循环中使用互联网和其他工具来创建完…

AutoGPT实现原理

AutoGPT是一种利用GPT-4模型的自动化任务处理系统&#xff0c;其主要特点包括任务分配、多模型协作、互联网访问和文件读写能力以及上下文联动记忆性。其核心思想是通过零样本学习&#xff08;Zero Shot Learning&#xff09;让GPT-4理解人类设定的角色和目标&#xff0c;并通过…

Leetcode刷题-(16~20)-Java+Python+JavaScript

算法是程序员的基本功&#xff0c;也是各个大厂必考察的重点&#xff0c;让我们一起坚持写算法题吧。 遇事不决&#xff0c;可问春风&#xff0c;春风不语&#xff0c;即是本心。 我们在我们能力范围内&#xff0c;做好我们该做的事&#xff0c;然后相信一切都事最好的安排就…

企业购物商城官网的作用举足轻重的发展前景分析

互联网时代&#xff0c;信息成为最重要的产品。 一个企业想要进入互联网&#xff0c;就需要一个平台来承载自己的信息。 官网作为企业的对外展示和宣传平台&#xff0c;发挥着重要的作用。 想要一个官方网站&#xff0c;首先要有一个响亮的域名。 中文域名不再是一个新兴产品。…

数字化转型导师坚鹏:金融机构数字化运营

金融机构数字化运营 课程背景&#xff1a; 很多金融机构存在以下问题&#xff1a; 不清楚数字化运营对金融机构发展有什么影响&#xff1f; 不知道如何提升金融机构数字化运营能力&#xff1f; 不知道金融机构如何开展数字化运营工作&#xff1f; 课程特色&#xff1a;…

低代码中的可视化表单:效率与灵活兼备的设计工具

近年来&#xff0c;随着数字化转型的加速推进&#xff0c;企业对于高效率、灵活性和可定制性的软件开发需求不断增长。传统的软件开发过程通常需要耗费大量的时间和资源&#xff0c;而低代码开发平台的出现为企业提供了一种更加快速和灵活的解决方案。在低代码开发平台中&#…

设计模式(十二)享元模式

请直接看原文: 原文链接:设计模式&#xff08;十二&#xff09;享元模式-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 享元模式定义 享元模式是结构型设计模式的一种&am…

动态SQL的处理

学习视频&#xff1a;3001 动态SQL中的元素_哔哩哔哩_bilibili 目录 1.1为什么学 1.2动态SQL中的元素 条件查询操作 if 元素 choose、when、otherwise元素 where、trim元素 更新操作 set元素使用场景 复杂查询操作 foreach 元素中的属性 ​编辑 迭代数组 迭代List 迭代Map 1…

计算机设计大赛 深度学习疲劳检测 驾驶行为检测 - python opencv cnn

文章目录 0 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习加…

网络架构与组网部署——补充

5G网络架构的演进趋势 &#xff08;1&#xff09; MEC&#xff1a;多接入边缘计算。首先MEC可以实现5GC的功能&#xff0c;因为5GC是集中在机房中&#xff0c;所以当有MEC后&#xff0c;就可以把MEC下发到基站旁边&#xff0c;这样减少端到端的延时。便于实现5G中不同场景的实…

基于 rk3566 的 uboot 分析 - dts 加载和 dm 模型的本质

文章目录 一、设备树加载使用1、概述2、第一阶段1) fdtdec_setup2) 总结 3、第二阶段1) kernle dtb 编译打包2) 加载流程2.1) board_init2.2) init_kernel_dtb2.3) rockchip_read_dtb_file2.4) rockchip_read_resource_dtb 3) 总结 二、dm 模型1、树的创建1) device_bind_commo…

营业执照年报申报

姿势&#xff1a;营业执照年报申报 借鉴文章&#xff1a;个体工商户年报申报流程&#xff08;不要再花冤枉钱&#xff09; 1、国家企业信用信息公示系统 地址&#xff1a;https://www.gsxt.gov.cn/index.html 2、登录&#xff08;重庆的方式二简单&#xff09;