基于学生成绩管理系统(附源代码及数据库)

news2024/11/17 1:26:40

基于Ecplise,jsp的学生成绩管理系统

目录

登录页面

系统主页

管理员账号管理

学生查询

课程管理

成绩管理

后台数据库

源代码下载(含数据库)

毕设项目专栏


分为以下四大板块:

系统用户管理:   包含管理员账号管理,教师添加,教师查询,学生添加,学生查询,修改密码等模块。

课程管理:对课程信息列表的curd,模糊查询,导出excel等操作。

成绩管理:对学生成绩的curd,模糊查询,导出excel等操作。

版权信息:版权所属信息。

管理员登录:具有最高权限,所有功能均具备。

教师登录:教师有个人资料管理,学生管理,课程管理,成绩管理,,版权信息五大板块。

学生登录:学生有个人资料管理,课程管理,成绩管理,版权信息四大板块。

登录页面

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="util.Info"%>
<%@page import="dao.CommDAO"%>
<%@page import="util.PageManager"%>
<html>
<head>
<title>学生成绩管理系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-repeat: repeat-x;
	background-color: #3C8395;
}

.STYLE9 {
	color: #0000CC;
	font-size: 12px
}

.STYLE8 {
	color: #0033CC
}

input {
	border-radius: 3px;
	border: 1px solid #000;
}
-->
</style>
</head>
<script type="text/javascript">
 <%
String error = (String)request.getAttribute("error"); 
if(error!=null)
{
 %>
 alert("用户名或密码错误");
 <%}%>
 
  <%
String random = (String)request.getAttribute("random"); 
if(random!=null)
{
 %>
 alert("验证码错误");
 <%}%>
	popheight = 39;

	function check() {
		if (document.form1.username.value == ""
				|| document.form1.pwd.value == ""
				|| document.form1.pagerandom.value == "") {
			alert('请输入完整');
			return false;
		}
	}

	function loadimage() {
		document.getElementById("randImage").src = "image.jsp?" + Math.random();
	}
</script>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
	<table width="1024" height="728" border="0" align="center"
		cellpadding="0" cellspacing="0" background="images/login.jpg"
		id="__01">
		<tr>
			<td height="183" colspan="3"><table width="64%" height="56"
					border="0" align="center" cellpadding="0" cellspacing="0">
					<tr>
						<td height="56"><div
								style="text-shadow: #CCCCCC 3px 0 0, #33CC33 0 1px 0, #33CC33 1px 0 0, #33CC33 0 -1px 0; font-size: 38px;"
								align="center">学生成绩管理系统</div></td>
					</tr>
				</table></td>
		</tr>
		<tr>
			<td width="314" rowspan="2">&nbsp;</td>
			<td width="352" height="275" valign="bottom"><form
					action="jspmxscjglxthsg3858A9?ac=adminlogin&a=a" method="post"
					name="form1" style="display: inline">
					<table width="205" border="0" align="center" cellpadding="0"
						cellspacing="0">
						<tr>
							<td width="44" height="30"><span class="STYLE9">用户:</span></td>
							<td height="30" colspan="2"><input name="username"
								type="text" id="username"
								style="width: 100px; height: 16px; border: solid 1px #000000; color: #666666"></td>
						</tr>
						<tr>
							<td height="30"><span class="STYLE9">密码:</span></td>
							<td height="30" colspan="2"><input name="pwd"
								type="password" id="pwd"
								style="width: 100px; height: 16px; border: solid 1px #000000; color: #666666"></td>
						</tr>
						<tr>
							<td height="30"><span class="STYLE9">权限:</span></td>
							<td height="30" colspan="2"><select name="cx" id="cx">
									<option value="管理员">管理员</option>
									<option value="学生">学生</option>
									<option value="教师">教师</option>
									<!--quxanxiaxndexnglxu-->
							</select></td>
						</tr>
						<tr>
							<td height="30"><span class="STYLE9">验证码:</span></td>
							<td width="59" height="30"><input name="pagerandom"
								type="text" id="pagerandom"
								style="height: 20px; border: solid 1px #000000; color: #666666; width: 50px" />
							<td width="102"><a href="javascript:loadimage();"><img
									alt="看不清请点我!" name="randImage" id="randImage" src="image.jsp"
									width="60" height="20" border="1" align="absmiddle"> </a></td>
						</tr>
						<tr>
							<td height="30" colspan="3"><input type="submit"
								name="Submit" value="登陆" onClick="return check();"
								style="background: url(images/the_formbtn.gif) no-repeat; color: #000000; width: 80px; height: 24px; border: 0px; line-height: 24px; font-size: 12px; margin-right: 5px; cursor: pointer">
								<input type="reset" name="Submit2" value="重置"
								style="background: url(images/the_formbtn.gif) no-repeat; color: #000000; width: 80px; height: 24px; border: 0px; line-height: 24px; font-size: 12px; margin-right: 5px; cursor: pointer"></td>
						</tr>
					</table>
				</form></td>
			<td width="336" rowspan="2">&nbsp;</td>
		</tr>
		<tr>
			<td>&nbsp;</td>
		</tr>
	</table>
