✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
一、前言
随着信息化和智能化技术的快速发展,智慧校园建设已成为教育现代化的重要组成部分。智慧校园利用大数据、云计算、物联网等技术,为教育教学、校园管理、科研创新等提供智能化服务,旨在提升教育质量和管理效率。根据教育部《教育信息化2.0行动计划》提出的发展目标,智慧校园的建设是实现教育信息化、提高人才培养质量的重要途径。
当前,智慧校园建设虽取得一定进展,但仍面临一些挑战。例如,部分高校在智慧校园建设中缺乏顶层设计,信息化对业务发展的引领性不足,导致数据孤岛现象依然存在,数据可用率低。此外,教育治理、教育服务、教育教学、教育环境等方面的智慧应用缺乏,师生信息化参与度低,建设内容与需求错位,导致师生体验感差、获得感不足。
本课题旨在研究和开发一个基于智慧校园的大学生综合能力测评系统,通过该系统实现对学生思想品德、学业水平、身心健康、艺术素养、社会实践等方面的全面评价。系统将为高校提供一个科学、合理的评价工具,有助于更准确地反映学生的综合能力,促进学生全面发展。
在基于智慧校园的大学生综合能力测评系统中,管理员负责系统用户账户的管理、学生信息的维护、教师信息的更新、校园资讯的发布、课程类型的分类与维护、学生成绩的录入与审核、综合事项的审核、院系信息的整理、课程信息的更新、赛事成绩的记录以及社会实践成绩的审核;教师能够管理学生成绩、审核学生的综合事项、查看课程信息、记录赛事成绩、提交社会实践成绩;学生用户可以查看校园资讯、浏览课程信息、申请综合事项、查看个人成绩、浏览赛事成绩、了解社会实践成绩以及查看综合测评结果。系统通过这些功能模块的整合,旨在为大学生提供一个便捷的能力测评管理平台,满足不同用户角色的需求,优化评价流程,提高教育质量。
本课题的研究具有重要的理论意义和实际意义。从理论角度来看,它为高等教育领域提供了新的研究思路,即如何利用信息技术手段进行学生综合能力评价,有助于丰富教育评价理论。从实际角度来看,该系统的应用将有助于提高大学生综合能力评价的客观性、准确性和效率,促进教育公平,为高校选拔和培养人才提供科学依据。同时,系统的推广应用也将推动智慧校园建设向更深层次发展,提升高校信息化建设的整体水平。
二、开发环境
- 开发语言:Java/Python
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot/SSM/Django/Flask
- 前端:Vue
三、系统界面展示
- 基于智慧校园的大学生综合能力测评系统界面展示:
学生-综合事项申请:
学生-查看课程信息:
教师-提交社会实践成绩:
管理员-课程信息管理:
管理员-赛事成绩管理:
管理员-社会实践成绩审核:
管理员-学生成绩管理:
管理员-综合测评管理:
四、代码参考
- 项目实战代码参考:
@RestController
@RequestMapping("/bisaixinxi")
public class BisaixinxiController {
@Autowired
private BisaixinxiService bisaixinxiService;
@Autowired
private StoreupService storeupService;
/**
* 后台列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,BisaixinxiEntity bisaixinxi,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
bisaixinxi.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
PageUtils page = bisaixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
return R.ok().put("data", page);
}
/**
* 前台列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,BisaixinxiEntity bisaixinxi,
HttpServletRequest request){
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
PageUtils page = bisaixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( BisaixinxiEntity bisaixinxi){
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( bisaixinxi, "bisaixinxi"));
return R.ok().put("data", bisaixinxiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(BisaixinxiEntity bisaixinxi){
EntityWrapper< BisaixinxiEntity> ew = new EntityWrapper< BisaixinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( bisaixinxi, "bisaixinxi"));
BisaixinxiView bisaixinxiView = bisaixinxiService.selectView(ew);
return R.ok("查询比赛信息成功").put("data", bisaixinxiView);
}
/**
* 后台详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
BisaixinxiEntity bisaixinxi = bisaixinxiService.selectById(id);
bisaixinxi.setClicknum(bisaixinxi.getClicknum()+1);
bisaixinxi.setClicktime(new Date());
bisaixinxiService.updateById(bisaixinxi);
bisaixinxi = bisaixinxiService.selectView(new EntityWrapper<BisaixinxiEntity>().eq("id", id));
return R.ok().put("data", bisaixinxi);
}
/**
* 前台详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
BisaixinxiEntity bisaixinxi = bisaixinxiService.selectById(id);
bisaixinxi.setClicknum(bisaixinxi.getClicknum()+1);
bisaixinxi.setClicktime(new Date());
bisaixinxiService.updateById(bisaixinxi);
bisaixinxi = bisaixinxiService.selectView(new EntityWrapper<BisaixinxiEntity>().eq("id", id));
return R.ok().put("data", bisaixinxi);
}
/**
* 后台保存
*/
@RequestMapping("/save")
public R save(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(bisaixinxi);
bisaixinxiService.insert(bisaixinxi);
return R.ok();
}
/**
* 前台保存
*/
@RequestMapping("/add")
public R add(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(bisaixinxi);
bisaixinxiService.insert(bisaixinxi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(bisaixinxi);
bisaixinxiService.updateById(bisaixinxi);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
bisaixinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 前台智能排序
*/
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,BisaixinxiEntity bisaixinxi, HttpServletRequest request,String pre){
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
}
}
params.put("sort", "clicknum");
params.put("order", "desc");
PageUtils page = bisaixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
return R.ok().put("data", page);
}
/**
* (按值统计)
*/
@RequestMapping("/value/{xColumnName}/{yColumnName}")
public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
params.put("yColumn", yColumnName);
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
List<Map<String, Object>> result = bisaixinxiService.selectValue(params, ew);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(Map<String, Object> m : result) {
for(String k : m.keySet()) {
if(m.get(k) instanceof Date) {
m.put(k, sdf.format((Date)m.get(k)));
}
}
}
return R.ok().put("data", result);
}
/**
* (按值统计(多))
*/
@RequestMapping("/valueMul/{xColumnName}")
public R valueMul(@PathVariable("xColumnName") String xColumnName,@RequestParam String yColumnNameMul, HttpServletRequest request) {
String[] yColumnNames = yColumnNameMul.split(",");
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
for(int i=0;i<yColumnNames.length;i++) {
params.put("yColumn", yColumnNames[i]);
List<Map<String, Object>> result = bisaixinxiService.selectValue(params, ew);
for(Map<String, Object> m : result) {
for(String k : m.keySet()) {
if(m.get(k) instanceof Date) {
m.put(k, sdf.format((Date)m.get(k)));
}
}
}
result2.add(result);
}
return R.ok().put("data", result2);
}
/**
* (按值统计)时间统计类型
*/
@RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
params.put("yColumn", yColumnName);
params.put("timeStatType", timeStatType);
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
List<Map<String, Object>> result = bisaixinxiService.selectTimeStatValue(params, ew);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(Map<String, Object> m : result) {
for(String k : m.keySet()) {
if(m.get(k) instanceof Date) {
m.put(k, sdf.format((Date)m.get(k)));
}
}
}
return R.ok().put("data", result);
}
/**
* (按值统计)时间统计类型(多)
*/
@RequestMapping("/valueMul/{xColumnName}/{timeStatType}")
public R valueMulDay(@PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,@RequestParam String yColumnNameMul,HttpServletRequest request) {
String[] yColumnNames = yColumnNameMul.split(",");
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
params.put("timeStatType", timeStatType);
List<List<Map<String, Object>>> result2 = new ArrayList<List<Map<String,Object>>>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
for(int i=0;i<yColumnNames.length;i++) {
params.put("yColumn", yColumnNames[i]);
List<Map<String, Object>> result = bisaixinxiService.selectTimeStatValue(params, ew);
for(Map<String, Object> m : result) {
for(String k : m.keySet()) {
if(m.get(k) instanceof Date) {
m.put(k, sdf.format((Date)m.get(k)));
}
}
}
result2.add(result);
}
return R.ok().put("data", result2);
}
/**
* 分组统计
*/
@RequestMapping("/group/{columnName}")
public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("column", columnName);
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
ew.eq("jiaoshigonghao", (String)request.getSession().getAttribute("username"));
}
List<Map<String, Object>> result = bisaixinxiService.selectGroup(params, ew);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(Map<String, Object> m : result) {
for(String k : m.keySet()) {
if(m.get(k) instanceof Date) {
m.put(k, sdf.format((Date)m.get(k)));
}
}
}
return R.ok().put("data", result);
}
/**
* 总数量
*/
@RequestMapping("/count")
public R count(@RequestParam Map<String, Object> params,BisaixinxiEntity bisaixinxi, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("jiaoshi")) {
bisaixinxi.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<BisaixinxiEntity> ew = new EntityWrapper<BisaixinxiEntity>();
int count = bisaixinxiService.selectCount(MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
return R.ok().put("data", count);
}
}
@RestController
@RequestMapping("/jiaoshi")
public class JiaoshiController {
@Autowired
private JiaoshiService jiaoshiService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
JiaoshiEntity u = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", username));
if(u==null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(u.getId(), username,"jiaoshi", "教师" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody JiaoshiEntity jiaoshi){
//ValidatorUtils.validateEntity(jiaoshi);
JiaoshiEntity u = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()));
if(u!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
jiaoshi.setId(uId);
jiaoshiService.insert(jiaoshi);
return R.ok();
}
/**
* 退出
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
JiaoshiEntity u = jiaoshiService.selectById(id);
return R.ok().put("data", u);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
JiaoshiEntity u = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", username));
if(u==null) {
return R.error("账号不存在");
}
u.setMima("123456");
jiaoshiService.updateById(u);
return R.ok("密码已重置为:123456");
}
/**
* 后台列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,JiaoshiEntity jiaoshi,
HttpServletRequest request){
EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
PageUtils page = jiaoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshi), params), params));
return R.ok().put("data", page);
}
/**
* 前台列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,JiaoshiEntity jiaoshi,
HttpServletRequest request){
EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
PageUtils page = jiaoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( JiaoshiEntity jiaoshi){
EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
ew.allEq(MPUtil.allEQMapPre( jiaoshi, "jiaoshi"));
return R.ok().put("data", jiaoshiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(JiaoshiEntity jiaoshi){
EntityWrapper< JiaoshiEntity> ew = new EntityWrapper< JiaoshiEntity>();
ew.allEq(MPUtil.allEQMapPre( jiaoshi, "jiaoshi"));
JiaoshiView jiaoshiView = jiaoshiService.selectView(ew);
return R.ok("查询教师成功").put("data", jiaoshiView);
}
/**
* 后台详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
return R.ok().put("data", jiaoshi);
}
/**
* 前台详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
return R.ok().put("data", jiaoshi);
}
/**
* 后台保存
*/
@RequestMapping("/save")
public R save(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
if(jiaoshiService.selectCount(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()))>0) {
return R.error("教师工号已存在");
}
jiaoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiaoshi);
JiaoshiEntity u = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()));
if(u!=null) {
return R.error("用户已存在");
}
jiaoshi.setId(new Date().getTime());
jiaoshiService.insert(jiaoshi);
return R.ok();
}
/**
* 前台保存
*/
@RequestMapping("/add")
public R add(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
if(jiaoshiService.selectCount(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()))>0) {
return R.error("教师工号已存在");
}
jiaoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiaoshi);
JiaoshiEntity u = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()));
if(u!=null) {
return R.error("用户已存在");
}
jiaoshi.setId(new Date().getTime());
jiaoshiService.insert(jiaoshi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
//ValidatorUtils.validateEntity(jiaoshi);
if(jiaoshiService.selectCount(new EntityWrapper<JiaoshiEntity>().ne("id", jiaoshi.getId()).eq("jiaoshigonghao", jiaoshi.getJiaoshigonghao()))>0) {
return R.error("教师工号已存在");
}
jiaoshiService.updateById(jiaoshi);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
jiaoshiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
五、论文参考
- 计算机毕业设计选题推荐-基于智慧校园的大学生综合能力测评系统论文参考:
六、系统视频
基于智慧校园的大学生综合能力测评系统项目视频:
计算机毕业设计选题推荐-基于智慧校园的大学生综合能力测评系统
结语
计算机毕业设计选题推荐-基于智慧校园的大学生综合能力测评系统-Java/Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