java Web 教务管理系统设计与实现
博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址
4.1 系统总体模块图
河北工程大学内部的教务管理系统发展等过程的系统化、规范化和自动化,完成了用户管理、课程管理、选课管理等。具体功能模块图如4.1所示:

图4.1 系统总体模块图
4.2.1 概念模型设计
(2)系统中实体E-R图
大学内部的系别信息实体,主要包括 系别编号,大学内部的系别 等信息实体。如图4.2所示:

图4.2 系别实体属性图
学生信息实体,主要包括 学生编号,学生用户名,学生登录密码,学生实际姓名,学生的入学时间,学生出生时间,学生性别,学生所在系别,学生所在班级 等信息实体。如图4.3所示:

图4.3 学生实体属性图
教师信息实体,主要包括 教师编号,教师登录的用户名,教师登录的密码,教师的真实姓名,教师所学的专业,学生的性别,学生的年龄 等信息实体。如图4.5所示:

图4.5 教师实体属性图
管理员信息实体,主要包括 管理员编号,管理员的用户名,管理员的密码,管理员的真实姓名 等信息实体。如图4.6所示:

图4.6 管理员实体属性图
教室信息信息实体,主要包括 教室信息编号,教室名称,教室信息介绍 等信息实体。如图4.7所示:

图4.7 大学的教室信息实体属性图
大学在线教学的课程信息实体,主要包括 课程编号,课程名称,讲课教师,课程的授课课时,教师授课内容,教室 等信息实体。如图4.7所示:

图4.7 课程实体属性图
学生选课信息实体,主要包括 学生选课编号,学生课程,学生用户,选课操作的时间,选课状态 等信息实体.。如图4.8所示:

图4.8 学生选课实体属性图
学生成绩信息实体,主要包括 学生成绩编号,课程,学生姓名,课程成绩,成绩登记录入时间 等信息实体。如图4.9所示:

图4.9 学生成绩实体属性图
在河北工程大学的教务管理系统中,实体有工程大学系别实体,教务内部的学生实体,教师实体,系统内的管理员实体,教室信息实体,教学课程实体,学生选课实体,成绩实体,等实体,他们之间的关系如图4.13所示:

本章主要介绍的内容是教务管理系统的总体设计或者概要设计,介绍了工程大学的教务管理系统的设计,主要是在教务管理系架构设计、总体模块设计和数据库设计的方面介绍的,为进一步的详细设计做准备。
普通用户或管理员输入自己的用户账号、密码,通过身份验证后可以进入相应的管理界面首页。系别信息管理与查看,学生信息管理与查看,教师信息管理与查看,管理员信息管理与查看,教室信息信息管理与查看,课程信息管理与查看,选课信息管理与查看,成绩信息管理与查看。
5.2.1 逻辑结构设计
1 系别( 系别编号,系别名称 )
2 学生( 学生编号,学生用户名,学生密码,学生姓名,学生入学时间,学生出生时间,学生性别,学生所在系别,学生所在班级 )
3 教师( 教师编号,教师用户名,教师密码,教师姓名,教师所学的专业,教师性别,教师年龄 )
4 管理员( 管理员编号,管理员用户名,管理员密码,管理员姓名 )
5 教室信息( 教室信息编号教室名称,教室信息介绍 )
6 大学课程( 课程编号,课程名称,讲课教师,课程课时,课程授课内容,课程所在教室 )
7 学生选课( 选课编号,选课课程,选课学生,选课时间,选课状态 )
8 学生成绩( 成绩编号,课程,成绩学生,成绩成绩,成绩录入时间 )
由教务管理系统的各个关系,模式和根据教务管理系统的需求分析阶段数据字典的数据项描述,给出各教务管理系统数据表结构。
(1)河北工程大学系别信息表如表5.1所示:
表5.1 工程大学的系别信息表
|
系别表序号 |
系别表字段名称 |
系别表数据类型 |
系别表长度 |
系别表主键 |
系别表描述 |
|
1 |
jwgl_k_xbid |
INTEGER |
13 |
是 |
教务管理系别系别编号 |
|
2 |
jwgl_k_xb |
VARCHAR |
878 |
否 |
教务管理系别系别 |
(2)学生如表5.2所示:
表5.2 学生表
|
学生表序号 |
学生表字段名称 |
学生表数据类型 |
学生表长度 |
学生表主键 |
学生表描述 |
|
1 |
jwgl_k_xsid |
INTEGER |
52 |
是 |
教务管理学生学生编号 |
|
2 |
jwgl_k_yhm |
VARCHAR |
700 |
否 |
教务管理学生用户名 |
|
3 |
jwgl_k_mm |
VARCHAR |
15 |
否 |
教务管理学生密码 |
|
4 |
jwgl_k_xm |
VARCHAR |
517 |
否 |
教务管理学生姓名 |
|
5 |
jwgl_k_rxsj |
VARCHAR |
230 |
否 |
教务管理学生入学时间 |
|
6 |
jwgl_k_cssj |
VARCHAR |
687 |
否 |
教务管理学生出生时间 |
|
7 |
jwgl_k_sex |
VARCHAR |
700 |
否 |
教务管理学生性别 |
|
8 |
jwgl_k_xb |
VARCHAR |
554 |
否 |
教务管理学生系别 |
|
9 |
jwgl_k_bj |
VARCHAR |
108 |
否 |
教务管理学生班级 |
(3)教师表如表5.3所示:
表5.3 教师表
|
教师表序号 |
教师表字段名称 |
教师表数据类型 |
教师表长度 |
教师表主键 |
教师表描述 |
|
1 |
jwgl_k_jsid |
INTEGER |
52 |
是 |
教务管理教师教师编号 |
|
2 |
jwgl_k_yhm |
VARCHAR |
761 |
否 |
教务管理教师用户名 |
|
3 |
jwgl_k_mm |
VARCHAR |
382 |
否 |
教务管理教师密码 |
|
4 |
jwgl_k_xm |
VARCHAR |
750 |
否 |
教务管理教师姓名 |
|
5 |
jwgl_k_zy |
VARCHAR |
880 |
否 |
教务管理教师专业 |
|
6 |
jwgl_k_xb |
VARCHAR |
411 |
否 |
教务管理教师性别 |
|
7 |
jwgl_k_nl |
VARCHAR |
115 |
否 |
教务管理教师年龄 |
(4)管理员表如表5.4所示:
表5.4 教务管理员信息表
|
项目类别表序号 |
项目类别表字段名称 |
项目类别表数据类型 |
项目类别表长度 |
项目类别表主键 |
项目类别表描述 |
|
1 |
mrglxmlbid |
INTEGER |
28 |
是 |
美容管理项目类别项目类别编号 |
|
2 |
mrgllb |
VARCHAR |
55 |
否 |
美容管理项目类别类别 |
(5)教室信息表如表5.5所示:
表5.5 教室信息表
|
教室信息表字段名称 |
教室信息表数据类型 |
教室信息表长度 |
教室信息表主键 |
教室信息表描述 |
|
|
1 |
jwgl_k_jsxxid |
INTEGER |
33 |
是 |
教务管理教室信息教室信息编号 |
|
2 |
jwgl_k_jsmc |
VARCHAR |
768 |
否 |
教务管理教室信息教室名称 |
|
3 |
jwgl_k_js |
VARCHAR |
140 |
否 |
教务管理教室信息介绍 |
(6)课程表如表5.6所示:
表5.6课程表
|
课程表序号 |
课程表字段名称 |
课程表数据类型 |
课程表长度 |
课程表主键 |
课程表描述 |
|
1 |
jwgl_k_kcid |
INTEGER |
11 |
是 |
教务管理课程课程编号 |
|
2 |
jwgl_k_kcmc |
VARCHAR |
508 |
否 |
教务管理课程课程名称 |
|
3 |
jwgl_k_jkjs |
VARCHAR |
886 |
否 |
教务管理课程讲课教师 |
|
4 |
jwgl_k_ks |
VARCHAR |
728 |
否 |
教务管理课程课时 |
|
5 |
jwgl_k_sknr |
VARCHAR |
211 |
否 |
教务管理课程授课内容 |
|
6 |
jwgl_k_js |
VARCHAR |
266 |
否 |
教务管理课程教室 |
(7)选课表如表5.7所示:
表5.7选课表
|
选课表序号 |
选课表字段名称 |
选课表数据类型 |
选课表长度 |
选课表主键 |
选课表描述 |
|
1 |
jwgl_k_xkid |
INTEGER |
10 |
是 |
教务管理选课选课编号 |
|
2 |
jwgl_k_kc |
VARCHAR |
333 |
否 |
教务管理选课课程 |
|
3 |
jwgl_k_xs |
VARCHAR |
730 |
否 |
教务管理选课学生 |
|
4 |
jwgl_k_sj |
VARCHAR |
714 |
否 |
教务管理选课时间 |
|
5 |
jwgl_k_zt |
VARCHAR |
52 |
否 |
教务管理选课状态 |
(8)成绩表如表5.8所示:
表5.8成绩表
|
成绩表序号 |
成绩表字段名称 |
成绩表数据类型 |
成绩表长度 |
成绩表主键 |
成绩表描述 |
|
1 |
jwgl_k_cjid |
INTEGER |
48 |
是 |
教务管理成绩成绩编号 |
|
2 |
jwgl_k_kc |
VARCHAR |
130 |
否 |
教务管理成绩课程 |
|
3 |
jwgl_k_xs |
VARCHAR |
526 |
否 |
教务管理成绩学生 |
|
4 |
jwgl_k_cj |
VARCHAR |
111 |
否 |
教务管理成绩成绩 |
|
5 |
jwgl_k_lrsj |
VARCHAR |
316 |
否 |
教务管理成绩录入时间 |
本章主要是在上一章的教务管理系统总体设计的基础之上对教务管理系统进行详细设计,主要分为教务管理系统两个方面来设计,教务管理系统分别为后台设计和数据库设计,在后台设计方面,主要是设计的教务管理系统的权限分配,角色登录的验证;在数据库方面是设计系统的物理结构的设计和逻辑结构的设计。
河北工程大学教务管理系统的名称是“教务管理系统”,教务管理系统界面要求是简洁大方,避免过度包装,目的是为了为企业用户提供一个操作平台
6.1 登录模块界面
登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录[2];具体的登录页面如图6.1所示:

图6.2 登录界面图
主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<%@ page import="com.util.DBO"%>
<%
DBO db=new DBO();
request.setCharacterEncoding("gb2312");
String yhm=(String)request.getParameter("yhm");
String mm=(String)request.getParameter("mm");
String qx=(String)request.getParameter("qx");
String sql="";
if(qx.equals("管理员")){
sql="select * from gly where yhm='"+yhm+"' and mm='"+mm+"' ";
}
if(qx.equals("学生")){
sql="select * from xuesheng where yhm='"+yhm+"' and mm='"+mm+"' ";
}
if(qx.equals("教师")){
sql="select * from jiaoshi where yhm='"+yhm+"' and mm='"+mm+"' ";
}
System.out.println("sql="+sql);
db.open();
ResultSet rs=db.query(sql);
out.println("<script>");
if(rs.next()){
if(qx.equals("管理员")){
session.setAttribute("id",rs.getString("glyid"));
}
if(qx.equals("学生")){
session.setAttribute("id",rs.getString("xsid"));
}
if(qx.equals("教师")){
session.setAttribute("id",rs.getString("jsid"));
}
session.setAttribute("yhm",rs.getString("yhm"));
session.setAttribute("mm",rs.getString("mm"));
session.setAttribute("qx",qx);
;
out.println("alert('登录成功');");
out.println("window.location='index.jsp'");
}else{
out.println("alert('用户名或者密码错误');");
out.println("window.location='login.jsp'");
}
out.println("</script>");
%>
1、功能描述
该功能用于实现对系统的学生信息的管理。用户可以对系统内添加、删除和更改学生信息,以及学生信息列表展现
2、输入项目
对于中的学生的基本信息,包括学生编号,用户名,密码,姓名,入学时间,出生时间,性别,系别,班级
3、输出项目
(1)验证模块会对系统的学生的基本信息存入到数据库表xuesheng信息表。
(2)输入的学生信息,主要包括学生编号,用户名,密码,姓名,入学时间,出生时间,性别,系别,班级 等,不能为空。
(3)若输入不合理内容,则给出错误提示信息。
4、算法描述
当用户进入学生基本信息页面后,用户通过web页面输入学生信息编辑内容,并将输入的学生信息提交到后台进行处理,系统校验学生编号,用户名,密码,姓名,入学时间,出生时间,性别,系别,班级 信息,正确后,将学生信息进行逻辑进行处理,组织好相关的学生sql语句后,调用系统公共数据库访问类,进行相关的业务操作,由系统数据访问层访问数据库进行学生信息更新。如果前台用户输入的学生信息不符合业务设计的要求,则应用程序将以Request对象存入错误提示信息,并跳转到学生信息页面,并显示该错误提示信息,如图所示:

