基于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框架进行开发。通过该系统,学校可以更加便捷地管理学生、教师、课程、考试、教学资源等信息,从而实现高效、科学、规范的教务管理。

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

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

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

相关内容

热门资讯

编程安卓系统和鸿蒙主题,跨平台... 你有没有想过,手机的世界里,除了苹果的iOS和安卓的操作系统,还有个神秘的鸿蒙系统?今天,咱们就来聊...
哪个安卓机系统好用,探索安卓系... 你有没有想过,手机里的安卓系统就像是个大厨,不同的系统就像不同的烹饪手法,有的让你吃得津津有味,有的...
安卓如何控制苹果系统,从安卓到... 你知道吗?在这个科技飞速发展的时代,安卓和苹果两大操作系统之间的较量从未停歇。虽然它们各自有着忠实的...
安卓原生系统文件夹,安卓原生系... 你有没有发现,每次打开安卓手机,里面那些文件夹就像是一个个神秘的宝箱,里面藏着各种各样的宝贝?今天,...
基于安卓系统的游戏开发,从入门... 你有没有想过,为什么安卓手机上的游戏总是那么吸引人?是不是因为它们就像是你身边的好朋友,随时随地都能...
安卓系统怎样装驱动精灵,安卓系... 你那安卓设备是不是突然间有点儿不给力了?别急,今天就来手把手教你如何给安卓系统装上驱动精灵,让你的设...
如何本地安装安卓系统包,详细步... 你有没有想过,把安卓系统装在你的电脑上,是不是就像给电脑穿上了时尚的新衣?想象你可以在电脑上直接玩手...
安卓12卡刷系统教程,体验全新... 你有没有发现,你的安卓手机最近有点儿不给力了?运行速度慢得像蜗牛,是不是也想给它来个“换血大法”,让...
安卓系统无法打开swf文件,安... 最近是不是发现你的安卓手机有点儿不给力?打开SWF文件时,是不是总是出现“无法打开”的尴尬局面?别急...
鸿蒙系统依赖于安卓系统吗,独立... 你有没有想过,我们手机里的那个鸿蒙系统,它是不是真的完全独立于安卓系统呢?这个问题,估计不少手机控都...
适合安卓系统的图片软件,精选图... 手机里堆满了各种美美的照片,是不是觉得找起来有点头疼呢?别急,今天就来给你安利几款超级适合安卓系统的...
阴阳师安卓系统典藏,探寻阴阳师... 亲爱的阴阳师们,你是否在安卓系统上玩得如痴如醉,对那些精美的典藏式神们垂涎欲滴?今天,就让我带你深入...
安卓系统有碎片化缺点,系统优化... 你知道吗?在手机江湖里,安卓系统可是个响当当的大侠。它那开放、自由的个性,让无数手机厂商和开发者都为...
安卓4系统手机微信,功能解析与... 你有没有发现,现在市面上还有很多安卓4系统的手机在使用呢?尤其是那些喜欢微信的朋友们,这款手机简直就...
鸿蒙系统是安卓的盗版,从安卓“... 你知道吗?最近在科技圈里,关于鸿蒙系统的讨论可是热闹非凡呢!有人说是安卓的盗版,有人则认为这是华为的...
安卓系统怎么剪辑音乐,轻松打造... 你是不是也和我一样,手机里存了超多好听的歌,但是有时候想给它们来个变身,变成一段专属的旋律呢?别急,...
怎么把安卓手机系统变为pc系统... 你有没有想过,把你的安卓手机变成一台PC呢?听起来是不是有点酷炫?想象你可以在手机上玩电脑游戏,或者...
手机怎么装安卓11系统,手机安... 你有没有想过,让你的手机也来个“青春焕发”,升级一下系统呢?没错,就是安卓11系统!这个新系统不仅带...
安卓系统如何拼网络,构建高效连... 你有没有想过,你的安卓手机是怎么和网络“谈恋爱”的呢?没错,就是拼网络!今天,就让我带你一探究竟,看...
安卓系统怎么看小说,轻松畅享电... 你有没有发现,手机里装了那么多应用,最离不开的竟然是那个小小的小说阅读器?没错,就是安卓系统上的小说...