基于java+ssm+vue的开放式教学评价管理系统

项目介绍

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对开放式教学评价管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了开放式开放式教学评价管理系统系统的发展,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对开放式开放式教学评价管理系统系统而言非常有利。

本设计的基本思想就是采用SSM框架,以Java为开发语言,MySQL为数据库,使用了Spring、Spring MVC和MyBatis三个框架简称SSM),其中用Spring MVC实现。测试结果表明,该物资管理系统能以一种简便、轻量级的方式实现了物资管理的基本功能,降低了开发的复杂性,提高了系统的可维护性,具有一定的应用价值。

架构设计的目的是反映一个结构和其他元素之间的关系,抽象,通常用于指导大型软件系统。将一个巨大的任务细分为多个小任务的过程是系统架构的总体设计。完成小任务后,整个任务就可以完成了。具体的实现过程是分解系统,分析各部分的功能、接口和逻辑关系。页面是一个一个模块组建而成的,层次结构分明,思想运用的是面向对象,一个实体对应一个数据类型,还要对每个数据类添加一个实施类。

开放式教学评价管理系统的实现主要包括管理员、学生、教师、游客四个用户角色,由于系统用户角色不同所使用的功能模块相应不同,管理员根据需求对系统功能模块进行维护管理操作。

这些功能可以充分满足开放式教学评价管理系统的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net

系统实现

5.1登录功能模块
用户通过登录窗口进行输入自己的账号信息,信息输入完成后填写验证码信息,然后进行提交,系统对用户输入的用户名和密码进行验证用户的角色信息,验证完成后进入到用户的相应操作界面进行自己权限的功能操作,如图5-1所示。
在这里插入图片描述

图5-1登录界面图

5.2 管理员功能模块
管理员通过登录进入到系统操作界面,结合需求可以对个人信息进行在线修改维护,也可结合需求进行密码修改等操作,也可结合需求对个人中心、教师管理、学生管理、游客管理、评价信息管理、综合评价管理、管理员管理等功能模块的管理维护操作。
教师管理:管理员通过列表可以获取工号、姓名、性别、教龄、类型、手机、邮箱、照片等信息,进行查看详情或修改、删除操作,并通过新增进行添加教师信息,如图5-2所示。
在这里插入图片描述

图5-2用户管理界面图

学生管理:通过列表可以获取学号、姓名、性别、年龄、手机、邮箱、图片等信息,进行查看详情或修改、删除操作,并通过新增进行添加学生操作,如图5-3所示。
在这里插入图片描述

图5-3学生信息界面图

游客管理:通过列表可以获取账号、姓名、性别、手机、邮箱、照片等信息,进行查看详情或修改、删除操作,并通过新增进行添加游客信息,如图5-4所示。
在这里插入图片描述

图5-4游客信息管理界面图

评价信息管理:通过列表可以获取教师工号、教师名称、类型、课程名称、教学内容、教学评论、日期、备注等信息,进行查看详情或修改、删除操作,并通过新增进行添加评价信息,或查看统计报表操作,如图5-5所示。
在这里插入图片描述

图5-5评价信息管理界面图

综合评价管理:通过列表可以获取教师工号、教师名称、课程次数、综合评分、总体评价等信息,进行查看详情或修改、删除操作,并通过新增进行添加综合评价信息,如图5-6所示。
在这里插入图片描述

图5-6综合评价管理界面图

5.3 学生功能模块
学生通过登录进入到系统操作界面,结合需求可以对个人信息进行在线修改维护,也可结合需求进行密码修改等操作,也可结合需求对个人中心、学生管理、评价信息管理、综合评价管理等功能模块的管理维护操作。
学生管理:通过列表可以获取学号、姓名、性别、年龄、手机、邮箱、图片等信息,进行查看详情操作,并通过输入学号、姓名进行查询,如图5-7所示。
在这里插入图片描述

图5-7学生信息界面图

评价信息管理:通过列表可以获取教师工号、教师名称、类型、课程名称、教学内容、教学评论、日期、备注等信息,进行查看详情操作,并通过新增进行添加评价信息,输入教师工号、教师姓名进行查询,如图5-8所示。
在这里插入图片描述

图5-8评价信息管理界面图

综合评价管理:通过列表可以获取教师工号、教师名称、课程次数、综合评分、总体评价等信息,进行查看详情操作,并通过输入教师工号、教师姓名进行查询,如图5-9所示。
在这里插入图片描述

图5-9综合评价管理界面图

5.4 教师功能模块
教师通过登录进入到系统操作界面,结合需求可以对个人信息进行在线修改维护,也可结合需求进行密码修改等操作,也可结合需求对个人中心、学生管理、评价信息管理、综合评价管理等功能模块的管理维护操作。
学生管理:通过列表可以获取学号、姓名、性别、年龄、手机、邮箱、图片等信息,进行查看详情操作,并通过输入学号、姓名进行查询,如图5-10所示。
在这里插入图片描述

图5-10学生信息界面图

评价信息管理:通过列表可以获取教师工号、教师名称、类型、课程名称、教学内容、教学评论、日期、备注等信息,进行查看详情操作,并通过新增进行添加评价信息,输入教师工号、教师姓名进行查询,如图5-11所示。
在这里插入图片描述

