基于ssm教务管理系统
创始人
2024-06-02 23:50:58
0

基于ssm教务管理系统

一、项目背景介绍:

教务管理系统是一种基于信息技术的管理工具,可以用来管理学生、教师、课程、考试、教学资源等方面的信息,以实现高效、科学、规范的教务管理。随着信息技术的迅速发展,教务管理系统已经成为现代高校的必备设施之一。

教务管理系统的出现,旨在帮助学校更好地管理和利用教学资源,提高教学质量和效率。教务管理系统可以通过网络平台进行信息共享和交流,有效地解决了传统教务管理方式中存在的一系列问题,例如信息不及时、重复劳动、管理不规范等等。

在教务管理系统中,学生可以通过在线选课、查询课程信息、成绩查询等功能实现自我管理;教师可以通过发布课程信息、在线作业布置、学生成绩管理等功能实现教学管理;管理人员可以通过维护学生、教师、课程、考试等信息,实现教务管理的全过程。

因此,教务管理系统对于提高学校管理效率和教学质量具有重要意义。同时,教务管理系统也是学校信息化建设中的重要组成部分。随着信息技术的发展和普及,教务管理系统的功能和应用也在不断拓展和完善。

本篇论文旨在探讨教务管理系统的发展、现状、优势和未来趋势,深入分析教务管理系统对教育教学的影响和作用。同时,我们将以某高校的教务管理系统为例,介绍其设计与实现过程,以及其应用效果和意义。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Mybatis:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
  3. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  4. Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
  5. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
  6. Html:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

    超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。
  7. shiro:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:absence(absence)

字段名类型默认值列注释
absence_idintNULL缺勤表ID
student_idintNULL学生ID
student_namevarcharNULL学生姓名
course_idintNULL课程ID
absence_timevarcharNULL缺勤时间

2:class(class)

字段名类型默认值列注释
class_idintNULL班级ID
class_namevarcharNULL班级名
department_idintNULL专业名
creation_timedateNULL班级的创建时间
creat_numberintNULL班级的创建人数
class_deletedintNULL用于删除的标志字段

3:classroom(classroom)

字段名类型默认值列注释
classroom_idintNULL教室ID
classroom_namevarcharNULL教室名
classroom_stateintNULL教室可用状态,默认为0空
classroom_containintNULL教室可容纳人数
classroom_phonevarcharNULL本教室后勤电话
classroom_deletedintNULL教室删除状态

4:course(course)

字段名类型默认值列注释
course_idintNULL课程ID
course_namevarcharNULL课程名
department_idintNULL专业ID
stateintNULL当前课程被老师占用状态,0为没有老师占用,1为老师占用

5:department(department)

字段名类型默认值列注释
department_idintNULL专业ID
department_namevarcharNULL专业名

6:headmaster(headmaster)

字段名类型默认值列注释
headmaster_idintNULL班主任ID
headmaster_namevarcharNULL班主任姓名
class_idintNULL教师ID
heademaster_deletedintNULL班主任状态
headmaster_phonebigintNULL班主任联系电话
headmaster_sexintNULL性别
headmaster_stateintNULL

7:image_user(image_user)

字段名类型默认值列注释
image_idintNULL图片id
image_namevarcharNULL图片名字
user_idintNULL用户id

8:permission(permission)

字段名类型默认值列注释
permission_idintNULL权限id,主键
namevarcharNULL权限名称
parent_pidintNULL父级权限id
typevarcharNULL权限类型: menu:菜单, button:按钮, page:页面
urlvarcharNULL权限访问的url资源
sorttinyintNULL序号,菜单、按钮排序用,大的排后面
statetinyintNULL状态,1可用,0不可用

9:record(record)

字段名类型默认值列注释
record_idintNULL授课信息ID
teacher_idintNULL教师ID
class_idintNULL班级ID
course_idintNULL课程ID
classroom_idintNULL教室ID
record_datedateNULL授课日期
record_indexintNULL第几节课

10:registrar(registrar)

