基于 SSM Web 的教师业绩管理系统设计与实现
基于 SSM 架构的教师业绩管理系统的设计与实现。内容包括系统总体模块设计,涵盖用户管理、课程管理及执行鼓励等功能。数据库设计部分详细阐述了概念模型(E-R 图)及关系模式,包含管理员、教师、学生、课程及课程执行五张核心表。详细设计章节展示了后台角色权限验证逻辑及登录、管理员、学生、课程管理等界面实现。系统实施阶段提供了关键代码示例,如学生信息的增删改查操作,旨在构建一个简洁易用的教学管理平台。

基于 SSM 架构的教师业绩管理系统的设计与实现。内容包括系统总体模块设计,涵盖用户管理、课程管理及执行鼓励等功能。数据库设计部分详细阐述了概念模型(E-R 图)及关系模式,包含管理员、教师、学生、课程及课程执行五张核心表。详细设计章节展示了后台角色权限验证逻辑及登录、管理员、学生、课程管理等界面实现。系统实施阶段提供了关键代码示例,如学生信息的增删改查操作,旨在构建一个简洁易用的教学管理平台。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
教师业绩管理系统主要设计了用户管理、课程管理、课程执行鼓励等功能,满足用户在网站上面进行课程管理的信息浏览与查看,具体功能模块图如 4.1 所示:

图 4.1 系统总体模块图
数据设计方案:采用 DBMS 方案——mysql。mysql 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。
将需求分析得到的用户需求抽象为信息结构,即概念模型的过程就是概念结构设计,它是整个数据库设计的关键。
(2)系统中实体 E-R 图
管理员信息实体,主要包括 管理员编号,用户名,密码,姓名 等信息实体。如图 4.2 所示:

图 4.2 管理员实体属性图
教师信息实体,主要包括 教师编号,教工号,密码,姓名,性别,学院,联系方式 等信息实体。如图 4.3 所示:

图 4.3 教师实体属性图
学生信息实体,主要包括 学生编号,学号,密码,姓名,年龄,性别,班级,联系方式,家庭住址 等信息实体。如图 4.5 所示:

图 4.5 学生实体属性图
课程信息实体,主要包括 课程编号,课程名称,任课教师,单位,开课班级,课程属性,理论学时,实验学时,上机学时,上课人数 等信息实体。如图 4.6 所示:

图 4.6 课程实体属性图
课程执行信息实体,主要包括 课程执行编号,课程,实际人数,是否新开课,语言,理论学时,理论合作教师,上机学时,上机合作教师,实验学时,实验组数,实验合作教师,特别说明 等信息实体。如图 4.7 所示:

图 4.7 课程实体属性图
一个实体型转换为一个关系模式的集合。实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
在教师业绩管理系统中,实体有管理员实体,教师实体,学生实体,课程实体,课程执行实体等实体,他们之间的关系如图 4.13 所示:

图 4.13 实体之间关系图
本章主要介绍的内容是总体设计或者概要设计,介绍了教师业绩管理系统的设计,主要是在架构设计、总体模块设计和数据库设计的方面介绍的,为进一步的详细设计做准备。
详细设计阶段的任务就是把在总体设计阶段提出的比较抽象概括的解决问题的方法具体化,也就是'应该怎样具体地实现这个系统'。在本阶段将包括数据库的设计和每个模块的详细设计,确定实现模块功能所需要的算法和数据结构。
普通用户或管理员输入自己的用户账号、密码,通过身份验证后可以进入相应的管理界面首页。管理员管理页面分为管理员信息管理与查看,教师信息管理与查看,学生信息管理与查看,课程信息管理与查看,课程执行信息管理与查看模块。
当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入普通用户的用户名、密码,就可以通过身份验证进入该系统。登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。用户分为普通用户和管理员两种。每种用户具有不同的权限,能完成不同的操作。普通用户具有查看信息权限等功能。管理员用户是系统的最高权限具有系统所有功能的操作。
管理员登录信息验证界面是非常重要的一部分,它接收登录表单提交的信息,并在用户信息表里检验是否存在对应的用户,和判断用户的类型以便获得相应的权限。
由各个关系模式和根据需求分析阶段数据字典的数据项描述,给出各数据表结构。
(1)管理员信息表如表 5.1 所示:
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
|---|---|---|---|---|---|
| 1 | glyid | INTEGER | 11 | 是 | 管理员编号 |
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
(2)教师如表 5.2 所示:
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
|---|---|---|---|---|---|
| 1 | jsid | INTEGER | 11 | 是 | 教师编号 |
| 2 | jgh | VARCHAR | 40 | 否 | 教工号 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | xb | VARCHAR | 40 | 否 | 性别 |
| 6 | xy | VARCHAR | 40 | 否 | 学院 |
| 7 | lxfs | VARCHAR | 40 | 否 | 联系方式 |
(3)学生表如表 5.3 所示:
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
|---|---|---|---|---|---|
| 1 | xsid | INTEGER | 11 | 是 | 学生编号 |
| 2 | xh | VARCHAR | 40 | 否 | 学号 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | nl | VARCHAR | 40 | 否 | 年龄 |
| 6 | xb | VARCHAR | 40 | 否 | 性别 |
| 7 | bj | VARCHAR | 40 | 否 | 班级 |
| 8 | lxfs | VARCHAR | 40 | 否 | 联系方式 |
| 9 | jtzz | VARCHAR | 40 | 否 | 家庭住址 |
(4)课程表如表 5.4 所示:
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
|---|---|---|---|---|---|
| 1 | kcid | INTEGER | 11 | 是 | 课程编号 |
| 2 | kcmc | VARCHAR | 40 | 否 | 课程名称 |
| 3 | rkjs | VARCHAR | 40 | 否 | 任课教师 |
| 4 | dw | VARCHAR | 40 | 否 | 单位 |
| 5 | kkbj | VARCHAR | 40 | 否 | 开课班级 |
| 6 | kcsx | VARCHAR | 40 | 否 | 课程属性 |
| 7 | llxs | VARCHAR | 40 | 否 | 理论学时 |
| 8 | syxs | VARCHAR | 40 | 否 | 实验学时 |
| 9 | sjxs | VARCHAR | 40 | 否 | 上机学时 |
| 10 | skrs | VARCHAR | 40 | 否 | 上课人数 |
(5)课程执行表如表 5.5 所示:
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
|---|---|---|---|---|---|
| 1 | kczxid | INTEGER | 11 | 是 | 课程执行编号 |
| 2 | kc | VARCHAR | 40 | 否 | 课程 |
| 3 | sjrs | VARCHAR | 40 | 否 | 实际人数 |
| 4 | sfxkk | VARCHAR | 40 | 否 | 是否新开课 |
| 5 | yy | VARCHAR | 40 | 否 | 语言 |
| 6 | llxs | VARCHAR | 40 | 否 | 理论学时 |
| 7 | llhzjs | VARCHAR | 40 | 否 | 理论合作教师 |
| 8 | sjxs | VARCHAR | 40 | 否 | 上机学时 |
| 9 | sjhzjs | VARCHAR | 40 | 否 | 上机合作教师 |
| 10 | syxs | VARCHAR | 40 | 否 | 实验学时 |
| 11 | syzs | VARCHAR | 40 | 否 | 实验组数 |
| 12 | syhzjs | VARCHAR | 40 | 否 | 实验合作教师 |
| 13 | tssm | VARCHAR | 40 | 否 | 特别说明 |
本章主要是在上一章的总体设计的基础之上对系统进行详细设计,主要分为两个方面来设计,分别为后台设计和数据库设计,在后台设计方面,主要是设计的系统的权限分配,角色登录的验证;在数据库方面是设计系统的物理结构的设计和逻辑结构的设计。
系统实施是指将系统设计阶段的结果在计算机上实现,将原来纸面上的类似于设计图式的新系统方案转换成可执行的应用软件。实施阶段的主要活动:物理系统的建立,程序的编制,系统调试,系统切换,系统维护,系统评价。
界面也称作 UI(User Interface),是人机交互重要部分,也是系统给用户使用的第一印象,是整个系统的重要组成部分。所谓的用户体验大部分就是指界面设计的体验。
本系统的名称是'教师业绩管理系统',界面要求是简洁大方,避免过度包装,目的是为了为企业用户提供一个操作平台。
登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录;具体的登录页面如图 6.1 所示:

图 6.2 登录界面图

该功能用于实现对系统管理员信息的管理。可以添加、删除和更改管理员信息,以及管理员信息列表展现,在添加管理员信息时,系统会自动查询系统中管理员表中的管理员编号字段,系统自动将管理员表中最大值加 1 作为该管理员表管理员记录的管理员编号,同时将管理员编号,用户名,密码,姓名 信息添加到管理员信息表中;在删除一条管理员记录时,先选中一条管理员记录,将该条管理员记录中的管理员编号作为查询条件在管理员信息表中进行查询,弹出'确定要删除吗?'的对话框,若是,则执行删除操作,否则退出删除操作;在更改管理员记录时,先选中一条管理员记录,将管理员信息显示在相应的修改页面中,然后更改后保存到管理员信息表中;查看管理员信息记录时,选中要查看的管理员记录,系统根据用户选择管理员信息,在详细页面显示管理员信息

该功能用于实现对系统学生信息的管理。可以添加、删除和更改学生信息,以及学生信息列表展现,在添加学生信息时,系统会自动查询系统中学生表中的学生编号字段,系统自动将学生表中最大值加 1 作为该学生表学生记录的学生编号,同时将学生编号,学号,密码,姓名,年龄,性别,班级,联系方式,家庭住址 信息添加到学生信息表中;在删除一条学生记录时,先选中一条学生记录,将该条学生记录中的学生编号作为查询条件在学生信息表中进行查询,弹出'确定要删除吗?'的对话框,若是,则执行删除操作,否则退出删除操作;在更改学生记录时,先选中一条学生记录,将学生信息显示在相应的修改页面中,然后更改后保存到学生信息表中;查看学生信息记录时,选中要查看的学生记录,系统根据用户选择学生信息,在详细页面显示学生信息
@RequestMapping(value="/add") public String add(xuesheng xuesheng,HttpServletRequest request){
Map<String,Object> map= new HashMap<String,Object>();
//String name=(String)request.getParameter("name");
map.put("xsid", xuesheng.getXsid());//学生编号
map.put("xh", xuesheng.getXh());//学号
map.put("mm", xuesheng.getMm());//密码
map.put("xm", xuesheng.getXm());//姓名
map.put("nl", xuesheng.getNl());//年龄
map.put("xb", xuesheng.getXb());//性别
map.put("bj", xuesheng.getBj());//班级
map.put("lxfs", xuesheng.getLxfs());//联系方式
map.put("jtzz", xuesheng.getJtzz());//家庭住址
String xsid=(String)xuesheng.getXsid();//学生编号
String xh=(String)xuesheng.getXh();//学号
String mm=(String)xuesheng.getMm();//密码
String xm=(String)xuesheng.getXm();//姓名
String nl=(String)xuesheng.getNl();//年龄
String xb=(String)xuesheng.getXb();//性别
String bj=(String)xuesheng.getBj();//班级
String lxfs=(String)xuesheng.getLxfs();//联系方式
String jtzz=(String)xuesheng.getJtzz();//家庭住址
String sql="select count(1) as num from xuesheng where+xh+"'";
ResultSet rs=null;
DBO db=new DBO();
int num=0;
try{
rs=db.query(sql);
if(rs.next()){
num=rs.getInt("num");
}
if(num>0){
request.setAttribute("msg", "<script>alert('添加失败、用户名重复');</script>");
}else{
xueshengdao.save(map);
request.setAttribute("msg", "<script>alert('添加成功');</script>");
}
}catch(Exception e){
e.printStackTrace();
}
//request.setAttribute("msg", "<script>alert('添加成功');</script>");
System.out.println("addok");
return "xuesheng/xueshengadd";
}
/**删除 * */
@RequestMapping(value="/del") public String del(Integer id,HttpServletRequest request,Map<String,Object> map){
// Map<String,Object> map= new HashMap<String,Object>();
String a=(String)request.getParameter("keyid");
id=Integer.parseInt(a);
request.setAttribute("msg", "<script>alert('删除成功');</script>");
xueshengdao.del(id);
return selectall(null,map,request);
}
/**
* 修改 xuesheng 信息 */
@RequestMapping(value="/update") public String update(xuesheng xuesheng,HttpServletRequest request,Map<String,Object> map1){
Map<String,Object> map= new HashMap<String,Object>();
map.put("xsid", xuesheng.getXsid());//学生编号
map.put("xh", xuesheng.getXh());//学号
map.put("mm", xuesheng.getMm());//密码
map.put("xm", xuesheng.getXm());//姓名
map.put("nl", xuesheng.getNl());//年龄
map.put("xb", xuesheng.getXb());//性别
map.put("bj", xuesheng.getBj());//班级
map.put("lxfs", xuesheng.getLxfs());//联系方式
map.put("jtzz", xuesheng.getJtzz());//家庭住址
request.setAttribute("msg", "<script>alert('修改成功');</script>");
xueshengdao.update(map);
return selectall(null,map1,request);
}

该功能用于实现对系统课程信息的管理。可以添加、删除和更改课程信息,以及课程信息列表展现,在添加课程信息时,系统会自动查询系统中课程表中的课程编号字段,系统自动将课程表中最大值加 1 作为该课程表课程记录的课程编号,同时将课程编号,课程名称,任课教师,单位,开课班级,课程属性,理论学时,实验学时,上机学时,上课人数 信息添加到课程信息表中;在删除一条课程记录时,先选中一条课程记录,将该条课程记录中的课程编号作为查询条件在课程信息表中进行查询,弹出'确定要删除吗?'的对话框,若是,则执行删除操作,否则退出删除操作;在更改课程记录时,先选中一条课程记录,将课程信息显示在相应的修改页面中,然后更改后保存到课程信息表中;查看课程信息记录时,选中要查看的课程记录,系统根据用户选择课程信息,在详细页面显示课程信息