ssm教务系统学生选课学生成绩管理系统源码

开发工具:idea eclipse均可  jdk1.8  mysql
技术:spring+springmvc+mybatis  jsp
主要功能:
角色:
管理员  教师 学生

管理员:学院 班级 专业 用户 课程 学生成绩录入 个人信息 修改密码等 
             课程开启 关闭 ,课程人数限制  成绩批量录入
教师:课程 学生成绩  个人信息密码修改等
学生: 选课 退课 成绩查询 个人信息 修改密码等

 

package com.bota.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.bota.bean.Course;
import com.bota.service.CourseService;
import com.bota.service.MajorService;
import com.bota.service.TeacherCourseService;
import com.bota.service.UserService;
import com.bota.util.DateStrConvert;

/**
 * 
 * @author bota
 */
@Controller
public class CourseController {
	
	@Autowired
	private CourseService courseService;
	
	@Autowired
	private MajorService majorService;
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TeacherCourseService teacherCourseService;
	
	/**
	 * 添加课程
	 */
	@RequestMapping("addCourse")
	@ResponseBody
	public boolean addCourse(Course course,String createTime){
		Date date = DateStrConvert.strToDate(createTime, "yyyy-MM-dd");
		course.setCreatetime(date);
		course.setNumberspace(course.getNumberlimit());
		System.out.println(course);
		return courseService.addCourse(course);
	}
	

	/**
	 * 添加课程页面
	 * @return
	 */
	@RequestMapping("addCoursePage")
	public String addCoursePage(HttpServletRequest request){
		List<Map<String, Object>> teacherMap = userService.selectAllUserByIdentity(1);//1代表老师的角色
		List<Map<String, Object>> majorMap = majorService.selectAllMajor();
		request.setAttribute("teachers", teacherMap);
		request.setAttribute("majors", majorMap);
		return "course/addCourse";
	}
	
	
	/***
	 * 修改课程页面
	 * @param id
	 * @param request
	 * @return
	 */
	@RequestMapping("editCoursePage")
	public String editCoursePage(long id,HttpServletRequest request){
		Course course = courseService.selectOne(id);
		List<Map<String, Object>> teacherMap = userService.selectAllUserByIdentity(1);//1代表老师的角色
		List<Map<String, Object>> majorMap = majorService.selectAllMajor();
		request.setAttribute("teachers", teacherMap);
		request.setAttribute("majors", majorMap);
		request.setAttribute("course", course);
		return "course/editCourse";
	}
	
	/**
	 * 查询所有的课程
	 * @return
	 */
	@RequestMapping("courseList")
	@ResponseBody
	public List<Map<String, Object>> selectAllCourse(){
		return courseService.selectAllCourse();
	}
	
	/**
	 * 分页查询所有的课程
	 * @return
	 */
	
	@RequestMapping("courseListBySearch")
	public ModelAndView selectAllCourses(int pageNum,int pageSize,long teacherId,String search, long specialtyId){
		Map<String, Object> paramMap = new HashMap<String, Object>();
		if(teacherId != -1){
			paramMap.put("teacherId", teacherId);
		}
		if(specialtyId != -1){
			paramMap.put("specialtyId", specialtyId);
		}
		paramMap.put("search", search);
		ModelAndView model = new ModelAndView();
		Map<String, Object> map = courseService.selectAllCourse(pageNum,pageSize,paramMap);
		model.addObject("courses", map.get("listMap"));
		model.addObject("teachers", userService.selectAllUserByIdentity(1));//1代表老师角色
		model.addObject("majors", majorService.selectAllMajor());
		
		if(map.get("count") != null){
			int count = Integer.parseInt(map.get("count").toString());
			int totalPage  = 0;
			if(count % 5 != 0 ){
				totalPage =count/5 + 1; 
			}else{
				totalPage =count/5;
			}
			model.addObject("count", count);
			model.addObject("totalPage", totalPage);
		}
		model.addObject("pageNum", pageNum);
		if(paramMap != null){
			model.addObject("search", paramMap.get("search"));
			model.addObject("teacherId", paramMap.get("teacherId"));
			model.addObject("specialtyId", paramMap.get("specialtyId"));
		}
		model.setViewName("course/course");
		return model;
	}
	
	/**
	 * 查询老师的课程
	 * @param pageNum
	 * @param pageSize
	 * @param teacherId
	 * @param request
	 * @return
	 */
	@RequestMapping("courseListByTeacher")
	public String selectAllCourseByTeacher(int pageNum,int pageSize,String teacherId,HttpServletRequest request){
		Map<String, Object> paramMap = null;
		paramMap = new HashMap<String, Object>();
		paramMap.put("teacherId",teacherId);
		
		Map<String, Object> map = courseService.selectAllCourseByTeacher(pageNum,pageSize,paramMap);
		List<Map<String, Object>> teacherMap = userService.selectAllUserByIdentity(1);//1代表老师的角色
		List<Map<String, Object>> majorMap = majorService.selectAllMajor();
		request.setAttribute("courses", map.get("listMap"));
		request.setAttribute("teachers", teacherMap);
		request.setAttribute("majors", majorMap);
		
		if(map.get("count") != null){
			int count = Integer.parseInt(map.get("count").toString());
			int totalPage  = 0;
			if(count % 5 != 0 ){
				totalPage =count/5 + 1; 
			}else{
				totalPage =count/5;
			}
			request.setAttribute("count",count);
			request.setAttribute("totalPage",totalPage);
		}
		request.setAttribute("pageNum",pageNum);
		return "course/course";
	}
	
	
	
	@RequestMapping("courseListByPage")
	public String selectAllCourse(int pageNum,int pageSize,HttpServletRequest request){
		Map<String, Object> paramMap = null;
		Map<String, Object> map = courseService.selectAllCourse(pageNum,pageSize,paramMap);
		List<Map<String, Object>> teacherMap = userService.selectAllUserByIdentity(1);//1代表老师的角色
		List<Map<String, Object>> majorMap = majorService.selectAllMajor();
		request.setAttribute("courses", map.get("listMap"));
		request.setAttribute("teachers", teacherMap);
		request.setAttribute("majors", majorMap);
		
		if(map.get("count") != null){
			int count = Integer.parseInt(map.get("count").toString());
			int totalPage  = 0;
			if(count % 5 != 0 ){
				totalPage =count/5 + 1; 
			}else{
				totalPage =count/5;
			}
			request.setAttribute("count",count);
			request.setAttribute("totalPage",totalPage);
		}
		request.setAttribute("pageNum",pageNum);
		return "course/course";
	}
	
	/**
	 * 学生页面显示的可以选的课程
	 * @param pageNum
	 * @param pageSize
	 * @param isFinish 0:不可选  1:可选
	 * @param request
	 * @return
	 */
	@RequestMapping("courseListByStudent")
	public String selectAllCourseByStudent(int pageNum,int pageSize,int isFinish,int studentId, HttpServletRequest request){
		Map<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put("isFinish",isFinish);
		paramMap.put("studentId",studentId);
		return commonExecute(pageNum,pageSize,paramMap,request);
	}
	
	public  String commonExecute(int pageNum,int pageSize,Map<String, Object> paramMap,HttpServletRequest request){
		Map<String, Object> map = courseService.selectAllCourseByStudent(pageNum,pageSize,paramMap);
		List<Map<String, Object>> teacherMap = userService.selectAllUserByIdentity(1);//1代表老师的角色
		List<Map<String, Object>> majorMap = majorService.selectAllMajor();
		request.setAttribute("courses", map.get("listMap"));
		request.setAttribute("teachers", teacherMap);
		request.setAttribute("majors", majorMap);
		
		if(map.get("count") != null){
			int count = Integer.parseInt(map.get("count").toString());
			int totalPage  = 0;
			if(count % 5 != 0 ){
				totalPage =count/5 + 1; 
			}else{
				totalPage =count/5;
			}
			request.setAttribute("count",count);
			request.setAttribute("totalPage",totalPage);
		}
		request.setAttribute("pageNum",pageNum);
		return "course/course";
	}
	
	/**
	 * 根据id查询课程
	 * @param id
	 * @return
	 */
	@RequestMapping("selectCourse")
	@ResponseBody
	public Course selectOne(long id){
		return courseService.selectOne(id);
	}
	
