基于ssm框架和mysql的教务管理系统
1、绪论
“教务网络管理系统”针对学校学生情况对学生各学年的成绩进行有效的管理。能够快速的查询出学生的各科成绩,以及所在班级等各种用途。
2、需求分析
能够存储一定数量的学生信息,并方便有效地进行相应的数据操作和管理,这主要包括学生信息的录入、删除和修改。学生各科成绩的多少关键字查询。
能够对一定数量的读者进行相应的信息存储和管理,这其中包括查询学生的信息的登记、删除及修改各科考试成绩的查询。学生资料的统计和查询。
能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份服务。 使网站更加容易管理和维护,不需要对过多人员培训,提高工作效率。
3、设计
本系统主要面对3个对象:管理员、教职工、学生。
3.1 业务功能分析
功能结构
E-R图
管理员状态图
学生状态图
教师状态图
3.1.1 学生模块
-
所选课程 :显示所有的选修课程以及上课时间和地点等详细信息
-
已选课程 :显示所有已选好课程,包括学分、上课时间、上课地点、授课老师
-
已修课程 :显示所有已经修完,老师已经给成绩的课程
3.1.2 教师模块
- 我的课程 :显示自己授课的课程列表,已经对学生进行打分
3.1.3 管理员模块
-
课程管理 :当课程已经有学生选课成功时,将不能删除
-
学生管理 :添加学生信息时,其信息也会被添加到登陆表
-
教师管理 :主要对教师的信息进行管理
3.2 数据库搭建
3.2.1 数据库设计
学院表(college)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
collegeID | int(11) | NOT NULL PRIMARY KEY | 学院ID |
collegeNAME | varchar(200) | NOT NULL | 学院名 |
课程表(course)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
courseID | int(11) | NOT NULL PRIMARY KEY | 课程ID |
courseNAME | varchar(200) | NOT NULL | 课程名称 |
teacherID | int(11) | NOT NULL | 教师ID |
courseTime | varchar(200) | DEFAULT NULL | 上课时间 |
classRoom | varchar(200) | DEFAULT NULL | 上课地点 |
courseWeek | int(200) | DEFAULT NULL | 上课周数 |
courseType | varchar(20) | DEFAULT NULL | 课程类型 |
collegeID | intr(11) | NOT NULL | 所属学院 |
score | int(11) | NOT NULL | 学分 |
角色表(role)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
roleID | int(11) | NOT NULL PRIMARY KEY | 角色ID |
roleNAME | varchar(20) | NOT NULL | 角色名称 |
permissions | varchar(255) | DEFAULT NULL | 权限 |
选课表(selectedcourse)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
courseID | int(11) | NOT NULL PRIMARY KEY | 选课ID |
studentID | int(11) | NOT NULL | 学生ID |
mark | int(11) | DEFAULT NULL | 成绩 |
学生表(student)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
userID | int(11) | NOT NULL AUTO_INCREMENT PRIMARY KEY | 学生ID |
userNAME | varchar(200) | NOT NULL | 学生姓名 |
sex | varchar(20) | DEFAULT NULL | 性别 |
birthYear | date | DEFAULT NULL | 出生日期 |
grade | date | DEFAULT NULT | 入学日期 |
collegeID | int(11) | NOT NULT | 院系ID |
教师表(teacherr)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
userID | int(11) | NOT NULL AUTO_INCREMENT PRIMARY KEY | 教师ID |
userNAME | varchar(200) | NOT NULL | 教师姓名 |
sex | varchar(20) | DEFAULT NULL | 性别 |
birthYear | date | NOT NULL | 出生日期 |
degree | varchar(20) | DEFAULT NULL | 学历 |
title | varchar(255) | DEFAULT NULL | 职称 |
grade | date | DEFAULT NULL | 入职时间 |
collegeID | int(11) | NOT NULL | 院系 |
登陆表(userlogin)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
userID | int(11) | NOT NULL AUTO_INCREMENT PRIMARY KEY | 用户ID |
userNAME | varchar(200) | NOT NULL | 用户姓名 |
password | varchar(200) | NOT NULL | 用户密码 |
role | int(11) | NOT NULL | 角色权限 |
3.2.2 数据库实现
学院表
sql
DROP TABLE IF EXISTS `college`;
CREATE TABLE `college` (
`collegeID` int(11) NOT NULL,
`collegeName` varchar(200) NOT NULL COMMENT '课程名',
PRIMARY KEY (`collegeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
课程表
sql
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`courseID` int(11) NOT NULL,
`courseName` varchar(200) NOT NULL COMMENT '课程名称',
`teacherID` int(11) NOT NULL,
`courseTime` varchar(200) DEFAULT NULL COMMENT '开课时间',
`courseRoom` varchar(200) DEFAULT NULL COMMENT '开课地点',
`courseWeek` int(200) DEFAULT NULL COMMENT '学时',
`courseType` varchar(20) DEFAULT NULL COMMENT '课程类型',
`collegeID` int(11) NOT NULL COMMENT '所属院系',
`score` int(11) NOT NULL COMMENT '学分',
PRIMARY KEY (`courseID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
角色表
sql
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`roleID` int(11) NOT NULL,
`roleName` varchar(20) NOT NULL,
`permissions` varchar(255) DEFAULT NULL COMMENT '权限',
PRIMARY KEY (`roleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
选课表
sql
DROP TABLE IF EXISTS `selectedcourse`;
CREATE TABLE `selectedcourse` (
`courseID` int(11) primary key NOT NULL,
`studentID` int(11) NOT NULL,
`mark` int(11) DEFAULT NULL COMMENT '成绩'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
学生表
sql
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date DEFAULT NULL COMMENT '出生日期',
`grade` date DEFAULT NULL COMMENT '入学日期',
`collegeID` int(11) NOT NULL COMMENT '院系id',
PRIMARY KEY (`userID`)
) ENGINE=InnoDB AUTO_INCREMENT=10007 DEFAULT CHARSET=utf8;
教师表
sql
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`sex` varchar(20) DEFAULT NULL,
`birthYear` date DEFAULT NULL COMMENT '出生日期',
`degree` varchar(20) DEFAULT NULL COMMENT '学历',
`title` varchar(255) DEFAULT NULL COMMENT '职称',
`grade` date DEFAULT NULL COMMENT '入职时间',
`collegeID` int(11) NOT NULL COMMENT '院系',
PRIMARY KEY (`userID`)
) ENGINE=InnoDB AUTO_INCREMENT=1004 DEFAULT CHARSET=utf8;
用户登陆表
sql
DROP TABLE IF EXISTS `userlogin`;
CREATE TABLE `userlogin` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) NOT NULL,
`password` varchar(200) NOT NULL,
`role` int(11) NOT NULL DEFAULT '2' COMMENT '角色权限',
PRIMARY KEY (`userID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
4、编码
4.1 后台功能实现
4.1.1 College pojo类
```java package com.system.po;
public class College { private Integer collegeid; private String collegename; public Integer getCollegeid() { return collegeid; } public void setCollegeid(Integer collegeid) { this.collegeid = collegeid; } public String getCollegename() { return collegename; } public void setCollegename(String collegename) { this.collegename = collegename == null ? null : collegename.trim(); } } ```
4.1.2 cpllege servic类
java
package com.system.service;
import com.system.po.College;
import java.util.List;
public interface CollegeService {
List<College> finAll() throws Exception;
}
4.1.3 college impl类
```java package com.system.service.impl; import com.system.mapper.CollegeMapper; import com.system.po.College; import com.system.po.CollegeExample; import com.system.service.CollegeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List;
@Service public class CollegeServiceImpl implements CollegeService {
@Autowired
private CollegeMapper collegeMapper;
public List<College> finAll() throws Exception {
CollegeExample collegeExample = new CollegeExample();
CollegeExample.Criteria criteria = collegeExample.createCriteria();
criteria.andCollegeidIsNotNull();
return collegeMapper.selectByExample(collegeExample);
}
} ```
4.1.4 college mapper 映射
```java package com.system.mapper; import com.system.po.College; import com.system.po.CollegeExample; import org.apache.ibatis.annotations.Param; import java.util.List;
public interface CollegeMapper {
int countByExample(CollegeExample example);
int deleteByExample(CollegeExample example);
int deleteByPrimaryKey(Integer collegeid);
int insert(College record);
int insertSelective(College record);
List
4.1.5 login controller层
```java package com.system.controller; import com.system.po.Userlogin; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod;
@Controller public class LoginController { //登录跳转 @RequestMapping(value = "/login", method = {RequestMethod.GET}) public String loginUI() throws Exception { return "../../login"; }
//登录表单处理
@RequestMapping(value = "/login", method = {RequestMethod.POST})
public String login(Userlogin userlogin) throws Exception {
//Shiro实现登录
UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),
userlogin.getPassword());
Subject subject = SecurityUtils.getSubject();
//如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
subject.login(token);
if (subject.hasRole("admin")) {
return "redirect:/admin/showStudent";
} else if (subject.hasRole("teacher")) {
return "redirect:/teacher/showCourse";
} else if (subject.hasRole("student")) {
return "redirect:/student/showCourse";
}
return "/login";
}
} ```
4.2 前端页面实现
4.2.1 菜单页面实现
```html <%@ page contentType="text/html;charset=UTF-8" language="java" %>
```
4.2.2 头页面实现
```html <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--shiro标签--%> <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
```
4.2.3 学生显示页面
```html <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
课程列表
课程号 | 课程名称 | 授课老师编号 | 上课时间 | 上课地点 | 周数 | 课程类型 | 学分 | 操作 |
---|---|---|---|---|---|---|---|---|
${item.courseid} | ${item.coursename} | ${item.teacherid} | ${item.coursetime} | ${item.classroom} | ${item.courseweek} | ${item.coursetype} | ${item.score} |
```
5、测试
5.1 登陆测试
5.2 管理员界面测试
5.2.1 管理学生
5.2.2 学生添加
5.2.3 查询学生测试
5.2.4 修改学生测试
5.2.5 删除学生测试
5.2.6 重置密码
5.2.7 退出系统
5.3 学生功能测试
5.3.1 选课
5.3.2 退课
5.3.3 已修
5.4 教师页面
5.4.1 成绩打分
6、总结
使用SSM框架,非常的不熟悉,本来使用maven工程创建项目,但在配置时,有些war包下载不下来,后转为建造web项目。此项目基本代码都来源于网络和课本,虽然这样,但我在弄这整个项目过程中,知道SSM框架的大体流程,在完成这个项目前并不知道需要去配置web.xml这个文件夹,因为我建的时servlet是3.1的,并没有web.xml这个文件,而我在网络上有学到servl3.0开始可以注解,不用web.xml这个文件。导致项目一直运行不成功,后来才在网络上查到有其他框架时候要配置web.xml文件。在运行过程中还出现过中文变成问号的问题,虽然用了两个多星期来完成这个项目,基本是在用他人的东西,但在这个过程中我加深了对spring 、springmvc、mybatis的理解及它们之间是如何整合的。
参考文献
- 教务管理系统的设计与实现(电子科技大学·刘畅)
- 基于Web Service的学分制教务管理系统的研究与实现(苏州大学·李响)
- 教务管理系统的研究与设计(华中师范大学·李玲)
- 辽宁科技学院综合教务管理系统设计与实现(电子科技大学·赵宝军)
- 基于SSH的教务管理系统的设计与实现(电子科技大学·冯鹏)
- 基于web的院级教务管理系统的研究与实现(华中师范大学·周尚书)
- 基于web的院级教务管理系统的研究与实现(华中师范大学·周尚书)
- 多层架构下教务管理系统的设计与实现(华南理工大学·陈菲)
- 基于.NET平台的教务管理系统的设计与实现(电子科技大学·赵成松)
- 教务管理系统的研究与设计(华中师范大学·李玲)
- 基于Java与Web模式的教务管理系统的设计与实现(华东师范大学·王洪龄)
- 鲁东大学继续教育教务管理系统的设计与实现(山东大学·隋华)
- 基于Web Service的学分制教务管理系统的研究与实现(苏州大学·李响)
- 基于B/S架构的综合教务管理系统的开发与实现(河北工业大学·方芳)
- 多层架构下教务管理系统的设计与实现(华南理工大学·陈菲)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设小屋 ,原文地址:https://m.bishedaima.com/yuanma/35202.html