图5-11评价信息管理界面图

综合评价管理:通过列表可以获取教师工号、教师名称、课程次数、综合评分、总体评价等信息,进行查看详情操作,并通过输入教师工号、教师姓名进行查询,如图5-12所示。
在这里插入图片描述

图5-12综合评价管理界面图

5.5 游客功能模块
教师通过登录进入到系统操作界面,结合需求可以对个人信息进行在线修改维护,也可结合需求进行密码修改等操作,也可结合需求对评价信息管理、综合评价管理等功能模块的管理维护操作。
评价信息管理:通过列表可以获取教师工号、教师名称、类型、课程名称、教学内容、教学评论、日期、备注等信息,进行查看详情操作,并通过新增进行添加评价信息,输入教师工号、教师姓名进行查询,如图5-13所示。
在这里插入图片描述

图5-13评价信息管理界面图

综合评价管理:通过列表可以获取教师工号、教师名称、课程次数、综合评分、总体评价等信息,进行查看详情操作,并通过输入教师工号、教师姓名进行查询,如图5-14所示。
在这里插入图片描述

图5-14综合评价管理界面图

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.PingjiaxinxiEntity;
import com.entity.view.PingjiaxinxiView;

import com.service.PingjiaxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 评价信息
 * 后端接口
 * @author
 * @email
 * @date
 */
@RestController
@RequestMapping("/pingjiaxinxi")
public class PingjiaxinxiController {
    @Autowired
    private PingjiaxinxiService pingjiaxinxiService;



    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,PingjiaxinxiEntity pingjiaxinxi,
		HttpServletRequest request){

        EntityWrapper<PingjiaxinxiEntity> ew = new EntityWrapper<PingjiaxinxiEntity>();
		PageUtils page = pingjiaxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, pingjiaxinxi), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 前端列表
     */
    @RequestMapping("st")
    public R list(@RequestParam Map<String, Object> params,PingjiaxinxiEntity pingjiaxinxi, HttpServletRequest request){
        EntityWrapper<PingjiaxinxiEntity> ew = new EntityWrapper<PingjiaxinxiEntity>();
		PageUtils page = pingjiaxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, pingjiaxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("sts")
    public R list( PingjiaxinxiEntity pingjiaxinxi){
       	EntityWrapper<PingjiaxinxiEntity> ew = new EntityWrapper<PingjiaxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( pingjiaxinxi, "pingjiaxinxi"));
        return R.ok().put("data", pingjiaxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(PingjiaxinxiEntity pingjiaxinxi){
        EntityWrapper< PingjiaxinxiEntity> ew = new EntityWrapper< PingjiaxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( pingjiaxinxi, "pingjiaxinxi"));
		PingjiaxinxiView pingjiaxinxiView =  pingjiaxinxiService.selectView(ew);
		return R.ok("查询评价信息成功").put("data", pingjiaxinxiView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        PingjiaxinxiEntity pingjiaxinxi = pingjiaxinxiService.selectById(id);
        return R.ok().put("data", pingjiaxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        PingjiaxinxiEntity pingjiaxinxi = pingjiaxinxiService.selectById(id);
        return R.ok().put("data", pingjiaxinxi);
    }




    /**
     * 后端保存
     */
    @RequestMapping("ve")
    public R save(@RequestBody PingjiaxinxiEntity pingjiaxinxi, HttpServletRequest request){
    	pingjiaxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(pingjiaxinxi);

        pingjiaxinxiService.insert(pingjiaxinxi);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody PingjiaxinxiEntity pingjiaxinxi, HttpServletRequest request){
    	pingjiaxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(pingjiaxinxi);

        pingjiaxinxiService.insert(pingjiaxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody PingjiaxinxiEntity pingjiaxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(pingjiaxinxi);
        pingjiaxinxiService.updateById(pingjiaxinxi);//全部更新
        return R.ok();
    }


    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        pingjiaxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);

		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}

		Wrapper<PingjiaxinxiEntity> wrapper = new EntityWrapper<PingjiaxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = pingjiaxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}



}

论文参考

在这里插入图片描述

目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 背景及意义 1
1.2 研究概况 1
1.3 研究的内容 1
第2章 相关技术 3
2.1 JAVA简介 3
2.2 Eclipse开发环境 3
2.3 Tomcat服务器 3
2.4 MySQL数据库 4
2.5 SSM框架 4
第3章 系统分析 5
3.1 需求分析 5
3.2 系统可行性分析 5
3.2.1技术可行性:技术背景 5
3.2.2经济可行性 5
3.2.3操作可行性: 6
3.3 项目设计目标与原则 6
3.4 系统流程分析 7
3.4.1登录流程 7
3.4.2添加信息流程 8
3.4.3删除信息流程 8
第4章 系统设计 10
4.1 系统体系结构 10
4.2 开发流程设计 10
4.3 数据库设计原则 11
4.4 数据表 12
第5章 系统实现 15
5.1登录功能模块 15
5.2 管理员功能模块 15
5.3 学生功能模块 18
5.4 教师功能模块 19
5.5 游客功能模块 21
第6章 系统测试 23
6.1 系统测试的目的 23
6.2 系统测试方法 23
6.3 功能测试 23
结 论 25
致 谢 26
参考文献 27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值