(java毕业设计)毕业生就业信息管理系统设计与开发(附论文+源码)

大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

👉🎀 安卓app毕业设计
👉🌎微信小程序毕业设计

一、项目简介

近些年来,我国高等教育规模不断扩大,在校大学生人数不断攀升,就业压力不断增加。传统依靠人工的毕业信息统计、线下企业宣讲等方式,已难以满足逐年增长的毕业生人数压力,特别是疫情发生以来,单纯依赖线下的毕业生招聘形式,信息面狭窄,难以满足广大毕业生的就业需求。因此利用信息化手段,基于B/S架构,搭建毕业生就业信息管理系统,一方面可以利用信息化手段提高毕业生管理工作效率;另一方面,利用互联网,搭建企业和毕业生的招聘平台,扩宽毕业生的就业渠道,对加强毕业生就业管理具体重要意义。

二、系统设计

2.1软件功能模块设计

2.1.1毕业生管理功能模块
主要包括个人基本信息管理、就业信息管理、简历管理、个人档案管理、留言信息管理五个功能内容,详细如下:
个人基本信息管理
在该功能学生需要先在系统里面进行注册登录后完善相关的资料,其中包括学号、姓名、学院、班级、电话号码、邮箱等基本信息,后续如果需要修改的话学生也可以对他的信息进行相关的增、删、查、改操作。
就业信息管理
在该模块学生登录系统后,首先可以在系统上查看系统自动推荐(招聘信息里面提及了信管专业关键词)或者是一些学长学姐就业领域最广的用人单位的发布的关于招聘我们信管专业的招聘信息,如果看到了自己意向的企业就可以向该企业投递简历,并进行相关面试、笔试等;其次如果签约成功后,在这一个板块可以看到学生签约的公司以及通过大数据计算出来自己近几年的工作领域分析,可以提供一定的就业参考;最后可以在这一个板块看到相关的就业三方协议,只需要在这一个模块进行填写相关功能并提交给学校或企业即可。
简历管理
如果对用人单位的招聘信息有符合意愿的,就可以根据相关内容进行简历的制作、或者直接上传已经做好的简历,也可以直接在上面更改简历,或者打印下载相关简历。
个人档案管理
在这一个模块,学生可以查询到自己的电子版档案信息,而不是纸质版的档案信息,平时使用也较为方便。
留言信息管理
在这一个模块,简历投放以后,学生通过留言信息板块查看是否有面试通知,以及可以直接在网上和用人单位进行初步交流,达到双方满足之后学生就可以直接参与线下面试或者直接网上面试即可。

2.1.2企业管理功能模块
用人单位通过毕业生就业系统首先先向学校学院老师进行申请,然后学院老师根据企业进行审查,审核成功后企业就可以注册,注册成功后,就可以在系统网页上发放相关的企业招聘信息,招聘信息包括岗位类型、相关待遇等详细内容,然后系统根据我们专业的特色向我们进行相关岗位的推荐。企业管理业务模块主要有基本信息管理、招聘信息管理、学生信息查询管理、留言信息管理、就业信息查询管理这五个功能:
企业基本信息管理
企业用户如果需要在学校就业网站上发布相关招聘信息,首先必须得将企业的详细、真实信息在系统中进行注册,注册内容应该包括企业名称、企业编码、企业许可证、企业内容简介等,学院老师核对、审査用人单位信息,审核合格后企业用户才能在系统中发布招聘信息。用人单位也可以在上面进行一些资料的修改,但是每一次重要信息的修改都需要学校学院老师审核之后才能修改成功,审核通过期间仍使用原来的信息。
招聘信息管理
在这一个模块用人单位可以发布招聘信息。首先用人单位需要在系统上对招聘信息进行填写、提交、审核,审核成功后招聘信息就被发布到系统中,根据专业的相关性我们专业的学生就可以通过系统可以很方便的查询各种招聘信息。
学生信息查询管理
在这一个模块,首先用人单位可以查询到学校生源一览表,有关于学校各个专业的介绍、奖项等等,根据用人单位需要招聘的专业进行重点介绍;其次用人单位也可以查询到投递学生的学生成绩、社会经历等等能够比较详细的了解学生。
留言信息管理
在这一个模块,主要是学生对企业的留言,企业可以查看学生留言的信息,并根据他们的信息做出一定的回复,实现双方之间的交流,建立起了沟通的桥梁。
就业信息查询管理
在这一个模块,企业可以查询到学生投递的简历,并可以根据简历按照一定的顺序进行排列,方便企业人力资源的查看,并可以对比较优秀的简历做出一定的标记,方便二次查看,较为方便。

