当前位置: 首页 > news >正文

基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现

基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现

🍅 作者主页 网顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

文章目录

  • 基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
  • 前言:
  • 功能设计:
  • 功能截图:
    • 系统首页
  • 管理员主要功能设计
  • 学生用户主要功能:
  • 老师端主要功能设计:
  • 主要数据库设计:
  • 部分代码:
  • 论文报告:
  • 总结:

前言:

随着信息时代计算机网络技术的发展给人们带来了极大的方便,传统的毕业设计过程在很大程度上给学生、教师和管理人员带来了不便。而毕业论文对于高校学生而言是对自己在学校所学的专业知识和技能的总结,对高校的教育而言是对毕业学生最后的一次全面的考核。在毕业论文完成整个的过程中,需要学生与导师、人员的密切合作。但在现实中,某个环节内的角色由于某些原因不能一直保持着工作状态,会导致毕业论文完成的停滞。为了避免这种情况的发生,为方便教师、学生和管理者顺利完成对应角色的任务,高校需要一个专业的针对毕业论文的管理系统把完成毕业论文的所有操作都集中到一个系统中。与此同时,各种信息网站的普及给许多企业或用户带来了良好的体验和高效的管理。本系统针对现代高校计算机技术的发展,为了应对过去高校毕业生在毕业设计管理过程中遇到的效率低、交互性差、工作量大等问题而采用软件工程的设计思想,构建一个适合高校使用的基于javaweb的毕业设计管理系统。本系统是基于Windows操作系统作为服务平台,后台数据库采用MySQL数据库,服务器使用Tomcat容器、Eclipse开发工具创建java语言来构建服务页面。选择毕业设计课题管理、绩效管理等功能模块及其关系。本次毕业设计的目的是运用现代网络管理技术解决毕业设计管理中存在的问题,减少学生选择毕业设计选题的时间,和加强毕业设计过程的监控,降低教师和管理人员的工作强度。采用SpringMVC框架提高了系统开发的效率,降低了系统的复杂性,使数据库访问更加灵活。通过测试,系统的应用方便了教师和学生之间的交流,加强了过程管理,方便了结果的保存和显示。

功能设计:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.用户模块管理:用户登录、多角色登录、用户的查询、删除操作、用户分为不同权限、可以通过角色来灵活控制。

2.导师管理:管理员登录后可以对导师信息进行管理和添加。

3.学生管理:管理员以及老师登录后可以对学生信息进行管理和添加。

4.公告管理:管理员及老师登录后可以对公告进行管理和添、学生可以查看。

5.数据分析:管理员登录后可以查看数据分析和分数占比等。

6.审核选题:管理员登录后可以进行审核操作、同意或拒绝。

7.论文管理:管理员登录后可以查看下载论文

8.修改资料:用户可以修改自己的密码。

9.课程管理:老师上传选题课程、及查看改课程是否通过选题。

10.发布内容:老师发布任务书、开题报告、需求分析和数据库设计等。

11.审核文档:老师可以审核任务书、开题报告、需求分析和数据库设计等。

12.文档管理:老师可以查看和上传学生的论文文档。

13.提问管理:老师可以查看和回答学生的提问信息、学生可以提问

14.成绩管理:老师可以管理和查看学生的成绩信息。

15.毕业设计管理:老师可以审核学生论文及查看答辩资格名单。

16.进度管理:学生可以查看各文档的进度完成情况、比如任务书、开题等。

功能截图:

系统首页

在这里插入图片描述
分角色登录、不同角色不同权限功能
在这里插入图片描述

管理员主要功能设计

在这里插入图片描述
数据分析:
在这里插入图片描述
审核选题:
在这里插入图片描述
学生管理:
在这里插入图片描述
添加导师:
在这里插入图片描述

学生用户主要功能:

在这里插入图片描述
在这里插入图片描述
修改个人资料:
在这里插入图片描述
查看选题:
在这里插入图片描述
文档管理:各文档完成情况、查看课题资料和下载等
在这里插入图片描述
在这里插入图片描述
上传各阶段文档:和查看已经上传的文档
在这里插入图片描述
毕业设计提问以及查看问题老师回答
在这里插入图片描述
查看公告信息、成绩信息和自己的答辩资格
在这里插入图片描述

老师端主要功能设计:

在这里插入图片描述
在这里插入图片描述
课题管理:
在这里插入图片描述
学生管理:
在这里插入图片描述
发布内容:
在这里插入图片描述
审核文档:
在这里插入图片描述
文档管理:
在这里插入图片描述
成绩管理:
在这里插入图片描述
公告管理:
在这里插入图片描述
论文审核及查看答辩资格:
在这里插入图片描述

