基于java的毕业设计选题双选系统

该系统采用SSM(Spring、SpringMVC、MyBatis)框架,结合MySQL数据库,实现了学生、导师和管理员三大模块的功能。学生可以选题、退选和上交论文,导师可以管理课题和评阅论文,管理员负责用户管理、系统设置和数据安全。适合计算机专业学生作为参考资料学习。
摘要由CSDN通过智能技术生成
              随着计算机软件技术水平和硬件的飞速发展,计算机技术已与我们日常生活息息相关。近年来普通高校大学生的招生规模不断扩大,招生、培养,学位授予的不断多样化,以及大学生,毕业导师和管理部门也对研究生的管理提出了新的要求,都希望能够及时获取有效、可靠的信息。在这样的情形下,原有的管理方式已经不能适应当前和未来大学生教育的发展要求。目前,互联网技术不断发展已日趋成熟,在大学生的毕业工作中,基于B/S结构的双向选择系统就能大幅度的减轻导师和毕业生之间双向选择过程中信息沟通能力的不足,为了更有效地改进毕业设计的管理模式, 减少重复选题的工作量, 使学生能够选择一个自己感兴趣的题目, 并且能在第一时间查看到毕业设计课题的完整信息, 指导教师可以及时对题目进行修改和更新, 较好地实现师生的双向选择 

本SSM;Spring:SpringMVC:MyBatis;:mysql系统可以定制, 编程不易,求分享的勿扰 采用idea软件开发,同时也支持eclipse 基于web的.用当前主流的B/S架构设计完成,非常适合作为计算机专业的同学参考资料进行学习,
请添加图片描述
功能介绍
根据设计需求该系统分为以下几大模块:
­(1)学生管理模块:可以实现课题选择以及在规定期限内的课题退选与重新选题操作; 可以实现各种论文的上交与查看等操作; 可以实现与指导教师的交流。
(2)导师管理模块: 课题管理可实现课题增加、修改与删除; 实现各种论文的评阅与查看各阶段论文上传时间, 给出学生各阶段的成绩; 实现与指导学生的交流。
;3;管理员管理模块:主要实现用户添加、用户删除等功能; 系统管理可以确定系统开放时间、允许多年级选题、自行更改期限等多项保证系统正常运作的设置; 可以查看教师课题信息、各阶段论文上传时间、批阅情况等; 可以查看学生选题情况、及实现超过选题时间后进行补选; 信息发布可以实现更改公告、资料上传、资料删除、通知发布、通知修改与删除; 课题管理可以实现课题审核、课题时间标记、课题转存、课题批量删除、以往课题信息查看; 数据管理可以实现数据备份、数据恢复、数据压缩以便保证系统数据的安全。


/**
 * 登录相关
 */
@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);
        userService.updateById(user);//全部更新
        return R.ok();
    }

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

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值