2.1.3学院老师管理功能模块
学院老师主要是对学生信息管理、企业信息管理、招聘信息管理、就业信息管理、留言信息管理这五大功能:
学生信息管理
在这一个模块,学校一方面可以对学生的基本信息进行管理,比如增加、修改某些信息等等;另一方面,学校可以对学生的档案进行一定的管理(如果学生签约以后,档案会调走学校就不用对档案进行管理)。
企业信息管理
在这一个模块,学院老师需要对用人单位进行一定的资料审核,比如招聘信息、企业基本资料等,对企业的资料进行留存,系统还可以根据来招聘学生的企业通过大数据计算出每年来学校招聘成功的学生数做出一定的分析并为以后的就业提供一定的思路等。
招聘信息管理
在这一个模块,学院老师可以把这些信息都保存下来,然后系统根据这些信息通过一定的运算计算出相应工作需要的技能,然后根据近几年的数据来进行预测未来就业市场的走向,及时调整学生培养方案,培养出来的学生能更好的适应市场,找到自己的定位。
就业信息管理
在这一个模块,主要是针对学生来设置的,主要就是学生签三方的资料后的审核签字,以及学生未来的工作走向记录等,然后通过大数据计算出并及时调整学生培养方案,培养出来的学生能更好的适应市场,找到自己的定位。
留言信息管理
在这一个模块,主要有学生、企业对学院的留言,学院老师可以查看学生和企业留言的信息,并根据他们的信息做出一定的回复,实现供需双方之间的交流,建立起了沟通的桥梁。

2.1.4系统管理员功能
系统管理员模块主要是对后台进行维护和以及对毕业生、用人单位、学院老师的全部内容进行管理,他是整个系统的最高拥有者,根据系统管理员需要进行系统维护、就业工作处理等不同工作内容,可以设置出一个或者多个的系统管理员,有针对性的对系统进行管理操作。作为系统的最高拥有者,系统管理可以随时对系统中的用户权限、各项功能的配置进行重置与更新。

三、系统项目部分截图

3.1用户登录与注册

系统提供的注册、登陆功能,用户通过注册获取系统使用权限。根据需求分析,用户分为学生、企业、老师和管理员四类。用户通过注册页面选择合适的角色并进行注册,注册后通过用户名、密码实现登陆。
注册时用户编辑用户名、密码等信息,密码需进行二次确认,如果用户名合法且两次密码一致,则注册成功,用户注册信息写入数据库进行保存。
登录时用户输账号和密码后,由系统调用数据库相关信息,与用户输入的信息进行比较,如果结果一致,则认定为合法用户,登录成功。
具体实现效果如下图所示:在这里插入图片描述

3.2前台页面

系统前台为网页形式,可以查看企业招聘、就业信息、学校公告、留言反馈、个人中心等信息。在这里插入图片描述

3.3毕业生管理功能及演示效果

主要包括个人基本信息管理、就业信息管理、简历管理、个人档案管理、留言信息管理五个功能内容,。在这里插入图片描述

3.4后台管理功能及演示效果

系统管理员拥有最高权限,可以对学生、企业、老师的注册信息进行审核管理,也可以对学生档案、学院信息、企业信息、招聘信息、留言板等进行浏览和管理。具体实现效果如下图所示:在这里插入图片描述

四、论文目录

1.概述 6
1.1课题背景及研究意义 6
1.2国内外研究现状 7
1.3 论文结构 8
2.需求分析 9
2.1毕业生需求 9
2.2企业需求 10
2.3学院需求 10
2.4系统管理员 10
3.项目技术简介 10
3.1 Java编程语言 10
3.2 B/S架构 11
3.3 Mysql数据库 14
3.4 SSM框架 14
3.4.1 Spring 15
3.4.2 SpringMVC 16
3.4.3 MyBatis 16
4.系统设计实现 16
4.1 主要功能模块功能设计 17
4.1.1毕业生管理功能模块 17
4.1.2企业管理功能模块 18
4.1.3学院老师管理功能模块 20
4.1.4系统管理员功能 21
4.2数据库设计 21
4.3系统实现及实现效果 23
4.1.1毕业生管理功能及演示效果 23
4.1.2企业管理功能模块及演示效果 23
4.1.3学院老师管理功能模块及演示效果 23
4.1.4系统管理员功能及演示效果 23
5.软件测试 23
5.1 基本概念 23
5.2 软件测试的基本方法 24
5.3软件测试的原则 24
5.4测试用例 26
5.5测试结果 26
6.总结与展望 27
6.1 研究总结 27
6.2 展望 27
参考文献 28
致 谢 29

五、部分核心代码

4.1 文件部分

package com.controller;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 上传文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file, String type,HttpServletRequest request) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public void download(@RequestParam String fileName, HttpServletRequest request, HttpServletResponse response) {
		try {
			File file = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName);
			if (file.exists()) {
				response.reset();
				response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName+"\"");
				response.setHeader("Cache-Control", "no-cache");
				response.setHeader("Access-Control-Allow-Credentials", "true");
				response.setContentType("application/octet-stream; charset=UTF-8");
				IOUtils.write(FileUtils.readFileToByteArray(file), response.getOutputStream());
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}

4.2用户部分


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

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

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

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


获取源码或论文

如嘘对应的源码,可以斯wo。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值