主要数据库设计:

在这里插入图片描述

部分代码:

 
@Controller
@RequestMapping(value="/teacher")
public class TeacherController {@Autowiredprivate ITeacherService teacherService;@Autowiredprivate IStudentService studentService;@Autowiredprivate IDepartmentService departmentService;@Autowiredprivate IAnnouncementService announcementService;/*@RequestMapping(value="/add",method=RequestMethod.GET)public String addTeacherForm(Model model) {return "teacher/addTeacher.jsp";}@RequestMapping(value="/add",method=RequestMethod.POST)public String addTeacher(HttpServletRequest request,String teacherNo, String teacherName,String sex,String inputMan,String phone,String department,Model model) throws Exception {teacherNo = new String(teacherNo.getBytes("iso-8859-1"),"utf-8");teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");sex = new String(sex.getBytes("iso-8859-1"),"utf-8");inputMan = new String(inputMan.getBytes("iso-8859-1"),"utf-8");phone = new String(phone.getBytes("iso-8859-1"),"utf-8");department = new String(department.getBytes("iso-8859-1"),"utf-8");Date currentTime = new Date();Teacher teacher = new Teacher();teacher.setTeacherNo(teacherNo);teacher.setTeacherName(teacherName);teacher.setDepartmentId(Integer.parseInt(department));teacher.setSex(sex);teacher.setInputMan(inputMan);teacher.setLastModifyTime(currentTime);teacher.setPhone(phone);int addNum = teacherService.addTeacher(teacher);System.out.println("添加数目:"+addNum);return "teacher/addSuccess.jsp";}*/@RequestMapping(value="/main",method=RequestMethod.GET)public String teacherMainForm() {return "teacher/main.jsp";}@RequestMapping(value="/modifyInfo",method=RequestMethod.GET)public String teacherModifyInfoForm() {return "teacher/teacherModifyInfo.jsp";}@RequestMapping(value="/modifyPassword",method=RequestMethod.GET)public String teacherModifyPasswordForm() {return "teacher/teacherModifyPassword.jsp";}@RequestMapping(value="/uploadThesisTitle",method=RequestMethod.GET)public String teacherUploadThesisTitleForm() {return "teacher/teacherUploadThesisTitle.jsp";}@RequestMapping(value="/modifyThesisTitle",method=RequestMethod.GET)public String teacherModifyThesisTitleForm() {return "teacher/teacherModifyThesisTitle.jsp";}@RequestMapping(value="/thesisResult",method=RequestMethod.GET)public String teacherThesisResultForm(Model model,HttpServletRequest request) {teacherShowAllThesisTitle(model, request);return "teacher/teacherThesisResult.jsp";}@RequestMapping(value="/uploadTaskBook",method=RequestMethod.GET)public String teacherUploadTaskBookForm() {return "teacher/teacherUploadTakeBook.jsp";}@RequestMapping(value="/uploadOpening",method=RequestMethod.GET)public String teacherUploadOpeningForm() {return "teacher/teacherUploadOpeningReport.jsp";}@RequestMapping(value="/uploadKeXingXing",method=RequestMethod.GET)public String teacherUploadKeXingXingForm() {return "teacher/teacherUploadKeXingXing.jsp";}@RequestMapping(value="/uploadXuQiu",method=RequestMethod.GET)public String teacherUploadXuQiuForm() {return "teacher/teacherUploadXuQiu.jsp";}@RequestMapping(value="/uploadGaiYao",method=RequestMethod.GET)public String teacherUploadGaiYaoForm() {return "teacher/teacherUploadGaiYao.jsp";}@RequestMapping(value="/uploadShuJuKu",method=RequestMethod.GET)public String teacherUploadShuJuKuForm() {return "teacher/teacherUploadShuJuKu.jsp";}@RequestMapping(value="/checkOppening")public String teacherCheckOppeningForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String openingPath = STBO.getStudentOpeningResport();if(openingPath==null) {students.get(i).setStudentOpeningName("未上传");students.get(i).setOpenscore("未上传");}else {students.get(i).setStudentOpeningPath(openingPath);String[] str = openingPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentOpeningName(fileName);students.get(i).setOpenscore(STBO.getOpenscore());}//				int completion = STBO.getCompletion();
//				if(completion==0) {
//					students.get(i).setCompletionName("未审核");
//				}else if(completion==1) {
//					students.get(i).setCompletionName("未通过");
//				}else {
//					students.get(i).setCompletionName("审核通过");;
//				}}}model.addAttribute("studentList", students);return "teacher/teacherCheckOpeningReport.jsp";}@RequestMapping(value="/checkKexing")public String teacherCheckKexingForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String kexingPath = STBO.getStudentKeXingXing();if(kexingPath==null) {students.get(i).setStudentKexingName("未上传");students.get(i).setKexingscore("未上传");}else {students.get(i).setStudentKexingPath(kexingPath);String[] str = kexingPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentKexingName(fileName);students.get(i).setKexingscore(STBO.getKexingscore());}}}model.addAttribute("studentList", students);return "teacher/teacherCheckKeXing.jsp";}@RequestMapping(value="/checkXuqiu")public String teacherCheckXuqiuForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();StudentTaskBookOpening STBO = teacherService.getStudentOpeningByStudentId(studentId);if(STBO == null || "".equals(STBO)) {}else {String xuqiuPath = STBO.getStudentXuQiu();if(xuqiuPath==null) {students.get(i).setStudentXuqiuName("未上传");students.get(i).setXuqiuscore("未上传");}else {students.get(i).setStudentXuqiuPath(xuqiuPath);System.out.println(xuqiuPath);String[] str = xuqiuPath.split("\\\\");String fileName = str[str.length-1].toString();students.get(i).setStudentXuqiuName(fileName);students.get(i).setXuqiuscore(STBO.getXuqiuscore());}}}model.addAttribute("studentList", students);return "teacher/teacherCheckXuQiu.jsp";}@RequestMapping(value="/uploadThesisTitle",method=RequestMethod.POST)public String teacherUploadThesisTitle(Model model,HttpServletRequest request,String thesisTitle,String nandu,String liang,String from,String leixing,String thesisDesc) throws Exception {thesisTitle = new String(thesisTitle.getBytes("iso-8859-1"),"utf-8");nandu = new String(nandu.getBytes("iso-8859-1"),"utf-8");liang = new String(liang.getBytes("iso-8859-1"),"utf-8");from = new String(from.getBytes("iso-8859-1"),"utf-8");leixing = new String(leixing.getBytes("iso-8859-1"),"utf-8");thesisDesc = new String(thesisDesc.getBytes("iso-8859-1"),"utf-8");if(thesisTitle == null || "".equals(thesisTitle)) {model.addAttribute("message", "上传课题题目不能为空");return "teacher/main.jsp";}else if(thesisDesc == null || "".equals(thesisDesc)) {model.addAttribute("message", "上传课题描述不能为空");return "teacher/main.jsp";}else if(nandu == null || "".equals(nandu)) {model.addAttribute("message", "上传课题难度不能为空");return "teacher/main.jsp";}else if(liang == null || "".equals(liang)) {model.addAttribute("message", "上传课题工作量不能为空");return "teacher/main.jsp";}else if(from == null || "".equals(from)) {model.addAttribute("message", "上传课题来源不能为空");return "teacher/main.jsp";}else if(leixing == null || "".equals(leixing)) {model.addAttribute("message", "上传课题类型不能为空");return "teacher/main.jsp";}else {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();String teacherName = currentTeacher.getTeacherName();Date time = new Date();ThesisTitle thesis = new ThesisTitle();thesis.setThesisName(thesisTitle);thesis.setTeacherId(teacherId);thesis.setSubmitTime(time);thesis.setInputMan(teacherName);thesis.setNandu(nandu);thesis.setLiang(liang);thesis.setFrom(from);thesis.setLeixing(leixing);thesis.setDescription(thesisDesc);int num = teacherService.uploadThesisTitle(thesis);System.out.println("添加的课题数:"+num);model.addAttribute("message", "上传成功");return "teacher/teacherUploadThesisTitle.jsp";}}@RequestMapping(value="/uploadThesis4pass")public String teacherUploadThesis4pass(HttpServletRequest request,@RequestParam("studentList")int studentList,@RequestParam("file") MultipartFile file, Model model) throws Exception, IOException {// System.out.println("上传课题id:"+topic4Teacher);Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");String teacherName = currentTeacher.getTeacherName();String studentId = String.valueOf(studentList);// System.out.println("当前用户:"+teacherNo);if(!file.isEmpty()) {File fileRoot = new File("E:\\BSM\\thesis");File fileDb = new File(fileRoot, studentId);String fileName = file.getOriginalFilename();File filePath = new File(fileDb, fileName);// filePath 是必须的 , 文件保存的路径,若是注释掉会出现,空文件异常if(!filePath.getParentFile().exists()) {filePath.getParentFile().mkdirs();}file.transferTo(new File(fileDb+File.separator+fileName));ThesisPaper paper = new ThesisPaper();paper.setStudentId(studentList);paper.setPaperInfo(filePath.toString());teacherService.uploadThesis4Pass(paper);model.addAttribute("message", "上传学生论成功");return "teacher/main.jsp";}else {model.addAttribute("message", "上传任务书出错");return "error.jsp";}}@RequestMapping(value="/checkDoubt")public String teacherCheckDoubtForm(HttpServletRequest request,Model model) {Teacher currentTeacher = (Teacher)request.getSession().getAttribute("teacher");int teacherId = currentTeacher.getId();List<Student> students = teacherService.getAllStudentInfo(teacherId);List<Doubt> doubtList = new ArrayList<Doubt>();for(int i=0;i<students.size();i++) {int studentId = students.get(i).getId();List<Doubt> doubts = teacherService.getAllDoubtByStudentId(studentId);int nn = doubts.size();for(int j=0;j<nn;j++) {Doubt db = doubts.get(j);String answer = db.getAnswer();if(answer == null || "".equals(answer)) {doubtList.add(db);}}}model.addAttribute("doubtList", doubtList);return "teacher/teacherCheckDoubt.jsp";}@RequestMapping(value="/answerDoubtForm")public String teacherAnswerDoubtForm() {return "teacher/teacherAnswerDoubt.jsp";}@RequestMapping(value="/answerDoubt")public String teacherAnswerDoubt(Model model,int id,String answer) throws Exception {answer = new String(answer.getBytes("iso-8859-1"),"utf-8");Doubt doubt = new Doubt();doubt.setId(id);doubt.setAnswer(answer);int num = teacherService.updateDoubt(doubt);if(num == 1) {model.addAttribute("message", "回复成功");}else {model.addAttribute("message", "回复失败");}return "teacher/main.jsp";}

论文报告:

在这里插入图片描述

总结:

经过近期对 java 面向对象程序设计、前端知识以及JAVA 框架的掌握和学习,以及这段时间这个毕业设计管理系统的开发,让我更加了解到 java 学习的重要性。在开发这个系统是哪个,我完成了多个实验以及毕业设计管理平台的功能测试,阶段的系统开发学习当中,我从认识到熟悉java,而后到能够自主运用相关技术,我发现了它确实有很多方便之处,比如java集抽象性和封装性以及继承性和多态性于一体,实现了对代码重用和代码扩充功能,提高了整体软件开发的速度和效率。比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现用户信息为空的数据项、在前端保存的时候必须填写用户完整相关信息或者数据库设置字段可以为空都可以解决、 我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术。

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人


http://www.mrgr.cn/news/63259.html

相关文章:

