文章目录
- 学生选课成绩管理系统
- 一、项目演示
- 二、项目介绍
- 三、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 {
@Autowired
private TeacherMapper teacherMapper;
@Autowired
private TeacherMapperCustom teacherMapperCustom;
@Autowired
private CollegeMapper collegeMapper;
@Autowired
private 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¥带走)
有问题,或者需要协助调试运行项目的也可以