Action层主要代码:
package com.action;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.util.DBO;
import com.bean.xuesheng;
import com.dao.xueshengDao;
@SuppressWarnings("serial")
public class xueshengAction extends ActionSupport {
private xueshengDao dao=new xueshengDao();
private xuesheng xuesheng=new xuesheng();
private List<xuesheng> xueshengs=new ArrayList<xuesheng>();
public xuesheng getXuesheng() {
return xuesheng;
}
public void setXuesheng(xuesheng xuesheng) {
this.xuesheng = xuesheng;
}
public List<xuesheng> getXueshengs() {
return xueshengs;
}
public String execute()
{
return "";
}
public String addPage(){
return "xueshengaddPage";
}
public String add()
{
try{
String sql="select count(1) as num from xuesheng where yhm='"+xuesheng.getYhm()+"'";
DBO db=new DBO();
ResultSet rs=null;
int num=0;
rs=db.query(sql);
if(rs.next()){
num=rs.getInt("num");
}
if(num>0){
ServletActionContext.getRequest().setAttribute("msg", "<script>alert('添加失败、用户名重复');</script>");
}else{
dao.insert(xuesheng);
ServletActionContext.getRequest().setAttribute("msg", "<script>alert('添加成功');</script>");
}
}catch(Exception e){
System.out.println(e.toString());
}
return addPage();
}
public String list()
{
try{
xueshengs=dao.findlist("");
}catch(Exception e){
System.out.println(e.toString());
}
return "xueshenglist";
}
public String del()
{
String keyid=ServletActionContext.getRequest().getParameter("keyid").toString();
try{
dao.delete(keyid);
}catch(Exception e){
System.out.println(e.toString());
}
ServletActionContext.getRequest().setAttribute("msg", "<script>alert('删除成功');</script>");
return list();
}
public String modPage(){
String keyid=ServletActionContext.getRequest().getParameter("keyid").toString();
try{
xuesheng=dao.findbean(keyid);
}catch(Exception e){
System.out.println(e.toString());
}
return "xueshengmodPage";
}
public String modm(){
String keyid=ServletActionContext.getRequest().getSession().getAttribute("id").toString();
try{
xuesheng=dao.findbean(keyid);
}catch(Exception e){
System.out.println(e.toString());
}
return "xueshengmodm";
}
public String detail(){
String keyid=ServletActionContext.getRequest().getParameter("keyid").toString();
try{
xuesheng=dao.findbean(keyid);
}catch(Exception e){
System.out.println(e.toString());
}
return "xueshengdetail";
}
public String mod(){
try{
dao.modify(xuesheng);
}catch(Exception e){
System.out.println(e.toString());
}
ServletActionContext.getRequest().setAttribute("msg", "<script>alert('修改成功');</script>");//location.href='bookmanage';
return list();
}
public String update(){
try{
dao.modify(xuesheng);
}catch(Exception e){
System.out.println(e.toString());
}
ServletActionContext.getRequest().setAttribute("msg", "<script>alert('修改成功');</script>");//location.href='bookmanage';
return modm();
}
}
Jsp展现层代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.util.*"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<link href="<%=request.getContextPath()%>/css/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.js"></script>
<link href="<%=request.getContextPath()%>/css/Pager.css" rel="stylesheet" type="text/css" />
<script src="<%=request.getContextPath()%>/js/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/js/jquery.pager.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#pager").pager({ pagenumber: <s:property value="pageNum" />, pagecount: <s:property value="pageCount" />, buttonClickCallback: PageClick });
});
PageClick = function(pageclickednumber) {
$("#pager").pager({ pagenumber: pageclickednumber, pagecount: <s:property value="pageCount" />, buttonClickCallback: PageClick });
location.href='xueshenglist?pageNum='+pageclickednumber;
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>学生信息列表</title>
<script type="text/javascript">
$('.tablelist tbody tr:odd').addClass('odd');
</script>
<body>
<div class="place">
<span> 学生信息列表</span>
<ul class="placeul">
</ul>
</div>
<div class="rightinfo">
<table class="tablelist">
<thead>
<tr>
<th>序号</th>
<th >用户名</th>
<th >密码</th>
<th >姓名</th>
<th >入学时间</th>
<th >出生时间</th>
<th >性别</th>
<th >系别</th>
<th >班级</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<s:iterator value="xueshengs" status="i" >
<tr>
<td><s:property value="#i.count"/></td>
<td><s:property value="yhm"/></td>
<td><s:property value="mm"/></td>
<td><s:property value="xm"/></td>
<td><s:property value="rxsj"/></td>
<td><s:property value="cssj"/></td>
<td><s:property value="sex"/></td>
<td><s:property value="xb"/></td>
<td><s:property value="bj"/></td>
<td><a href="<%= request.getContextPath()%>/xueshengdel?keyid=<s:property value="xsid"/>" onClick="javascript:if(confirm('是否删除')){return true;} else{return false;}">删除</a>|<a href="<%= request.getContextPath()%>/xueshengmodPage?keyid=<s:property value="xsid"/>">修改</a>|<a href="<%= request.getContextPath()%>/xueshengdetail?keyid=<s:property value="xsid"/>">详情</a></td>
</tr>
</s:iterator>
</tbody>
</table>
<div class="pagin">
<li class="paginItem"><div id="pager" ></div></li>
</div>
</div>
<div align="center">
<font color="#FF0000">
${msg}
</font>
</div>
</body>
</html>
1、功能描述
该功能用于实现对系统的教师信息的管理。用户可以对系统内添加、删除和更改教师信息,以及教师信息列表展现
2、输入项目
对于中的教师的基本信息,包括教师编号,用户名,密码,姓名,专业,性别,年龄
3、输出项目
(1)验证模块会对系统的教师的基本信息存入到数据库表jiaoshi信息表。
(2)输入的教师信息,主要包括教师编号,用户名,密码,姓名,专业,性别,年龄 等,不能为空。
(3)若输入不合理内容,则给出错误提示信息。
4、算法描述
当用户进入教师基本信息页面后,用户通过web页面输入教师信息编辑内容,并将输入的教师信息提交到后台进行处理,系统校验教师编号,用户名,密码,姓名,专业,性别,年龄 信息,正确后,将教师信息进行逻辑进行处理,组织好相关的教师sql语句后,调用系统公共数据库访问类,进行相关的业务操作,由系统数据访问层访问数据库进行教师信息更新。如果前台用户输入的教师信息不符合业务设计的要求,则应用程序将以Request对象存入错误提示信息,并跳转到教师信息页面,并显示该错误提示信息。如图所示:

大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
更多推荐




所有评论(0)