字段名类型默认值列注释
registrar_idintNULL教导主任ID
registrar_namevarcharNULL教导主任名字
registrar_sexintNULL教导主任性别
department_idintNULL管理院系
registrar_phonebigintNULL教务主任电话
registrar_deletedintNULL逻辑删除

11:role(role)

字段名类型默认值列注释
role_idintNULL角色id
namevarcharNULL角色名
statetinyintNULL状态,1可用,0不可用

12:role_permission(role_permission)

字段名类型默认值列注释
idintNULL主键
role_idintNULL关联role表的角色id
permission_idintNULL关联permission表的权限id

13:score(score)

字段名类型默认值列注释
score_idintNULL成绩表ID
score_GPAintNULL平时成绩
score_examintNULL考试成绩
absenceintNULL缺勤次数
student_idintNULL学生ID
course_idintNULL课程id

14:student(student)

字段名类型默认值列注释
student_idintNULL学生ID
student_namevarcharNULL学生姓名
student_ageintNULL学生年龄
student_phonebigintNULL学生电话
class_idintNULL班级ID
student_sexintNULL性别,0为女
student_deletedintNULL学生状态,默认1为未删除

15:teacher(teacher)

字段名类型默认值列注释
teacher_idintNULL教师ID
teacher_namevarcharNULL教师姓名
teacher_sexintNULL教师性别0女
course_idintNULL课程ID
teacher_deletedintNULL教师状态
teacher_phonevarcharNULL教师联系电话

16:user(user)

字段名类型默认值列注释
user_idintNULL用户ID
user_namevarcharNULL用户登录名
user_passwordvarcharNULL用户密码
user_nicknamevarcharNULL用户昵称
user_deletedintNULL用户状态

17:user_headmaster(user_headmaster)

字段名类型默认值列注释
user_headmaster_idintNULL用户班主任关联表ID
user_idintNULL用户ID
headmaster_idintNULL班主任ID

18:user_registrar(user_registrar)

字段名类型默认值列注释
user_registrar_idintNULL用户教务主任关联表ID
user_idintNULL用户ID
registrar_idintNULL教务主任ID

19:user_role(user_role)

字段名类型默认值列注释
idintNULL
user_idintNULL用户ID
role_idintNULL角色ID

20:user_student(user_student)

字段名类型默认值列注释
user_student_idintNULL用户学生表ID
user_idintNULL用户ID
student_idintNULL学生ID

21:user_teacher(user_teacher)

字段名类型默认值列注释
user_teacher_idintNULL关联表ID
user_idintNULL用户ID
teacher_idintNULL教师ID

五、功能模块:

  1. 用户模块:
    分三类角色:教务主任、班主任、任课教师、不同角色对应可访问的功能模块不同,及权限不同。登录模块(shiro)

    用户模块

  2. 院系管理:院系管理(决定课程方向):类似如JAVA、嵌入式、H5,学生专业的增删改查

    院系管理

  3. 课程管理: 管理维护基本课程信息:类似如JAVA基础、JAVA面向对象核心编程、Mysql数据库编程,增删改查课程

    课程管理

  4. 班级信息管理: 管理、维护班级信息(信息的增删改查)、指定班主任,增删改查班级信息

    班级信息管理

  5. 教室管理:管理维护教室信息;

    教室管理

  6. 教师信息管理:管理维护教师信息

    教师信息管理

  7. 授课信息管理:授课信息管理:管理、维护授课信息、如发布、调整教学计划、打印课程表

    授课信息管理

  8. 考勤管理、成绩管理:考勤管理:管理维护学生考勤
    成绩管理:管理维护学生所学课程的考核结果,添加修改平时成绩、添加修改考试成绩
    下面是一些账号信息,因本系统使用 加密的方式保存密码,所以无法直接从数据库中查看用户的密码信息,故在此备注一些账号密码,后期可自己使用管理员账号添加修改用户密码信息

