学生选课管理系统

摘要

本学生选课管理系统有学生功能模块、教师功能模块、管理功能模块。实现了一个用于学生在网上进行选课与查看个人信息和选课情况;老师可以查看自己的个人信息、任课情况,同时也可以对学生所选课程进行评分;而管理员则拥有更大的权限,可以查看、添加、修改学生和教师的相关信息,以及查询与添加新的可供选择的课程,当然他也可以添加新的管理员,以上便是本系统所能够实现的主要的功能。
本系统的优点在于它实现了可以让学生在网上进行选课,可以提高高校选课管理的效率,有着比传统的人工管理选课的优点,可以极大的改善学生与教师对选课信息的查询,对提高高校的科学化、正规化管理有着重要的作用。
本系统的开发用到了eclipse软件开发工具、JSP服务器(tomcat8.5)、MYSQL数据库、相关的语言有java语言、html5、javascrip等,同时还用到了JSP编程相关的网页开发技术建立一个B/S层结构的学生选课系统。

  • 登录界面
    在这里插入图片描述

实现目标要求及部分流程图

建立一个学生选课系统,实现对课程的基本信息维护以及学生选课、教师查看上课信息。系统对学生角色提供个人信息管理、选课管理、管理学生本人已选课程。系统对教师提供查看自己的个人信息、所担任课程的课表以及选该门课的学生信息。系统同时给管理员以下功能:查看所有课程、学生、教师的信息并可以对它们进行管理(添加、编辑、删除、查询)。通过本系统实现网上选课与管理要能够提高高校选课管理的效率,极大的改善学生与教师对选课信息的查询,提高高校选课管理的科学化、正规化,达到方便高校学生与教师进行选课与管理的目标要求。

  • 部分流程图
    总览流程图
    学生教师流程图
    管理员流程图
    管理员功能
    管理员用户功能模块由四部分组成:管理员功能,学生功能,课程功能,教师功能。
    ·管理员功能:查看管理员信息,添加新管理员。
    ·学生功能:添加学生,查询学生,修改学生,删除学生。
    ·课程功能:添加课程,给老师分配课程,取消某课程。
    ·教师功能:添加教师,查询教师,修改教师,删除教师。

部分运行图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分关键代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生选课系统</title>
<link href="css/login.css" rel="stylesheet" rev="stylesheet" type="text/css" media="all" />
<script type="text/javascript">
	function _hyz() {
		var img = document.getElementById("verifyImg");
		img.src = "${pageContext.request.contextPath }/VerifyCodeServlet?a=" + new Date().getTime() ;
	}
</script>
</head>
<body>
<div class="header">
  <img alt="logo" src="images/logo.jpg">
</div>
<div class="banner">
<div class="login-aside">
  <div id="o-box-up"></div>
  <div id="o-box-down"  style="table-layout:fixed;">
   <div class="error-box">
   	<font size="3" color="red">${error }</font>
   </div>
   <form action="${pageContext.request.contextPath }/login.do" method="post">
   <div class="fm-item">
	   <label for="logonId" class="form-label">用户ID:</label>
	   <input type="text" maxlength="100" name="userId" class="i-text" value="${userid }" />    
  </div>
  <div class="fm-item">
	   <label for="logonId" class="form-label">登陆密码:</label>
	   <input type="password" maxlength="100" name="password" class="i-text" value="${password }" />    
  </div>
  <div class="fm-item pos-r">
	   <label for="logonId" class="form-label">验证码</label>
	   <input type="text" value="" name="verifyCode" maxlength="100" id="yzm" class="i-text yzm" />    
       <img src="${pageContext.request.contextPath }/VerifyCodeServlet"  id="verifyImg">
       <a href="javascript:_hyz()">看不清</a>
  </div>
  <div class="fm-item pos-r" s>
  		<label style="display: inline; margin-left: 20px" for="logonId" class="form-label">管理员</label>
  		<input type="radio" name="person" value="administrator" checked="checked"/>
		<label style="display: inline; margin-left: 20px" for="logonId" class="form-label">老师</label>
		<input type="radio" name="person" value="teacher" />
		<label style="display: inline; margin-left: 20px" for="logonId" class="form-label">学生</label>
		<input type="radio" name="person" value="student" />
  </div>			
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询所有课程信息</title>
<script language="javascript" type="text/javascript"
  src="${pageContext.request.contextPath }/scripts/jquery-3.3.1.js"></script>
<script language="javascript" type="text/javascript"
  src="${pageContext.request.contextPath }/scripts/editTable.js"></script>
<script type="text/javascript">
</script>
<link rel="stylesheet" type="text/css"
  href="<c:url value='/css/base.css'/>">
<link rel="stylesheet" type="text/css"
  href="<c:url value='/css/editTable.css'/>">
<script type="text/javascript">
function delCourse(sno,cno,tno) {
  var flag = window.confirm("您确定要取消该课程吗?");
  if (flag) {
  	$(".delBtn").parent().parent().remove(); 
  	location.href = "${pageContext.request.contextPath }/removeStudentDistributedCourse.do?sno="+ sno +"&cno=" + cno + "&tno=" + tno;
  }
}
</script>
</head>
<body>
<body>
  <form action="${pageContext.request.contextPath }/selectCourse.do" method="post">
  <table class="edtitable">
  	<thead>
  		<tr>
  			<th colspan="8">已选择课程</th>
  		</tr>
  	</thead>
  	<tbody>
  		<tr>
  			<th>课程编号</th>
  			<th>课程名</th>
  			<th>学分</th>
  			<th>开课时间</th>
  			<th>结课时间</th>
  			<th>任课老师</th>
  			<th>教师联系方式</th>
  			<th>选择</th>
  		</tr>
  		<c:forEach var="sc" items="${scList}">
  			<tr>
  				<td>${sc.cno}</td>
  				<td>${sc.name}</td>
  				<td>${sc.credit}</td>
  				<td><fmt:formatDate value="${sc.periodstart}" pattern="yyyy年MM月dd日" /></td>
  				<td><fmt:formatDate value="${sc.periodend}" pattern="yyyy年MM月dd日" /></td>
  				<td>${sc.teacher.tname}</td>
  				<td>${sc.teacher.phone}</td>
  				<td><a href="javascript:delCourse(${user.sno},${sc.cno},${sc.teacher.tno })" class="delBtn">取消已选择课程</a></td>
  			</tr>
  		</c:forEach>
  	</tbody>
  </table>
  </form>
</body>
</html>

数据库设计E-R图

在这里插入图片描述
管理员表:用户名、密码、姓名、年龄、分数、介绍、雇佣日期。
学生表: 学号、密码、姓名、电话、性别、出生年月日、班级、评论
教师表: 教师ID、姓名、密码、电话、雇佣日期、评论
课程表: 课程ID、名称、学分、开课日期、结课日期
班级表: 班级ID、名称、班主任、教室
tc中间表: 教师ID、课程ID
sc中间表: 学号、教师ID、课程ID、学生分数

Logo

快速构建 Web 应用程序

更多推荐