基于ssm和mysql实现的毕业选题管理系统
1.项目介绍
1.1 背景分析
计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。每年毕业临近时,都有优良的毕业生需要进行毕业设计,这其中的首要关节就是课题的选择,以往指导老师都是采用人工手写方式给学生们提供相关的毕业课题提供学生选择,如果指导老师带领的学生比较多,或者是当年毕业的学生比较多,这样就造成学生的毕业课题选择很混乱,指导老师难于统计学生的毕业课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计,实时分配课题的一个管理平台来帮助学生、指导老师。
1.2 需求分析
此系统的开发,主要目的是使老师能更好地管理课程设计,也能使学生能更好地把自己想要选的课程准确无误的选出来,使在选择毕业课题时期的学生能有条不紊的进行。
该项目可以实现大学毕业设计中流程的大多是操作。主要有以下几点:
-
管理员添加教师信息和学生信息
-
教师网上报课题,管理员进行审核,审核通过的课题可以作为最终的选题开供学生选择
-
学生选择课题,并会实时显示选题信息
-
待选题结束之后,学生可以下载相关课题的任务书和开题报告模板
-
教师可以提醒学生提交开题报告
-
教师进行对自己管理的学生的开题报告进行审核,通过后可以进行之后的操作
-
学生上传毕业论文,审核通过之后该学生具有答辩资格,可进行答辩
-
教师最终把学生的开题报告进行提交,供管理员查看,保存
1.3 安装部署
- 配置环境
- jdk1.8
- mysql5.1.47版本以上
-
idea
-
访问
- localhost:8080/BSManager 这是的登陆到系统的主页(包括学生和教师的登陆)
- localhost:8080/BSManager/admin/index.jsp 这是登陆到管理员的登陆界面
1.4 技术栈
该系统使用的是SSM(Spring+SptingMVC+MyBatis)框架+mysql数据库
使用的是maven,所以生成的结构如所示:
2.数据库设计
2.1 表结构
公告表
院系表
专业表
项目源码表
学生表
学生提交开题报告和任务书表
学生进度通知填写表
学生论文成绩表
教师表
教师发布任务书和开题报告表
论文具体描述表
学生提交毕业论文表
分页表
教师提交课题表
选题信息表
用户表
2.2 E-R图
3.项目实现
3.1 过滤器
java
/**
* 这是个过滤器 用于验证用户登陆 (查找session)
* 把图片的路径过滤掉,否则会出现图片无法加载
*/
public class LoginFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest servletRequest = (HttpServletRequest)request;
HttpServletResponse servletResponse = (HttpServletResponse) response;
HttpSession session = servletRequest.getSession();
String path = servletRequest.getRequestURI();
System.out.println("当前路径:"+path);
User currentUser = (User)session.getAttribute("currentUser");
if (path.indexOf("index.jsp") > -1 || path.indexOf("teacherLogin.jsp") > -1
|| path.indexOf("studentLogin.jsp") > -1 || path.indexOf("adminLogin.jsp") > -1
|| path.indexOf("login") > -1 || path.indexOf("adminLogin.jsp") > -1 || path.indexOf(".jpg") > -1
|| path.indexOf(".html") > -1 || path.indexOf(".png") > -1 || path.indexOf(".css") > -1
|| path.indexOf(".js") > -1) {
chain.doFilter(servletRequest, servletResponse);
return;
}
if(currentUser == null || "".equals(currentUser)) {
servletResponse.sendRedirect("/BSManager/index.jsp");
}else {
chain.doFilter(servletRequest, servletResponse);
}
}
public void destroy() {
// TODO Auto-generated method stub
}
}
3.2 项目配置
spring-dao.xml
```xml
spring-web.xml
```xml
3.3 主要功能
登录
java
@RequestMapping(value="/admin/login")
public String adminLogin(String userNo,String password,Model model,HttpServletRequest request) {
User currentUser = userService.login(userNo, password);
if("".equals(currentUser)||currentUser==null) {
model.addAttribute("message", "用户名或密码错误");
return "error.jsp";
}
if(currentUser.getPermission()==3) {
// request.getSession().setAttribute("userNo", userNo);
HttpSession session = request.getSession();
session.setMaxInactiveInterval(3600);
session.setAttribute("currentUser", currentUser);
//model.addAttribute("userNo", userNo);
return "admin/main.jsp";
}else {
model.addAttribute("message", "当前用户不是管理员");
return "error.jsp";
}
}
@RequestMapping(value="/teacher/login")
public String teacherLogin(String userNo,String password,Model model,HttpServletRequest request) {
User currentUser = userService.login(userNo, password);
if("".equals(currentUser)||currentUser==null) {
model.addAttribute("message", "用户名或密码错误");
return "error.jsp";
}
if(currentUser.getPermission()==2) {
HttpSession session = request.getSession();
session.setMaxInactiveInterval(3600);
// 在t_user表的信息
session.setAttribute("currentUser", currentUser);
// 完整的teacher信息
Teacher teacher = teacherService.showInfoByNo(userNo);
int depId = teacher.getDepartmentId();
String depName = departmentService.getNameById(depId);
teacher.setDepartmentName(depName);
session.setAttribute("teacher", teacher);
//model.addAttribute("userNo", userNo);
return "teacher/main.jsp";
}else {
model.addAttribute("message", "当前用户不是教师");
return "error.jsp";
}
}
@RequestMapping(value="/student/login")
public String studentLogin(String userNo,String password,Model model,HttpServletRequest request) {
User currentUser = userService.login(userNo, password);
if("".equals(currentUser)||currentUser==null) {
model.addAttribute("message", "用户名或密码错误");
return "error.jsp";
}
if(currentUser.getPermission()==1) {
HttpSession session = request.getSession();
session.setMaxInactiveInterval(3600);
// t_user 表中的关于学生的信息
session.setAttribute("currentUser", currentUser);
// t_student 表中的信息
Student student = studentService.getStudentByNO(userNo);
int majorId = student.getMajorId();
String majorName = majorService.getNameById(majorId);
student.setMajorName(majorName);
session.setAttribute("student", student);
// model.addAttribute("userNo", userNo);
return "student/main.jsp";
}else {
model.addAttribute("message", "当前用户不是学生");
return "error.jsp";
}
}
管理员功能
java
@RequestMapping(value="/showTeacherOne",method=RequestMethod.POST)
public String adminShowTeacherOne(Model model,HttpServletResponse response, @RequestParam(value="teacherNo",required=false) String teacherNo,@RequestParam(value="teacherName",required=false) String teacherName) throws Exception {
if( ("".equals(teacherNo) || teacherNo == null) && ("".equals(teacherName) || teacherName == null) ) {
adminShowAllTeacher(model, response);
}else if((!"".equals(teacherNo) || teacherNo != null) &&("".equals(teacherName) || teacherName == null) ) {
List<Teacher> teachers = teacherService.showTeacherOne1(teacherNo);
if(teachers.isEmpty()) {
model.addAttribute("showMessage", "没有与查询相匹配的教师信息");
}else {
for(int i=0;i<teachers.size();i++) {
System.out.println(teachers.get(i));
int depmentId = teachers.get(i).getDepartmentId();
String departmentName = departmentService.getNameById(depmentId);
teachers.get(i).setDepartmentName(departmentName);
}
}
model.addAttribute("teacherList", teachers);
System.out.println("教师集合:"+teachers);
return "admin/adminTeacherManage.jsp";
}else if(("".equals(teacherNo) || teacherNo == null) && (!"".equals(teacherName) || teacherName != null)) {
teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");
List<Teacher> teachers = teacherService.showTeacherOne2(teacherName);
if(teachers.isEmpty()) {
model.addAttribute("showMessage", "没有与查询相匹配的教师信息");
}else {
for(int i=0;i<teachers.size();i++) {
System.out.println(teachers.get(i));
int depmentId = teachers.get(i).getDepartmentId();
String departmentName = departmentService.getNameById(depmentId);
teachers.get(i).setDepartmentName(departmentName);
}
}
model.addAttribute("teacherList", teachers);
System.out.println("教师集合:"+teachers);
return "admin/adminTeacherManage.jsp";
} else {
teacherName = new String(teacherName.getBytes("iso-8859-1"),"utf-8");
teacherNo = new String(teacherNo.getBytes("iso-8859-1"),"utf-8");
List<Teacher> teachers = teacherService.showTeacherOne3(teacherNo, teacherName);
if(teachers.isEmpty()) {
model.addAttribute("showMessage", "没有与查询相匹配的教师信息");
}else {
for(int i=0;i<teachers.size();i++) {
System.out.println(teachers.get(i));
int depmentId = teachers.get(i).getDepartmentId();
String departmentName = departmentService.getNameById(depmentId);
teachers.get(i).setDepartmentName(departmentName);
}
}
model.addAttribute("teacherList", teachers);
System.out.println("教师集合:"+teachers);
return "admin/adminTeacherManage.jsp";
}
return "admin/adminTeacherManage.jsp";
}
@RequestMapping(value="/studentAdd",method=RequestMethod.POST)
public String addStudent(HttpServletRequest request,String studentNo, String studentName,String sex,String grade,String phone,String major,Model model) throws Exception {
studentNo = new String(studentNo.getBytes("iso-8859-1"),"utf-8");
studentName = new String(studentName.getBytes("iso-8859-1"),"utf-8");
sex = new String(sex.getBytes("iso-8859-1"),"utf-8");
grade = new String(grade.getBytes("iso-8859-1"),"utf-8");
User user = (User)request.getSession().getAttribute("currentUser");
String inputMan = user.getUserNo();
phone = new String(phone.getBytes("iso-8859-1"),"utf-8");
major = new String(major.getBytes("iso-8859-1"),"utf-8");
if(studentNo== null || "".equals(studentNo)||studentName == null || "".equals(studentName) || sex==null ||"".equals(sex) || grade == null || "".equals(grade) || phone == null || "".equals(phone) || major==null ||"".equals(major)) {
model.addAttribute("message", "存在未填写的信息");
return "admin/main.jsp";
}else {
Date currentTime = new Date();
Student student = new Student();
student.setStudentNo(studentNo);
student.setStudentName(studentName);
student.setSex(sex);
student.setGrade(grade);
student.setInputMan(inputMan);
student.setPhone(phone);
student.setMajorId(Integer.parseInt(major));
student.setLastModifyTime(currentTime);
int addNum = studentService.addStudent(student);
model.addAttribute("message", "成功添加一条学生信息");
return "admin/adminStudentAdd.jsp";
}
}
4.项目展示
4.1 普通用户
登录
主页
修改个人信息
课题管理
选择课题
进度管理
文档管理
提问管理
查看公告
查看成绩
4.2 教师用户
登录
主页
修改个人信息
课题管理
进度管理
审核开题报告
学生管理
文档管理
论文审核
发布公告
添加成绩
4.3 管理员用户
登录
主页
教师管理
学生管理
审核选题
公告管理
参考文献
- 基于web的科研管理系统设计与实现(西华大学·王倩)
- 基于.net的高职论文选题系统的设计与实现(山东大学·李童)
- 基于.NET的毕业设计选题系统的设计与实现(吉林大学·李瑞)
- 教材管理系统的研究与开发(电子科技大学·谌晓芳)
- 基于校园网的高校学生信息管理系统研究与实现(电子科技大学·董鑫)
- 基于JSP的科研信息管理系统的设计与实现(河北工业大学·席瑞媛)
- 本科生毕业设计选题系统设计与实现(燕山大学·周莉莎)
- 本科生毕业设计选题系统设计与实现(燕山大学·周莉莎)
- 基于Web的毕业设计选题系统的设计与实现(内蒙古大学·吴海燕)
- 高校科研管理系统的设计与实现(燕山大学·薄艳莉)
- 印刷公司内容管理平台的设计与实现(吉林大学·郎彩虹)
- 基于SSM的高校排课系统的研究与应用(苏州大学·杨群)
- 高校毕业设计论文管理系统设计与实现(东北大学·任平)
- 毕业论文选题系统的设计与实现(郑州大学·郭峰)
- 项目管理原型系统—权限管理子系统的设计与实现(电子科技大学·甘沅鑫)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://bishedaima.com/yuanma/35480.html