数据库课程设计学生成绩管理系统.docx
《数据库课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩管理系统.docx(26页珍藏版)》请在冰点文库上搜索。
数据库课程设计学生成绩管理系统
河南理工大学
据库课程系统设计报告
******
课题:
学生成绩管理系统
******
班级:
计算机09-02
学院:
计算机科学与技术学院
日期:
2012年1月
一.成绩管理系统的背景分析
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。
但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样的一套成绩管理系统成为很有必要的事情。
学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询、留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。
二.目标分析
2.1教师需求
1.教师(管理员)够实现对整个学生信息的添加、修改、删除、查询等操作,对教师(管理员)用户的添加、删除、修改等操作。
2.教师(管理员)可以将学生成绩的数据库发布到网上,学生的信息发布的网上,方便学生教师进行查询,达到资源共享的目的。
3.教师(管理员)能够在一定的权限内对所有学生成绩的查询、删除、修改是、查看等,对,登录密码的修改。
2.2学生需求
学生可以在自己的权限内对对自己成绩的查询,以及个人信息的查询,登录密码的修改,的相关操作。
三.需求分析
概念模型E-R图
实体(矩形)
管理员、学生、班级、课程、学生成绩
属性(椭圆)
管理员:
管理员帐号、管理员密码
学生:
学号、姓名、班级、登录密码、性别
班级:
班级名、班级号
课程:
课程名、上课班级、学期、类型、学分
成绩:
单科分数、学号、姓名、课程、学期、类型、学分、是否通过
关系(菱形)
班级号、成绩
3.1管理员实体E-R图
3.2学生实体E-R图
3.3班级实体E-R图
3.4课程实体E-R图
3.5成绩实体E—R图
3.6管理员-成绩实体关系图
3.7管理员-成绩实体关系图
3.6总体E-R关系图
四.学生成绩管理系统设计的逻辑结构设计
4.1admin管理员表
表中列名
数据类型
可否为空
说明
Id
int
notnull(主键)
管理员编号
Username
Nvarchar
notnull
管理员用户名
Password
Nvarchar
notnull
管理员密码
4.2user学生表
表中列名
数据类型
可否为空
说明
Id
Nvarchar
notnull
学生编号
Xh
Nvarchar
notnull(主键)
学生学号
Mm
Nvarchar
notnull
学生密码
Xm
nvarchar
notnull
学生姓名
Bj
nvarchar
notnull
学生班级
Sex
nvarchar
null
学生性别
4.3kcb课程表
表中列名
数据类型
可否为空
说明
Id
Nvarchar
notnull
课程编号
Kc
Nvarchar
notnull(主键)
课程名
Bj
Nvarchar
notnull
上课班级
Lx
nvarchar
notnull
课程类型
Xq
nvarchar
notnull
上课学期
Xf
nvarchar
Int
课程学分
4.4bjb班级表
表中列名
数据类型
可否为空
说明
Id
int
notnull
班级编号
Bj
Nvarchar
notnull(主键)
班级名
zxh
Nvarchar
notnull
班级头学号
4.5bbs成绩表
表中列名
数据类型
可否为空
说明
Id
int
notnull
成绩编号
Cj
Nvarchar
notnull
成绩
Xh
Nvarchar
notnull(主键)
学号
Xm
nvarchar
notnull
姓名
Kc
nvarchar
notnull(主键)
课程
Xq
nvarchar
notnull
学期
Bj
Nvarchar
notnull
班级
Lx
nvarchar
notnull
课程类型
Pass
nvarchar
notnull
是否通过
Xf
nvarchar
notnull
学分
五.数据截图
5.1admin管理员表截图
5.2user学生表截图
5.3bj班级表截图
5.4kcb课程表截图
5.5bbs成绩表截图
5.6表间关系图
表间关系截图
表间关系图
六学生成绩管理系统功能的实现
功能实现简介:
学生登陆:
1.通过学号,密码进行登陆自己的系统,查询自己的成绩
“90201小红”登陆查看自己的成绩:
“090201小红”按学期=“第一学期”进行查询:
2.学生信息注册:
班级,学号姓名密码验证密码性别男女
管理员登陆:
1.管理员帐号:
admin管理员密码:
admin进行登陆
2.添加学生的成绩
[班级学号姓名课程成绩类型课类型]
3.学生成绩分类查询
[按课程查询课程类型查询按学期查询]
按课程=“软件工程”的查询结果:
4单个课程添加[班级课程学期类型]
5批量课程添加
6单个学号添加
7批量学号添加
8添加管理员
9加班级及其学号
添加班级成功:
10退出管理
5.6学生成绩管理系统的关键代码
5.6学生成绩管理系统的关键代码
七成绩管理系统的关键代码
7.1据库的连接
在整个学生成绩管理系统中,数据库的打开在系统中是很重要的,下面给出本系统连接打开数据库的代码文件CON.ASP和CON1.ASP。
<%
Server.scriptTimeout="10"
connstr="DBQ="+server.mappath("#sp_class.mdb")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};"
setconn=Server.CreateObject("ADODB.connection")
setrs=server.createobject("adodb.recordset")
conn.openconnstr
%>
<%
setnewconn=server.createobject("adodb.connection")
setrs=server.createobject("adodb.recordset")
DBPath=Server.MapPath("#sp_class.mdb")
newconn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
%>
7.2管理员查询数据库
管理员分别按课程、学期、类别对整个数据库进行查询
--#includefile="inc/top.asp"-->
<%
xh=session("user")
kc=request.form("kc")
cj=request.form("cj")
xq=request.form("xq")
lx=request.form("lx")
al=request.form("al")
iflx=""andkc=""andcj=""andxq=""andal=""then
response.write""&chr(13)&"alert('请输入你要查询的条件');"&"history.back()"&""
Response.End
endif
setrs=server.createobject("adodb.recordset")
conn="DBQ="+server.mappath("#sp_class.mdba")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};"
ifrequest("kc")<>""then
sql="select*frombbs1wherekclike'"&kc&"'"
elseifrequest("cj")<>""then
sql="select*frombbs1wherecjlike'"&cj&"'"
elseifrequest("xq")<>""then
sql="select*frombbs1wherexqlike'"&xq&"'"
elseifrequest("lx")<>""then
sql="select*frombbs1wherelxlike'"&lx&"'"
else
sql="select*frombbs1wherexhlike'"&xh&"'"
endif
rs.Opensql,conn,1,1
totalput=rs.RecordCount
ifrs.EOFandrs.BOFthen
Response.Write" 当前符合没有这个条件的成绩~~~~~~~~~~ |
"
else
%>
7.3对数据库进行学生的添加
<%ifsession("password")<>""then%>
--#includefile="inc/conn.asp"-->
<%ifrequest.querystring("type")="news"then
dimi,j
num=request.form("number")
max=request.form("max")
setrs=Server.CreateObject("ADODB.Recordset")
forj=1tonum
fori=1tomax
ifrequest("bj"&j&i)="--==请选择==--"then
response.write""&chr(13)&"alert('请选择该学生所在班级');"&"history.back()"&""
Response.End
endif
ifrequest("xh"&j&i)=""then
response.write""&chr(13)&"alert('学号栏要全部填');"&"history.back()"&""
Response.End
endif
bj=Replace(Request.Form("bj"&j&i),"'","''")
xh=Replace(Request.Form("xh"&j&i),"'","''")
user=Replace(Request.Form("user"&j&i),"'","''")
kc=Replace(Request.Form("kc"&j&i),"'","''")
cj=Replace(Request.Form("cj"&j&i),"'","''")
xq=Replace(Request.Form("xq"&j&i),"'","''")
lx=Replace(Request.Form("lx"&j&i),"'","''")
sql="select*frombbs1wherebj='"&bj&"'andkc='"&kc&"'andxq='"&xq&"'andlx='"&lx&"'andxh='"&xh&"'anduser='"&user&"'"
rs.opensql,conn,1,1
ifnotrs.eofthen
response.write""&chr(13)&"alert('您所添加的成绩部分已经存在!
');"&"history.back()"&""
Response.End
endif
rs.close
setsavebbs1=conn.execute("insertintobbs1(bj,xh,user,kc,cj,xq,lx)values('"&bj&"','"&xh&"','"&user&"','"&kc&"','"&cj&"','"&xq&"','"&lx&"')")
setsavebbs=nothing
next
next
setrs=nothing
response.write""&chr(13)&"alert('同学成绩信息添加成功!
');"&"history.back()"&""
%>
<%endif%>
<%ifrequest.querystring("type")="kc"then
fs=request("fs")
setrs=Server.CreateObject("ADODB.Recordset")
fori=1tofs
ifrequest.Form("kc"&i)=""then
response.write""&chr(13)&"alert('课程栏要全部填');"&"history.back()"&""
Response.End
endif
bjj=Replace(Request.Form("bj"&i),"'","''")
bj=left(bjj,3)
fort=4tolen(bjj)
ifmid(bjj,t,1)>="0"andmid(bjj,t,1)<="9"thenexitfor
bj=bj&mid(bjj,t,1)
next
kc=Replace(Request.Form("kc"&i),"'","''")
xq=Replace(Request.Form("xq"&i),"'","''")
lx=Replace(Request.Form("lx"&i),"'","''")
sql="select*fromkcbwherebj='"&bj&"'andkc='"&kc&"'andxq='"&xq&"'andlx='"&lx&"'"
rs.opensql,conn,1,1
ifnotrs.eofthen
response.write""&chr(13)&"alert('您所添加的课程部分已经存在!
');"&"history.back()"&""
Response.End
endif
rs.close
setsavebbs1=conn.execute("insertintokcb(bj,kc,xq,lx)values('"&bj&"','"&kc&"','"&xq&"','"&lx&"')")
setsavebbs=nothing
next
setrs=nothing
response.write""&chr(13)&"alert('课程信息添加成功!
');"&"window.location.href='admin_addkcs.asp'"&""
endif%>
<%ifrequest.querystring("type")="xh"then
ifrequest("start")=""orrequest("start")<0orrequest("end")<0orrequest("end")=""orbj="--==请选择==--"then
response.write""&chr(13)&"alert('请您输入正确的学号和班级');"&"history.back()"&""
Response.End
endif
bj=request("bj")
star=request("start")
endd=request("end")
ifendd>starthen
a=star
num=endd-star
else
a=endd
num=star-endd
endif
b=a
ifa="0"thenb=a+1
fori=btoa+num
msql="select*frombjbwherebj='"&bj&"'"
setrs0=conn.execute(msql)
ifnotrs0.eofthen
p=i
ifi>0andi<10thenp="0"&p
xh=rs0("xhf")&p
else
rs0.close
response.write""&chr(13)&"alert('您选择的班级不存在!
~');"&"history.back()"&""
response.End
endif
mm=xh
rs0.close
setrs0=nothing
mysql="select*fromuserwherexh='"&xh&"'"
setrs1=conn.execute(mysql)
ifnotrs1.eofthen
rs1.close
response.write""&chr(13)&"alert('你输入的学号部分已经存在了!
~');"&"history.back()"&""
response.End
endif
setsavebbs1=conn.execute("insertintouser(bj,xh,mm)values('"&bj&"','"&xh&"','"&mm&"')")
next
response.write""&chr(13)&"alert('同学信息添加成功!
');"&"window.location.href='"&session("return")&"'"&""
setsavebbs1=nothing
endif%>
<%else
Response.Redirect"admpost.asp"
endif%>
7.4对数据库中记录进行删除
<%ifsession("password")<>""then%>
--#includefile="inc/conn.asp"-->
<%ifrequest.querystring("type")="user"then%>
<%
arrdel=Request.querystring("id")
kind=request.querystring("kind")
'Response.Writearrdel
sql="deletefrom"&kind&"whereidin("&arrdel&")"
'Response.Writesql
conn.Executesql
setconn=nothing
response.write"alert('删除成功.刷新才可以看到效果!
');"
response.write"javascript:
history.go(-1)"
Response.Redirectsession("return")
response.end
%>
<%endif%>
<%ifrequest.querystring("type")="admin"then%>
<%
arrdel=Request("id")
'Response.Writearrdel
sql="deletefrombbs1whereidin("&arrdel&")"
'Response.Writesql
conn.Executesql
setconn=nothing
response.write"alert('删除成功.刷新才可以看到效果!
');"
response.write"javascript:
history.go(-1)"
Response.Redirect(session("return"))
response.end
%>
<%endif%>
<%ifrequest.querystring("type")="liuyan"then%>
<%
arrdel=Request("id")
'Response.Writearrdel