软件数据库设计
一、引言
1 编写目的
编写本数据库的目的在于有利于后期的维护,其主要读者为后期的系统维护人员。
以便于他们在维护时方便地掌握原数据库环境。
2 背景
a.待开发的数据库名称为:Student.mdb。使用该数据库的系统为:教务管理。
b.本项目是由计算机科学与技术学院08计11班郭琼、王娟、何婷婷、李姣、金欢欢、褚强、孙超为了进行软件测试实训而进行开发的
3 定义
本数据库所用术语为:数据库,表,记录,字段
其中数据库名称和表名为英文词组。数据库名:Student.mdb
表名:如Xs、Js等,表名清晰明了,有利于阅读。
4 参考资料
《中文office 2000》,《VB数据库开发》等。
二、外部设计
1 标识和状态
本系统仅包含一个数据库,所以数据库的唯一标志也是数据库的名字即Student.mdb
该数据库所包含的所有表也都以其表名为唯一标志,而不在存在其他表示方式。
2 使用它的程序
对应系统表单、控件、过程的各个程序和模块,诸如查询,修改,添加,调整等。
3 约定
程序员在利用或修改该数据库时需要注意的是在各个表中,关键字段为表中的学号,教师号,班号,以及用户帐号,程序员在利用数据库时应当优先考虑这些字段的唯一性和完整性。
4 支持软件
该数据库所用的DBMS为SQL server。该数据库管理系统具有操作简便,维护容易的特点,对中小型数据库的管理非常适用。
三、结构设计
1、学生模式设计:
根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型:
Bj(Bno,Bname,Bdate,Btea,Bmon,Bparty)
各项含义分别为:班级(班号,班名,建班时间,班主任,班长,团支书)
其中班号是班级表的是主码
Xs(Xno,Bno,Xname,Xbir,Xaddr,Xnation,Xface,Xid,Xcall,Xsno,Xmail,Xdate)
其中各项含义分别为:(学号,班号,学生姓名,性别,出生日期,籍贯,
民族,政治面貌,身份证号,联系方式,宿舍号,邮箱,入学日期 )
其中学号是学生表的主码,班号是学生表的外码
A、数据结构:
班级
含义说明:描述了组成班级的信息结构
组成:班号,班名,建班时间,班主任,班长,团支书
学生
含义说明:描述了组成学生的信息结构
组成:学号,班号,学生姓名,性别,出生日期,籍贯,民族,政
治面貌,身份 证号,联系方式,宿舍号,邮箱,入学日期
B、数据表
根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统
中主要的数据表如下:
表1:班级基本信息表(Bj)
表2:学生基本信息表(Xs)
2、教师模式
根据关系模型的转换原则,上面的E—R图可转换为如下所示的关系模型
Kc(Kno,Kname,Jno,Kpno,Kpname,Khour,Kciredit)
其中各项含义分别为:课程(课程号,课程名,教师编号,先修课程号,先
修课程名,学时,学分)
其中课程号是课程表的主码
Cj(Cid,Bno,Xno,Kno,Cscore)
其中各项含义分别为:成绩(成绩id ,班号,学号,课程号,成绩)
其中成绩id是成绩表的主码,班号、学号、课程号是成绩表的外码
A、数据结构
课程表
含义说明:定义一个描述学生所选的课程的信息
组成:课程号,课程名,教师编号,先修课程号,先
修课程名,学时,学分
成绩表
含义说明:定义一个描述学生所选的课程的成绩
组成:成绩id ,学号,课程号,成绩
B、数据表
根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下:
表3 课程信息表(Kc)
表4 成绩信息表(CJ)
四、安全保密设计
由于本系统要求的保密等级不高,故只在数据库中建立一张用户表,并分别设置超级用户,普通用户标志,在程序中根据用户标志来分别赋予不同权限。
教务管理系统
一、主页登录 default.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Trim(request.form("username"))<>"" AND Trim(request.form("pswd"))<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim userid,pswd,strsql,rs
userid=Request.Form("username")
pswd=Request.Form("pswd")
End If
If request.form("D1")="学生" Then
strsql="Select * From stu Where sno='"&userid&"'"
Set rs=db.Execute(strsql)
If pswd=rs("spin") Then
Session("stuid")=userid
Response.Redirect"student.asp"
Else
Response.write"密码错误"
End If
ElseIf request.form("D1")="教师" Then
strsql="Select * From tea Where tno='"&userid&"'"
Set rs=db.Execute(strsql)
If pswd=rs("tpin") Then
Session("teaid")=userid
Response.Redirect"teacher.asp"
Else
Response.write"密码错误"
End If
ElseIf request.form("D1")="教务管理员" Then
strsql="Select * From adm Where adm='"&userid&"'"
Set rs=db.Execute(strsql)
If pswd=rs("apin") Then
Session("admid")=userid
Response.Redirect"adm.asp"
Else
Response.write"密码错误"
End If
Else
Session("stuid")=""
Session("teaid")=""
Session("admid")=""
End If
%>
二、 学生用户界面
(一)实现选课 student.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("stuid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim stuid,cnoid
stuid=Session("stuid")
cnoid=Request.form("T1")
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Insert Into score(cno,sno) Values('"&cnoid&"','"&stuid&"')"
Set rs=db.Execute(strsql)
End If
db.close
Set db=Nothing
%>
(二)显示课表 cou_list.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("stuid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select Distinct cou.cno,cou.cname,cou.tno, cou.room From cou"
Set rs=db.Execute(strsql)
End if
%>
<div align="center">
<table border="1" width="80%" id="table2" cellpadding="0">
<tr> <td align="center">课程编号</td>
<td align="center">课程名称</td>
<td align="center">任课教师</td>
<td align="center">上课地点</td>
</tr>
<%
Do While Not rs.Eof
%>
<tr> <td align="center"><%=rs("cno")%></td>
<td align="center"><%=rs("cname")%></td>
<td align="center"><%=rs("tno")%></td>
<td align="center"><%=rs("room")%></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</div>
(三)成绩查询 mark.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("stuid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim rs,strsql
strsql="Select * From score Where sno='"&Session("stuid")&"'"
Set rs=db.Execute(strsql)
End if
%>
<tr>
<td align="center" height="34">学号</td>
<td align="center" height="34">课号</td>
<td align="center" height="34">成绩</td>
</tr>
<%
Do While Not rs.Eof
%>
<tr>
<td align="center" ><%=rs("sno")%></td>
<td align="center" ><%=rs("cno")%></td>
<td align="center" ><%=rs("mark")%></td>
</tr>
<%
rs.MoveNext
Loop
%>
三、 教师用户界面 实现成绩录入功能 teacher.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("teaid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
ElseIf Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,cno,sno,mark
cno=Request.Form("T1")
sno=Request.Form("T2")
mark=Request.Form("T3")
strsql="Update score Set mark='"&mark&"'Where cno='"&cno&"'And sno='"&sno&"'And tno='"&Session("teaid")&"'"
db.Execute(strsql)
Response.Write "添加成功"
End If
%>
四、教务管理员登录界面 adm.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
End If
%>
(一)课程信息维护
1、显示课程信息 adm_cou.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select * From cou"
Set rs=db.Execute(strsql)
End if
%>
<form method="POST" action="">
<table border="0" width="100%" id="table8">
<%
Do While Not rs.Eof
%>
<tr>
<td align="center" height="27"><%=rs("cno")%></td>
<td align="center" height="27"><%=rs("cname")%></td>
<td align="center" height="27"><%=rs("tno")%></td>
<td align="center" height="27"><%=rs("room")%></td>
<td align="center"height="27"><a href="update_cou.asp?cno=<%=rs("cno")%>">修改</a></td>
<td align="center" height="27"><a href="dele_cou.asp?cno=<%=rs("cno")%>">删除</a></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</form>
2、修改课程信息 update_cou.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim cno
cno=Request.QueryString("cno")
Session("cno")=cno
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select * From cou Where cno='"&cno&"'"
Set rs=db.Execute(strsql)
End If
%>
3、修改课程的执行程序 update3.asp
<% Option Explicit %>
<%
Dim cnoid
cnoid=Session("cno")
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" And Request.Form("T5")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim cno,cname,tno,stime,room,strsql
cno=Request.Form("T1")
cname=Request.Form("T2")
tno=Request.Form("T3")
room=Request.Form("T5")
strsql="Update cou Set cno='"&cno&"',cname='"&cname&"',tno='"&tno&"',room='"&room&"' Where cno='"&cnoid&"'"
db.Execute(strsql)
Response.Redirect "adm_cou.asp"
Response.Write"修改成功"
End If
%>
4、删除课程的执行程序 dele_cou.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,cno
cno=Request.QueryString("cno")
strsql="Delete From cou Where cno='"&cno&"'"
db.Execute(strsql)
Response.Redirect"adm_cou.asp"
End if
%>
5、添加课程的执行程序 add_cou.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
End If
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" And Request.Form("T5")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,cno,cname,tno,stime,room
cno=Request.Form("T1")
cname=Request.Form("T2")
tno=Request.Form("T3")
room=Request.Form("T5")
strsql="Insert Into cou(cno,cname,tno,room) Values('"&cno&"','"&cname&"','"&tno&"','"&room&"')"
db.Execute(strsql)
Response.Redirect"add_cou.asp"
Response.write"添加成功"
End If
%>
(二)教师信息维护
1、显示教师信息 adm_tea.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select tno,tname,ttel From tea"
Set rs=db.Execute(strsql)
End if
%>
<form method="POST" action="">
<table border="0" width="100%" id="table8">
<%
Do While Not rs.Eof
%>
<tr>
<td width="20%" align="center"><%=rs("tno")%></td>
<td width="20%" align="center"><%=rs("tname")%></td>
<td width="19%" align="center"><%=rs("ttel")%></td>
<td width="19%" align="center"><a href="update_tea.asp?tno=<%=rs("tno")%>">修改</a></td>
<td width="19%" align="center"><a href="dele_tea.asp?tno=<%=rs("tno")%>">删除</a></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</form>
2、修改教师信息 update_tea
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim tno
tno=Request.QueryString("tno")
Session("tno")=tno
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select * From tea Where tno='"&tno&"'"
Set rs=db.Execute(strsql)
End If
%>
3、修改教师信息的执行程序 update2.asp
<% Option Explicit %>
<%
Dim tnoid
tnoid=Session("tno")
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim tno,tname,ttel,strsql
tno=Request.Form("T1")
tname=Request.Form("T2")
ttel=Request.Form("T3")
strsql="Update tea Set tno='"&tno&"',tname='"&tname&"',ttel='"&ttel&"'Where tno='"&tnoid&"'"
db.Execute(strsql)
Response.Redirect"adm_tea.asp"
Else
Response.Write"请将所有信息填写完整"
Response.Write"<a href='adm_tea.asp'>重新修改</a>"
End If
%>
4、删除教师信息的执行程序 dele_tea.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,tno
tno=Request.QueryString("tno")
strsql="Delete From tea Where tno='"&tno&"'"
db.Execute(strsql)
Response.Redirect"adm_tea.asp"
End if
%>
5、添加信息教师信息的执行程序 add_tea.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
End If
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,tno,tname,ttel
tno=Request.Form("T1")
tname=Request.Form("T2")
ttel=Request.Form("T3")
strsql="Insert Into tea(tno,tname,ttel) Values('"&tno&"','"&tname&"','"&ttel&"')"
db.Execute(strsql)
Response.Redirect"add_tea.asp"
Response.write"添加成功"
End If
%>
(三)学生信息维护
1、显示学生信息 adm_stu.asp
<% Option Explicit %>
<% Response.Buffer=True%>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
Response.write"请先登录"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select distinct sno,sname,ssex,class From stu"
Set rs=db.Execute(strsql)
End if
%>
<form method="POST" action="update_1.asp">
<table border="0" width="100%" id="table8">
<%
Do While Not rs.Eof
%>
<tr>
<td width="17%" align="center"><%=rs("sno")%></td>
<td width="16%" align="center"><%=rs("sname")%></td>
<td width="16%" align="center"><%=rs("ssex")%></td>
<td width="16%" align="center"><%=rs("class")%></td>
<td width="16%" align="center"><a href="update_stu.asp?sno=<%=rs("sno")%>">修改</a>
</td>
<td width="16%" align="center"><a href="dele_stu.asp?sno=<%=rs("sno")%>">删除</a></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</form>
2、修改学生信息 update_stu.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim sno
sno=Request.QueryString("sno")
Session("sno")=sno
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,rs
strsql="Select * From stu Where sno='"&sno&"'"
Set rs=db.Execute(strsql)
End If
%>
3、修改学生信息的执行程序 update1.asp
<% Option Explicit %>
<%
Dim snoid
snoid=Session("sno")
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" And Request.Form("T4")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim sno,sname,ssex,sclass,strsql
sno=Request.Form("T1")
sname=Request.Form("T2")
ssex=Request.Form("T3")
sclass=Request.Form("T4")
strsql="Update stu Set sno='"&sno&"',sname='"&sname&"',ssex='"&ssex&"',class='"&sclass&"'Where sno='"&snoid&"'"
db.Execute(strsql)
Response.Redirect"adm_stu.asp"
Else
Response.Write"请将所有信息填写完整"
Response.Write"<a href='adm_stu.asp'>重新修改</a>"
End If
%>
4、删除学生信息的执行程序 dele_stu.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.write"请先登录"
Response.Redirect "default.asp"
Else
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,sno
sno=Request.QueryString("sno")
strsql="Delete From stu Where sno='"&sno&"'"
db.Execute(strsql)
Response.Redirect"adm_stu.asp"
End if
%>
5、添加学生信息的执行程序 add_stu.asp
<% Option Explicit %>
<% Response.Buffer=True %>
<%
If Session("admid")="" Then
Response.Redirect "default.asp"
End If
If Request.Form("T1")<>"" And Request.Form("T2")<>"" And Request.Form("T3")<>"" And Request.Form("T4")<>"" Then
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "jiaowu"
Dim strsql,sno,sname,ssex,sclass
sno=Request.Form("T1")
sname=Request.Form("T2")
ssex=Request.Form("T3")
sclass=Request.Form("T4")
strsql="Insert Into stu(sno,sname,ssex,class) Values('"&sno&"','"&sname&"','"&ssex&"','"&sclass&"')"
db.Execute(strsql)
Response.Redirect"add_stu.asp"
Response.write"添加成功"
End If
%>
1、表名称:qu 表类型:约束表 含义:功能区
2、表名称:jiemian 表类型:约束表 含义:主页登陆界面
3、表名称:jiemian 表类型:约束表 含义:学生用户界面
4、表名称:jiemian 表类型:约束表 含义:教师用户界面
5、表名称:jiemian 表类型:约束表 含义:教务管理员登录界面
6、表名称:qu 表类型:实体表 含义:主页登录区
7、表名称:qu 表类型:实体表 含义:学生用户界面区
8、表名称:jiemian 表类型:实体表 含义:教务管理员登录界面
说明部分:
1、 由于在该教务管理系统中加入了较为复杂的 XML 代码,所以在这里只给出了主要的与系统功能相关的 ASP文件中的VBScript代码。
2、 本系统的数据库名为 jiaowu.mdb 内有五张表:stu, tea, cou, score, adm ,教务管理员对学生、教师信息进行添加时,系统分别根据学生学号、教师编号自动生成密码,米纳生成函数表达式为:spin=sno,tpin=tno
3、 整个管理系统都运用了增、删、改、查的原理。
目录摘要2一系统分析3二系统设计3三具体模块划分431登录模块432退出模块533母版模块534学生管理模块635教师管理模块83…
课程设计报告课程设计题目教务管理系统学生姓名王丙焱专业计算机科学与技术学号20xx30050202班级1130502指导教师李丽华…
XX大学XXXX学院课程设计课题题目学部专业班级X班学号姓名指导老师20xx年6月23日成绩一系统功能分析与设计1需求分析制作教务…
教务管理系统设计报告一引言教务管理是高校中一项极其繁重的任务教务工作人员每天都需要接触和处理大量的数据和事务这些信息的准确性和完整…
软件数据库设计一引言1编写目的编写本数据库的目的在于有利于后期的维护其主要读者为后期的系统维护人员以便于他们在维护时方便地掌握原数…
目录一.选题的背景在现代社会中管理的作用越来越显得重要和突出。一般来讲,管理通过计划、组织、指导与领导、控制等手段,为组织制定目标…
功能说明实现两种权限的身份登陆的教务管理系统includequotstdiohquotincludequotstdlibhquot…
数据库基础与应用设计报告设计题目专业电子商务学生姓名朱莉班级087班学号083620xx14指导老师査月霞江苏城市职业学院大丰办学…
目录一选题的背景在现代社会中管理的作用越来越显得重要和突出一般来讲管理通过计划组织指导与领导控制等手段为组织制定目标应用组织的各种…
附件1中南大学本科生课程设计实践任务书设计报告SQL数据库程序设计题目学生姓名指导教师学院专业班级学生学号教学管理系统计算机基础教…