  • 程序中怎样用最简单方法实现写excel文档
  • CF979
  • Langchain调用模型使用FAISS
  • 设计模式07-结构型模式(装饰模式/外观模式/代理模式/Java)
  • 【数据结构】ArrayList的模拟实现--Java
  • 富格林:正确追损思维安全交易
  • 沈阳乐晟睿浩科技有限公司抖音小店短视频时代的电商蓝海
  • 网络爬虫中的反爬虫技术:突破限制,获取数据
  • VUE3——readonly与shallowReadonly
  • 本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——8ResNet模型的使用
  • 力扣(leetcode)每日一题 3259 超级饮料的最大强化能量|动态规划
  • Python实现XGBoost-MLP分类模型项目实战
  • Python零基础 [2.5] 判断语句嵌套的详解与示例
  • 面试遇到的问题
  • 【笔记】KV-cache
  • 如何实现PLC系统时钟显示在HMI上?
  • 地下隧道、管廊非接触式二维位移监测裂纹、衬砌、支护结构损伤识别、隧道病害诊断等问题解决方式——变焦视觉位移监测仪
  • C++初阶(八)--初识模板
  • 制作一个简易恒流电子负载教程,实战教程,单片机程序,电路图,方案
  • 基于字符的图片验证码识别算法的设计与实现
  • springcloud通过MDC实现分布式链路追踪
  • 九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图
  • SAP ABAP开发学习——BADI增强操作步骤示例2
  • 在阿里云快速启动Umami玩转网页分析
  • 一位专科生面上网络安全的经验总结_网络安全专科
  • 视频批量裁剪工具