摘要:一个基于Java Web的学生成绩管理系统,在学生成绩管理系统中主要有三个权限:管理员、教师和学生。管理员模块主要实现的基本功能是添加教师、添加学生、开设院系和开设课程;教师模块主要实现的基本功能是录入学生成绩、更新学生成绩、查看班级学生成绩和查看教师个人信息(备注:每一位教师只可以管理自己所教班级的学生成绩);学生模块主要实现的基本功能是查看个人所有成绩和个人基本信息。
备注:学生成绩管理系统的部分代码和部分功能展示如下,完整的代码可点击博主主页进行查看,在压缩包下除了完整的系统源代码之外,还有系统所涉及的数据表、数据库Sql语句、设计论文。该系统源代码导入myeclipse后配置好开发环境便可使用,操作简单方便,主要适用于初学者的学习与使用。
一、开发环境
- Sql Server 2012
- Myeclipse 2017
- 建模工具 powerdesigner16.5
- JDK 1.8
二、数据库连接
数据库的连接采用jdbc的方式,通过URL指定了连接的数据库名称为:student,用户名为USER:sa,登录密码为POSSWORD:123456。连接数据库的具体代码如下:
Dbutil.java
package link;
import java.sql.*;
public class Dbutil {
private static final String URL="jdbc:sqlserver://localhost;DatabaseName=student";
private static final String USER="sa";
private static final String PASSWORD="123456";
protected static Statement s =null;
protected static ResultSet rs =null;
protected static Connection conn =null;
public static synchronized Connection getConnection()
{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn =DriverManager.getConnection(URL,USER,PASSWORD);
}catch(Exception e){
e.printStackTrace();
}
return conn;}
public static int executeUpdate(String sql){
int result=0;
try {
s = getConnection().createStatement();
result=s.executeUpdate(sql);
}catch(SQLException e) {
e.printStackTrace();
}
return result;
}
public static ResultSet executeQuery(String sql){
try{
s = getConnection().createStatement();
rs=s.executeQuery(sql);
}catch(SQLException e) {
e.printStackTrace();
}return rs;
}
public static PreparedStatement executePreparedStatement(String sql){
PreparedStatement ps=null;
try {
ps=getConnection().prepareStatement(sql);
}catch(SQLException e) {
e.printStackTrace();
}return ps;
}
public static void rollback(){
try {
getConnection().rollback();
}catch(SQLException e) {
e.printStackTrace();
}
}
public static void close(){
try{
if(rs!=null)
rs.close();
if(s!=null)
s.close();
if(conn!=null)
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Connection conn = null;
try {
conn = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
if(conn == null){
System.out.println("e");
}else{
System.out.println("okk");
}
}
}
三、系统全局E-R图
系统全局E-R图展示了学生成绩管理系统中所有实体之间的关系以及每一个实体所具备的属性。在开发系统的过程当中占据了重要的指导作用。系统全局E-R图如下所示:
四、管理员模块
- 管理员管理主页面
管理员是学生成绩管理系统的最高权限,可以增加教师、增加学生、开设学院、开设课程。jsp页面的代码实现如下:
ad_Manage.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<HTML>
<body background="background/8.jpg">
<center>
<font size=2 color = blue>
<h2>管理员界面</h2>
<form action="student_manage.jsp" method="post" >
<input type=submit value="学生信息管理">
</form>
<form action="addteacherServlet" method="post" >
<input type=submit value="添加教师信息">
</form>
<form action="addcourseServlet" method="post" >
<input type=submit value="开设课程信息">
</form>
<form action="adddeptServlet" method="post" >
<input type=submit value="开设院系信息">
</form>
<h3><a href="login.jsp">退出登录</a></h3>
</font>
</center>
</body>
</HTML>
管理员管理主页面如下:
- 添加教师信息页面
管理员可以实现添加教师的功能,在添加教师的过程中,可以指定该教师是哪个学院的教师。jsp页面的代码实现如下:
ad_teacher.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<center>
<HTML><body background="background/9.jpg">
<font size=3 color = blue>
<h2>添加教师信息</h2>
<form action="addteacherServlet" method="post" >
教师编号:<input type="text" name="ZGH" id="ZGH"/><br>
院系编号:<input type="text" name="YZSH" id="YZSH"/><br>
教师姓名:<input type="text" name="JSXM" id="JSXM"/><br>
教师性别:<input type="text" name="JSXB" id="JSXB"/><br>
教师年龄:<input type="text" name="JSNL" id="JSNL"/><br>
联系方式:<input type="text" name="LXFS" id="LXFS"/><br>
<input type=submit value="添加">
<input type=reset value="重置">
</form>
<a href="ad_Manage.jsp">返回上一层</a>
</font></body></HTML></center>
添加教师页面如下:
- 添加学生页面
管理员可以添加学生,在添加学生过程中,可以指定该学生所属的学院和所属的班级。jsp页面的代码实现如下:
ad_student.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<center>
<HTML><body background="background/9.jpg">
<font size=3 color = blue>
<h2>添加学生信息</h2>
<form action="addstudentServlet" method="post" >
学生学号:<input type="text" name="XH" id="XH"/><br>
院系编号:<input type="text" name="YZSH" id="YZSH"/><br>
学生姓名:<input type="text" name="XSXM" id="XSXM"/><br>
学生性别:<input type="text" name="XSXB" id="XSXB"/><br>
学生年龄:<input type="text" name="XSNL" id="XSBL"/><br>
学生籍贯:<input type="text" name="XSJG" id="XSJG"/><br>
所属专业:<input type="text" name="SSZY" id="SSZY"/><br>
所属班级:<input type="text" name="SSBJ" id="SSBJ"/><br>
<input type=submit value="添加">
<input type=reset value="重置">
</form>
<a href="ad_Manage.jsp">返回上一层</a>
</font></body></HTML></center>
添加学生页面如下:
- 开设院系页面
管理员根据需要开设院系,只有院系成功开设,才能够招收该院系的教师和学生。jsp页面的代码实现如下:
ad_dept.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<center>
<HTML><body background="background/9.jpg">
<font size=3 color = blue>
<h2>开设院系信息</h2>
<form action="adddeptServlet" method="post" >
院系编号:<input type="text" name="YZSH" id="YZSH"/><br>
院系名称:<input type="text" name="YXMC" id="YXMC"/><br>
院系电话:<input type="text" name="YXDH" id="YXDH"/><br>
院系地址:<input type="text" name="YXDZ" id="YXDZ"/><br>
<input type=submit value="添加">
<input type=reset value="重置">
</form>
<a href="ad_Manage.jsp">返回上一层</a>
</font></body></HTML></center>
添加院系页面如下:
- 开设课程页面
管理员可以根据要求开设必要的课程,可以指定所教该课程的老师,可以指定该课程是考试课还是考察课,以及该课程的学分。jsp页面的代码实现如下:
ad_course.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<center>
<HTML><body background="background/9.jpg">
<font size=3 color = blue>
<h2>开设课程信息</h2>
<form action="addcourseServlet" method="post" >
课程编号:<input type="text" name="KCBH" id="KCBH"/><br>
教师编号:<input type="text" name="ZGH" id="ZGH"/><br>
课程名称:<input type="text" name="KCMC" id="KCMC"/><br>
课程学分:<input type="text" name="KCXF" id="KCXF"/><br>
课程性质:<input type="text" name="KCXZ" id="KCXZ"/><br>
<input type=submit value="添加">
<input type=reset value="重置">
</form>
<a href="ad_Manage.jsp">返回上一层</a>
</font></body></HTML></center>
开设课程的页面如下:
五、教师模块.
- 教师管理页面
教师主要实现的操作是对学生的成绩进行管理,查询所教班级的学生成绩,录入学生成绩和更新学生成绩。jsp页面的代码实现如下:
teacher.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<HTML>
<body background="background/2.jpg">
<center>
<font size=2>
<h2>教师管理界面</h2>
<form action="inputscoreServlet" method="post" >
<input type=submit value="录入学生成绩">
</form>
<form action="updatescoreServlet" method="post" >
<input type=submit value="更新学生成绩">
</form>
<form action="lookclassroom_message.jsp" method="post" >
<input type=submit value="查询班级成绩">
</form>
<form action="frindteacherServlet" method="post" >
<input type=submit value="查询个人信息">
</form>
<h3><a href="login.jsp">退出登录</a></h3>
</font>
</center>
</body>
</HTML>
教师管理的页面如下:
- 录入学生成绩页面
教师根据所教的课程编号,可以录入所修该课程的学生的成绩。jsp页面的代码显示如下:
input_score.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<center>
<HTML><body background="background/9.jpg">
<font size=3 color = blue>
<h3>录入学生成绩</h3>
<form action="inputscoreServlet" method="post" >
学生学号:<input type="text" name="XH" id="XH"/><br>
课程编号:<input type="text" name="KCBH" id="KCBH"/><br>
课程成绩:<input type="text" name="KCCJ" id="KCCJ"/><br>
<input type=submit value="添加">
<input type=reset value="重置">
</form>
<a href="teacher.jsp">返回上一层</a>
</font></body></HTML></center>
录入学生成绩的页面如下:
- 查看班级学生成绩页面
教师只能查询所教班级的学生成绩,输入所教的班级编号,便可以查看班级所有学生的成绩。jsp页面的代码显示如下:
lookclassroom.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<center>
<HTML><body background="background/9.jpg">
<font size=2 color = blue>
<h3>查看班级成绩</h3>
<form action="lookclassServlet" method="post" >
班级编号:<input type="text" name="SSBJ" id="SSBJ"/>
<input type=submit value="查看">
<input type=reset value="重置">
</form>
<br>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
<th>课程编号</th>
<th>课程名称</th>
<th>学分</th>
<th>课程性质</th>
<th>成绩</th>
</tr>
<%StringBuffer search=(StringBuffer)session.getAttribute("search");
if(search!=null){
out.print(search);
}
%>
</table>
<a href="lookclassroom_message.jsp">返回上一层
</font></body></HTML></center>
查询班级学生成绩的页面如下:
六、学生模块
- 查看个人成绩页面
学生登录学生成绩管理系统之后,便可以查看到自己的个人所有成绩。jsp页面的代码显示如下:
findstudent_score.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<center>
<HTML><body background="background/5.jpg">
<font size=2 color = blue>
<h3>学生查看个人成绩</h3>
<br><br>
<table border="1">
<tr>
<th>课程编号</th>
<th>课程名称</th>
<th>学分</th>
<th>课程性质</th>
<th>成绩</th>
<th>取得学分</th>
<th>绩点</th>
<th>学分绩点</th>
</tr>
<%StringBuffer search=(StringBuffer)session.getAttribute("search");
if(search!=null){
out.print(search);
}
%>
</table>
<a href="student.jsp">返回上一层
</font></body></HTML></center>
学生查看个人成绩的页面如下:
- 查看个人信息页面
学生点击查看个人信息之后,便可以看到个人的基本信息,以及所属的学院和班级。jsp页面的代码显示如下:
findstudent_personal.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<center>
<HTML><body background="background/9.jpg">
<font size=2 color = blue >
<h3>学生查看个人信息</h3>
</a><br/>
<table border="1">
<tr>
<th>学号</th>
<th>院系编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>籍贯</th>
<th>专业</th>
<th>班级</th>
</tr>
<%StringBuffer search=(StringBuffer)session.getAttribute("search");
if(search!=null){
out.print(search);
}
%>
</table>
<a href="student.jsp">返回上一层
</font></body></HTML></center>
学生查看个人信息的页面如下: