基于web的课程管理系统设计与实现(java+SqlServer)

news2024/11/24 1:39:37

目 录

摘 要 I
Abstract II
1 绪论 1
1.1 课题背景 1
1.2 本课题研究的意义 2
1.3 主要研究内容 3
2 开发环境与相关技术 4
2.1 JSP技术 4
2.1.1 JAVA简介 4
2.1.2 JSP简介 4
2.1.3 SSH2框架介绍 5
2.2 Myeclipse介绍 6
2.3 SQL2008 数据库 7
2.4 Browser/Server(B/S)结构 7
2.5系统开发平台及运行环境 8
2.5.1系统开发平台 8
2.5.2运行环境 8
3 系统需求分析及设计 9
3.1 需求分析 9
3.1.1学生功能分析 9
3.1.2老师功能分析 10
3.1.3管理员功能分析 10
3.2 系统设计 12
3.2.1 系统功能 12
3.2.2 系统结构 12
3.3 数据库设计 13
3.3.1数据库需求分析及E-R图 13
3.3.2数据库物理表结构设计 14
4 系统实现 16
4.1学生板块功能实现 16
4.1.1登录界面 16
4.1.2 学生登录主界面 16
4…3 我的选修课 17
4.1.4 课程申请 17
4.1.5对教师评分 18
4.2老师板块的实现 18
4.2.1 教师模块主界面 18
4.2.2 课程管理 19
4.2.3课程添加 19
4.2.4学生选修课 20
4.2.5成绩录入 20
4.3管理员板块的实现 21
4.3.1登录界面 21
4.3.2主界面 21
4.3.3用户管理 22
4.3.4学生管理 22
4.3.5用户添加 23
5 系统测试 24
5.1 前台测试 24
5.2 后台测试 24
5.3测试分析 25
结 论 26
参考文献 27
致 谢 28
3 系统需求分析及设计
3.1 需求分析
3.1.1学生功能分析
一个典型的学生课程管理系统的学生模块主要功能有:
(1)申请选修课:
学生可以向管理员提出申请选修请求,提出后会在审核通知中显示,通过审核后,同样也会再审核通知中显示。
(2)放弃选修课:
学生可以向管理员提出放弃选修请求,提出后会在审核通知中显示,通过审核后,同样也会再审核通知中显示。
(3)学生可以查看已安排好授课老师的选修课的详细信。
这些信息均包含:课程号,课程名称,上课时间,上课地点,任课老师。
(4)查看已选的课程:
课程号,课程名称,上课时间,上课地点,任课老师。学生可以在该页面中提出放弃选修该课程的请求。请求会被发送到管理员那里请求确认,发送和通过时会通知。
(5)查看未选修的课程:
课程号,课程名称,上课时间,上课地点,任课老师。学生可以在该页面中提出申请选修该课程的请求。请求会被发送到管理员那里请求确认,发送和通过时会通知。
(6)放弃未选修的课程:
学生可以向管理员提出放弃未选修请求,提出后会在审核通知中显示,通过审核后,同样也会再审核通知中显示。
(7)修改个人信息:
学生可以对自己的用户的密码进行修改。
(8)查看自己以前的已选课和必修课:
课程号,课程名称,任课老师,成绩。
(9)查看某个系的老师排名,排名就是学生对其的教学评分。
3.1.2老师功能分析
一个典型的学生课程管理系统的教师模块主要功能有:
(1)添加课程:
登录添加画面,教师可以添加选修课的信息(课程代码 课程名称 上课时间 上课地点 任课老师 课程学分 课程学时);
(2)修改课程:
在课程的修改画面,教师可以修改课程的信息;
(3)查看课程:
在课程的信息画面,教师可以查看全部选修课的各种信息;
(4)搜索课程;
在课程的信息画面,教师可以使用搜索功能查找需要的课程;
学生课程后:
(5)查询课程:
可以查询学生对课程的选修情况(学生人数,学生专业,学生学号);
(6)搜索学生信息:
可以搜索学生的信息(学生专业,学生学号,学生名字,学生成绩);
(7)学生成绩录入:
期末考试后进行学生成绩的录入,输入到系统,以便学生查询;
3.1.3管理员功能分析
本部分主要是介绍管理员模块的实现。

登陆
管理员登录:
系统将验证用户是否存在,输入信息是否正确,效验码的实现。
管理员注册:
系统将验证用户是否存在,以及用户信息是否合法。
添加功能:
添加老师用户:
管理员可以直接添加老师用户并可以上传老师头像等老师个人信息。
对老师申请注册进行审核:
老师可以在老师模块进行注册,要经过管理员审核确定后才生效。
审核功能:
课程的安排:
管理员进行对课程安排进行审核(包括对课程信息修改),审核成功后返回通 知老师。以课程表的形式显示安排。
课程申请:
管理员对老师和学生进行课程申请批准。
修改功能:
修改课程:管理员可以对课程安排修改但是有时间要求的,在选课前两天不能 修改课程。

删除功能:
删除课程:可以对安排好的课程进行删除但是有是有时间要求的在选课前 两天不能删除课程。
删除学生信息:对已经毕业的结业的学生进行删除,
留言板功能:
查看(删除)学生或老师留言。
模拟QQ聊天功能:实现管理员,老师,学生聊天。聊天用户名为学号(张三老师)
3.2 系统设计
根据前面章节需求分析的情况,结合本系统所要实现的功能,具体设计方案如下。
3.2.1 系统功能
通过对需求的分析,一个学生课程管理系统的学生模块应包括以下的主要功能:申请选修课、放弃选修课、查看选修课和信件、查看已选课程、查看未选课程、放弃未选课程、修改个人信息、查看对老师的评分等功能模块;
3.2.2 系统结构
在这里插入图片描述

图3-1系统功能模块图
在这里插入图片描述
图3-1系统功能模块图

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0037)http://2school.wygk.cn/admin/main.asp -->
<HTML xmlns="http://www.w3.org/1999/xhtml">
	<HEAD>
		<TITLE></TITLE>
		<META http-equiv=Content-Type content="text/html; charset=UTF-8">
		<LINK href="images/style.css" type=text/css rel=stylesheet>
		<STYLE>
.main_left {
	TABLE-LAYOUT: auto;
	BACKGROUND: url(images/left_bg.gif)
}

.main_left_top {
	BACKGROUND: url(images/left_menu_bg.gif);
	PADDING-TOP: 5px
}

.main_left_title {
	PADDING-LEFT: 15px;
	FONT-WEIGHT: bold;
	FONT-SIZE: 14px;
	COLOR: #fff;
	TEXT-ALIGN: left
}

.left_iframe {
	BACKGROUND: none transparent scroll repeat 0% 0%;
	VISIBILITY: inherit;
	WIDTH: 180px;
	HEIGHT: 92%
}

.main_iframe {
	Z-INDEX: 1;
	VISIBILITY: inherit;
	WIDTH: 100%;
	HEIGHT: 92%
}

TABLE {
	FONT-SIZE: 12px;
	FONT-FAMILY: tahoma, 宋体, fantasy
}

TD {
	FONT-SIZE: 12px;
	FONT-FAMILY: tahoma, 宋体, fantasy
}
</STYLE>

		<SCRIPT language=javaScript src="images/admin.js" type=text/javascript></SCRIPT>

		<SCRIPT language=javascript src="images\Admin(1).js"></SCRIPT>

		<SCRIPT>