</body>
</html>





系统主页

<%@ page language="java" pageEncoding="gb2312"%>

<html>
<head>
<title>学生成绩管理系统--管理中心</title>
</head>

<frameset rows="36,*" cols="*" framespacing="0" frameborder="no"
	border="0">
	<frame src="top.jsp" name="topFrame" id="topFrame" title="topFrame"
		scrolling="NO" noresize />
	<frameset rows="*" cols="220,*" framespacing="0" frameborder="no"
		border="0" id="mainframe">
		<frame src="mygo.jsp" name="left" id="left" title="left" />
		<frame src="sy.jsp" name="right" id="right" title="right" />
	</frameset>
</frameset>

<noframes>
</noframes>
</html>

管理员账号管理

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="util.Info"%>
<%@page import="dao.CommDAO"%>
<%@page import="util.PageManager"%>
<%
if (request.getSession().getAttribute("username") == null) {

	out.print("<script>javascript:alert('对不起,您已超时或未登陆,请重新进行登陆!');window.close();</script>");
	out.close();
} else {
	if (request.getSession().getAttribute("cx").equals("超级管理员")) {
	} else {

		out.print("<script>javascript:alert('对不起,您无权操作此模块!');history.back();</script>");
		out.close();
	}

}
%>
<html>
<head>

<title>管理员用户管理</title>
<link rel="stylesheet" href="css.css" type="text/css">


</head>

<%
new CommDAO().delete(request, "allusers");

HashMap ext = new HashMap();

ext.put("cx", "普通管理员");
new CommDAO().insert(request, response, "allusers", ext, true, false, "");
%>

<body>
	<form action="yhzhgl.jsp?f=f" method="post" name="f1"
		onsubmit="return checkform();">
		<table width="100%" border="1" align="center" cellpadding="3"
			cellspacing="1" bordercolor="#00FFFF"
			style="border-collapse: collapse">
			<tr>
				<td width="200">用户名:</td>
				<td><input name="username" type="text" id="username"
					onblur='checkform()' /> <label id='clabelusername' /> *</td>
			</tr>
			<tr>
				<td width="200">密码:</td>
				<td><input name="pwd" type="password" id="pwd"
					onblur='checkform()' /> <label id='clabelpwd' /> *</td>
			</tr>
			<tr>
				<td width="200">确认密码:</td>
				<td><input name="pwd2" type="password" id="pwd2"
					onblur='checkform()' /> <label id='clabelpwd2' /> *</td>
			</tr>
			<tr>
				<td width="200">&nbsp;</td>
				<td><input name="Submit" type="submit" value="提交" /> <input
					name="Submit2" type="reset" value="重置" /></td>
			</tr>
		</table>
	</form>
	<p>已有管理员列表:</p>
	<table width="100%" border="1" align="center" cellpadding="3"
		cellspacing="1" bordercolor="#00FFFF"
		style="border-collapse: collapse">
		<tr>
			<td bgcolor="A4B6D7">序号</td>
			<td bgcolor="A4B6D7">用户名</td>
			<td bgcolor="A4B6D7">密码</td>
			<td bgcolor="A4B6D7">权限</td>
			<td bgcolor="A4B6D7">添加时间</td>
			<td bgcolor="A4B6D7">操作</td>
		</tr>
		<%
		int i = 0;
		for (HashMap map : new CommDAO().select("select * from allusers order by id desc ")) {
			i++;
		%>
		<tr>
			<td><%=i%></td>
			<td><%=map.get("username")%></td>
			<td><%=map.get("pwd")%></td>
			<td><%=map.get("cx")%></td>
			<td><%=map.get("addtime")%></td>
			<td><a href="yhzhgl.jsp?scid=<%=map.get("id")%>"
				onClick="return confirm('真的要删除?')">删除</a></td>
		</tr>
		<%
		}
		%>
	</table>
</body>
</html>