学生信息管理:ryj,123(java1班班主任),headmaster22,123(嵌入式1班班主任)
教室管理:ryj,123(Java1班班主任)
教师信息管理:persist,123(Java教务主任),registrar3,123(嵌入式教务主任)
考勤管理:ryj,123(java1班班主任)headmaster22,123456(嵌入式1班班主任)
院系管理:persist,123(java教务主任),registrar3 123456(嵌入式教务主任)
H5教务主任:登录名:zhulaoshi 密码:123
java教务主任:登录名:zh_test: 密码:123
成绩管理 teacher122 123(任课教师)
班级管理 persist 123 (Java教务主任) zhulaoshi 123(H5教务主任).

考勤管理、成绩管理

六、代码示例:

用户模块
public Map login(String username, String password, String remember) {Map result = new HashMap<>();//获取shiro框架认为的当前用户Subject cuurentUser = SecurityUtils.getSubject();//判断是否已经认证过,认证过,就不需要再次认证了if (!cuurentUser.isAuthenticated()) {//当没有认证过时,使用用户输入的用户名和密码进行认证UsernamePasswordToken token = new UsernamePasswordToken(username, password);if (remember.equals("yes")) {token.setRememberMe(true);}//shiro执行登录操作try {cuurentUser.login(token);} catch (UnknownAccountException e) {//用户不存在result.put("code", -1);result.put("message", "账号错误!");return result;} catch (IncorrectCredentialsException e) {//密码错误result.put("code", -2);result.put("message", "密码错误!");return result;} catch (AuthenticationException e) {//抛出错误e.printStackTrace();result.put("code", -3);result.put("message", "登录失败!");return result;}}User user = (User) cuurentUser.getSession().getAttribute("user");result.put("code", 1);result.put("message", "登录成功!");result.put("user", user);return result;}
院系管理
@RequestMapping("/getone")@ResponseBodypublic Map getOne(int studentId){Map result=new HashMap<>();//根据学生的id查询出学生的基本信息StudentInfo student = departmentService.getById(studentId);if (student==null){result.put("code",-1);result.put("message","无此学生");} else {result.put("code",0);result.put("student",student);}System.out.println(result);return result;}@RequestMapping("/updateok")@ResponseBodypublic MapupdateByClassId(String className,int studentId){Mapresult=new HashMap<>();System.out.println(className);System.out.println(studentId);//根据班级姓名查询班级IDint classId = departmentService.getClassIdByClassName(className);int i = departmentService.updateByClassId(classId, studentId);if (i>0){result.put("code",0);}else {result.put("code",-1);result.put("massage","修改失败");}return result;}
课程管理
@RequestMapping("queryAll")@ResponseBodypublic Map queryAll(){List courses = courseService.queryAll();
//        System.out.println(courses  +"========================");Map result = new HashMap<>();result.put("code",0);result.put("message","获取用户数据成功");result.put("courseList",courses);return result;}@RequestMapping("queryAllCourseDepartment")@ResponseBodypublic Map queryAllCourseDepartment(){List courses =  courseService.queryAllCourseDepartment();Map result = new HashMap<>();result.put("code",0);result.put("message","获取用户数据成功");result.put("courseList",courses);return result;}//添加课程专业信息@RequestMapping("addCourseDepartment")@ResponseBodypublic Map addCourseDepartment(CourseInfo courseInfo){
//        System.out.println(courseInfo);courseService.addCourseDepartment(courseInfo);Map result = new HashMap<>();result.put("code",0);result.put("message","添加课程信息成功");return result;}
班级信息管理
        @Overridepublic int deleteClassInfoByClassId(Integer classId) {return classManagementDao.deleteClassInfoByClassId(classId);}@Overridepublic int updateHeadmasterStateByClassId(Integer classId) {return classManagementDao.updateHeadmasterStateByClassId(classId);}@Overridepublic List getOneHeadmasterInfoByClassId( ) {return classManagementDao.getOneHeadmasterInfoByClassId();}@Overridepublic List getOneClassInfo(Integer classId) {return classManagementDao.getOneClassInfo(classId);}@Overridepublic int updateHeadmasterInfo(Headmaster headmaster) {return classManagementDao.updateHeadmasterInfo(headmaster);}
教室管理
        public MapupdateByClassId(String className,int studentId){Mapresult=new HashMap<>();System.out.println(className);System.out.println(studentId);//根据班级姓名查询班级IDint classId = departmentService.getClassIdByClassName(className);int i = departmentService.updateByClassId(classId, studentId);if (i>0){result.put("code",0);}else {result.put("code",-1);result.put("massage","修改失败");}return result;}
教师信息管理
        @RequestMapping("/seletedByName")@ResponseBodypublic Map seletedByName(String studentName){Map result = new HashMap<>();Set student = departmentService.getByName(studentName);System.out.println(student);if (student!=null && !student.isEmpty()){result.put("code",0);result.put("student",student);}else {result.put("code",-1);result.put("message","本专业无此人");}return result;}
授课信息管理
        @RequestMapping("teaching/beforeGet")public String beginGet(Model model){Session session= SecurityUtils.getSubject().getSession();List roles=new ArrayList<>();Set permissions=new HashSet<>();User user= (User) session.getAttribute("user");for(Role r:user.getRoles()){roles.add(r.getName());Role role1=roleService.queryRoleInfoByRoleId(r.getRoleId());if (role1.getPermissions()!=null) {for (Permission per : role1.getPermissions()) {permissions.add(per.getName());}}}session.setAttribute("roles",roles);session.setAttribute("permissions",permissions);model.addAttribute("dateStr",new SimpleDateFormat("yyyy-MM-dd").format(new Date()));return "teaching/tabs";}
考勤管理、成绩管理
public Map login(String username, String password, String remember) {Map result = new HashMap<>();//获取shiro框架认为的当前用户Subject cuurentUser = SecurityUtils.getSubject();//判断是否已经认证过,认证过,就不需要再次认证了if (!cuurentUser.isAuthenticated()) {//当没有认证过时,使用用户输入的用户名和密码进行认证UsernamePasswordToken token = new UsernamePasswordToken(username, password);if (remember.equals("yes")) {token.setRememberMe(true);}//shiro执行登录操作try {cuurentUser.login(token);} catch (UnknownAccountException e) {//用户不存在result.put("code", -1);result.put("message", "账号错误!");return result;} catch (IncorrectCredentialsException e) {//密码错误result.put("code", -2);result.put("message", "密码错误!");return result;} catch (AuthenticationException e) {//抛出错误e.printStackTrace();result.put("code", -3);result.put("message", "登录失败!");return result;}}User user = (User) cuurentUser.getSession().getAttribute("user");result.put("code", 1);result.put("message", "登录成功!");result.put("user", user);return result;}

七、项目总结:

本项目是基于信息技术实现的教务管理系统,旨在提高学校教务管理的效率和质量。项目采用了Java语言和Spring框架进行开发。通过该系统,学校可以更加便捷地管理学生、教师、课程、考试、教学资源等信息,从而实现高效、科学、规范的教务管理。

在项目开发过程中,我们采用了敏捷开发的方法,并以团队合作为核心,保证了项目开发的高效性和质量。我们注重需求分析和设计,通过反复的沟通和讨论,建立了清晰的需求文档和详细的系统设计文档。我们在实现过程中,采用了严谨的开发流程和测试机制,保证了系统的稳定性和安全性。

在项目的最终结果中,我们提供了一个全面、高效、易用的教务管理系统,能够满足学校教务管理的各项需求。系统中提供了学生选课、成绩查询、课程管理、考试安排等一系列功能,教师可以通过该系统发布课程信息、布置作业、管理成绩等,同时系统管理员也可以通过该系统进行维护和管理。我们还提供了多维度的数据分析和可视化报表功能,方便管理员对教务管理进行分析和评估。

总之,我们的项目团队在这个项目中付出了很多努力,并成功地开发了一个高质量、高效的教务管理系统,该系统可以帮助学校更加便捷地管理和利用教学资源,提高教学质量和效率。我们相信这个系统将对学生、教师和管理人员产生积极的影响。

相关内容

热门资讯

如何删除安卓系统信息,安卓系统... 手机里的信息越来越多,是不是感觉自己的隐私都快要被暴露无遗了?别担心,今天就来教你怎么轻松删除安卓系...
国产安卓系统哪个流畅,揭秘哪家... 你有没有想过,手机里的操作系统就像是我们的大脑,有时候它运行得快慢,直接影响我们的使用体验呢?今天,...
安卓怎么刷主机系统,掌握主机系... 你有没有想过,你的安卓手机或者平板,是不是也能像电脑一样,装上各种酷炫的系统呢?没错,今天就要来给你...
安卓系统桌面显示时间,见证日常... 你有没有发现,每次打开安卓手机,那桌面上的时间总是一闪一闪的,仿佛在告诉你:“时间不等人哦!”今天,...
os云刷安卓系统,畅享智能新体... 你有没有想过,你的安卓手机是不是也能像电脑一样,装上各种酷炫的系统呢?没错,今天就要来跟你聊聊这个神...
安卓系统如何装siri,安卓设... 你有没有想过,在安卓手机上也能享受到Siri的智能语音助手服务呢?没错,就是那个在iPhone上呼之...
电脑怎么安卓双系统,电脑安装安... 你有没有想过,一台电脑同时运行安卓和Windows系统,那得多酷啊!想象一边处理工作,一边刷刷抖音,...
linux操作系统与安卓系统,... 你有没有想过,为什么你的手机可以随时随地给你发送信息,而你的电脑却能帮你处理复杂的任务呢?这背后,就...
安卓大屏系统信息,功能与体验全... 你有没有发现,最近手机界的大屏风潮真是势不可挡啊!安卓大屏系统信息,这可是个热门话题呢!想象拿着一块...
苹果7转安卓系统,探索安卓系统... 你有没有想过,从苹果7转到安卓系统会是怎样的体验呢?想象你手中的那个曾经陪伴你度过无数美好时光的苹果...
安卓系统打卡手机推荐,高效便捷... 你有没有想过,每天早上起床后,第一件事就是拿出手机打卡签到?这已经成为现代生活中不可或缺的一部分了。...
安卓手机装了小米系统,小米系统... 你有没有想过,把安卓手机的灵魂换成小米的系统,会是怎样的体验呢?想象原本流畅的安卓系统,突然间被注入...
安卓汽车系统怎么升级,轻松实现... 亲爱的安卓车主们,你是否也像我一样,对汽车系统升级充满了好奇和期待呢?想象你的爱车就像一部智能手机,...
手机怎么变安卓系统,轻松实现系... 你有没有想过,你的手机居然可以变身成为安卓系统呢?没错,就是那个自由度极高的操作系统!今天,就让我来...
安卓仿ios系统横条,打造流畅... 你有没有发现,最近安卓手机上出现了一种特别的新花样——仿iOS系统的横条设计!这可不是简单的模仿,而...
谷歌汽车安卓系统下载,引领智能... 你有没有想过,未来的汽车可能会变成一个移动的智能中心?想象你的汽车不仅能够带你穿梭在城市的大街小巷,...
安卓系统硬件修复软件,全面解析... 手机里的安卓系统突然卡顿,是不是让你头疼不已?别急,今天就来给你揭秘那些神奇的安卓系统硬件修复软件,...
鸿蒙系统比安卓系统大么,体积对... 你有没有想过,手机里的操作系统,就像是手机的心脏,它的大小、性能,都直接影响到手机的使用体验。今天,...
安卓系统 刷机模式,刷机模式操... 你有没有想过,你的安卓手机其实就像一个隐藏着无限可能的宝藏呢?没错,今天就要来跟你聊聊这个宝藏的秘密...
案卷制作系统下载安卓,高效便捷... 你有没有想过,在手机上也能轻松制作案卷呢?没错,现在就有这么一款神器——案卷制作系统,而且它还支持安...