var status = 1;
var Menus = new DvMenuCls;
document.onclick=Menus.Clear;
function switchSysBar(){
     if (1 == window.status){
		  window.status = 0;
          switchPoint.innerHTML = '<img src="images/left.gif">';
          document.all("frmTitle").style.display="none"
     }
     else{
		  window.status = 1;
          switchPoint.innerHTML = '<img src="images/right.gif">';
          document.all("frmTitle").style.display=""
     }
}
</SCRIPT>

		<META content="MSHTML 6.00.2900.5726" name=GENERATOR>
	</HEAD>
	<BODY style="MARGIN: 0px">
		<!--导航部分-->
		<DIV class=top_table>
			<DIV class=top_table_leftbg>
				<DIV class=system_logo>
					<IMG src="images/logo_up.gif">
				</DIV>
				<DIV class=menu>
					<UL>
					</UL>
				</DIV>
			</DIV>
		</DIV>
		<DIV style="BACKGROUND: #337abb; HEIGHT: 24px"></DIV>
		<!--导航部分结束-->
		<TABLE style="BACKGROUND: #337abb" height="92%" cellSpacing=0
			cellPadding=0 width="100%" border=0>
			<TBODY>
				<TR>
					<TD class=main_left id=frmTitle vAlign=top align=middle
						name="fmTitle">
						<TABLE class=main_left_top cellSpacing=0 cellPadding=0
							width="100%" border=0>
							<TBODY>
								<TR height=32>
									<TD vAlign=top></TD>
									<TD class=main_left_title id=leftmenu_title>
										常用快捷功能
									</TD>
									<TD vAlign=top align=right></TD>
								</TR>
							</TBODY>
						</TABLE>
						<IFRAME class=left_iframe id=frmleft name=frmleft src="left.jsp"
							frameBorder=0 allowTransparency></IFRAME>
						<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
							<TBODY>
								<TR height=32>
									<TD vAlign=top></TD>
									<TD vAlign=bottom align=middle></TD>
									<TD vAlign=top align=right></TD>
								</TR>
							</TBODY>
						</TABLE>
					</TD>
					<TD style="WIDTH: 10px" bgColor=#337abb>
						<TABLE height="100%" cellSpacing=0 cellPadding=0 border=0>
							<TBODY>
								<TR>
									<TD style="HEIGHT: 100%" onclick=switchSysBar()>
										<SPAN class=navPoint id=switchPoint title=关闭/打开左栏><IMG
												src="images/right.gif">
										</SPAN>
									</TD>
								</TR>
							</TBODY>
						</TABLE>
					</TD>
					<TD vAlign=top width="100%" bgColor=#337abb>
						<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#c4d8ed
							border=0>
							<TBODY>
							</TBODY>
						</TABLE>
						<IFRAME class=main_iframe id=frmright name=frmright src=""
							frameBorder=0 scrolling=yes></IFRAME>
						<TABLE style="BACKGROUND: #c4d8ed" cellSpacing=0 cellPadding=0
							width="100%" border=0>
							<TBODY>
								<TR>
									<TD>
										<IMG height=6 alt="" src="images/teble_bottom_left.gif"
											width=5>
									</TD>
									<TD align=right>
										<IMG height=6 alt="" src="images/teble_bottom_right.gif"
											width=5>
									</TD>
									<TD align=right width=16 bgColor=#337abb></TD>
								</TR>
							</TBODY>
						</TABLE>
					</TD>
				</TR>
			</TBODY>
		</TABLE>
		<DIV id=dvbbsannounce_true style="DISPLAY: none"></DIV>
		<SCRIPT language=JavaScript>
<!--
document.getElementById("dvbbsannounce").innerHTML = document.getElementById("dvbbsannounce_true").innerHTML;
//-->
</SCRIPT>
	</BODY>
</HTML>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GD32实现串口空闲(IDLE)中断 + DMA机制接收数据

前言 串口功能在单片机开发中&#xff0c;是比较常用的外设&#xff0c;熟练使用串口功能也是驱动开发必备的技能之一。 DMA是一种CPU辅助手段&#xff0c;可以在CPU不参与的情况下&#xff0c;是做一些辅助CPU的事情&#xff0c;如通常的数据搬运。 在没有DMA之前&#xff0c;…

hadoop3.x学习(一)--安装与环境配置

一、hadoop的组成 hadoop1.x&#xff1a;Commons、HDFS&#xff08;数据存储&#xff09;、MapReduce&#xff08;资源调度计算&#xff09;hadoop2.x:Commons、HDFS&#xff08;数据存储&#xff09;、MapReduce&#xff08;计算&#xff09;、Yarn(资源调度) 1.1 HDFS 分布式…

【电商项目实战】个人资料(详细篇)

&#x1f341;博客主页&#xff1a;&#x1f449;不会压弯的小飞侠 ✨欢迎关注&#xff1a;&#x1f449;点赞&#x1f44d;收藏⭐留言✒ ✨系列专栏&#xff1a;&#x1f449;SpringBoot电商项目实战 ✨学习社区&#xff1a; &#x1f449;不会压弯的小飞侠 ✨知足上进&#x…

Linear Model 线性模型

文章目录1、Linear Model 线性模型1.1 问题引入1.2 选择模型1.3 损失 Loss1.4 均方误差 MSE1.5 代码1.6 更换模型1、Linear Model 线性模型 B站视频教程传送门&#xff1a;PyTorch深度学习实践 - 线性模型 1.1 问题引入 假设学生在期末考试中得到y分&#xff0c;如果他们花了…

【正点原子FPGA连载】第二十五章 双路高速AD实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十五章 双路…

干货 | 读懂这篇文,玩游戏还会卡顿?

玩游戏的时候最怕的就是卡顿。排位赛的紧急关头&#xff0c;明明马上就能上一段位&#xff0c;却因为卡顿导致给对方送人头。还把对手送上了王者。引起队友骂声一片。作为测试工程师的你&#xff0c;可以忍&#xff1f; 卡顿测试也是专项测试里的一种&#xff0c;更多精彩测试内…

【学习笔记】深度学习入门:基于Python的理论与实现-Python入门与感知机

