资源描述
毕业设计论文目录
1引言 1
2年级成绩管理模块概述 2
2.1 开发环境 3
2.2 年级成绩管理模块功能 4
3模块总体设计 4
3.1、数据库的设计 4
3.2年级成绩管理结构图 7
4 年级成绩管理的设计与实现 7
4.1对已有的年级成绩信息添加 8
4.1对已有的年级成绩信息修改 10
4.1对已有的年级成绩信息删除 14
5总分、及格率的设计与实现 14
5.1总分的实现 15
5.2及格率的实现 18
6 结束语 21
中学学生成绩管理系统的设计与实现
___年级成绩管理模块与年级总分、及格率的实现
计算机信息与工程学院 2001级5班 吴力峰 200118948
指导教师 赵希武 教授
摘要 本文针对中学的年级成绩管理的基本要求,从理论和应用的角度论述了中学生年级管理模块的特点、功能、设计思路,并给出关键技术的实现步骤。本年级成绩模块是结合学校年级学生成绩管理的实际情况,经过相应的需求分析,使用功能强大的ASP编程技术,利用完善的SQL语句,并选择了Microsoft Access作为后台数据库的驱动,从而开发出来的学生年级成绩管理模块。
关键字 中学生年级成绩管理模块;年级成绩管理;及格率;总分
1引言
学校的年级成绩管理在学校成绩管理系统中是一个相当重要的问题,它是与学校大整体相关的一个小的整体,虽然说小,但作用非常大,意义非常明显。通过年级管理这一块,我们可以很好的将零散的学生成绩信息组织起来,方便按班级分类的学生成绩信息的查询、统计;从而获得第一手的教学情况分析与教学效果的评价;进而,更进一步的为学校的领导,年级组长或班主任等,提供方便的统计年级中学生整体或个人的当前信息以及更好的掌握学生的整体状况的方法和手段。
学生年级成绩管理模块实现了由低级的、复杂的、重复性的、低效率的手工操作向智能化的、可以方便地进行人机交流、操作简单易学的计算机应用软件的转化。它运用计算机来完成与年级成绩管理相关的数据收集,并可以完成年级成绩信息的修改、查询、删除以及统计等工作,提高了学生成绩管理人员的工作效率,并在一定程度上避免了繁重的业务量造成的人为错误,而且还可以运用信息共享加快信息的传达。对于管理人员来说,减少不必要的操作环节,降低大量的重复劳动是提高工作效率的有效途径;而通过使用包含了本学校年级成绩管理模块的本学生成绩管理系统,就可以让使用者达到:既实现了节省人力、物力、财力,又保证了不必保管、整理数据文件,却又能将一切信息转变为数字化,进而达到提高经济效益。
2年级成绩管理模块概述
学校年级成绩管理是学校成绩管理的一个重要组成部分,能实现有效的组织、实施相对于个别学生或班级、年级的教学策略,帮助学校,老师快捷的掌握学生的近期考试情况;或者通过对以前某一年级考试成绩数据的分析,掌握该年级学生的学习状况。而本年级成绩管理模块仅针对学校年级成绩的管理,以及对年级学生的成绩信息进行查询、统计;因此仅实现了与分数相关的数据整理的功能。本模块开发的总体任务是实现学校年级成绩管理的系统化、规范化、自动化,年级学习成绩管理的清晰化、简单化,从而达到提高学校年级成绩管理效率的目的。
本年级管理模块的设计思想与本学生成绩管理系统的设计思想基本保持了一致,即本着实用性、通用、开放和安全的原则。“实用性”即只要数据库中存在相应的数据信息,只须要简单的鼠标操作,就可以获得你所需要的学生成绩信息;“通用性”即本模块的相关代码只要经过简单的修改,可以用来实现其它的类似功能,例如:在其它的应用中查询商品的种类,查询汽车的型号等;“开放性”主要是从asp源代码自身的角度考虑,它不向.exe文件(可执行文件)那样一经编译,就无法获得生成它的源代码;而是通过相应的“编辑器工具”,如:Macromedia Dreamweaver,Microsoft word甚至可以使用系统自带的记事本程序,不过使用后两种方法要求对代码编辑较为熟练,而且容易出错。“安全性”是从asp的web运行机制出发解释的,即当web服务器收到来自客户端浏览器的.asp文件请求时,就开始运行asp脚本。然后,web服务器将调用asp解释器,全面读取请求的文件,执行所有的服务器端脚本命令后将命令结果和文本、HTML代码等一起发给浏览器。浏览器对其中的HTML和客户端代码进行解释后,把它们和文本、图像等无须解释的信息一起显示在页面中,供用户浏览;这样就保证了asp代码的不会显示在用户的浏览器中,也就实现了安全运行的功能。本模块的服务端使用了Microsoft Access2000数据库和ASP编程技术,是在Macromedia Dreamweaver MX 2004环境下开发制作而成的。本模块的核心技术是ASP(Active Server Pages 动态网页),它提供了位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,包括使用HTML表单收集和处理信息,上传与下载等等,ASP还有一个好处,就是可利用ADO(Active Data Object)方便地访问数据库,从而能够开发出基于WWW的应用系统。另外,这种语言相对简单、易于实现,应用范围比较广泛。数据库我们采用Microsoft Access2000,这种数据库比其它的数据库容易实现,在对于信息容量不太大时,使用这种数据库有方便快捷的特点。
本学生年级成绩模块实现了学校年级信息的添加、修改、删除,等管理功能。该设计方法易于实现,便于操作,基本符合学校的的年级成绩管理的简易特点,没有复杂的数据库管理,只有简洁的用户界面与简明的用户操作方法。
2.1 开发环境
操作系统:Windows 2000
数据库:Microsoft Access 2000
软件开发技术:ASP
开发环境:Macromedia Dreamweaver MX 2004
辅助工具:Photoshop 7.0
2.2 年级成绩管理模块功能
结合学校年级成绩管理的实际情况,从符合操作简便、界面友好、灵活、实用、安全的要求出发, 本模块分成以下几个部分,分别是:年级的添加、年级的查询、还有年级的删除三个部分。功能模块如下图所示:
查询年级
删除年级
年级管理模块
添加年级
3模块总体设计
3.1、数据库的设计
跳转其它页面时终止
存储数据数据记录
与数据库建立连接
显示表中的记录
已更新的数据记录
添加记录
删除记录
修改记录
是否添加记录
是否修改记录
是否删除记录
显示表中的记录
年级成绩管理流程图
学生基本情况表st_info
该表用来列出学生的一些基本信息。如学号,姓名,性别等。
字段名
类型
字段含义
user_number
文本
学号
user_name
文本
姓名
user_sex
文本
性别
grade_number
文本
年级号
class_number
文本
班级号
年级信息表grade
字段名
类型
字段含义
grade_number
文本
年级号
grade_name
文本
年级名称
user_classnum
数字
班级数
班级信息表class
字段名
类型
字段含义
class_number
文本
班级号
stclass
文本
班级名称
课程信息表subject
字段名
类型
字段含义
Subject_num
文本
课程号
subject
文本
课程名
考试信息表testno
字段名
类型
字段含义
testno
文本
考试场次
单科成绩信息表ach
字段名
类型
字段含义
user_number
文本
学号
user_testnumber
文本
准考证号
testno
文本
考试场次
subject
文本
考试科目
ach
数字
考试成绩
学生总成绩信息表total_ach
字段名
类型
字段含义
user_number
文本
学号
testno
文本
考试场次
total_ach
数字
考试总成绩
管理员信息表admin
字段名
类型
字段含义
admin_name
文本
用户名
admin_pwd
文本
用户口令
3.2年级成绩管理结构图
查询年级
删除年级
年级管理模块
添加年级
4 年级成绩管理的设计与实现
该模块能够实现对已有的年级信息进行修改或删除,对新增的年级信息进行添加。
基本设计思想是:在增加年级信息的管理页add_grade.asp中先打开本成绩管理软件的ach.mdb数据库中的年级表grade,则会在用户的界面呈现该表中已有的数据记录,并且可以在本页进行添加相应新的年级信息的操作,另外在用户浏览器界面还增加了两个字段即修改和删除字段。且为grade表中所有记录的修改和删除字段添加上了超链接,若用户单击任一条记录的修改或删除链接,服务器将跳转到相应的修改页mod_grade.asp或删除页del_grade.asp。
4.1对已有的年级成绩信息添加
添加页add_grade.asp的核心代码如下:
<!--#include file="conn.asp"-->
<% if session("user")="" then
response.write "您无此权限"
response.end
end if %>
<% set rs=server.createobject("adodb.recordset")
sql="select * from grade"
rs.open sql,conn,1,1 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>添加年级</title>
<link rel="stylesheet" href="style.css">
</head>
<body topmargin="0">
<!--#include file="top.asp"-->
<div align="center">
<center>
<table>
<table border="1" width="500" bordercolorlight="#000000" cellspacing="0" cellpadding="4" bordercolordark="#FFFFFF"> <tr>
<td width="99" align="center">序号</td>
<td width="99" align="center">年级</td>
<td width="99" align="center">班级数</td>
<td width="100" align="center">修改</td>
<td width="100" align="center">删除</td>
</tr>
<%if not rs.eof then%>
<%do while not rs.eof%>
<tr>
<td width="99" align="center"><%=rs("id")%></td>
<td width="99" align="center"><%=rs("user_grade")%></td>
<td width="99" align="center"><%=rs("user_classnum")%></td>
<td width="100" align="center"><a href="mod_grade.asp?id=<%=rs("id")%>">修改</a></td>
<td width="100" align="center"><a href="del_grade.asp?id=<%=rs("id")%>">删除</a></td>
</tr>
<%rs.movenext%>
<%loop%>
<%else%>
<tr>
<td width="388" colspan="4"><marquee>暂无年级添加</marquee></td>
</tr>
<%end if%>
</table>
</center>
<div align="center">
<table border="0" width="400" bordercolorlight="#000000" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF">
<tr>
<td width="100%">
<form method="POST" action="add_grade1.asp">
<table border="1" width="100%" bordercolorlight="#000000" cellspacing="0" cellpadding="5" bordercolordark="#FFFFFF">
<tr>
<td width="33%">
<p align="right">添加年级:</td>
<center>
<td width="33%"><input type="text" name="user_grade" size="20"></td>
<td width="34%"><input type="submit" value="提交" name="B1"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</center>
</div>
<!--#include file="down.asp"-->
</body>
4.1对已有的年级成绩信息修改
修改页mod_grade.asp核心代码如下:
<!--#include file="conn.asp"-->
<% if session("user")="" then
response.write "您无此权限"
response.end
end if %>
<% dim id
id=trim(request("id"))
set rs=server.createobject("adodb.recordset")
sql="select * from grade where id="& id
rs.open sql,conn,1,1 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>修改年级</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div align="center">
<table border="0" width="400">
<tr>
<td width="100%">
<form method="POST" action="mod_grade1.asp">
<input type="hidden" value="<%=id%>" name="id">
<table border="1" width="100%" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td width="28%">
<p align="right">修改年级:</p>
</td>
<center>
<td width="24%"><input type="text" name="user_grade" size="20" value="<%=rs("user_grade")%>"></td>
<td width="24%"><input type="text" name="user_grade" size="20" value="<%=rs("user_classnum")%>"></td>
<td width="24%"><input type="submit" value="提交" name="B1"></td>
</tr>
</table>
</form>
<p> </td>
</tr>
</table>
</div>
</body>
</html>
当用户单击任意一条记录的“修改“超链接,服务器转相应的修改程序mod_testno.asp执行。服务器的执行过程是首先打开数据库当中的表testno找到用户要修改的记录,通过用户在界面输入考试场次实现修改。在这里注意的一点是,在mod_testno.asp中提交给服务器进行修改后必须要更新数据库表testno的内容,它的实现是通过服务器执行另一个程序mod_testno1.asp来实现的。其具体实现过程是:同理首先打开数据库找到要修改记录的ID号,若存在,则通过rs.update语句来更新数据库,然后返回到add_test.asp程序。否则给出提示ID号不存在,再返回到add_test.asp程序。
程序mod_testno.asp核心代码如下:
dim id
id=trim(request("id"))
set rs=server.createobject("adodb.recordset")
sql="select * from testno where id="& id
rs.open sql,conn,1,1
<form method="POST" action="mod_testno1.asp">
<input type="hidden" value="<%=id%>" name="id">
<table border="1" width="100%" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td width="33%">
<p align="right">修改考次:</p>
</td>
<center>
<td width="33%"><input type="text" name="testno" size="20" value="<%=rs("testno")%>"></td>
<td width="34%"><input type="submit" value="提交" name="B1"></td>
</tr>
</table>
</form>
程序mod_testno1.asp核心代码如下:
<% dim testno
testno=trim(request("testno"))
id=trim(request("id"))
set rs=server.createobject("adodb.recordset")
sql="select * from testno where id="& id
rs.open sql,conn,1,3 %>
<% if not rs.eof then
rs("testno")=testno
rs.update
rs.close
set rs=nothing
response.redirect "add_test.asp"
else
response.write "ID号不存在"
response.end
end if %>
4.1对已有的年级成绩信息删除
删除页del_grade.asp的核心代码
<!--#include file="conn.asp"-->
<% if session("user")="" then
response.write "您无此权限"
response.end
end if %>
<% dim id
id=trim(request("id"))
set rs=server.createobject("adodb.recordset")
sql="select * from grade where id="& id
rs.open sql,conn,1,3 %>
<% rs.delete
rs.close
set rs=nothing
response.redirect "add_grade.asp" %>
5总分、及格率的设计与实现
基本设计思想是:在查询总分的管理页total_top.asp中先用SQL语句打开本成绩管理软件的ach.mdb数据库中的年级表grade,班级表class,考试场次表testno,然后点击“提交”按钮,之后浏览器会自动更新为一个根据用户选择的信息得到的查询结果的新页total_top1.asp,该页根据查询得到的记录的个数可以提供分页显示的功能,让用户看的更为清楚。
在及格率的统计管理页all.asp中,先建立与数据库ach.mdb的连接,之后将表单的三个文本字段控件分别与该数据库中的科目数据表subject、考试场次数据表testno、班级数据表class通过asp脚本命令的形式绑定。当用户选择完毕需要查询的内容后,点击“提交”按钮,之后浏览器会自动更新为一个根据用户选择的信息得到的统计结果的新页all1.asp。
5.1总分的实现
总分查询total_top.asp的核心代码:
<!--#include file="conn.asp"-->
<% if session("user")="" then
response.write "您无此权限"
response.end
end if %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>查询总分成绩及排名</title>
<link rel="stylesheet" href="style.css">
</head>
<body topmargin="0">
<!--#include file="top.asp"-->
<div align="center">
<center>
<table border="0" width="500">
<tr>
<td width="100%">
<form method="POST" action="total_top_1.asp">
<table border="1" width="100%" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td width="50%" align="center">年级</td>
<td width="50%" align="center">班级</td>
<td width="50%" align="center">统考场次</td>
</tr>
<tr>
<td width="50%" align="center">
<% set rs0=server.createobject("adodb.recordset")
sql0="select * from grade"
rs0.open sql0,conn,1,1 %>
<select size="1" name="user_grade">
<%do while not rs0.eof%>
<option value="<%=rs0("user_grade")%>"><%=rs0("user_grade")%></option>
<%rs0.movenext%>
<%loop%>
<%rs0.close%>
</select></td>
<td width="50%" align="center">
<% set rs=server.createobject("adodb.recordset")
sql="select * from class"
rs.open sql,conn,1,1 %>
<select size="1" name="user_class">
<option value="全部班级">全部班级</option>
<%do while not rs.eof%>
<option value="<%=rs("stclass")%>"><%=rs("stclass")%></option>
<%rs.movenext%>
<%loop%>
<%rs.close%>
</select></td>
<td width="50%" align="center">
<% set rs2=server.createobject("adodb.recordset")
sql2="select * from testno"
rs2.open sql2,conn,1,1 %>
<select size="1" name="testno"><%do while not rs2.eof%>
<option value="<%=rs2("testno")%>"><%=rs2("testno")%></option>
<%rs2.movenext%>
<%loop%>
<%rs2.close%>
</select></td>
</tr>
</table>
<p align="right"><input type="submit" value="提交" name="B1"></p>
</form>
<center>
<p> </td>
</tr>
</table>
</div>
<!--#include file="down.asp"-->
</body>
</html>
5.2及格率的实现
统计及格率all.asp的核心代码:
<!--#include file="conn.asp"-->
<% if session("user")="" then
response.write "您无此权限"
response.end
end if %>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>统考成绩分析</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div align="center">
<center>
<table border="0" width="400" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">及格率分析</td>
</tr>
<tr>
<td width="100%">全校及格率(按考试考次分)</td>
</tr>
</center>
<tr>
<td width="100%">
<form method="POST" action="all_1.asp">
<table border="1" width="500" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td width="33%">
<p align="right">
<%set rs=createobject("adodb.recordset")
sql="select * from testno"
rs.open sql,conn,1,1
%>
<select size="1" name="testno">
<%do while not rs.eof%>
<option value="<%=rs("testno")%>"><%=rs("testno")%></option>
<%rs.movenext%>
<%loop%>
<%rs.close%>
</select></td>
<center>
<td width="33%">
<%set rs1=server.createobject("adodb.recordset")
sql1="select * from subject"
rs1.open sql1,conn,1,1
%>
<select size="1" name="subject">
<%do while not rs1.eof%>
<option value="<%=rs1("subject")%>"><%=rs1("subject")%></option>
<%rs1.movenext%>
<%loop%>
<%rs1.close%>
</select></td>
<td width="34%">
<%set rs2=server.createobject("adodb.recordset")
sql2="select * from class"
rs2.open sql2,conn,1,1
%>
<select size="1" name="user_class">
<option value="all">全部</option> <%do while not rs2.eof%>
<option value="<%=rs2("stclass")%>"><%=rs2("stclass")%></option>
<%rs2.movenext%>
<%loop%>
<%rs2.close%>
</select></td>
</tr>
<tr>
展开阅读全文