	/**
	 * 修改课程的信息
	 * @param Course
	 * @return
	 */
	@RequestMapping("editCourse")
	@ResponseBody
	public boolean updateById(Course course, String createTime,HttpSession session){
		Date date = DateStrConvert.strToDate(createTime, "yyyy-MM-dd");
		course.setCreatetime(date);
		@SuppressWarnings("unchecked")
		Map<String, Object> userMap = (Map<String, Object>) session.getAttribute("user");
		if(userMap.get("identity").equals(1)){
			courseService.updateCourse(course);//需要修改teacherCourse表
		}
		return courseService.updateById(course);
	}
	
	
	/**
	 * 修改课程的可选状态
	 * @param Course
	 * @return
	 */
	@RequestMapping("editStatus")
	@ResponseBody
	public boolean editStatus(Course course){
		return courseService.updateById(course);
	}
	
	/**
	 * 根据id删除课程
	 * @param id
	 * @return
	 */
	@RequestMapping("deleteCourse")
	@ResponseBody
	public boolean deleteById(long id){
		return courseService.deleteById(id);
	}
	
	/**
	 * 根据ids批量删除课程
	 * @param ids
	 * @return
	 */
	@RequestMapping("deleteManyCourses")
	@ResponseBody
	public boolean deleteById(String ids){
		return courseService.deleteByIds(ids);
	}
	
	
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学生选课管理系统 --意义-- 学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管 理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷 的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式 存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深 刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理 所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、 存储量大、保密性好、 寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的 科学化、正规化管理,与世界接轨的重要条件。 --课题的可行性分析-- (1) 技术可行性-----本系统仅需要一台装有 Windows/Linux 系统并装有 Mysql数据库和Tomcat服务器的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的JAVA程序设计语言已非常成熟,本系统采用基于B/S 架构的JavaEE的WEB开发,页面采用CSS样式,Jsp,Javascript等页面技术。 (2) 经济可行性-----由于本系统是一个基于JavaEE的WEB应用,所以服务器端只需部署一台能运行JAVA程序的服务器软件(Tomcat),即可使用本系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。 (3) 操作可行性-----界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;适应力强;容易扩充。 --使用功能模块说明-- (1)登录模块 通过列表框可以分别选择学生、教师和管理员三种用户类型,根据不同的用户类型,登录后会进入不同的管理模块 (2)系统管理员模块 ● 选课时间设置 系统管理员通过此项功能设置选课时间段—预选时间段和补选时间段,只有在选课时间段里,学生才可以选择课程,不在此时间段,学生不能进行选课操作。 ● 选修课程管理 管理员可以进行添加新的选修课、删除选修课、修改选修课和查找选修课等操作 添加新的选修课 在选课之前,管理员可以添加新的选修课,让学生选课期间进行选修 删除选修课 在选课之前,管理员可以取消某门选修课 修改选修课 在选课之前,管理员可以修改某门选修课的信息 查找选修课 可以根据教师的员工号精确查找该教师所代选修课,也可以根据教师名称和课程名模糊查询选修课,不输入查询条件可以查询所有选修课。针对查询出的某门选修课,可以查看代课老师的信息和选修该课程的所有学生信息。在查看学生信息页面可以修改学生的课程成绩 ● 密码管理 可以对学生、教师和管理员的密码进行修改,通过单选框确定要修改密码的用户类型 (3)教师模块 ● 查看所代课程 教师用户登陆系统后,可以查看所代课程的列表,可以查看某门课程的全体学生的信息并能录入学生的成绩,成绩可分批录入,录入后可显示提交按钮,进行学生成绩的提交,提交之前必须确认填写的学生成绩无误,否则提交之后教师就无法修改学生的成绩,必须通过管理员进行修改学生的成绩 ● 修改密码 教师可以修改自己的密码 (4)学生选课模块 ● 选择选修课程 学生登陆系统后,在所有选修课程中可以选择两门选修课。只有在选课时间段内才可以使用该功能。在预选阶段,该功能完成选修课程的预选,学生可以选择所有选修课程,预选结束之后,系统开始正选。对超过XX课程计划招生人数的课程,系统自动进行抽签,确定哪些学生选课成功,哪些学生选课没有成功。选课不成功的可以进行补选。在补选阶段,该功能完成选修课程的补选,补选采用竞争机制,系统会罗列出所有未满的课程,让学生进行补选。 ● 查看学分 本功能完成学生对以前选修课程的成绩和所获学分的查看 ● 修改密码 学生可以修改自己的密码 ● 查看已选课选课开始之后,学生可以通过查看已选课程,了解本学期所选的选修课的信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值