CONTENTS一、Python入门1.1 NumPy1.2 Matplotlib二、感知机2.1 感知机是什么2.2 简单逻辑电路2.3 感知机的实现2.4 感知机的局限性2.5 多层感知机一、Python入门 1.1 NumPy 在深度学习的实现中&#xff0c;经常出现数组和矩阵的计算。NumPy的数组类&#xff08;numpy.array&a…

C语言函数调用的过程图解深入剖析

希望是美好的&#xff0c;也许是人间至善&#xff0c;而美好的事物永不消逝。——《肖申克的救赎》 目录 1、什么是函数栈帧&#xff1f; 2、理解函数栈帧能解决什么问题 3、函数栈帧是什么 3.1什么是栈&#xff1f; 3.2认识寄存器和汇编指令 4、函数调用的整个过程 5、…

LBA逻辑区块地址

现在很多硬盘采用同密度盘片&#xff0c;意味着内外磁道上的扇区数量不同&#xff0c;扇区数量增加&#xff0c;容量增加&#xff0c;3D很难定位寻址&#xff0c;出现了新的寻址模式&#xff1a;LBA(Logical Block Addressing)。在LBA地址中&#xff0c;地址不再表示实际硬盘的…

Mysql 并发多版本控制MVCC

什么是MVCC MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。MVCC是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 一般情况下我们使用mysql数据库的…

Prometheus 采集vCenter7监控数据

前提要求 安装docker&#xff0c;docker-compose创建vmware_exporter目录 mkdir -p /vmware_exporter 创建基于docker部署vmware_exporter脚本 VSPHERE_HOST: "vCenter 管理地址" VSPHERE_IGNORE_SSL: "True" VSPHERE_USER: "administratorvsphere…

[附源码]计算机毕业设计springboot求职招聘网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

信创平台:查询CPU,内存等命令

信创平台&#xff1a;海光、鲲鹏服务器查询CPU,内存等命令 #1、查看操作系统(统信操作系统) 海光查询操作系统&#xff1a; cat /etc/os-release查看操作系统 cat /etc/os-version查看操作系统版本 鲲鹏查询操作系统&#xff1a;cat /etc/system-release Kylin Linux Adva…

Python图像处理【3】Python图像处理库应用

Python图像处理库应用0. 前言1. 将 RGB 图像转换为灰度图像算法1.1 算法原理3.2 算法实现2. 使用 PIL 库计算图像差异2.1 算法原理2.2 算法实现3. 使用 Scikit-image 转换图像色彩空间3.1 将 RGB 图像转换至 HSV 色彩空间3.2 将 RGB 图像转换至 YUV 色彩空间4. 用 OpenCV 调整图…

html学习笔记

1.在idea里右键创建html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body></body> </html>在谷歌浏览器中输入chrome://version可以看…

【学习笔记】深度学习入门:基于Python的理论与实现-误差反向传播法

CONTENTS五、误差反向传播法5.1 计算图5.2 链式法则5.3 反向传播5.4 简单层的实现5.5 激活函数层的实现5.6 Affine/Softmax层的实现5.7 误差反向传播法的实现五、误差反向传播法 5.1 计算图 先引入一个很简单的问题&#xff1a;在超市买了222个100100100元一个的苹果&#xf…

[附源码]JAVA毕业设计个人饮食营养管理信息系统(系统+LW)

[附源码]JAVA毕业设计个人饮食营养管理信息系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 …

云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)

前言&#xff1a; 在实际的生产中&#xff0c;我们可能会有许多的由开发制作的docker镜像&#xff0c;这也就造成使用这些镜像需要打包成tar文件&#xff0c;然后上传到服务器内然后在导入并使用&#xff0c;但&#xff0c;kubernetes节点很多&#xff0c;有时候并不是明确的要…

13.前端笔记-CSS-盒子样式应用(圆角、阴影)

1、圆角边框 border-radius属性&#xff0c;用于设置元素的外边框圆角 原理&#xff1a;(椭)圆和矩形的两条边相切&#xff08;圆的半径就是length&#xff09;&#xff0c;形成圆角效果 属性&#xff1a; border-top-left-radius;左上 border-top-right-radius:右上 border…

B-神经网络模型复杂度分析

B-神经网络模型复杂度分析 前言一&#xff0c;模型计算量分析 卷积层 FLOPs 计算全连接层的 FLOPs 计算二&#xff0c;模型参数量分析 卷积层参数量BN 层参数量全连接层参数量三&#xff0c;模型内存访问代价计算 卷积层 MAC 计算四&#xff0c;一些概念 双精度、单精度和半精…