摘要
随着科学技术的发展,计算机领域不断取得新的研究成果。并不断地代替和延伸脑力劳动方面发挥越来越重要的作用,无论是工业还是日常生活都越来越离不开计算机,尤其是在学校里,随着不同高校的的不断扩大和招生人数的不断增加,要处理大量的学生数据信息显得尤为的重要。学生的信息管理是学校工作中一项重要的内容。
本系统论文主要是管理学生的资料。重点介绍其功能:信息添加、信息修改、信息的删除及信息查询。使用进行静态页面设计,应用ASP程序进行后台管理操作,并用Access进行后台数据库的连接设计。主要是以四大功能进行系统的设计和实现。
关键词:Dreamweaver MX 2004 系统 站点设计 ASP Access 数据库
1.1开发工具的介绍
1.1.1ASP
ASP(Active Sever Pages动态网页)是微软公司推出的一种用以取代CGI(Common Gateway Interface)技术。目前,Internet上的许多基于Windows平台的Web站点已开始应用ASP来替换CGI。
ASP是在服务器端脚本编译环境,使用它可以创建和运行动态、交互的Web服务器应用程序。ASP可以与HTML页、脚本命令和 ActiveX组件组合创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和修改。ASP是一个位于服务器端的脚本运行环境。通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互 式动态网页,包括使用HTML 表单收集和处理信息、上传与下载等。 通常情况下,用户通过浏览器看到的网页大多是静态的,目前Internet上的许多站点,仍然提供“静态”(static)的主页内容。所谓“静态”,是指站点的主页内容是“固定不变”的。一个“静态”的站点,若要更新主页的内容,必须手动更新其 HTML的文件数据。而随着Web技术的发展,用户希望能够看到根据要求而动态生成的主页,例如响应用户查询数据库的要求而生成报表等。站点服务器收到要求执行的应用程序,分析表单(form)的输入数据,将执行的结果以HTML的格式传送给浏览器。根据用户请求生成动态主页的传统方法有CGI、ISAPI等。CGI是根据浏览器端的http请求激活响应进程,每一个请求对应一个进程。当同时有很多请求时,程序挤占系统资源,造成效率低下。ISAPI针对这一缺点进行了改进,利用dll(动态链接库技术),以线程代替进程,提高了性能和速度,但要考虑线程的同步问题,而且开发步骤烦琐。这两种技术和另一普遍使用的开发动态网页的技术 Java都还存在着另外一个问题,那就是开发困难,程序的开发和HTML写作是两个完全不同的过程,需要专门的程序员开发。ASP使用的 ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI等程序所远远不及的地方。
1.1.2Access
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如SQL Server 2000)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
Access可以实现建立数据库、报表,以及对数据库、报表的修改、查询等功能。
Access随着Windows操作系统和Offices办公自动化应用软件的普及, Access各个版本变得与其他Office成员集成得越来越紧密。Office2000的所有成员和VisualBasic6.0现在共享的是同样的VisualBasicforApplications(VBA)版本6.0。Access2000最后采纳了Office2000VBA编辑器(也叫做集成开发环境或者IDE)用于编写VBA代码来自动操作Access应用。不论好坏,Access2000还共享了Office2000新的超文本标记语言(HTML)帮助系统。Access最主要用的是创建数据库,并建立相应的软件的连接。如ODBC的连接。
第2章系统的需求分析和设计
2.1系统的需求分析
如果我国各个学校管理水平还停留在纸介质的基础上,已不能适应时代的发展,因为它浪费了许多人力和物力,在当今的信息时代这种管理方法必然被计算机为基础的信息管理所取代。学生信息管理系统的开发,适合任何一个大中小学校的管理,
该学生信息管理系统归纳起来有四点:
1.学生信息的插入。可以插入不同地区的学生的姓名、个人联系方法、所在院系、班级及相关情况。实现了信息的动态管理。
2.学生信息的查询。学生的信息使管理员可以通过多种方式(年级、班级、姓名、学号、所在系等等)的查询,就可以直接查看自己需要的学生的相关信息。实现了信息的动态管理。
3.学生信息的修改。管理人员可以随时对转入、转出的学生进行修改,比如学号、所在系等等实现了信息的动态管理。
3.学生信息的删除。管理人员可以随时对转入、转出的学生进行删除,比如学号、所在系等等实现了信息的动态管理。
好处为:
1. 可以存储怕有的学生档案,安全、高效;
2. 只需一到二名档案录入员即可操作系统,节省大量人力;
3. 可以迅速查找到所需要的信息。
其功能结构如图:
第3章系统的实现
3.1数据库存设计
数据库是整个学生信息管理系统的核心部分。只有通过数据库的调用才能进行学生信息更新处理、插入资料、删除资料和查询资料,方便管理进行管理,减少管理员的工作量以及更多的人力。
3.1.1管理员数据库设计
Users表是用于管理员登陆时用于验证管理员身份的,这样使前后台分隔开,保护网站的安全,阻止除了管理员之外的任何人进入后台,威胁到整个网站的安全。包括用户名、密码和访问权限等等。
其数据库如图:
3.1.2学生信息数据库设计
学生信息数据库是存放学生基本信息资料,如学号、姓名、出生日期、所在系及一些个人的联系方式等等。其数据库如下:
3.2登录
3.2.1系统总模型
学生信息管理系统总的模型主要是说明系统注册后才能登录,登录后进么主页面后实现主要有学生资料管理、管理员管理以及更改级别,其中学生资料管理主要实现学生信息的添加、修改、删除和查询功能。管理员管理是只有权限最高的管理员才能进行删除管理员和更改权限的操作。其结构图如下:
3.2.2登录界面
(1)只有通过index.asp登录界面才能进入主页面进行相应学生信息的操作。
(2)进入登录界面:通过注册页面让用户提交注册并保存在user表里,并通过登录页面读取用户提交的 登录信息与保存在数据库中的数据进行比较以验证是否成功登录。
图1:用户登录界面
3.2.3主页面的实现
图2:主页面
学生信息管理系统主要是与数据库的连接,然后数据库的连接必须使用ADO的内置Connection对象,并且调用Recordset对象来进行与数据库的查找、删除、更改等功能,具体脚本如下:
<%
dim username,password
dim cnn,rst,ssql
username=trim(request.form("txtusername"))
password=trim(request.form("txtpassword"))
login=request.form("btnlogin")
'if login="" and session("username")="" then response.redirect "login.htm"
if (username="" or password="" ) and login<>"" then response.redirect "login.htm"
%>
<%
'if seesion("username")="" or (session("username")<>username and seesion("username")<>"") then
set cnn=server.createobject("adodb.connection")
set rst=server.CreateObject("adodb.recordset")
cnn.connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("Date\date.mdb ")
cnn.open
ssql="select * from users where user_name='"&username&"' and mm ='"&password&"' "
set rst =cnn.execute(ssql, ,adcmtext)
if rst.eof then
response.Write"<p align=center><b>Username or Password is error.sorry!</b></p>"
response.write"<p align=center><a href=login.asp>重新登录(restart login)</a></p>"
else
session("username")=rst("user_name")
session("level")=rst("purview_level")
end if
%>
3.3后台主要功能的实现
3.3.1添加学生信息资料
在学生信息管理系统首页(index.asp)单击“添加资料”链接,可以进入addinfo.asp页面,在该页面中输入学生资料,并提交给saveinfo.asp页面进行添加,将数据保存到数据库中。界面如下:
图1 添加页面addinfo.asp
实现功能脚本如下:
<!-- #include file="Date\adovbs.inc" -->
<%
Dim cnn, rst, sSQL
Dim StudentNum, StudentName, StudentSex, BirthDate, Department
Dim Speciality, Grade, sClass, ParentName, HomeAddr, HomePhone, Remark
StudentNum = Trim(Request.Form("txtStudentNum"))
StudentName = Trim(Request.Form("txtStudentName"))
StudentSex = Request.Form("optStudentSex")
BirthDate = Trim(Request.Form("txtBirthDate"))
Department = Trim(Request.Form("txtDepartment"))
Speciality = Trim(Request.Form("txtSpeciality"))
Grade = Trim(Request.Form("txtGrade"))
sClass = Trim(Request.Form("txtClass"))
ParentName = Trim(Request.Form("txtParentName"))
HomeAddr = Trim(Request.Form("txtHomeAddr"))
HomePhone = Trim(Request.Form("txtHomePhone"))
Remark = Trim(Request.Form("txtRemark"))
If StudentNum = "" Or StudentName = "" Then
Response.Redirect "addInfo.asp"
End If
Set cnn = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString = "PROVIDER=microsoft.jet.oledb.4.0;DATA SOURCE=" & server.mappath("Date\date.mdb")
cnn.Open
sSQL = "SELECT student_num FROM students WHERE student_num='" & StudentNum & "'"
Set rst = cnn.Execute(sSQL, , adCmdText)
If Not rst.EOF Then
Response.Write "<P>学号“" & rst("student_num") & "”已经存在,请重新输入!</P>"
Else
sSQL = "INSERT into students(student_num, student_name, " & "student_sex, birthdate, department, speciality,"
sSQL = sSQL & "grade, class, home_addr, parent_name, "
sSQL = sSQL & "home_phone, remark) VALUES('"
sSQL = sSQL & StudentNum & "','" & StudentName & "','" & StudentSex & "','" & BirthDate & "','"
sSQL = sSQL & Department & "','" & Speciality & "','" & Grade & "','" & sClass & "','"
sSQL = sSQL & HomeAddr & "','" & ParentName & "','" & HomePhone & "','" & Remark & "')"
cnn.Execute sSQL, , adCmdText
%>
<HR NOSHADE SIZE = "1" COLOR = "red">
<P class="STYLE1">数据保存成功!</P>
<% End If %>
3.3.2修改学生资料
在学生信息管理系统首页(index.asp)单击“修改资料”链接,可以进入editinfo.asp页面,在该页面中输入学生资料,并提交给editinfo2.asp页面进行修改,将数据进行修改操作中。界面如下:
图2 修改页面editinfo.asp
实现功能脚本如下:
<!-- #include file="Date\adovbs.inc" -->
<%
Dim cnn, rst, sSQL, StuNum
StuNum = Trim(Request.Form("txtStuNum"))
Set cnn = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString = "PROVIDER=microsoft.jet.oledb.4.0;DATA SOURCE=" & server.mappath("Date\date.mdb")
cnn.Open
If StuNum <> "" Then
sSQL = "SELECT * FROM students WHERE student_num='" & StuNum & "'"
Set rst = cnn.Execute(sSQL, , adCmdText)
If rst.EOF Then
Response.Write "<P><FONT COLOR = red>没有找到符合条件的记录!</FONT></P>"
Else
%>
<FORM METHOD = "post" ACTION = "editInfo2.asp">
<TABLE border="1" align="center" cellpadding="2" cellspacing="1" bordercolor="#0099FF" BGCOLOR = "#B5E6FF">
<TR ALIGN = "center">
<TH COLSPAN = "6" BGCOLOR = "#0034FF">
<FONT COLOR = "#FFFFFF">修改学生资料</FONT></TH>
</TR>
<TR>
<TD ALIGN = "right">学号:</TD>
<TD><INPUT TYPE = "text" NAME = "txtStudentNum" SIZE = "12"
VALUE = <% = rst("student_num")%>>
<INPUT TYPE = "hidden" NAME = "txtOldStuNum" SIZE = "12"
VALUE = <% = rst("student_num")%>></TD>
<TD ALIGN = "right">姓名:</TD>
<TD><INPUT TYPE = "text" NAME = "txtStudentName" SIZE = "12"
VALUE = <% = rst("student_name")%>></TD>
<TD ALIGN = "right">性别:</TD>
<TD><INPUT TYPE = "radio" VALUE = "男"
NAME="optStudentSex" <% = IIf( rst("student_sex") = "男") %>>男
<INPUT TYPE="radio" VALUE="女"
NAME="optStudentSex" <% = IIf( rst("student_sex") = "女") %>>女</TD>
</TR>
<TR>
<TD ALIGN = "right">出生日期:</TD>
<TD><INPUT TYPE = "text" NAME = "txtBirthDate" SIZE = "12"
VALUE = <% = rst("birthdate") %>></TD>
<TD ALIGN = "right">所在院系:</TD>
<TD><INPUT TYPE = "text" NAME = "txtDepartment" SIZE = "12"
VALUE = <% = rst("department") %>></TD>
<TD ALIGN = "right">所在专业:</TD>
<TD><INPUT TYPE = "text" NAME = "txtSpeciality" SIZE = "12"
VALUE = <% = rst("speciality") %>></TD>
</TR>
<TR>
<TD ALIGN = "right">年级:</TD>
<TD><INPUT TYPE = "text" NAME = "txtGrade" SIZE = "12"
VALUE = <% = rst("grade") %>></TD>
<TD ALIGN = "right">班级:</TD>
<TD><INPUT TYPE = "text" NAME = "txtClass" SIZE = "12"
VALUE = <% = rst("class") %>></TD>
<TD ALIGN = "right">家长姓名:</TD>
<TD><INPUT TYPE = "text" NAME = "txtParentName" SIZE = "12"
VALUE = <% = rst("parent_name") %>></TD>
</TR>
<TR>
<TD ALIGN = "right">家庭住址:</TD>
<TD COLSPAN = "3"><INPUT TYPE = "text"
NAME = "txtHomeAddr" SIZE = "33" VALUE = <% = rst("home_addr") %>></TD>
<TD ALIGN = "right">住宅电话:</TD>
<TD><INPUT TYPE = "text" NAME = "txtHomePhone" SIZE = "12"
VALUE = <% = rst("home_phone") %>></TD>
</TR>
<TR>
<TD ALIGN = "right">备注:</TD>
<TD COLSPAN = "5"><TEXTAREA ROWS = "3" NAME = "txtRemark"
COLS = "58"><% = rst("remark") %></TEXTAREA></TD>
</TR>
<TR ALIGN = "center">
<TD COLSPAN = "6"><INPUT TYPE = "submit" VALUE = "保存数据"
NAME = "btnSave">
<INPUT TYPE="reset" VALUE = "全部重写"
NAME = "btnReset"></TD>
</TR>
</TABLE>
</FORM>
<%
End If
End If
%>
Editinfo2.asp页面脚本如下:
<!-- #include file="Date\adovbs.inc" -->
<%
Dim cnn, rst, sSQL
Dim StudentNum, StudentName, StudentSex, BirthDate, Department
Dim Speciality, Grade, sClass, ParentName, HomeAddr, HomePhone, Remark
NewStuNum = Trim(Request.Form("txtStudentNum"))
OldStuNum = Trim(Request.Form("txtOldStuNum"))
StudentName = Trim(Request.Form("txtStudentName"))
StudentSex = Request.Form("optStudentSex")
BirthDate = Trim(Request.Form("txtBirthDate"))
Department = Trim(Request.Form("txtDepartment"))
Speciality = Trim(Request.Form("txtSpeciality"))
Grade = Trim(Request.Form("txtGrade"))
sClass = Trim(Request.Form("txtClass"))
ParentName = Trim(Request.Form("txtParentName"))
HomeAddr = Trim(Request.Form("txtHomeAddr"))
HomePhone = Trim(Request.Form("txtHomePhone"))
Remark = Trim(Request.Form("txtRemark"))
If NewStuNum = "" Or StudentName = "" Then
Response.Redirect "editInfo.asp"
End If
Set cnn = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString = "PROVIDER=microsoft.jet.oledb.4.0;DATA SOURCE=" & server.mappath("Date\date.mdb")
cnn.Open
sSQL = "UPDATE students SET student_num='" & NewStuNum & "', student_name='"
sSQL = sSQL & StudentName & "', student_sex='" & StudentSex & "', birthdate='"
sSQL = sSQL & BirthDate & "', department='" & Department & "', speciality='"
sSQL = sSQL & Speciality & "',grade='" & Grade & "', class='" & sClass & "', home_addr='"
sSQL = sSQL & HomeAddr & "', parent_name='" & ParentName & "', home_phone='"
sSQL = sSQL & HomePhone & "', remark='" & Remark & "' "
sSQL = sSQL & " WHERE student_num='" & OldStuNum & "'"
cnn.Execute sSQL, , adCmdText
%>
3.3.3删除资料
在学生信息管理系统首页(index.asp)单击“删除资料”链接,可以进入deleteinfo.asp页面,在该页面中输入一个指定的学号并单击”提交”按钮,如果找到匹配的学生记录,则以表格形式显示出该学生的详细资料,此时发给deletetinfo2.asp页面进行删除操作。
功能脚本如下:
<!-- #include file="Date\adovbs.inc" -->
<%Dim cnn, rst, sSQL, StuNum
StuNum = Trim(Request.Form("txtStuNum"))
Set cnn = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
cnn.ConnectionString = "PROVIDER=microsoft.jet.oledb.4.0;DATA SOURCE=" & server.mappath("Date\date.mdb")
cnn.Open
If StuNum <> "" Then
sSQL = "SELECT * FROM students WHERE student_num = '" & StuNum & "'"
Set rst = cnn.Execute(sSQL, , adCmdText)
If rst.EOF Then%>
<P><FONT COLOR = "red">没有找到符合条件的记录!</FONT></P>
<% Else %>
<TABLE BORDER = "1" align="center" cellpadding="2" cellspacing="1" bordercolor="#0099FF" bgcolor="#B5E6FF">
<CAPTION><B>学号为“<% = StuNum %>”的学生资料如下:</B></CAPTION><TR>
<TD NumWRAP NOWRAP>学号:</TD><TD><% = rst("student_num") %></TD>
<TD>姓名:</TD><TD> <% = rst("student_name") %></TD>
<TD>性别:</TD><TD><% = rst("student_sex") %></TD></TR><TR>
<TD NOWRAP>出生日期:</TD><TD><% = rst("birthdate") %></TD>
<TD>所在院系:</TD><TD><% = rst("department") %></TD>
<TD>所在专业:</TD><TD><% = rst("speciality") %></TD></TR><TR>
<TD NOWRAP>年级:</TD><TD><% = rst("grade") %></TD>
<TD>班级:</TD><TD><% = rst("class") %></TD>
<TD>家长姓名:</TD><TD><% = rst("parent_name") %></TD></TR><TR>
<TD NOWRAP>家庭住址:</TD>
<TD COLSPAN = "3"><% = rst("home_addr") %></TD>
<TD>住宅电话:</TD><TD><% = rst("home_phone") %></TD></TR><TR>
<TD NOWRAP>备注:</TD>
<TD COLSPAN = "5"><% = rst("remark") %></TD></TR></TABLE>
<P><A HREF = "deleteInfo2.asp?stu_num=<% =rst("student_num") %>">
删除记录</A></P>
<% End If %>
<% End If %>
执行deletetinfo2.asp页面后显示某学生已被删除。
3.3.4查询资料
在学生信息管理系统首面上单击”查询资料”链接,即可进入browseinfo.asp页面,在该页面中首先可以选择一种查询方式,然后输入关键字的值,并单击”查询”铵钮,如果找到匹配的学生信息记录,则以表格的形式显示出来简要资料,其中学号以超链接形式显示.如果想要查看某个学生的详细资料,单击相应的学号,以打开detailinfo.asp页面,显示出该生的详细资料,如图: