系统概述

在线选课系统中包含教师、学生两种用户
学生登录:管理自己的账号信息,修改信息等,增加或移除课程
教师登录:对个人资料进行查看和密码的修改,维护课程信息,增加与删除课程,对学生的分数进行增加、修改和删除的操作

系统基本功能结构

教师登录

首先经过代码的运行进入本系统,经过在数据库中寻找到想要的老师的账号密码,在首页面进行验证登录。在进入系统后首先会弹出对话框提醒我们在第一次登录时,应更改您的密码以保证账号的安全性。经过导航栏我们可以看到在个人资料模块,可以进行老师的信息的查询和密码的修改。课程的详情管理模块中,老师可以增加新的课程,具体内容包括了课程的名称、课程的介绍、人数限制、学院限制;也可以修改课程的名称、介绍、人数限制、学院限制;管理模块包括了对学生的分数操作和对学生进行删除,还包括了退出登录的操作。

学生登录

在经过数据库的student表中查询,可获得一个学号和密码,通过密码进行登录系统,首先和教师登录界面一致,都有提示第一次登录更改密码的操作。在个人资料模块,也可以查看当前学生账号的信息并修改学生密码。在选课模块的排课信息中,可以根据自己学院的限制进行选课操作;在我的选课模块,可以对已选课程进行退课操作,同时也实现了退出登录的功能。

开发环境

  • 开发软件:IntelliJ IDEA 2020.1.3 x64
  • 前端采用JavaScript 进行页面的渲染部署
  • 后端采用:spring springmvc mybatis 框架
  • tomcat 版本 tomcat 8.5.60
  • 数据库 mysql 5.7
  • JDK 1.8

数据库设计

E-R模型

  1. 学生信息

  2. 选课信息

  3. 课程信息

  4. 学院信息和教师信息

  1. 课程限制

建表语句

