asp课程设计(学生信息管理系统).doc
一、 课程设计题目二、 课程设计目的三、 设计概述四、 设计思想五、 设计任务六、 设计要求七、 设计步骤八、设计代码八、 参考文献十、设计体会.一、课程设计题目学生信息管理系统二、 课程设计目的 本课程的课程设计实际是学习完ASP网络程序设计课程后,进行的一次全面的综合训练,其目的在于使学生对于网络信息及网络信息发布有更加深入的理解,提高学生在实际操作中收集信息、对信息进行价值判断、进行信息整理、信息加工的能力,提高学生的网页设计与制作能力,使学生进一步掌握网络信息发布的原理及网络信息发布所需要的软件、硬件条件,使学生掌握利用软硬件资源发布一个具体网站的操作过程。三、设计概述学生信息管理系统是一个典型的信息管理系统。作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。现代人事工作的信息量越来越大,而且信息的密度不断提高,靠传统的管理方法和人工操作手段已经无法搞好人事管理工作。而计算机作为数据处理系统,已逐渐成为人事管理现代化的重要手段,在人事管理中正在发挥着重要的作用。并能使学校学生信息管理更加方便。一方面对学校的众多学生的信息进行动态地管理、修改、添加、删除等操作十分方便快捷,不必再像原来一样准备一个巨大的档案库,节约了成本,提高了实效性,并减少了出错率。四、 设计思想 学生信息的管理是学校经常遇到的问题。高校招生规模的逐步扩大和认识制度的改革,在校学生认识将不断增加,而学生管理人员则相对减少。加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。在计算机飞速发展的今天,应用数据库技术实现学生信息的管理是可行而必要的工作,实现高校学生管理信息系统,既能够提高工作效率,又可以提高工作水平。五、 设计任务系统功能划分“学生信息管理系统”共分三大的模块:档案管理系统模块、成绩管理系统模块、考试管理系统模块。下面我将分别阐述各个模块的功能:1.档案管理系统模块:(1) 学生信息录入模块.对新增的学生信息进行录入操作。(2) 学生信息查询模块.为使用者提供各种不同的查询途径,可根据个人需要进行查询。(3) 学生信息删除和修改模块.先对需要进行操作的学生信息进行查询,然后对已存的学生信息进行删除或者修改操作。(4)学生信息打印模块。实现打印和打印预览功能,可以将查询结果以我们常见的形式打印出来,并可以自定义打印格式。(5)班级管理模块。对班级进行添加和删除操作。2.成绩管理模块:(1)录入成绩模块。(2)删除/修改学生成绩模块。3.考试管理模块:(1)添加新考试模块。(2)对已有的考试信息进行修改/删除模块。(3)对考试科目进行添加/删除模块。六、 设计要求1、 针对所选题目的用户要求,设计数据库;2、 完成系统功能模块设计,能高效的管理学生信息。3、 遇有不能解决的技术问题应及时与指导老师取得联系。七、 设计步骤(包括流程图或框图)(一) 程序流程图学生数据表学生信息录入 数据库班级数据表班级信息录入学生档案管理成绩数据表学生成绩录入学生成绩管理管理人员考试信息录入学生考试管理(二) 功能结构图 学生信息录入模块 学生档案管理系统 学生信息查询模块 学生信息修改/删除模块 学生信息打印模块 学生信息管理系统 录入学生成绩模块 学生成绩管理模块 修改/删除学生成绩模块 添加新考试模块 考试管理模块 对已有的考试信息进行修改/删除模块 对考试科目进行添加/删除模块(三) 3、数据库设计1. 学生(Student)信息表StudentNumNameSexFolkPlaceBirthdayAddressTelNum2. 班级(Class)表IDClassNameClassidGrade3. 成绩(Score)表StudentnumSubjectNameMark4. 考试(Test)信息表IDSheetNameTestName八、 设计代码<%LANGUAGE="VBSCRIPT"%><!-#include file="Connections/StudentConn.asp" -><%Dim rsGrade1_MMColParamrsGrade1_MMColParam = "0"If (Request("MM_EmptyValue") <> "") Then rsGrade1_MMColParam = Request("MM_EmptyValue")End If%><%Dim rsGrade1Dim rsGrade1_numRowsSet rsGrade1 = Server.CreateObject("ADODB.Recordset")rsGrade1.ActiveConnection = MM_StudentConn_STRINGrsGrade1.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade1_MMColParam, "''", "''''") + " ORDER BY ClassID ASC"rsGrade1.CursorType = 0rsGrade1.CursorLocation = 2rsGrade1.LockType = 1rsGrade1.Open()rsGrade1_numRows = 0%><%Dim rsGrade2_MMColParamrsGrade2_MMColParam = "1"If (Request("MM_EmptyValue") <> "") Then rsGrade2_MMColParam = Request("MM_EmptyValue")End If%><%Dim rsGrade2Dim rsGrade2_numRowsSet rsGrade2 = Server.CreateObject("ADODB.Recordset")rsGrade2.ActiveConnection = MM_StudentConn_STRINGrsGrade2.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade2_MMColParam, "''", "''''") + " ORDER BY ClassID ASC"rsGrade2.CursorType = 0rsGrade2.CursorLocation = 2rsGrade2.LockType = 1rsGrade2.Open()rsGrade2_numRows = 0%><%Dim rsGrade3_MMColParamrsGrade3_MMColParam = "2"If (Request("MM_EmptyValue") <> "") Then rsGrade3_MMColParam = Request("MM_EmptyValue")End If%><%Dim rsGrade3Dim rsGrade3_numRowsSet rsGrade3 = Server.CreateObject("ADODB.Recordset")rsGrade3.ActiveConnection = MM_StudentConn_STRINGrsGrade3.Source = "SELECT * FROM Class WHERE Grade = " + Replace(rsGrade3_MMColParam, "''", "''''") + " ORDER BY ClassID ASC"rsGrade3.CursorType = 0rsGrade3.CursorLocation = 2rsGrade3.LockType = 1rsGrade3.Open()rsGrade3_numRows = 0%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.0 Transitional/EN"><HTML><HEAD><TITLE>学生信息查询</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><META content="MSHTML 6.00.2600.0" Name=GENERATOR><link href="home.css" rel="stylesheet" type="text/css"><script language="JavaScript" type="text/JavaScript">function check1() if(document.form1.StudentNum.value="") alert("你还没有填学号"); document.form1.StudentNum.focus(); return false; function check2() if(document.form2.Name.value="") alert("你还没有填姓名"); document.form2.Name.focus(); return false; </script><script language="JavaScript" type="text/JavaScript">function ChangeClass()var i;for(i=document.form3.ClassSelect.options.length-1;i>=0;i-)document.form3.ClassSelect.optionsi=null;switch(document.form3.Grade.selectedIndex)case 0:for(i=0;i<document.Classes.Grade1.options.length;i+)document.form3.ClassSelect.optionsi=new Option(document.Classes.Grade1.optionsi.text,document.Classes.Grade1.optionsi.value);break;case 1:for(i=0;i<document.Classes.Grade2.options.length;i+)document.form3.ClassSelect.optionsi=new Option(document.Classes.Grade2.optionsi.text,document.Classes.Grade2.optionsi.value);break;case 2:for(i=0;i<document.Classes.Grade3.options.length;i+)document.form3.ClassSelect.optionsi=new Option(document.Classes.Grade3.optionsi.text,document.Classes.Grade3.optionsi.value);break;</script><script language="JavaScript" type="text/JavaScript"><!-function MM_reloadPage(init) /reloads the window if Nav4 resized if (init=true) with (navigator) if (appName="Netscape")&&(parseInt(appVersion)=4) document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; else if (innerWidth!=document.MM_pgW | innerHeight!=document.MM_pgH) location.reload();MM_reloadPage(true);/-></script></HEAD><BODY text=# bgColor=#ffffff leftMargin=0 topMargin=0><div id="Layer1" style="position:absolute; left:445px; top:220px; width:188px; height:64px; z-index:1; visibility: hidden;"> <form name="Classes" method="post" action=""> <select name="Grade1" id="select"> <option value="All">全级</option> <%While (NOT rsGrade1.EOF)%> <option value="<%=(rsGrade1.Fields.Item("ClassID").Value)%>"><%=(rsGrade1.Fields.Item("grade").Value)%></option> <% rsGrade1.MoveNext()WendIf (rsGrade1.CursorType > 0) Then rsGrade1.MoveFirstElse rsGrade1.RequeryEnd If%> </select> <select name="Grade2" id="select2"> <option value="All">全级</option> <%While (NOT rsGrade2.EOF)%> <option value="<%=(rsGrade2.Fields.Item("ClassID").Value)%>"><%=(rsGrade2.Fields.Item("grade").Value)%></option> <% rsGrade2.MoveNext()WendIf (rsGrade2.CursorType > 0) Then rsGrade2.MoveFirstElse rsGrade2.RequeryEnd If%> </select> <select name="Grade3" id="Grade3"> <option value="All">全级</option> <%While (NOT rsGrade3.EOF)%> <option value="<%=(rsGrade3.Fields.Item("ClassID").Value)%>"><%=(rsGrade3.Fields.Item("ClassName").Value)%></option> <% rsGrade3.MoveNext()WendIf (rsGrade3.CursorType > 0) Then rsGrade3.MoveFirstElse rsGrade3.RequeryEnd If%> </select> </form></div><!-#include file="InfoManage_top.asp" -><TABLE width="760" border=0 align="center" cellPadding=0 cellSpacing=0> <TBODY> <TR> <TD width=1 background="images/dotLine_h.gif"><IMG src=" width=1></TD> <TD Width="100" align="center" bgcolor="#EEEEEE"> </TD> <td width="10" bgcolor="#F2FBF2"></td> <TD bgcolor="#F2FBF2"><img src=" <br> <b>请输入查询的条件:</b> <table width="300" border="0" cellspacing="0" cellpadding="5"> <form Name="form1" onSubmit="return check1()" action="InfoQuery1.asp" method="post"> <tr> <td width="80" align="right" nowrap>按学号查询:</td> <td width="150"> <input name="StudentNum" type="text" id="StudentNum" size="18" maxlength="8"></td> <td width="44"> <input type="submit" name="Submit1" value="查询"></td> </tr> </form> <form Name="form2" onSubmit="return check2()" action="InfoQuery1.asp" method="post"> <tr> <td width="80" align="right" nowrap>按姓名查询:</td> <td width="150"> <input type="text" name="Name" maxlength="8" size="18"></td> <td> <input type="submit" name="Submit2" value="查询"></td> </tr> </form> <form Name="form3" action="InfoQuery1.asp" method="post"> </form> </table> <p><b>注:</b><br> 1、可从学号、姓名查询方法任选其一进行查询。<br> <br> 2、支持模糊查询!</font><br> 例如:<br> 在学号查询框中输入08014,则查询结果为学号中包含“08014”的学生<br> 在姓名中输入“小”,则查询结果为姓名中包含有“小”的学生<br> <br> <br> </p></td> <TD width=1 background="images/dotLine_h.gif"><IMG src=" width=1></TD> </TR> <tr> <TD height="1" colspan="7" background="images/dotLine_w.gif"><IMG height=1 src=" width=100></TD> </tr> </TBODY></TABLE><table width="760" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td></td> </tr></table></BODY></HTML><%rsGrade1.Close()Set rsGrade1 = Nothing%><%rsGrade2.Close()Set rsGrade2 = Nothing%><%rsGrade3.Close()Set rsGrade3 = Nothing%><%'' * Restrict Access To Page: Grant or deny access to this pageMM_authorizedUsers=""MM_authFailedURL="Login.asp"MM_grantAccess=falseIf Session("MM_UserName") <> "" Then If (true Or CStr(Session("MM_UserAuthorization")="") Or _ (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization")>=1) Then MM_grantAccess = true End IfEnd IfIf Not MM_grantAccess Then MM_qsChar = "?" If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&" MM_referrer = Request.ServerVariables("URL") if (Len(Request.QueryString() > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString() MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer) Response.Redirect(MM_authFailedURL)End If%>九、 参考文献肖志刚、张维、韩璐 .ASP 动态网页设计运用培训教程M. 电子工业出版社,2004年. 王国荣. ASP网页制作教程M. 人民邮电出版社.2000年申莉莉. 数据库系统与ACCESS教程M. 清华大学出版社.2003年.史济民、汤观全. ACCESS应用系统开发教程M. 清华大学出版社.2004年.十、 设计体会在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对与学生信息管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我认为这次的课程设计意义很深。