<script language=javascript src='js/My97DatePicker/WdatePicker.js'></script>
<script language=javascript src='js/popup.js'></script>
<script language=javascript src='js/ajax.js'></script>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.HashMap"%>
<script language=javascript>  
 
 function checkform(){  
var usernameobj = document.getElementById("username");  
if(usernameobj.value==""){  
document.getElementById("clabelusername").innerHTML="&nbsp;&nbsp;<font color=red>请输入用户名</font>";  
return false;  
}else{
document.getElementById("clabelusername").innerHTML="  ";  
}  
  
var usernameobj = document.getElementById("username");  
if(usernameobj.value!=""){  
var ajax = new AJAX();
ajax.post("factory/checkno.jsp?table=allusers&col=username&value="+usernameobj.value+"&checktype=insert&ttime=<%=Info.getDateStr()%>
	")
			var msg = ajax.getValue();
			if (msg.indexOf('Y') > -1) {
				document.getElementById("clabelusername").innerHTML = "&nbsp;&nbsp;<font color=red>用户名已存在</font>";
				return false;
			} else {
				document.getElementById("clabelusername").innerHTML = "  ";
			}
		}
		var pwdobj = document.getElementById("pwd");
		if (pwdobj.value == "") {
			document.getElementById("clabelpwd").innerHTML = "&nbsp;&nbsp;<font color=red>请输入密码</font>";
			return false;
		} else {
			document.getElementById("clabelpwd").innerHTML = "  ";
		}

		var pwd2obj = document.getElementById("pwd2");
		if (pwd2obj.value == "") {
			document.getElementById("clabelpwd2").innerHTML = "&nbsp;&nbsp;<font color=red>请再次输入密码</font>";
			return false;
		} else {
			document.getElementById("clabelpwd2").innerHTML = "  ";
		}

		if (pwd2obj.value != pwdobj.value) {
			document.getElementById("clabelpwd2").innerHTML = "&nbsp;&nbsp;<font color=red>两次密码输入不一致</font>";
			return false;
		} else {
			document.getElementById("clabelpwd2").innerHTML = "  ";
		}

		return true;
	}
	popheight = 450;
</script>


学生查询

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="util.Info"%>
<%@page import="dao.CommDAO"%>
<%@page import="util.PageManager"%>
<html>
<head>
<title>学生</title>
<LINK href="css.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js"
	charset="gb2312"></script>
</head>


<body>
	<p>已有学生列表:</p>
	<form name="form1" id="form1" method="post" action="">
		搜索: 学号:<input name="xuehao" type="text" id="xuehao"
			style='border: solid 1px #000000; color: #666666' size="12" /> 姓名:<input
			name="xingming" type="text" id="xingming"
			style='border: solid 1px #000000; color: #666666' size="12" /> 联系手机:<input
			name="lianxishouji" type="text" id="lianxishouji"
			style='border: solid 1px #000000; color: #666666' size="12" /> <input
			type="submit" name="Submit" value="查找"
			style='border: solid 1px #000000; color: #666666' /> <input
			type="button" name="Submit2" value="导出EXCEL"
			style='border: solid 1px #000000; color: #666666'
			onClick="javascript:location.href='xuesheng_listxls.jsp';" />
	</form>

	<table width="100%" border="1" align="center" cellpadding="3"
		cellspacing="1" bordercolor="00FFFF" style="border-collapse: collapse">
		<tr>
			<td width="30" align="center" bgcolor="CCFFFF">序号</td>
			<td bgcolor='#CCFFFF'>学号</td>
			<td bgcolor='#CCFFFF'>密码</td>
			<td bgcolor='#CCFFFF'>姓名</td>
			<td bgcolor='#CCFFFF' width='40' align='center'>性别</td>
			<td bgcolor='#CCFFFF'>联系手机</td>
			<td bgcolor='#CCFFFF'>地址</td>


			<td width="138" align="center" bgcolor="CCFFFF">添加时间</td>

			<td width="60" align="center" bgcolor="CCFFFF">操作</td>
		</tr>
		<%
		new CommDAO().delete(request, "xuesheng");
		String url = "xuesheng_list.jsp?1=1";
		String sql = "select * from xuesheng where 1=1";

		if (request.getParameter("xuehao") == "" || request.getParameter("xuehao") == null) {
		} else {
			sql = sql + " and xuehao like '%" + request.getParameter("xuehao") + "%'";
		}
		if (request.getParameter("xingming") == "" || request.getParameter("xingming") == null) {
		} else {
			sql = sql + " and xingming like '%" + request.getParameter("xingming") + "%'";
		}
		if (request.getParameter("lianxishouji") == "" || request.getParameter("lianxishouji") == null) {
		} else {
			sql = sql + " and lianxishouji like '%" + request.getParameter("lianxishouji") + "%'";
		}
		sql += " order by id desc";
		ArrayList<HashMap> list = PageManager.getPages(url, 15, sql, request);
		int i = 0;
		for (HashMap map : list) {
			i++;
		%>
		<tr>
			<td width="30" align="center"><%=i%></td>
			<td><%=map.get("xuehao")%></td>
			<td><%=map.get("mima")%></td>
			<td><%=map.get("xingming")%></td>
			<td align='center'><%=map.get("xingbie")%></td>
			<td><%=map.get("lianxishouji")%></td>
			<td><%=map.get("dizhi")%></td>


			<td width="138" align="center"><%=map.get("addtime")%></td>
			<td width="60" align="center"><a
				href="xuesheng_updt.jsp?id=<%=map.get("id")%>">修改</a> <a
				href="xuesheng_list.jsp?scid=<%=map.get("id")%>"
				onClick="return confirm('真的要删除?')">删除</a> <a
				href="xuesheng_detail.jsp?id=<%=map.get("id")%>">详细</a></td>
		</tr>
		<%
		}
		%>
	</table>
	<br> ${page.info }


</body>
</html>

课程管理

成绩管理

后台数据库

源代码下载(含数据库)

https://download.csdn.net/download/m0_54925305/85414218

毕设项目专栏

https://blog.csdn.net/m0_54925305/category_11702151.html?spm=1001.2014.3001.5482


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

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

相关文章

【一起撸个DL框架】5 实现:自适应线性单元

CSDN个人主页&#xff1a;清风莫追欢迎关注本专栏&#xff1a;《一起撸个DL框架》GitHub获取源码&#xff1a;https://github.com/flying-forever/OurDL 文章目录 5 实现&#xff1a;自适应线性单元&#x1f347;1 简介2 损失函数2.1 梯度下降法2.2 补充 3 整理项目结构4 损失函…

第二十七章 Unity碰撞体Collision(下)

本章节我们继续研究碰撞体&#xff0c;并且探索一下碰撞体与刚体之间的联系。我们回到之前的工程&#xff0c;然后给我们的紫色球体Sphere1也添加一个刚体组件。如下所示 此时&#xff0c;两个球体都具备了碰撞体和刚体组件。接下来&#xff0c;我们Play运行查看效果 我们发现&…

第二十六章 Unity碰撞体Collision(上)

在游戏世界中&#xff0c;游戏物体之间的交互都是通过“碰撞接触”来进行交互的。例如&#xff0c;攻击怪物则是主角与怪物的碰撞&#xff0c;触发机关则是主角与机关的碰撞。在DirectX课程中&#xff0c;我们也大致介绍过有关碰撞检测的内容。游戏世界中的3D模型的形状是非常复…

浅谈区块链1.0-比特币

1. 比特币解决的问题 高度自治&#xff1a;国际经济危机无国界贸易&#xff1a;不同国家进行的贸易或者不同平台进行贸易 不可窜改&#xff1a;例如银行交易可能会被窜改数据 隐私安全&#xff1a;传统汇款方式会暴露你的个人信息&#xff0c;一旦数据库被别人入侵&#xff0c…

android基础知识复习

架构&#xff1a; 应用框架层&#xff08;Java API Framework&#xff09;所提供的主要组件&#xff1a; 名称功能描述Activity Manager&#xff08;活动管理器&#xff09;管理各个应用程序生命周期&#xff0c;以及常用的导航回退功能Location Manager&#xff08;位置管理器…

SpringBoot整合Mybatis-plus实现多级评论

在本文中&#xff0c;我们将介绍如何使用SpringBoot整合Mybatis-plus实现多级评论功能。同时&#xff0c;本文还将提供数据库的设计和详细的后端代码&#xff0c;前端界面使用Vue2。 数据库设计 本文的多级评论功能将采用MySQL数据库实现&#xff0c;下面是数据库的设计&…

Boonz-KeygenMe#1(★★★)

运行程序 错误&#xff1a; 查壳 没有壳&#xff0c;是汇编写的程序 载入OD 前面是在读取输入内容&#xff0c;到这里开始做计算了 分析 首先遍历了用户名&#xff0c;计算结果保存在EBX&#xff0c;在存放到 0x40E0F8 对EBX中的值再次计算&#xff0c;最后结果保存到 …

JavaFX: Java音乐播放读取歌词

JavaFX: Java音乐播放读取歌词 1、lrc歌词文件2、解析lrc歌词2.1 读取每行歌词2.2 解析歌词时间标签Time-tag2.3 解析歌词标识标签ID-tags2.4 创建对象包含歌词相关信息 3、播放显示歌词** 相关文献 JavaFX: Java音乐播放 1、lrc歌词文件 lrc歌词文件的扩展名 1、标准格式&a…

图像处理:Retinex算法

目录 前言 概念介绍 Retinex算法理论 单尺度Retinex&#xff08;SSR&#xff09; 多尺度Retinex&#xff08;MSR&#xff09; 多尺度自适应增益Retinex&#xff08;MSRCR&#xff09; Opencv实现Retinex算法 SSR算法 MCR算法 MSRCR算法 效果展示 总结 参考文章 前…

基频建模方法总结

基频F0建模方法 语音合成领域需要对基频进行建模&#xff0c;具体到文语转换TTS、语音转换VC、情感语音转换EVC领域等。 语音合成F0 包括文语转换&#xff0c;情感语音转换 TTEF&#xff1a;text-to-emotional-features synthesis EVC&#xff1a;emotional voice conversio…

这些你熟知的 app 和服务,都用上了人工智能

从微软在 Microsoft 365 服务中全面整合 GPT-4 能力 &#xff0c;让 PPT、Word 文档、Excel 表格的制作变成了「一句话的事」&#xff0c;到 Adobe 刚刚发布 Adobe Firefly模型集合&#xff0c;让图形设计、字体风格、视频渲染乃至 3D 建模的门槛显著降低——你我熟知的那些工…

idea的快捷键

一.idea的快捷键: 递进选择&#xff1a;ctrl w复制行&#xff1a;ctrl d删除行&#xff1a;ctrl y大小写切换&#xff1a;ctrl shift u展开/折叠&#xff1a;ctrl shift 减号/加号向前/向后&#xff1a;ctrl <— / —>Live Template(例如 输入psvm会自动打出mai…

华为OD机试题,用 Java 解【最远足迹】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不要…

Python实战项目:手势识别控制电脑音量

今天给大家带来一个OpenCV的实战小项目——手势识别控制电脑音量 先上个效果图&#xff1a; 通过大拇指和食指间的开合距离来调节电脑音量&#xff0c;即通过识别大拇指与食指这两个关键点之间的距离来控制电脑音量大小 技术交流 技术要学会分享、交流&#xff0c;不建议闭…

石英晶体振荡器【Multisim】【高频电子线路】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、观察输出波形&#xff0c;测量振荡频率和输出电压幅度 2、测量静态工作点的变化范围(IEQmin~IEQmax) 3、测量当静态工作点在上述范围时输出频率和输出电压的变化 4、测量负载变化对振荡频率和输出电压幅…

SpringCloud:微服务保护之初识Sentinel

1.初识Sentinel Sentinel是阿里巴巴开源的一款微服务流量控制组件。Sentinel官网 Sentinel具有以下特征&#xff1a; 丰富的应用场景&#xff1a;Sentinel承接了阿里巴巴近 10 年的双十一大促流量的核心场景&#xff0c;例如秒杀&#xff08;即突发流量控制在系统容量可以承受…

JavaEE阶段测试复习

文章全部内容在个人站点内的置顶文章中,访问密码:AIIT 小凯的宝库 模块三、面向对象 继承: a. 单继承:Java只支持单继承,即一个子类只能有一个直接父类。但子类可以间接地继承多个父类。 b. 构造方法与继承:在子类中可以通过super()关键字调用父类的构造方法。如果子类没…

探索深度学习中的计算图:PyTorch的动态图解析

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

Windows系统的JDK安装与配置

1 选择JDK版本 以在Windows 64位平台上安装JDK 8版本为例。JDK 8 Windows版官网下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/#java8-windows 现在下载需要先注册并登录Oracle的账号。 2 安装 双击jdk安装包&#xff0c;进入安装程序页面直接选择…

freetype用法

freetype用法 文章目录 freetype用法0.实现1.变量定义2.lcd操作获取屏幕信息3.freetype初始化4.绘画 1.字形度量2.类1.FT 中的面向对象2.FT_Library 类3.FT_Face 类4 FT_Size 类5 FT_GlyphSlot 类 3.函数1.把一个字符码转换为一个字形索引FT_Get_Char_Index函数2.从 face 中装…