此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码+部署+论文+ppt+代码讲解+答辩指导文件都有可私要-
计算机专业毕业设计任何项目-程序-论文-想单独指导的可以私我
计算机毕业设计-基于java的勤工助学管理系统--开题报告-任务书程序编码-文档
摘 要
学校为学生们有提供勤工助学的岗位,目的是为了可以让一部分有经济压力的学生可以通过勤工助学减轻自己和家庭的负担。也就是通过设计勤工助学系统,为有需要的学生提供各种兼职工作的机会,帮助他们解决自身的经济困难,减轻学费和生活费的负担。通过勤工助学系统,可以在系统中提供并上传许多的工作岗位,这样还可以帮助这部分学生更好地融入社会,锻炼他们的实践能力,增加学生对社会的认识。通过勤工助学系统的设计,学生可以在校期间,通过勤工助学的工作锻炼自己的专业技能,锤炼自设你的实践能力,提升自己的综合素质,这样有利于自己将来的就业和职业发展。
此次系统设计为基于spring boot的高校大学生勤工助学管理系统。主要围绕大学生勤工俭学的一些流程进行设计,系统采用JavaWeb进行开发,基于Mybatis进行交互,采用MySQL对数据存储,前端采用Html进行设计,整体基于MVC模式开发,系统主要分为管理员、教师、学生三种角色,系统模块主要为学生管理、教师信息管理、岗位类型管理、岗位信息管理、岗位申请、勤工打卡等模块,通过线上的勤工助学系统,让所有的数据进行电子化的管理,提升数据的管理效率。
关键词: 勤工助学;岗位申请;勤工打卡;Springboot;JavaWeb
Abstract
The school provides students with work study positions, with the aim of allowing some financially stressed students to alleviate their own and family burdens through work study. That is to say, by designing a work study system, various part-time job opportunities are provided for students in need, helping them solve their financial difficulties and reducing the burden of tuition and living expenses. Through the work study system, many job positions can be provided and uploaded in the system, which can also help these students better integrate into society, exercise their practical abilities, and increase their understanding of society. Through the design of the work study system, students can exercise their professional skills, hone their practical abilities, and enhance their overall quality through work study during their school years. This is beneficial for their future employment and career development.
This system is designed as a work study management system for college students based on Spring Boot. The system is mainly designed around some processes of work study programs for college students. The system is developed using JavaWeb, interacts with Mybatis, stores data using MySQL, and is designed using HTML in the front-end. The overall development is based on MVC mode. The system is mainly divided into three roles: administrator, teacher, and student. The system modules mainly include student management, teacher information management, job type management, job information management, job application, and work attendance management. Through the online work study system, all data is electronically managed, improving the efficiency of data management.
Key words: Work study assistance; Job application; Work hard and clock in; Springboot; JavaWeb
目录
第一章 概述
1.1课题背景
有一部分的大学生在校期间要进行学费、生活费等的支出,但是这些学生的家庭的经济条件可能无法完全满足这些需求,因此就需要学生通过勤工助学来减轻经济压力。而且大学生毕业后,会面临着激烈的就业竞争,因此在校期间通过勤工助学可以提前接触社会、积累工作经验,增加就业优势。再加上大学生在校期间通过勤工助学可以更好地锻炼自己的专业技能、交流能力、团队合作等综合素质,为将来的职业发展打下良好基础。这样就可以解决大学生在校期间面临的经济压力和就业岗位少的问题,帮助他们更好地平衡学业和生活,并培养他们的社会实践能力。
1.2网站研究现状
随着高校的扩招,导致经济困难的学生数量也不断增加,这就使得高校需要有相应的举措去解决问题,选择勤工助学系统的高校也不在少数,所以网站上的勤工助学系统也非常的多,比如“云山勤工”,此系统的学生信息管理模块中包含了一些学生信息,信息包括学生的个人基本信息、联系方式、就读学校、专业等信息的录入和管理。岗位发布与申请模块可以让管理员发布各种勤工助学岗位信息,包括岗位描述、薪酬待遇、工作时间等,并提供学生申请途径;学生可以浏览并申请感兴趣的岗位。在申请审核与分配模块,管理员可以对学生提交的勤工助学申请进行审核,确认学生的资格和意愿,然后根据需求分配合适的岗位给学生。工时记录与考勤管理模块可以记录学生的工作时长、考勤情况,支持学生和雇主双方进行考勤确认,确保工时记录的准确性。薪酬管理与发放模块可以计算学生的工资薪酬,并进行相应的财务管理和发放流程,确保学生能够按时获得报酬。
以上的这些系统功能可以帮助勤工助学系统满足学生和相关雇方的需求,实现有效的岗位管理、工作流程管理和工资发放。因此,我们在设计勤工助学系统就要注意,系统的设计需要能够帮助大学生在系统中进行简单的操作后就能发现相应的岗位,还需要能够帮助大学生有效地缓解自身经济压力。
1.3课题研究内容
在本次的系统研究中主要基于面向对象进行设计,通过对整体的用户进行划分,然后从不同的用户端进行需求的分析,通过各个模块之间的关系进行连接,然后绘制实体图和E-R图对数据库表进行设计,最后是项目代码的编写。在系统整体设计中采用的是SSM架构,通过Restful风格接口进行设计,基于MVC的模式开发,数据存储为MySQL,用户交互Views层为JSP,在项目开发中通过文献法和实践法对项目开发的前期文档和功能整理,以及后期的真实编码进行研究,最后完成了项目。
第二章 开发技术
2.1SpringMVC架构
SpringMVC是基于Spring的一个核心模块,通过模型-视图-控制器等进行三层分离,此架构主要是围绕DispatchServlet来进行设计,在界面发送请求后,后台处理接收到信息Servlet会将请求分发给各个处理器,通过Mapping进行URL的处理映射,通过对数据的处理以及视图的渲染等一系列操作,可支持文件的上传工作,作为一个控制层中转架构,在收到Http的请求后,都会优先提交到DispatcherServlet,然后进行多层分发,最后分配到controller,通过对应的路径匹配,对应函数处理业务,在调用底层处理完成后,通过视图映射并返回模型,找到对应的Modelandviews的指定视图,最后通过浏览器进行渲染。
2.2Mybatis架构
Mybatis作为Orm层非常受欢迎的半自动化架构,现在所应用的场景非常的广,基于之前的dao层代码和SQL的耦合度较高,在后期进行维护和优化时很繁琐,因此Mybatis的出现有效的提升了orm的代码管理,在Mybatis中可自动化的进行SQL配置,同时也职称手动定制SQL,且包含一些存储过程和高级映射的处理。Mybatis中内置了JDBC的一些连接获取资源的方式以及对参数的自动化配置设置等,对于底层的JDBC的资源的释放以及系统的性能影响都有较大的提升。最为明显的优势为将SQL语句通过XML标签的形式展现,彻底解除了SQL与代码的耦合,提升代码管理。
2.3Java技术
当前的主流系统开发语言java就是其中之一,java语言的特性也决定了它的地位,在开源语言中通过不断的优化变更,最后形成了稳定性强、集成性强、并发性强的语言,在java中主要的核心为封装、继承、多态,通过对一些底层逻辑的封装,对于的接口进行调用等让程序开发者变得更为简单,java中主要是字段属性、函数、类等组装实现,通过一些函数的定义以及类之间的调用实现繁琐复杂的业务逻辑,且通过父子类之间的多继承方式来达到代码的高逻辑性,java中会给不同的函数以及变量赋予一定的空间,而GC机制则可通过一些计算对变量垃圾等进行定期的处理,因此从多方考虑Java语言作为开发语言非常的方便。
2.4JSP界面技术
JSP为Java Server Pages,主要是应用场景是在Java项目中进行前端的数据交互,在设计中JSP主要负责前端的展示和渲染,通过部署在网络服务器上,在用户进行响应请求时进行处理,根据一些交互的内容动态性的生成关于html,xml等一些渲染的web形式,然后在客户端进行体现展示,在JSP中可包含一些嵌入的Java代码,以及一些JavaScript的嵌入型语言,JSP严格来说就是Servlet,因此在编译后也为class文件。
2.5MySQL数据库
MySQL作为关系数据库的优势是显而易见的。首先,这实际上是中小企业的最佳选择。作为开源数据库,MySQL可以由任何能够修复MySQL缺陷的开发人员进行优化。其次,有一个跨平台的MySQL,可以部署在许多平台上。MySQL跨平台部署也有助于分布式Web项目部署,与SQL Server相比,该数据库具有明显的优势,SQL Server只能部署在Windows平台上。此外,MySQL具有高性能、高兼容性和集成性。作为一个开源数据库,它也是经济可行性的最佳选择。
第三章 需求分析
3.1可行性分析
技术可行性:在系统框架的选择中首选SSM,SSM架构包含Springmvc、Mybatis、Spring,主要的优势点在于稳定。作为Java的后台架构通过Spring搭建基础层架构,例如AOP和IOC等对项目中的对象进行统一管理和逆向生成,通过Mybatis的特殊性来降低SQL与代码之间的耦合度。在数据库选择中采用的是MySQL,通过此关系型数据库来对业务数据进行存储,利用它的开源、易操作的特性有效提升数据的处理速率。
经济可行性:从经济投入的可行性进行评估,主要是对此软件的前期开发和运维的投入以及一些基础的成本效益跟软件的后期的收益的投资回报进行研究,要分析本次方案所涉及到的一些人力开发成本、服务器租赁成本以及一些工具的购买成本,与项目完成后所带来的一些收益,从目前分析来看后期市场前期较好,目前投入可控,因此可行。
3.2用例图分析
在管理员端可对教师信息进行录入维护,可对教师信息新增以及进行分页查询,可对助学岗位分类进行定义,对注册的学生信息进行查询管理,可对发布的助学岗位信息进行维护,在系统平台可发布一些助学风采信息进行展示,以及对助学数据进行统计,具体用例图如下:
图3.1 管理员端用例图
在教师端可对岗位进行发布,以及对自己发布的助学岗位信息进行维护,可对学生申请的助学信息进行审核操作,以及对学生的助学考勤打卡进行审核查询。用例图如下:
图3.2教师端用例图
学生端可对自己的个人信息进行注册,可通过账号进行维护,可对岗位信息进行查询,以及进行岗位的申请,可查询申请记录,以及在线对考勤进行打卡操作。
图3.3学生端用例图
第四章 详细模块设计
4.1功能模块设计
系统主要分为管理员、教师、学生三种角色,系统模块主要为学生管理、教师信息管理、岗位类型管理、岗位信息管理、岗位申请、勤工打卡等模块。
图4-1系统模块图
4.2数据库设计
在数据库的设计时作为开发者和设计者必须要遵从数据库的第三范式进行设计,要对一些不必要的字段以及冗余的字段进行剔除,保证数据库中字段的高度一致性。在设计表时首先要设计表的主键,主键作为表数据中的唯一标识字段,常使用的是int自增或者是UUID类型字段进行设计,主键作为唯一不变的字段要保证数据唯一性,因此非常的重要,而其他的存储型字段则主要是对名称规范、长度和类型约束等进行设计,可通过一些主外键的绑定对有业务关联的字段进行设计,一些查询频率高的字段可通过索引进行设计。E-R如图所示。
图4.2 整体设计ER图
表4-1岗位类型信息表值如下:
表4-1岗位类型信息表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
qiyeid | 岗位类型主键 | int(12) | 主键 |
leixingname | 岗位类型名称 | varchar(20) | |
leixingmiaoshu | 岗位类型描述 | varchar(60) |
表4-2教师信息表值如下:
表4-2教师信息表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
teacherkey | 教师主键 | int(12) | 主键 |
teachername | 教师名称 | varchar(20) | |
teacheruser | 教师账号 | varchar(60) | |
teacherpasswd | 教师密码 | varchar(20) | |
teachertell | 教师手机号 | varchar(20) | |
teacheraddr | 教师地址 | varchar(20) | |
teachermiaoshu | 教师人员描述 | varchar(20) |
表4-3学生信息表值如下:
表4-3学生信息表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
studentkey | 学生主键 | int(12) | 主键 |
studentname | 学生姓名 | varchar(20) | |
studentuser | 学生账号 | varchar(60) | |
studentpasswd | 学生密码 | varchar(20) | |
studenttell | 学生电话 | varchar(20) | |
studentclass | 学生班级 | varchar(20) | |
studentschool | 学生学院 | varchar(20) | |
studentsex | 学生性别 | varchar(20) | |
studentxuehao | 学生学号 | varchar(20) | |
studentsushe | 学生宿舍 | varchar(20) |
表4-4岗位信息表值如下:
表4-4岗位信息表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
workkey | 岗位主键 | int(12) | 主键 |
workty | 岗位类型 | varchar(20) | |
workname | 岗位名称 | varchar(60) | |
workmiaoshu | 岗位描述 | varchar(20) | |
workyaoqiu | 岗位要求 | varchar(20) | |
worknumber | 岗位人数 | varchar(20) | |
workwhere | 岗位工作地 | varchar(20) | |
worksex | 岗位性别要求 | varchar(20) |
表4-5岗位申请审核表值如下:
表4-5岗位申请审核表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
applykey | 岗位申请主键 | int(12) | 主键 |
applyname | 助学岗位名称 | varchar(20) | |
Applystunid | 申请学生 | int(12) | 外键 |
applystuxuehao | 学生学号 | varchar(20) | |
applydata | 申请日期 | Date | |
applyzhuangtai | 申请状态 | int(12) |
表4-6学生助学岗位打卡表值如下:
表4-6学生助学岗位打卡表
定义字段 | 备注描述 | 长度和类型 | 主键标识 |
zhuxueworkkey | 助学岗位主键 | int(12) | 主键 |
zhuxueworkname | 助学岗位名称 | varchar(20) | |
workjilu | 工作记录 | varchar(60) | |
stunid | 申请学生 | int(12) | 外键 |
第五章 系统实现
5.1岗位类型管理
管理员可以对勤工助学岗位类型进行设置,通过点击新增进入到新增页面,对岗位类型名称、类型描述进行录入,新增操作可以对岗位类型进行编辑和维护。,通过ajax进行类型新增后台的异步方式提交,通过后台的数据controller层的requestmap进行匹配,然后调用service中的insertdata函数进行插入新增,通过SQL的insert into value将参数值进行动态赋值最后保存到数据库
核心代码如下:
@RequestMapping(value = "/add" )
private ResponseEntity<ResultMessage> add(Posttype posttype, HttpServletRequest request) throws Exception {
posttypeService.add(posttype);
return ResponseEntity.ok(ResultMessage.success().build());
}
5.2教师信息管理
管理员可以对教师信息进行录入操作,通过设置账号以及密码和老师的描述、居住地址等进行新增操作。可以对教师信息进行编辑和维护通过controller层的分页对象参数pageLimitVO进行计算,通过默认值pagesize为10,首先通过调用service中的selectdatabypage进行查询,通过触发mapper层的finddatapage函数最后组合为动态的SQL语句,通过limit进行分页
5.3学生信息管理
管理员可以对所有注册的学生信息进行查询,学生是通过注册进入到系统,可通过分页进行学生信息查询操作。可以对学生信息进行编辑和维护。通过controller层的分页对象参数pageLimitVO进行计算,通过默认值pagesize为10,首先通过调用service中的selectdatabypage进行查询,通过触发mapper层的finddatapage函数最后组合为动态的SQL语句,通过limit进行分页
核心代码如下:
Pagehilper Pagehilper = new Pagehilper();
Pagehilper.setToPageNo(toPageNo);
List<Student> list = studentMapper.findlimit(Pagehilper);
return list;
5.4岗位添加新增
教师在系统中可以对岗位信息进行添加,对勤工助学的岗位类型、岗位名称描述、岗位要求、人数以及工作地和岗位性质、性别等进行发布新增,可以查询所有的岗位新增记录。通过ajax进行后台的异步方式提交,通过后台的数据controller层的requestmap进行匹配,然后调用service中的insertdata函数进行插入新增,通过SQL的insert into value将参数值进行动态赋值最后保存到数据库
核心代码如下:
Integer userId = (Integer) huancun.getHuancun("userId");
jobs.setTeaid(userId);
jobsService.add(jobs);
return ResponseEntity.ok(ResultMessage.success().build());
5.5岗位申请
学生可以进行勤工助学岗位申请,通过在首页中查询到勤工助学岗位后,点击申请形成申请操作,可以对勤工助学申请记录进行查询,以及对状态进行跟进。通过获取当前的人员userid以及岗位id获取到当前的时间new date进行新增操作,通过insert保存到申请数据库表中。
核心代码如下:
Shenqing shenqing= shenqingService.findById(id);
shenqing.setStatus(status);
shenqingService.update(shenqing);
if(status==1){
Yuangong yuangong=yuangongService.findById(shenqing.getUserid());
yuangong.setDeptid(shenqing.getDeptid());
yuangong.setMoney(1000);
yuangongService.update(yuangong);
}
return "redirect:/shenqing/showshenqing";
5.6学生岗位报名审核
在教师端可以对学生岗位报名进行审核操作,可查询所有的岗位的总报名人数以及通过人数,可对报名进行审核通过或者驳回。可通过点击获取岗位id,然后通过queryapplybygangweiid进行查询操作,通过获取对应的报名信息,然后通过update进行岗位报名审核操作。
5.7助学岗位打卡
学生在申请成功学岗位后,可以进行打卡操作,点击打卡选择对应的打卡岗位,然后选择自己的工作内容日志记录。新增成功可以对。每日的打卡记录进行查看。新增打卡界面首先在点击提交时要将所有界面的参数信息汇总为json数据,通过ajax进行后台的异步方式提交,然后调用service中的insertdata函数进行插入新增,通过执行SQL进行insert保存新增。
核心代码如下:
Daka daka = new Daka();
Date currentTime = new Date();
daka.setStarttime(dateString);
daka.setUserid(userId);
if (dakaService.getCountuser(userId, dateString) <= 0)
dakaService.add(daka);
return "redirect:/daka/showdakauser";
第六章 系统测试
6.1测试描述
软件测试通俗来说就是检测软件设计完成后是否满足用户的前期设计以及后期的使用要求,在设计出的软件产品中要确保既要满足用户操作,同时也要对性能要求进行满足,软件上线的衡量标准就是是否满足软件的质量要求,测试中不仅要对界面样式等进行兼容性的测试,同时要对一些代码的编码逻辑性,以及一些数据的安全性和准确性等进行测试。要对测试环节进行搭建,以及对测试的数据做到全覆盖,对测试的步骤以及测试的结果等要汇总为测试用例,测试时要做到多维度、多用户的同步进行,对数据流转的每一步都要进行测验。