基于ASP学生信息管理系统论文教学内容.doc
Good is good, but better carries it.精益求精,善益求善。基于ASP学生信息管理系统论文-ASP+ACCESS04010201-04010210作者:何剑班级:040102摘要随着科学技术的发展,计算机领域不断取得新的研究成果。并不断地代替和延伸脑力劳动方面发挥越来越重要的作用,无论是工业还是日常生活都越来越离不开计算机,尤其是在学校里,随着不同高校的的不断扩大和招生人数的不断增加,要处理大量的学生数据信息显得尤为的重要。学生的信息管理是学校工作中一项重要的内容。本系统论文主要是管理学生的资料。重点介绍其功能:信息添加、信息修改、信息的删除及信息查询。使用进行静态页面设计,应用ASP程序进行后台管理操作,并用Access进行后台数据库的连接设计。主要是以四大功能进行系统的设计和实现。关键词:DreamweaverMX2004系统站点设计ASPAccess数据库1.1 开发工具的介绍1.1.1 ASPASP(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.2 AccessAccess是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如SQLServer2000)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。Access可以实现建立数据库、报表,以及对数据库、报表的修改、查询等功能。第2章 Access随着Windows操作系统和Offices办公自动化应用软件的普及,Access各个版本变得与其他Office成员集成得越来越紧密。Office2000的所有成员和VisualBasic6.0现在共享的是同样的VisualBasicforApplications(VBA)版本6.0。Access2000最后采纳了Office2000VBA编辑器(也叫做集成开发环境或者IDE)用于编写VBA代码来自动操作Access应用。不论好坏,Access2000还共享了Office2000新的超文本标记语言(HTML)帮助系统。Access最主要用的是创建数据库,并建立相应的软件的连接。如ODBC的连接。系统的需求分析和设计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:用户登录界面主页面的实现图2:主页面学生信息管理系统主要是与数据库的连接,然后数据库的连接必须使用ADO的内置Connection对象,并且调用Recordset对象来进行与数据库的查找、删除、更改等功能,具体脚本如下:<%dimusername,passworddimcnn,rst,ssqlusername=trim(request.form("txtusername")password=trim(request.form("txtpassword")login=request.form("btnlogin")'iflogin=""andsession("username")=""thenresponse.redirect"login.htm"if(username=""orpassword="")andlogin<>""thenresponse.redirect"login.htm"%><%'ifseesion("username")=""or(session("username")<>usernameandseesion("username")<>"")thensetcnn=server.createobject("adodb.connection")setrst=server.CreateObject("adodb.recordset")cnn.connectionstring="provider=microsoft.jet.oledb.4.0;datasource="&server.MapPath("Datedate.mdb")cnn.openssql="select*fromuserswhereuser_name='"&username&"'andmm='"&password&"'"setrst=cnn.execute(ssql,adcmtext)ifrst.eofthenresponse.Write"<palign=center><b>UsernameorPasswordiserror.sorry!</b></p>"response.write"<palign=center><ahref=login.asp>重新登录(restartlogin)</a></p>"elsesession("username")=rst("user_name")session("level")=rst("purview_level")endif%>3.3 后台主要功能的实现3.3.1 添加学生信息资料在学生信息管理系统首页(index.asp)单击“添加资料”链接,可以进入addinfo.asp页面,在该页面中输入学生资料,并提交给saveinfo.asp页面进行添加,将数据保存到数据库中。界面如下:图1添加页面addinfo.asp实现功能脚本如下:<!-#includefile="Dateadovbs.inc"-><%Dimcnn,rst,sSQLDimStudentNum,StudentName,StudentSex,BirthDate,DepartmentDimSpeciality,Grade,sClass,ParentName,HomeAddr,HomePhone,RemarkStudentNum=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")IfStudentNum=""OrStudentName=""ThenResponse.Redirect"addInfo.asp"EndIfSetcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.OpensSQL="SELECTstudent_numFROMstudentsWHEREstudent_num='"&StudentNum&"'"Setrst=cnn.Execute(sSQL,adCmdText)IfNotrst.EOFThenResponse.Write"<P>学号“"&rst("student_num")&"”已经存在,请重新输入!</P>"ElsesSQL="INSERTintostudents(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.ExecutesSQL,adCmdText%><HRNOSHADESIZE="1"COLOR="red"><Pclass="STYLE1">数据保存成功!</P><%EndIf%>3.3.2 修改学生资料在学生信息管理系统首页(index.asp)单击“修改资料”链接,可以进入editinfo.asp页面,在该页面中输入学生资料,并提交给editinfo2.asp页面进行修改,将数据进行修改操作中。界面如下:图2修改页面editinfo.asp实现功能脚本如下:<!-#includefile="Dateadovbs.inc"-><%Dimcnn,rst,sSQL,StuNumStuNum=Trim(Request.Form("txtStuNum")Setcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.OpenIfStuNum<>""ThensSQL="SELECT*FROMstudentsWHEREstudent_num='"&StuNum&"'"Setrst=cnn.Execute(sSQL,adCmdText)Ifrst.EOFThenResponse.Write"<P><FONTCOLOR=red>没有找到符合条件的记录!</FONT></P>"Else%><FORMMETHOD="post"ACTION="editInfo2.asp"><TABLEborder="1"align="center"cellpadding="2"cellspacing="1"bordercolor="#0099FF"BGCOLOR="#B5E6FF"><TRALIGN="center"><THCOLSPAN="6"BGCOLOR="#0034FF"><FONTCOLOR="#FFFFFF">修改学生资料</FONT></TH></TR><TR><TDALIGN="right">学号:</TD><TD><INPUTTYPE="text"NAME="txtStudentNum"SIZE="12"VALUE=<%=rst("student_num")%>><INPUTTYPE="hidden"NAME="txtOldStuNum"SIZE="12"VALUE=<%=rst("student_num")%>></TD><TDALIGN="right">姓名:</TD><TD><INPUTTYPE="text"NAME="txtStudentName"SIZE="12"VALUE=<%=rst("student_name")%>></TD><TDALIGN="right">性别:</TD><TD><INPUTTYPE="radio"VALUE="男"NAME="optStudentSex"<%=IIf(rst("student_sex")="男")%>>男<INPUTTYPE="radio"VALUE="女"NAME="optStudentSex"<%=IIf(rst("student_sex")="女")%>>女</TD></TR><TR><TDALIGN="right">出生日期:</TD><TD><INPUTTYPE="text"NAME="txtBirthDate"SIZE="12"VALUE=<%=rst("birthdate")%>></TD><TDALIGN="right">所在院系:</TD><TD><INPUTTYPE="text"NAME="txtDepartment"SIZE="12"VALUE=<%=rst("department")%>></TD><TDALIGN="right">所在专业:</TD><TD><INPUTTYPE="text"NAME="txtSpeciality"SIZE="12"VALUE=<%=rst("speciality")%>></TD></TR><TR><TDALIGN="right">年级:</TD><TD><INPUTTYPE="text"NAME="txtGrade"SIZE="12"VALUE=<%=rst("grade")%>></TD><TDALIGN="right">班级:</TD><TD><INPUTTYPE="text"NAME="txtClass"SIZE="12"VALUE=<%=rst("class")%>></TD><TDALIGN="right">家长姓名:</TD><TD><INPUTTYPE="text"NAME="txtParentName"SIZE="12"VALUE=<%=rst("parent_name")%>></TD></TR><TR><TDALIGN="right">家庭住址:</TD><TDCOLSPAN="3"><INPUTTYPE="text"NAME="txtHomeAddr"SIZE="33"VALUE=<%=rst("home_addr")%>></TD><TDALIGN="right">住宅电话:</TD><TD><INPUTTYPE="text"NAME="txtHomePhone"SIZE="12"VALUE=<%=rst("home_phone")%>></TD></TR><TR><TDALIGN="right">备注:</TD><TDCOLSPAN="5"><TEXTAREAROWS="3"NAME="txtRemark"COLS="58"><%=rst("remark")%></TEXTAREA></TD></TR><TRALIGN="center"><TDCOLSPAN="6"><INPUTTYPE="submit"VALUE="保存数据"NAME="btnSave"> <INPUTTYPE="reset"VALUE="全部重写"NAME="btnReset"></TD></TR></TABLE></FORM><%EndIfEndIf%>Editinfo2.asp页面脚本如下:<!-#includefile="Dateadovbs.inc"-><%Dimcnn,rst,sSQLDimStudentNum,StudentName,StudentSex,BirthDate,DepartmentDimSpeciality,Grade,sClass,ParentName,HomeAddr,HomePhone,RemarkNewStuNum=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")IfNewStuNum=""OrStudentName=""ThenResponse.Redirect"editInfo.asp"EndIfSetcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.OpensSQL="UPDATEstudentsSETstudent_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&"WHEREstudent_num='"&OldStuNum&"'"cnn.ExecutesSQL,adCmdText3.3.3 %>删除资料在学生信息管理系统首页(index.asp)单击“删除资料”链接,可以进入deleteinfo.asp页面,在该页面中输入一个指定的学号并单击”提交”按钮,如果找到匹配的学生记录,则以表格形式显示出该学生的详细资料,此时发给deletetinfo2.asp页面进行删除操作。功能脚本如下:<!-#includefile="Dateadovbs.inc"-><%Dimcnn,rst,sSQL,StuNumStuNum=Trim(Request.Form("txtStuNum")Setcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.OpenIfStuNum<>""ThensSQL="SELECT*FROMstudentsWHEREstudent_num='"&StuNum&"'"Setrst=cnn.Execute(sSQL,adCmdText)Ifrst.EOFThen%><P><FONTCOLOR="red">没有找到符合条件的记录!</FONT></P><%Else%><TABLEBORDER="1"align="center"cellpadding="2"cellspacing="1"bordercolor="#0099FF"bgcolor="#B5E6FF"><CAPTION><B>学号为“<%=StuNum%>”的学生资料如下:</B></CAPTION><TR><TDNumWRAPNOWRAP>学号:</TD><TD><%=rst("student_num")%></TD><TD>姓名:</TD><TD><%=rst("student_name")%></TD><TD>性别:</TD><TD><%=rst("student_sex")%></TD></TR><TR><TDNOWRAP>出生日期:</TD><TD><%=rst("birthdate")%></TD><TD>所在院系:</TD><TD><%=rst("department")%></TD><TD>所在专业:</TD><TD><%=rst("speciality")%></TD></TR><TR><TDNOWRAP>年级:</TD><TD><%=rst("grade")%></TD><TD>班级:</TD><TD><%=rst("class")%></TD><TD>家长姓名:</TD><TD><%=rst("parent_name")%></TD></TR><TR><TDNOWRAP>家庭住址:</TD><TDCOLSPAN="3"><%=rst("home_addr")%></TD><TD>住宅电话:</TD><TD><%=rst("home_phone")%></TD></TR><TR><TDNOWRAP>备注:</TD><TDCOLSPAN="5"><%=rst("remark")%></TD></TR></TABLE><P><AHREF="deleteInfo2.asp?stu_num=<%=rst("student_num")%>">删除记录</A></P><%EndIf%><%EndIf%>执行deletetinfo2.asp页面后显示某学生已被删除。3.3.4 查询资料在学生信息管理系统首面上单击”查询资料”链接,即可进入browseinfo.asp页面,在该页面中首先可以选择一种查询方式,然后输入关键字的值,并单击”查询”铵钮,如果找到匹配的学生信息记录,则以表格的形式显示出来简要资料,其中学号以超链接形式显示.如果想要查看某个学生的详细资料,单击相应的学号,以打开detailinfo.asp页面,显示出该生的详细资料,如图:图6查询页面browsetinfo.asp其功能脚本如下:<!-#includefile="Dateadovbs.inc"-><%Dimcnn,rst,sSQL,currentPage,rowCount,iIfRequest.Form("btnSubmit")=""ThenResponse.EndEndIfcurrentPage=Request.QueryString("currentPage")IfcurrentPage=""ThencurrentPage=1EndIfSetcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.Openrst.CursorType=adOpenStaticrst.PageSize=5Field=Request.Form("lstFld")Value=Trim(Request.Form("txtValue")IfField="all"ThensSQL="SELECT*FROMstudentsORDERBYstudent_num"EndIfIfField<>"all"AndValue<>""ThensSQL="SELECT*FROMstudentsWHERE"&Field&"='"&Value&"'ORDERBYstudent_num"EndIfrst.OpensSQL,cnnIfrst.EOFThenResponse.Write"<P><FONTCOLOR=red>没有找到符合条件的记录!</FONT></P>"ElserowCount=0%><TABLEWIDTH="40%"BORDER="1"cellpadding="2"cellspacing="1"bordercolor="#0099FF"><CAPTION><B>查询结果:</B>共<%=rst.RecordCount%>个学生<TR><TH>学号</TH><TH>姓名</TH><TH>性别</TH><TH>出生日期</TH></TR><%WhileNotrst.EOFAndrowCount<rst.PageSize%><TR><TD><AHREF=detailInfo.asp?StuNum=<%=rst("student_num")%>><%=rst("student_num")%></A></TD><TD><%=rst("student_name")%></TD><TD><%=rst("student_sex")%></TD><TD><%=rst("birthdate")%></TD></TR><%rowCount=rowCount+1rst.MoveNextWend%></TABLE><P>每页<%=rst.PageSize%>个学生 当前页次:<%=currentPage%>/<%=rst.PageCount%>页 <%Fori=1Torst.PageCountIfi=CInt(currentPage)Then%><FONTCOLOR="red"><%=i%></FONT> <%Else%><AHREF="browseInfo.asp?currentPage=<%=i%>"><%=i%></A> <%EndIfNextEndIf%>3.3.5 访问权限管理系统管理员的权限级别为3,以系统管理员身份登录学生信息管理系统时,可以首面上看到“更改级别”链接,单击即可进入changlevel.asp页面中,可以进行对某个用户的权限级别进行修改。图如下:功能脚本如下:<%Dimcnn,rts,sSQL,UserName,LevelIfSession("UserName")=""OrSession("Level")<>3ThenResponse.Write"<P>你没有访问本页面的权限!</P>"Response.EndEndIfUserName=Trim(Request.Form("txtUserName")Level=Request.Form("optLevel")Setcnn=Server.CreateObject("ADODB.Connection")Setrst=Server.CreateObject("ADODB.Recordset")cnn.ConnectionString="PROVIDER=microsoft.jet.oledb.4.0;DATASOURCE="&server.mappath("Datedate.mdb")cnn.OpensSQL="SELECT*FROMusersWHEREuser_name='"&UserName&"'"Setrst=cnn.Execute(sSQL,adCmdText)%><%IfUserName<>""Andrst.EOFThenResponse.Write"<FONTCOLOR=red>用户“"&UserName&"”不存在!</FONT>"EndIfIfUserName<>""AndNotrst.EOFThensSQL="UPDATEusersSETpurview_level="&Level&"WHEREuser_name='"&UserName&"'"cnn.ExecutesSQL,adCmdTextResponse.Write"用户“"&UserName&"”的权限级别已被更改为"&Level&"级!"EndIf%>第4章 结论经过将近一个多月的学生信息管理系统的课程设计,其功能基本符合用户需求,能够完成学生信息管理的添加信息、删除信息、修改信息及查询资料等功能。通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生信息处理管理进行管理、输入、输出、查找的所需操作,使零乱的学生信息能够更加具体化,直观化、合理化地适用于教育方面与大中小型的学校管理,对学生的资料可以随时随地的输入、输出、查找、修改。也同时增加了管理员权限管理的设置,使得整个系统有了更好了防护。虽然本系统是参考书上的例子,但我们也从发现