毕业设计的管理是高校管理工作中的一项重要内容。随着高等教育教学改革的不断深入,对于高校毕业设计管理的规范化。学化、信息化已成为目前面临的重要课题。目前。很多高校的毕业设计管理还存在一些问题,例如:根据教学要求,通常学生在大学最后一年需要在外地进行实习,此时又面临着毕业设计选题问题;另外,毕业设计完成时,设计的上交也存在困难。同时在做毕业设计的过程中,由于学生在外地,指导老师对学生的指导和交流也会遇到一些麻烦。要解决以上这些问题 ,一方面要提高管理员业务知识和管理水平;另一方面要充分利用现代科学技术,建立现代化的'管理信息系统.近几年来我国各大中专院校加快了信息化进程,基本上都建立了自己的校园网,这为我们系统的开发提供了必备的物质基础。
现在国外有很多关于毕业设计管理的软件,采用的技术也多种多样,如JSP、FTP模式,但是大多数毕业设计管理系统软件是用于网络学院的远程教学,单纯用于院校级毕业设计管理方面仍然存在很多弊端,不利于设计的管理、存档和检索,且功能单一,缺乏灵活性。至于国内的正规院校,利用设计管理系统组织管理设计的活动并不多,大多还停留在水工操作阶段,针对国内外教学管理软件的巨大需求和基本要求,一个好的毕业设计管理软件必须功能齐全,操作简单,向用户展示友善的操作界面。在完善功能的同时又必须兼顾系统的灵活性,安全性和健壮性。当前许多学校正在逐步完善毕业设计管理工作,需要一个能满足内部管理需求、提高管理效率的应用系统进行内部管理,但是经过多年的研究发现大多数院校仍然停在人工处理水平。然而随着学校的规模不断扩大,学生人数成倍增长,积累了大量的学生信息,急需进行统一管理以防信息流失。毕业设计管理网站使管理毕业生设计的工作在该系统的配合下更加高效和便捷。不管是计算机专业人员还是其他用户都能很快上手,操作简便,易于安装,容易普及。
本系统主要分为学生,教师,管理员三个端,其中
学生端主要功能有:
(1)个人信息管理:学生可以查看和修改自己的个人信息
(2)查看通知:学生能够查看系统的通知和公告信息。
(3)分组查看:学生能够查看自己对应的毕业设计小组和成员。
(4)选题查看:学生可以查看毕业设计的选题。
(5)设计提交:学生可以提交自己的毕业设计发送到教师。
(6)查看得分:学生可以在设计提交后,查看教师打的分数。
(7)交流提问:学生可以发送相关疑问给指定教师,可以查看教师的回复。
(8)修改密码:学生可以修改自己的密码。
教师端的主要功能有:
(1)学生管理:教师可以查看,删除和修改学生信息。
(2)设计选题:教师可以添加和删除选题。
(3)设计查看:教师可以查看学生发送来的设计,并进行打分。
(4)交流信息:教师可以给学生发送来的交流信息进行查看和回复。
(5)个人信息:教师可以查看个人信息,并进行更新。
(6)修改密码:教师能够修改自己的密码。
管理员端的主要功能有:
(1)管理员管理:管理员能够添加删除系统的管理员。
(2)教师管理:管理员能够添加和删除,修改教师信息。
(3)学生管理:管理员可以添加,删除,修改学生信息。
(4)分组管理:管理员可以查看,添加,删除分组。
(5)通知管理:管理员可以添加,删除相关通知。
(6)成绩查看:管理员能够查看学生的成绩信息。
(7)修改密码:管理员可以修改自己的密码。
预期目标能够做到系统能够链接数据库,能够正常的运行,用户操作流程简单,方便,合理。系统能够实现毕业设计文件的上传功能,学生,教师,管理员之间的权限明确。
本项目以模块化进行开发和设计,采用的开发语言是php,数据库是mysql,采用的前端设计语言是HTML+CSS+JAVASCRIPT,前端的框架是pintuer,采用的服务器是apache,开发工具是sublime。系统有较高的安全性和较好的性能。 在设计过程中,将参照一下国内外的一些同类网站,借鉴下他们的一些 布局框架,将课题要求的基本功能合理地组织起来,形成友好、高效的交互 过程。 开发的具体步骤为: 第一步,进行系统的可行性分析,完成系统的需求分析。 第二步,对系统进行概要设计,设计系统的结构图,确定各模块(页面) 之间的调用关系,设计出结构良好的数据库。 第三步,对系统进行详细设计, 确定各模块的算法。 第四步,进行软件编码,实现其各项基本功能。 第五步,系统在真实数据下进行各种测试。
[1]蒋亚虎.家教管理系统设计与开发[J].电脑编程技巧与维护,2016(22):64-65.
[2]张良.大学生家教的管理模式研究[J].集宁师范学院学报,2017,35(04):67-72+87.
[3]谢辅雯,陈如.师范生家教管理系统的研究与设计[J].电脑知识与技术,2019,15(21):100-101.
[4]王建,杨瑞.基于java的大学生家教管理系统设计[J].信息通信,2019(10):89-90.
[5]周诗辉,赵天琦,王波.基于PHP网站建设的功能实现和问题分析[J].教育教学论坛,2018(44):205-206.
[6]刘晓知.论如何应对基于PHP技术开发的Web应用程序漏洞[J].电脑编程技巧与维护,2018(10):167-168+173.
[7]张媛.基于PHP与数据库技术的Web动态网站设计[J].自动化与仪器仪表,2018(09):83-85.
[8]侯璐璐.PHP语言在企业网站开发中的应用[J].电子技术与软件工程,2018(20):20-21
[9]邓林.MySQL存储过程调试技巧[J].四川职业技术学院学报,2017,27(04):157-159.
[10]张继东.MySQL数据库的权限及其安全缺陷[J].信息与电脑(理论版),2017(08):65-66.
目录
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
/**
* 登录相关
*/
@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
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
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
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map
EntityWrapper
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
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
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();
}
}