文章目录
- 学生选课成绩管理系统
- 一、项目演示
- 二、项目介绍
- 三、8500字项目文档
- 四、部分功能截图
- 五、部分代码展示
- 六、底部获取项目源码带8500字文档(9.9¥带走)
学生选课成绩管理系统
一、项目演示
选课成绩管理系统
二、项目介绍
语言: Java 数据库:MySQL
技术栈 : Spring 、Spring MVC 、Mybatis、jsp
系统角色:管理员、教师、用户
1、管理员:登录、课程管理(搜索课程、添加课程、修改课程、删除课程)、学生管理(搜索学生、添加学生、修改学生、删除学生)、教师管理(搜索教师、添加教师、修改教师、删除教师)、账号密码重置、修改密码
2、教师:登录、我的课程(搜索课程、成绩评分)、修改密码
3、学生:所有课程、已选课程、已修课程、修改密码
三、8500字项目文档
四、部分功能截图
五、部分代码展示
package com.system.controller;import com.system.exception.CustomException;
import com.system.po.*;
import com.system.service.*;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import javax.annotation.Resource;
import java.util.List;@Controller
@RequestMapping("/admin")
public class AdminController {@Resource(name = "studentServiceImpl")private StudentService studentService;@Resource(name = "teacherServiceImpl")private TeacherService teacherService;@Resource(name = "courseServiceImpl")private CourseService courseService;@Resource(name = "collegeServiceImpl")private CollegeService collegeService;@Resource(name = "userloginServiceImpl")private UserloginService userloginService;/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<学生操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 学生信息显示@RequestMapping("/showStudent")public String showStudent(Model model, Integer page) throws Exception {List<StudentCustom> list = null;//页码对象PagingVO pagingVO = new PagingVO();//设置总页数pagingVO.setTotalCount(studentService.getCountStudent());if (page == null || page == 0) {pagingVO.setToPageNo(1);list = studentService.findByPaging(1);} else {pagingVO.setToPageNo(page);list = studentService.findByPaging(page);}model.addAttribute("studentList", list);model.addAttribute("pagingVO", pagingVO);return "admin/showStudent";}// 添加学生信息页面显示@RequestMapping(value = "/addStudent", method = {RequestMethod.GET})public String addStudentUI(Model model) throws Exception {List<College> list = collegeService.finAll();model.addAttribute("collegeList", list);return "admin/addStudent";}// 添加学生信息操作@RequestMapping(value = "/addStudent", method = {RequestMethod.POST})public String addStudent(StudentCustom studentCustom, Model model) throws Exception {Boolean result = studentService.save(studentCustom);if (!result) {model.addAttribute("message", "学号重复");return "error";}//添加成功后,也添加到登录表Userlogin userlogin = new Userlogin();userlogin.setUsername(studentCustom.getUserid().toString());userlogin.setPassword("123");userlogin.setRole(2);userloginService.save(userlogin);//重定向return "redirect:/admin/showStudent";}// 修改学生信息页面显示@RequestMapping(value = "/editStudent", method = {RequestMethod.GET})public String editStudentUI(Integer id, Model model) throws Exception {if (id == null) {//加入没有带学生id就进来的话就返回学生显示页面return "redirect:/admin/showStudent";}StudentCustom studentCustom = studentService.findById(id);if (studentCustom == null) {throw new CustomException("未找到该名学生");}List<College> list = collegeService.finAll();model.addAttribute("collegeList", list);model.addAttribute("student", studentCustom);return "admin/editStudent";}// 修改学生信息处理@RequestMapping(value = "/editStudent", method = {RequestMethod.POST})public String editStudent(StudentCustom studentCustom) throws Exception {studentService.updataById(studentCustom.getUserid(), studentCustom);//重定向return "redirect:/admin/showStudent";}// 删除学生@RequestMapping(value = "/removeStudent", method = {RequestMethod.GET} )private String removeStudent(Integer id) throws Exception {if (id == null) {//加入没有带学生id就进来的话就返回学生显示页面return "admin/showStudent";}studentService.removeById(id);userloginService.removeByName(id.toString());return "redirect:/admin/showStudent";}// 搜索学生@RequestMapping(value = "selectStudent", method = {RequestMethod.POST})private String selectStudent(String findByName, Model model) throws Exception {List<StudentCustom> list = studentService.findByName(findByName);model.addAttribute("studentList", list);return "admin/showStudent";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教师操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 教师页面显示@RequestMapping("/showTeacher")public String showTeacher(Model model, Integer page) throws Exception {List<TeacherCustom> list = null;//页码对象PagingVO pagingVO = new PagingVO();//设置总页数pagingVO.setTotalCount(teacherService.getCountTeacher());if (page == null || page == 0) {pagingVO.setToPageNo(1);list = teacherService.findByPaging(1);} else {pagingVO.setToPageNo(page);list = teacherService.findByPaging(page);}model.addAttribute("teacherList", list);model.addAttribute("pagingVO", pagingVO);return "admin/showTeacher";}// 添加教师信息@RequestMapping(value = "/addTeacher", method = {RequestMethod.GET})public String addTeacherUI(Model model) throws Exception {List<College> list = collegeService.finAll();model.addAttribute("collegeList", list);return "admin/addTeacher";}// 添加教师信息处理@RequestMapping(value = "/addTeacher", method = {RequestMethod.POST})public String addTeacher(TeacherCustom teacherCustom, Model model) throws Exception {Boolean result = teacherService.save(teacherCustom);if (!result) {model.addAttribute("message", "工号重复");return "error";}//添加成功后,也添加到登录表Userlogin userlogin = new Userlogin();userlogin.setUsername(teacherCustom.getUserid().toString());userlogin.setPassword("123");userlogin.setRole(1);userloginService.save(userlogin);//重定向return "redirect:/admin/showTeacher";}// 修改教师信息页面显示@RequestMapping(value = "/editTeacher", method = {RequestMethod.GET})public String editTeacherUI(Integer id, Model model) throws Exception {if (id == null) {return "redirect:/admin/showTeacher";}TeacherCustom teacherCustom = teacherService.findById(id);if (teacherCustom == null) {throw new CustomException("未找到该名学生");}List<College> list = collegeService.finAll();model.addAttribute("collegeList", list);model.addAttribute("teacher", teacherCustom);return "admin/editTeacher";}// 修改教师信息页面处理@RequestMapping(value = "/editTeacher", method = {RequestMethod.POST})public String editTeacher(TeacherCustom teacherCustom) throws Exception {teacherService.updateById(teacherCustom.getUserid(), teacherCustom);//重定向return "redirect:/admin/showTeacher";}//删除教师@RequestMapping("/removeTeacher")public String removeTeacher(Integer id) throws Exception {if (id == null) {//加入没有带教师id就进来的话就返回教师显示页面return "admin/showTeacher";}teacherService.removeById(id);userloginService.removeByName(id.toString());return "redirect:/admin/showTeacher";}//搜索教师@RequestMapping(value = "selectTeacher", method = {RequestMethod.POST})private String selectTeacher(String findByName, Model model) throws Exception {List<TeacherCustom> list = teacherService.findByName(findByName);model.addAttribute("teacherList", list);return "admin/showTeacher";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<课程操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 课程信息显示@RequestMapping("/showCourse")public String showCourse(Model model, Integer page) throws Exception {List<CourseCustom> list = null;//页码对象PagingVO pagingVO = new PagingVO();//设置总页数pagingVO.setTotalCount(courseService.getCountCouse());if (page == null || page == 0) {pagingVO.setToPageNo(1);list = courseService.findByPaging(1);} else {pagingVO.setToPageNo(page);list = courseService.findByPaging(page);}model.addAttribute("courseList", list);model.addAttribute("pagingVO", pagingVO);return "admin/showCourse";}//添加课程@RequestMapping(value = "/addCourse", method = {RequestMethod.GET})public String addCourseUI(Model model) throws Exception {List<TeacherCustom> list = teacherService.findAll();List<College> collegeList = collegeService.finAll();model.addAttribute("collegeList", collegeList);model.addAttribute("teacherList", list);return "admin/addCourse";}// 添加课程信息处理@RequestMapping(value = "/addCourse", method = {RequestMethod.POST})public String addCourse(CourseCustom courseCustom, Model model) throws Exception {Boolean result = courseService.save(courseCustom);if (!result) {model.addAttribute("message", "课程号重复");return "error";}//重定向return "redirect:/admin/showCourse";}// 修改教师信息页面显示@RequestMapping(value = "/editCourse", method = {RequestMethod.GET})public String editCourseUI(Integer id, Model model) throws Exception {if (id == null) {return "redirect:/admin/showCourse";}CourseCustom courseCustom = courseService.findById(id);if (courseCustom == null) {throw new CustomException("未找到该课程");}List<TeacherCustom> list = teacherService.findAll();List<College> collegeList = collegeService.finAll();model.addAttribute("teacherList", list);model.addAttribute("collegeList", collegeList);model.addAttribute("course", courseCustom);return "admin/editCourse";}// 修改教师信息页面处理@RequestMapping(value = "/editCourse", method = {RequestMethod.POST})public String editCourse(CourseCustom courseCustom) throws Exception {courseService.upadteById(courseCustom.getCourseid(), courseCustom);//重定向return "redirect:/admin/showCourse";}// 删除课程信息@RequestMapping("/removeCourse")public String removeCourse(Integer id) throws Exception {if (id == null) {//加入没有带教师id就进来的话就返回教师显示页面return "admin/showCourse";}courseService.removeById(id);return "redirect:/admin/showCourse";}//搜索课程@RequestMapping(value = "selectCourse", method = {RequestMethod.POST})private String selectCourse(String findByName, Model model) throws Exception {List<CourseCustom> list = courseService.findByName(findByName);model.addAttribute("courseList", list);return "admin/showCourse";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<其他操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 普通用户账号密码重置@RequestMapping("/userPasswordRest")public String userPasswordRestUI() throws Exception {return "admin/userPasswordRest";}// 普通用户账号密码重置处理@RequestMapping(value = "/userPasswordRest", method = {RequestMethod.POST})public String userPasswordRest(Userlogin userlogin) throws Exception {Userlogin u = userloginService.findByName(userlogin.getUsername());if (u != null) {if (u.getRole() == 0) {throw new CustomException("该账户为管理员账户,没法修改");}u.setPassword(userlogin.getPassword());userloginService.updateByName(userlogin.getUsername(), u);} else {throw new CustomException("没找到该用户");}return "admin/userPasswordRest";}// 本账户密码重置@RequestMapping("/passwordRest")public String passwordRestUI() throws Exception {return "admin/passwordRest";}}
package com.system.controller;import com.system.exception.CustomException;
import com.system.po.*;
import com.system.service.CourseService;
import com.system.service.SelectedCourseService;
import com.system.service.StudentService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;
import java.util.List;/*** Created by Jacey on 2017/7/5.*/
@Controller
@RequestMapping(value = "/student")
public class StudentController {@Resource(name = "courseServiceImpl")private CourseService courseService;@Resource(name = "studentServiceImpl")private StudentService studentService;@Resource(name = "selectedCourseServiceImpl")private SelectedCourseService selectedCourseService;@RequestMapping(value = "/showCourse")public String stuCourseShow(Model model, Integer page) throws Exception {List<CourseCustom> list = null;//页码对象PagingVO pagingVO = new PagingVO();//设置总页数pagingVO.setTotalCount(courseService.getCountCouse());if (page == null || page == 0) {pagingVO.setToPageNo(1);list = courseService.findByPaging(1);} else {pagingVO.setToPageNo(page);list = courseService.findByPaging(page);}model.addAttribute("courseList", list);model.addAttribute("pagingVO", pagingVO);return "student/showCourse";}// 选课操作@RequestMapping(value = "/stuSelectedCourse")public String stuSelectedCourse(int id) throws Exception {//获取当前用户名Subject subject = SecurityUtils.getSubject();String username = (String) subject.getPrincipal();SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();selectedCourseCustom.setCourseid(id);selectedCourseCustom.setStudentid(Integer.parseInt(username));SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom);if (s == null) {selectedCourseService.save(selectedCourseCustom);} else {throw new CustomException("该门课程你已经选了,不能再选");}return "redirect:/student/selectedCourse";}// 退课操作@RequestMapping(value = "/outCourse")public String outCourse(int id) throws Exception {Subject subject = SecurityUtils.getSubject();String username = (String) subject.getPrincipal();SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();selectedCourseCustom.setCourseid(id);selectedCourseCustom.setStudentid(Integer.parseInt(username));selectedCourseService.remove(selectedCourseCustom);return "redirect:/student/selectedCourse";}// 已选课程@RequestMapping(value = "/selectedCourse")public String selectedCourse(Model model) throws Exception {//获取当前用户名Subject subject = SecurityUtils.getSubject();StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();model.addAttribute("selectedCourseList", list);return "student/selectCourse";}// 已修课程@RequestMapping(value = "/overCourse")public String overCourse(Model model) throws Exception {//获取当前用户名Subject subject = SecurityUtils.getSubject();StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());if (studentCustom==null){throw new CustomException("你还没有修完任何一门课,请先选课学习吧!");}List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();model.addAttribute("selectedCourseList", list);return "student/overCourse";}//修改密码@RequestMapping(value = "/passwordRest")public String passwordRest() throws Exception {return "student/passwordRest";}}
package com.system.service.impl;import com.system.exception.CustomException;
import com.system.mapper.CollegeMapper;
import com.system.mapper.CourseMapper;
import com.system.mapper.TeacherMapper;
import com.system.mapper.TeacherMapperCustom;
import com.system.po.*;
import com.system.service.TeacherService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;/*** Created by Jacey on 2017/6/29.*/
@Service
public class TeacherServiceImpl implements TeacherService {@Autowiredprivate TeacherMapper teacherMapper;@Autowiredprivate TeacherMapperCustom teacherMapperCustom;@Autowiredprivate CollegeMapper collegeMapper;@Autowiredprivate CourseMapper courseMapper;public void updateById(Integer id, TeacherCustom teacherCustom) throws Exception {teacherMapper.updateByPrimaryKey(teacherCustom);}public void removeById(Integer id) throws Exception {CourseExample courseExample = new CourseExample();CourseExample.Criteria criteria = courseExample.createCriteria();criteria.andTeacheridEqualTo(id);List<Course> list = courseMapper.selectByExample(courseExample);if (list.size() != 0) {throw new CustomException("请先删除该名老师所教授的课程");}teacherMapper.deleteByPrimaryKey(id);}public List<TeacherCustom> findByPaging(Integer toPageNo) throws Exception {PagingVO pagingVO = new PagingVO();pagingVO.setToPageNo(toPageNo);List<TeacherCustom> list = teacherMapperCustom.findByPaging(pagingVO);return list;}public Boolean save(TeacherCustom teacherCustom) throws Exception {Teacher tea = teacherMapper.selectByPrimaryKey(teacherCustom.getUserid());if (tea == null) {teacherMapper.insert(teacherCustom);return true;}return false;}public int getCountTeacher() throws Exception {//自定义查询对象TeacherExample teacherExample = new TeacherExample();//通过criteria构造查询条件TeacherExample.Criteria criteria = teacherExample.createCriteria();criteria.andUseridIsNotNull();return teacherMapper.countByExample(teacherExample);}public TeacherCustom findById(Integer id) throws Exception {Teacher teacher = teacherMapper.selectByPrimaryKey(id);TeacherCustom teacherCustom = null;if (teacher != null) {teacherCustom = new TeacherCustom();BeanUtils.copyProperties(teacher, teacherCustom);}return teacherCustom;}public List<TeacherCustom> findByName(String name) throws Exception {TeacherExample teacherExample = new TeacherExample();//自定义查询条件TeacherExample.Criteria criteria = teacherExample.createCriteria();criteria.andUsernameLike("%" + name + "%");List<Teacher> list = teacherMapper.selectByExample(teacherExample);List<TeacherCustom> teacherCustomList = null;if (list != null) {teacherCustomList = new ArrayList<TeacherCustom>();for (Teacher t : list) {TeacherCustom teacherCustom = new TeacherCustom();//类拷贝BeanUtils.copyProperties(t, teacherCustom);//获取课程名College college = collegeMapper.selectByPrimaryKey(t.getCollegeid());teacherCustom.setcollegeName(college.getCollegename());teacherCustomList.add(teacherCustom);}}return teacherCustomList;}public List<TeacherCustom> findAll() throws Exception {TeacherExample teacherExample = new TeacherExample();TeacherExample.Criteria criteria = teacherExample.createCriteria();criteria.andUsernameIsNotNull();List<Teacher> list = teacherMapper.selectByExample(teacherExample);List<TeacherCustom> teacherCustomsList = null;if (list != null) {teacherCustomsList = new ArrayList<TeacherCustom>();for (Teacher t: list) {TeacherCustom teacherCustom = new TeacherCustom();BeanUtils.copyProperties(t, teacherCustom);teacherCustomsList.add(teacherCustom);}}return teacherCustomsList;}
}
六、底部获取项目源码带8500字文档(9.9¥带走)
有问题,或者需要协助调试运行项目的也可以