CREATE DATABASE `course_selection_system` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
CREATE TABLE `course` (`classId` int(11) NOT NULL AUTO_INCREMENT,`className` varchar(400) NOT NULL,`classNum` int(11) NOT NULL,`teaId` int(11) NOT NULL,`classChooseNum` int(11) NOT NULL,PRIMARY KEY (`classId`)
) ENGINE=InnoDB AUTO_INCREMENT=1015 DEFAULT CHARSET=utf8;
CREATE TABLE `course_choose` (`chooseId` int(11) NOT NULL AUTO_INCREMENT,`stuId` int(11) NOT NULL,`classId` int(11) NOT NULL,`score` int(11) NOT NULL,PRIMARY KEY (`chooseId`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
CREATE TABLE `course_limit` (`limitId` int(11) NOT NULL AUTO_INCREMENT,`classId` int(11) NOT NULL,`insId` int(11) NOT NULL,PRIMARY KEY (`limitId`)
) ENGINE=InnoDB AUTO_INCREMENT=1028 DEFAULT CHARSET=utf8;
CREATE TABLE `institution` (`insId` int(11) NOT NULL AUTO_INCREMENT,`insName` varchar(200) NOT NULL,PRIMARY KEY (`insId`)
) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8;
CREATE TABLE `student` (`stuId` int(11) NOT NULL,`stuName` varchar(200) NOT NULL,`stuPass` varchar(200) NOT NULL,`insId` int(11) DEFAULT NULL,`insName` varchar(200) DEFAULT NULL,PRIMARY KEY (`stuId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `teacher` (`teaId` int(11) NOT NULL,`teaName` varchar(200) NOT NULL,`teaPass` varchar(200) NOT NULL,PRIMARY KEY (`teaId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

源代码设计

源代码地址:

https://gitee.com/StoneLib/Course-Selecting-System-master

pom.xml 完整版

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chatRobot</groupId><artifactId>ChatRobot</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>ChatRobot Maven Webapp</name><url>http://maven.apache.org</url><properties><!-- 设置项目编码编码 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- spring版本号 --><spring.version>5.0.3.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.4.1</mybatis.version></properties><dependencies><!-- java ee --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- 实现slf4j接口并整合 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!-- JSON --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.3</version></dependency><!-- 数据库 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version><scope>runtime</scope></dependency><!-- 数据库连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- mybatis/spring整合包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>com.googlecode.rapid-framework</groupId><artifactId>rapid-core</artifactId><version>4.0.5</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency></dependencies><build><finalName>SSM_Demo</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><!-- 设置JDK版本 --><source>1.8</source><target>1.8</target></configuration></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>*.xml</include></includes></resource><resource><directory>src/main/resources</directory></resource></resources></build></project>

Spring 配置文件

  1. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>SSM_Demo</display-name><description>SSM_Demo_0.0.1</description><!-- 编码过滤器 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置DispatcherServlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置springMVC需要加载的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-*.xml</param-value></init-param><load-on-startup>1</load-on-startup><!--异步支持--><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 匹配所有请求--><url-pattern>/</url-pattern></servlet-mapping><!--欢迎页面--><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><jsp-config><taglib><taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri><taglib-location>/WEB-INF/lib/tld/fmt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri><taglib-location>/WEB-INF/lib/tld/fmt-1_0-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/c</taglib-uri><taglib-location>/WEB-INF/lib/tld/c.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/c-1_0-rt</taglib-uri><taglib-location>/WEB-INF/lib/tld/c-1_0-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/sql</taglib-uri><taglib-location>/WEB-INF/lib/tld/sql.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/sql-1_0-rt</taglib-uri><taglib-location>/WEB-INF/lib/tld/sql-1_0-rt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/x</taglib-uri><taglib-location>/WEB-INF/lib/tld/x.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/x-1_0-rt</taglib-uri><taglib-location>/WEB-INF/lib/tld/x-1_0-rt.tld</taglib-location></taglib></jsp-config></web-app>
  1. spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 扫描web相关的bean --><context:component-scan base-package="com.wjy.controller"/><!-- 开启SpringMVC注解模式 --><mvc:annotation-driven/><!-- 静态资源默认servlet配置 --><mvc:default-servlet-handler/><!-- 配置jsp 显示ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean></beans>
  1. spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 扫描service包下所有使用注解的类型 --><context:component-scan base-package="com.wjy.service"/><!-- 配置数据库相关参数properties的属性:${url} --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 数据库连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="root"/><property name="password" value="stone1031wjy"/><property name="maxPoolSize" value="${c3p0.maxPoolSize}"/><property name="minPoolSize" value="${c3p0.minPoolSize}"/><property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/><property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/><property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/></bean><!-- 配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 扫描model包 使用别名 --><property name="typeAliasesPackage" value="com.wjy.model"/><!-- 扫描sql配置文件:mapper需要的xml文件 --><property name="mapperLocations" value="classpath:mapper/*.xml"/></bean><!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.wjy.dao"/></bean><!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/></bean><!-- 配置基于注解的声明式事务 --><tx:annotation-driven transaction-manager="transactionManager"/></beans>

效果演示

  1. 登录
    通过在数据库学生表/教师表中找到对应的账号和密码进行登录
    这是学生版







基于 SSM 框架的学生在线选课系统设计相关推荐

  1. 基于SSM框架的学生在线教育教学课程管理系统

    基于SSM框架的学生在线教育教学课程管理系统 1.1 项目概述 开发语言:Java8 数据库:Mysql5 前端技术:echarts图表 渲染数据:thymeleaf模板引擎 ${ } 后端框架:Sp ...

  2. 【JAVA程序设计】(C00095)基于SSM框架的学生选课管理系统

    基于SSM框架的学生选课管理系统 项目获取 文章结构 一.开发框架及业务方向 1.开发环境 2.开发框架 3.整体业务 二.项目结构及页面展示 1.项目整体结构 2.学生页面 3.教师页面 4.管理员 ...

  3. 基于javaweb+mysql的学生在线选课系统(管理员、教师、学生)

    基于javaweb+mysql的学生在线选课系统(管理员.教师.学生) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均 ...

  4. 基于javaweb+JSP+Servlet学生在线选课系统(管理员、教师、学生)

    基于javaweb+JSP+Servlet学生在线选课系统(管理员.教师.学生) 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练 ...

  5. 嘉明SSM学习之基于SSM框架的学生信息管理系统

    项目的github:https://github.com/zjm-cityboy/sims-GitHub.git 可以的话点个小星星嘿嘿 1.项目介绍 1.1.项目环境配置 操作系统:Windows1 ...

  6. 基于Java的学生在线选课系统设计与实现

    目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 课题背景和意义 1 1.2 本系统主要功能模块 1 第二章 学生选课系统需求分析 3 2.1需求概要 3 2.2详细需求分析 3 ...

  7. 基于SSM的中学学生学籍管理系统设计与实现

    摘 要:进入新世纪之后,信息技术迅速发达,计算机网络也被广泛使用.各行各业都在面临信息化改革.作为信息技术水平较高的教育行业来说,更是需要冲在信息化改革的最前面.在信息爆炸的年代,传统的教育模式就显得 ...

  8. 基于SSM框架的学生老师考试管理系统

    一.基于SSM的学生老师考试管理系统 多用户[多教师+多学生+多班级]登录管理 具有试卷管理.考试中心.班级管理.题目管理等等功能 该系统分为首页.试卷管理.考试管理.班级管理.注册登录等模块.除了实 ...

  9. 【原创】基于SSM框架的教师档案管理系统设计与实现

    高校教师档案管理是高校信息化建设的重要组成部分,对于高校管理层进行决策有重要的参考意义.目前高校的教师档案管理系统普遍存在着一些问题,如落后的管理理念,低效的管理方式,较低的信息化水平等,这严重阻碍了 ...

最新文章

  1. Spring Boot 异步请求和异步调用
  2. VC对话框禁止关闭按钮和禁止任务管理中关闭进程
  3. JSON和JSONP
  4. 如何让MFC编写的应用程序(用VC6.0开发)能在别的电脑上运行
  5. ABP VNext从单体切换到微服务
  6. 演练 类的定义 java 1615134691
  7. 魅族预热魅族18系列:没有中杯 大杯起步
  8. linux_oracle视频讲解百度云,Oracle免费视频课程2012版
  9. Adobe Illustrator (AI)安装教程 (附安装包下载资源)
  10. 旁站,子域名,C段的含义
  11. Alexa工具条嵌入浏览器技术解析
  12. 陈强教授 计量经济学及机器学习等数据集、程序等相关资源
  13. Ubuntu 缩减磁盘空间
  14. Github+Facebook=?这家公司有望让程序猿的头秃得慢一点
  15. ArabellaCPC 2019 B. Road to Arabella
  16. 如何快速有效玩弄乙方?
  17. web前端大作业--响应式风景旅游网页设计(国庆旅游主题-HTML+CSS+JavaScript)实现
  18. u3d游戏开发视频潭州_Unity MMORPG游戏开发教程(一)——初识Unity
  19. 百度云svip高速下载
  20. Pomelo Redis

热门文章

  1. python对象类型及其运算 数字 字符串 list dict tupe dict
  2. ubuntu进去安全模式_win10和Ubuntu双系统,无法开机如何进入win10安全模式
  3. C语言面试题大汇总之华为面试题 Eddy整理
  4. k8s中pod sandbox创建失败failed to start sandbox container
  5. 构建虚拟主机(基于域名、端口、IP地址进行构建)
  6. android 9谷歌相机,安卓谷歌相机9.0下载-谷歌相机9.0安卓版-电玩咖
  7. Redis_保存数据时报错MISCONF Redis is configured to save RDB snapshots, but it is curren
  8. 胖葵酒店管理系统(android客户端+javaweb服务端+腾讯云服务器+腾讯云数据库)
  9. Nexus(1):Nexus的安装与配置
  10. vue显示日历插件_一个干净轻巧的插件,用于显示属性日历