• SpringMVC+Vue项目高校课程评价系统


    末获取源码 

    开发语言:Java

    开发工具:IDEA /Eclipse

    数据库:MYSQL5.7

    应用服务:Tomcat7/Tomcat8

    使用框架ssm+vue

    JDK版本:jdk1.8

    前言介绍 

    高校课程评价的需求和管理上的不断提升,高校课程评价管理的潜力将无限扩大,高校课程评价系统在业界被广泛关注,本系统对此进行总体分析,将高校课程评价信息管理的发展提供参考。高校课程评价系统对高校课程有着明显的带动效应,尤其对当地高校课程评价的管理帮助更大。

    本系统主要包括管理员、学生、专家和教师四个用户角色;主要包括首页,个人中心,指标信息管理,课程管理,院系管理,专业管理,班级管理,教师管理,专家管理,学生管理,课程信息管理等功能的系统。

    功能分析 

    考虑到实际在高校课程评价管理方面的需要以及对该系统认真的分析,将系统权限按管理员、学生、专家和教师这四类涉及用户划分。

    (1)管理员功能需求

    管理员登陆后,主要模块包括首页,个人中心,指标信息管理,课程管理,院系管理,专业管理,班级管理,教师管理,专家管理,学生管理,课程信息管理,等功能。管理员用例图如图

     

    (2)教师功能需求

    教师登陆后,主要模块包括首页,个人中心,指标信息管理,课程信息管理,教师自评管理等功能。教师用例图如图

     

    3)学生功能需求

    学生登陆后,主要模块包括首页,个人中心,课程信息管理,学生评价管理等功能。学生用例图如图

     

    (4)专家功能需求

    专家登陆后,主要模块包括首页,个人中心,指标信息管理,课程信息管理,专家评价管理等功能。专家用例图如图 

    功能结构

    为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该高校课程评价系统的功能结构图如下所示:

    系统功能实现

    系统登录,管理员、学生、专家和教师进入系统前在登录页面根据要求填写账号,密码,验证码和选择角色等信息,点击登录进行登录操作,如图

    管理员功能模块 

    管理员登陆系统后,可以查看首页,个人中心,指标信息管理,课程管理,院系管理,专业管理,班级管理,教师管理,专家管理,学生管理,课程信息管理,等功能,还能对每个功能逐一进行相应操作,如图

     

    指标信息管理

    在指标信息管理页面可以对索引,名称,课程,班级,课程图片,教学大纲,课程进度,课程视频,教师工号,教师姓名,联系电话等内容进行详情,修改和删除等操作,如图 

    教师管理

    在教师管理页面可以对索引,教师工号,教师姓名,性别,照片,院系,专业,职务,联系电话,教师邮箱等内容进行详情,修改和删除等操作,如图 

    专家管理

    在专家管理页面可以对索引,专家账号,专家姓名,性别,照片,职称,联系电话等内容进行详情,修改和删除等操作,如图

    学生管理

    在学生管理页面可以对索引,学号,姓名,性别,头像,手机,院系,专业,班级,邮箱等内容进行详情,修改和删除等操作,如图 

    课程信息管理

    在课程信息管理页面可以对索引,名称,课程,班级,课程图片,教学大纲,课程进度,课程视频,教师工号,教师姓名,联系电话等内容进行详情,修改和删除等操作,如图 

     

    学生功能

    学生登陆系统,可以查看首页,个人中心,课程信息管理,学生评价管理等功能,还能对每个功能逐一进行相应操作,如图 

     

    个人中心

    在个人信息页面通过填写学号,姓名,性别,头像,手机,院系,专业,班级,邮箱等内容进行个人信息修改操作,如图 

     

    教师功能 

    教师登陆系统,可以对首页,个人中心,指标信息管理,课程信息管理,教师自评管理等功能进行详细操作,如图

    指标信息管理

    在指标信息管理页面可以对索引,名称,课程,班级,课程图片,教学大纲,课程进度,课程视频,教师工号,教师姓名,联系电话等内容进行详情,教师自评操作,如图 

    课程信息管理

    在课程信息管理页面可以对索引,名称,课程,班级,课程图片,教学大纲,课程进度,课程视频,教师工号,教师姓名,联系电话等内容进行详情,教师自评,如图 

    教师自评管理

    在教师自评管理页面可以对索引,课程互动性,课程评分,总体评分,评价日期,教师工号等内容进行详情操作,如图 

    专家功能 

    专家登陆系统,可以对首页,个人中心,指标信息管理,课程信息管理,专家评价管理等功能进行详细操作,如图 

    专家评价管理

    在专家评价管理页面可以对索引,课程,教学能力,教学效果,学生状态,教学评分,教学评级,教师工号,教师姓名,评价日期,专家账号,专家姓名等内容进行详情操作,如图

    部分核心代码: 

    1. /**
    2. * 教师自评
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-03-28 19:33:54
    7. */
    8. @RestController
    9. @RequestMapping("/jiaoshiziping")
    10. public class JiaoshizipingController {
    11. @Autowired
    12. private JiaoshizipingService jiaoshizipingService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,JiaoshizipingEntity jiaoshiziping,
    18. HttpServletRequest request){
    19. String tableName = request.getSession().getAttribute("tableName").toString();
    20. if(tableName.equals("jiaoshi")) {
    21. jiaoshiziping.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
    22. }
    23. EntityWrapper<JiaoshizipingEntity> ew = new EntityWrapper<JiaoshizipingEntity>();
    24. PageUtils page = jiaoshizipingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshiziping), params), params));
    25. return R.ok().put("data", page);
    26. }
    27. /**
    28. * 前端列表
    29. */
    30. @IgnoreAuth
    31. @RequestMapping("/list")
    32. public R list(@RequestParam Map<String, Object> params,JiaoshizipingEntity jiaoshiziping,
    33. HttpServletRequest request){
    34. EntityWrapper<JiaoshizipingEntity> ew = new EntityWrapper<JiaoshizipingEntity>();
    35. PageUtils page = jiaoshizipingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshiziping), params), params));
    36. return R.ok().put("data", page);
    37. }
    38. /**
    39. * 列表
    40. */
    41. @RequestMapping("/lists")
    42. public R list( JiaoshizipingEntity jiaoshiziping){
    43. EntityWrapper<JiaoshizipingEntity> ew = new EntityWrapper<JiaoshizipingEntity>();
    44. ew.allEq(MPUtil.allEQMapPre( jiaoshiziping, "jiaoshiziping"));
    45. return R.ok().put("data", jiaoshizipingService.selectListView(ew));
    46. }
    47. /**
    48. * 查询
    49. */
    50. @RequestMapping("/query")
    51. public R query(JiaoshizipingEntity jiaoshiziping){
    52. EntityWrapper< JiaoshizipingEntity> ew = new EntityWrapper< JiaoshizipingEntity>();
    53. ew.allEq(MPUtil.allEQMapPre( jiaoshiziping, "jiaoshiziping"));
    54. JiaoshizipingView jiaoshizipingView = jiaoshizipingService.selectView(ew);
    55. return R.ok("查询教师自评成功").put("data", jiaoshizipingView);
    56. }
    57. /**
    58. * 后端详情
    59. */
    60. @RequestMapping("/info/{id}")
    61. public R info(@PathVariable("id") Long id){
    62. JiaoshizipingEntity jiaoshiziping = jiaoshizipingService.selectById(id);
    63. return R.ok().put("data", jiaoshiziping);
    64. }
    65. /**
    66. * 前端详情
    67. */
    68. @IgnoreAuth
    69. @RequestMapping("/detail/{id}")
    70. public R detail(@PathVariable("id") Long id){
    71. JiaoshizipingEntity jiaoshiziping = jiaoshizipingService.selectById(id);
    72. return R.ok().put("data", jiaoshiziping);
    73. }
    74. /**
    75. * 后端保存
    76. */
    77. @RequestMapping("/save")
    78. public R save(@RequestBody JiaoshizipingEntity jiaoshiziping, HttpServletRequest request){
    79. jiaoshiziping.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    80. //ValidatorUtils.validateEntity(jiaoshiziping);
    81. jiaoshizipingService.insert(jiaoshiziping);
    82. return R.ok();
    83. }
    84. /**
    85. * 前端保存
    86. */
    87. @RequestMapping("/add")
    88. public R add(@RequestBody JiaoshizipingEntity jiaoshiziping, HttpServletRequest request){
    89. jiaoshiziping.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    90. //ValidatorUtils.validateEntity(jiaoshiziping);
    91. jiaoshizipingService.insert(jiaoshiziping);
    92. return R.ok();
    93. }
    94. /**
    95. * 修改
    96. */
    97. @RequestMapping("/update")
    98. public R update(@RequestBody JiaoshizipingEntity jiaoshiziping, HttpServletRequest request){
    99. //ValidatorUtils.validateEntity(jiaoshiziping);
    100. jiaoshizipingService.updateById(jiaoshiziping);//全部更新
    101. return R.ok();
    102. }
    103. /**
    104. * 删除
    105. */
    106. @RequestMapping("/delete")
    107. public R delete(@RequestBody Long[] ids){
    108. jiaoshizipingService.deleteBatchIds(Arrays.asList(ids));
    109. return R.ok();
    110. }
    111. /**
    112. * 提醒接口
    113. */
    114. @RequestMapping("/remind/{columnName}/{type}")
    115. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    116. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    117. map.put("column", columnName);
    118. map.put("type", type);
    119. if(type.equals("2")) {
    120. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    121. Calendar c = Calendar.getInstance();
    122. Date remindStartDate = null;
    123. Date remindEndDate = null;
    124. if(map.get("remindstart")!=null) {
    125. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    126. c.setTime(new Date());
    127. c.add(Calendar.DAY_OF_MONTH,remindStart);
    128. remindStartDate = c.getTime();
    129. map.put("remindstart", sdf.format(remindStartDate));
    130. }
    131. if(map.get("remindend")!=null) {
    132. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    133. c.setTime(new Date());
    134. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    135. remindEndDate = c.getTime();
    136. map.put("remindend", sdf.format(remindEndDate));
    137. }
    138. }
    139. Wrapper<JiaoshizipingEntity> wrapper = new EntityWrapper<JiaoshizipingEntity>();
    140. if(map.get("remindstart")!=null) {
    141. wrapper.ge(columnName, map.get("remindstart"));
    142. }
    143. if(map.get("remindend")!=null) {
    144. wrapper.le(columnName, map.get("remindend"));
    145. }
    146. String tableName = request.getSession().getAttribute("tableName").toString();
    147. if(tableName.equals("jiaoshi")) {
    148. wrapper.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
    149. }
    150. int count = jiaoshizipingService.selectCount(wrapper);
    151. return R.ok().put("count", count);
    152. }
    153. }

  • 相关阅读:
    【量化交易笔记】10.建立最简单的交易策略
    python gdal警告Warning无法关闭
    【Git】有人瞎动你代码怎么办?学会git reset、 revert轻松解决
    线程可重复使用,程序开发是如何使用线程池的呢?
    计算机毕业设计JavaGuiTar网站设计(源码+系统+mysql数据库+lw文档)
    每日练习------使用Java实现输出如下图形。(三角形,空心菱形等)
    转码(BIN→ASIIC/BIN→BCD)
    RabbitMQ之延迟队列(万字总结,手把手教你学习延迟队列)
    百行代码实现基于Redis的可靠延迟队列
    2021CSP入门级第一轮认证详细解析
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/125858936