摘要 通过学生信息管理系统的开发的实例,讲解有关采用ASP+Access数据库联合定制一个小型的学生信息管理程序的方法。采用了模块化设计方法,根据用户的需求及程序的应用与维护的易用性,将系统的各部分放在不同的模块中,便于维护和拓展功能。 第一章 前言 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。 1.1 设计思想 通过网站,向人们提供一个宽松、便捷的空间。21世纪是网络高速发展的时期!在这一时期,互联网凭借它无与伦比的优势主宰着21世纪经济的发展!互联网在人们生活中所起的作用越来越大!我们足不出户就能感受外面的世界带给我们的刺激与生动。 学校是造就人才的摇篮,学生是祖国的希望,如何能很好的管理学生在学校的一切信息已经是我们人力所不及的了。电脑是一个高科技发展的结晶,我们可以通过网站开发编程技术实现学生信息化发展的的一次重大革命!从而是我们的生活迈向一个崭新的篇章。 1.2 设计目的 往往管理学生档案信息是非常繁琐和极为重要的工作.我们在学习和工作中作出的努力怎样才能得到很好地保存与管理已经是我们所关心的问题了。为此,通过ASP+Access技术来编写一部管理学生信息的程序来方便学生和老师。 第二章 编程环境的概述 2.1.1 ASP 语言 随着网络技术的日益发展.ASP逐渐被人们所接受并广泛应用。ASP是一个Webs设计的学生信息管理系统采用ASP开发。 ASP的优势: Active Server Pages:“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或 java script是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(Client)在IE浏览器中可以显示程序执行的结果,可是,客户端(Client)若使用Netscape浏览器就无法显示VBScript的执行结果。ASP的特点:● 无需编译 ASP脚本集成与HTML当中,容易生成,无需编译或链接即可解释执行。 ● 易于生成 使用常规文本编辑器(记事本),即可进行*.asp页面的设计。 ● 独立于浏览器 用户端只要使用可解释常规HTML码的浏览器,即可浏览使用ASP技术设计的网页。ASP脚本是在站点服务器端执行的,用户端不需要它。 ●面向对象 在ASP脚本中可以方便地引用系统组件和ASP的内置组件。 ●源程序代码不会外泄 ASP脚本在服务器上执行传到用户浏览器的只是ASP执行结果所产生的常规的HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被别人盗取。
2.2 Access数据库 Access作为Microsoft office套件中的数据库管理软件,其图形化界面使数据库管理更加简洁、灵活,同时又更具有丰富的编程接口及强大的报表功能,为用户从事程序开发提供更多的方便。 一个全面的Access应用至少涉及3种基本Access对象类型 表用于存储用户向数据库中添加的数据。 窗体用于显示与输入数据,控制其他窗体的打开可关闭,以及打印报表。 报表打印表中的细节信息、总结信息或将两者都进行打印。 ASP的工作环境 Access作为Office套件之一,其页面风格与Word、Excel、PowerPoint基本相同。Access窗口是其工作环境的核心 Access窗口主要是由标题栏、菜单栏、工具栏数据库窗口、任务窗口、状态栏6个部分组成。 第三章 需求分析 3.1功能需求 由于本程序针对学校学生及学校管理员两大人群,针对这两个不同的主体,我们要实现其不同的需要,所以我们有针对性的划分两个不同的区域,来满足两个主体的需求,达到系统的完善. 学生(一般用户) 学生主要是对自己信息的查看和浏览者,他是这个系统的一般用户,只享有对系统内知情信息的浏览。并没有其他实际权限 管理员(高级用户) 是系统的高级用户,他是系统的主体,对系统起着主导作用.因此相对来说.他的权限是很大的,他享有对信息的添加.修改和删除等重要作用。
3.2性能需求 根据对系统的功能分析.我们了解了系统开发所需要的一些信息指标.所以对起性能的要求做出一些总结 3.2.1硬件环境 硬件环境.中央处理器 133MHZ中央处理器. .内存 256M .硬盘 至少大约1G空间. .分辨率:1024*768 3.2.2软件环境 软件要求与运行环境 Windows 2000 以上 (不包括Windows XP Home版) IIS 4.0 以上 Microsoft Access 2000 Dreamweaver MX 3.2.2开发语言 VB script、SQL 第四章 总体设计 4.1系统模块结构设计 4.1.1、系统设计 系统设计主要是包括客户需求的总结、功能模块的划分和系统流程的分析,据客户的需求总结系统主要完成的功能,以及将来拓展需要完成的功能,然后根据设计好的功能划分出系统的功能模块,这样方便管理员管理和维护,最后设计出程序的流程。 系统实现的功能 学生的档案和信息是需要学校妥善保管的重要项目.随着学校规模的扩大,管理的学生信息会越来越多,如过完全依靠人工来管理和收集的话.就回造成很大的人力和物力的损耗,且管理起来也是很不方便的。为了是这项工作变的方便和简单,也为了减少人为方面处理不当造成的资料和数据的丢失,将开发一个学生信息管理的系统。依靠这个系统就会大大方便学生信息和资料的管理和收集,从而达到高效管理。 ㈠客户端 ●通过姓名查询学生的信息 ●通过学号查询学生的信息 ㈡管理员端 ●学生信息管理:对学生基本情况的添加和修改 ●学生成绩管理:对学生的成绩提供查询,并且对每科目都进行排名登记,让同学们更好的了解自己 ●班级管理:添加、修改和删除班级 ●学科管理:添加、修改和删除科目 ●管理员添加:添加一些管理权限.提供更广的管理平台 4.1.2功能模块的划分 学生信息管理系统应该有学生信息查询、学生成绩管理、学生班级管理等功能。根据这些功能,可以画出系统的功能模块图。 客户端的功能模块图如下 上面的图表示的是客户端的功能.它主要是方便学生查询个人信息和考试成绩。 管理员端的功能模块图如下
管理员端的功能模块如上图所示,主要划分为基本信息管理、成绩管理、学生班级管理、学生科目管理、管理员维护5个部分。 ●基本信息管理模块:基本信息包括形式的学号、姓名、性别、班级、出生年月和寝室电话。通过该模块功能,可以显示学生的信息列表,也可以通过学生反映情况进行更新,还可以通过姓名或者是学号对学生信息进行查询。 ●成绩管理模块:成绩管理模块中有很多小的功能模块,这主要是涉及到一个成绩排名的问题,该模块中包含了单科排名和总成绩排名。 ●班级管理模块和科目管理模块:要是通过操作相对应的表来添加、修改和删除信息。 ●管理员维护模块:当需要添加新的管理远或者是管理员密码陈旧需要修改的时候就需要用的改模块。 4.1.3、系统流程分析 根据系统功能和模块的划分,设计的流程图如下所示。用户登陆系统进入学生信息管理首页,可以通过学号和姓名查询学生信息。单击“进入管理系统”就可以进入管理员登陆界面,在登录对话框中登录,通过同数据库中的数据进行比较来实现用户验证。成功登录后就可以进行需要的操作。在管理员端可以进行基本信息管理、成绩管理、班级管理、科目管理和管理员维护等操作
4.2 数据库设计 数据库结构设计的好坏直接影响到信息管理系统的效率和实现的效果。合理地设计数据库结构可以提高数据存储的效率,保证数据的完整和统一。数据库设计一般包括如下几步: ⑴数据库需求分析。 ⑵数据库概念结构设计。 ⑶数据库逻辑结构分析。 4.2.1数据库需求分析 学生信息管理系统的数据库功能主要体现在对学生信息、成绩信息、科目信息、班级信息的处理上。针对该系统数据库的特点,列出如下几点需求 ●管理员可以浏览、修改和删除管理信息,包括学生基本信息、学生成绩、学生必修的科目以及班级信息。 ●学生信息包括关于学生的姓名、学号等基本信息。 ●一个学生对应一个班级,对应一个考试成绩。 ●管理员可以录入学生信息。 根据上面对系统的功能分析和需求总结,设计如下的数据项和数据结构: ●学生成绩包括的数据项:姓名、班级、成绩信息编号、准考证号码、考试科目和成绩。 ●学生信息包括的数据项:学生编号、学生姓名、学号、准考证号码、身份证号码、性别 出生年月、籍贯、联系电话、专业、班级。 ●管理员信息数据项:编号、管理员名和密码等。 ●科目信息项:科目ID、科目名称以及相对应的学号 ●成绩信息管理项:学号相对应的单课和总成绩。 数据库概念结构设计 根据上面对数据库的分析得到的数据项和数据结构后,就可以设计满足需求的各种实体及相互关系,再用实体——关系图,即R-R图将这些内容表达出来,为后面的逻辑结构设计打下基础。 本系统规划出的实体有:学生信息实体、成绩信息实体、班级信息实体、科目信息实体以及管理员信息实体,他们之间的关系如图所示。
4.2.3数据库逻辑结构设计 数据库概念结构设计完毕就可以通过数据库软件转化为实际的数据模型,就是数据库的逻辑结构。本系统采用的数据软件是Microsoft Access。 首先打开Microsoft Access,新建一个空白的数据库,命名为xsxxgl.mdb,然后通过表设计器创建本系统的几个表。 学生信息表 学生信息表记录的是学生的姓名、班级、学号、家庭住址、联系电话等信息.它们的属性如表所示。设置学生编号为主键。 列表 数据类型 字段大小 默认值 备注 ID 自动编号 长整型 无 主键,学生编号 User_number 文本 50 无 学号 User_name 文本 8 无 学生姓名 User_idnumber 文本 18 无 身份证号码 User_sex 文本 2 无 性别 User_time 文本 12 无 出生年月 User_address 文本 50 无 籍贯 User_tel 文本 50 无 联系电话 User_major 文本 20 无 专业 User_class 文本 50 无 班级 User_textnumber 文本 50 无 准考证号 User_gkcj 文本 50 无 高考成绩
㈡管理员信息表 管理员信息表主要是记录管理员的帐号和密码信息的. 列名 数据类型 字段大小 默认值 备注 ID 自动编号 长整型 —— 管理员编号,主键 admin 文本 50 无 帐号 Admin_pwd 文本 50 无 密码
㈢学生成绩信息表 成绩信息表是记录每一个学生对应的成绩和学号、准考证号、考试科目、考试场次、考生班级等信息。 列名 数据类型 字段大小 默认值 备注 ID 自动编号 长整型 —— 成绩信息编号 User_testnumber 文本 50 无 准考证号 User_class 文本 50 无 班级 ach 数字 单精度型 0 成绩 testno 文本 50 无 考试场次 subject 文本 20 无 科目 User_namer 文本 8 无 学生姓名
㈣班级信息表 班级信息表是记录学生所在班级编号和名称的信息。 列表 数据类型 字段大小 默认值 备注 ID 自动编号 长整型 —— 班级编号,主键 Stclass 文本 50 无 班级名称
㈤科目信息表 科目信息表是记录考生考试的科目信息。 列表 数据类型 字段大小 默认值 备注 ID 自动编号 长整型 —— 科目,主键 Subject 文本 50 无 科目名称 第五章 详细设计 5.1系统变量的定义及应用 5.1.1模块说明 模块名称: 查看学生信息 模块标识: search2.asp 模块功能:通过表单提取数据库(db1.mdb)表(st_info)中的信息;学生学号和姓名不能为空.否则就失败。 5.1.2模块接口 调用模块: search2.asp被调用模块: search2.asp、search.asp 、searchxh.asp 输入文件search2.asp输出文件: search.asp、searchxh.asp、st_info 主要表单对象、内存变量、数据库表的字段 语意 表单 内存变量 数据库表字段 备注 from Add.asp post Ts.mdb ts 按姓名查询 user_name text 文本框 Stitle Title 文本 按学号查询 content text 文本框 scontent content 备注 学号 提交 submit Submit 按钮 提交 submit Submit 按钮 5. 1.3处理概要(IPO或流程图) 通过search2.asp中的表单输入数据,若其中的姓名和学号不为空,指定相关属性,打开记录集,然后返回到search.asp 、searchxh.asp页中 5.2 模块详细设计 5.2.1客户端模块设计 客户端主要包括两个功能。 通过学号查询学生信息:searchxh.asp 通过姓名查询学生信息:search.asp 客户端界面设计 客户端界面主要为用户提供一个查询的入口.它由页头、查询入口组成。 通过学号查询学生信息 通过学号查询学生信息模块的实现效果如searchxh.asp页面所表示.通过该查询功能,可以获得学生ID 、学号、姓名和班级.该模块的代码如下 通过学号查询学生信息 <!--#include file="data.asp"--> <% dim user_number user_number=trim(request("user_number"))
if user_number="" then response.write "输入不能为空" response.end end if
set rs=server.createobject("adodb.recordset") sql="select * from st_info where user_number like '"&user_number&"'" rs.open sql,conn,1,1 %>
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>查询结果</title> <link rel="stylesheet" href="style.css"> </head>
<body topmargin="0">
<!--#include file="top.asp"--> <body>
<div align="center"> <center> <table border="1" width="400" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF"> <tr> <td width="100%" colspan="5"> <p align="center">查找结果</p> </td> </tr><% if not rs.eof then %> <%do while not rs.eof%> <tr> <td width="20%" align="center">ID号</td> <td width="20%" align="center">学号</td> <td width="20%" align="center">姓名</td> <td width="20%" align="center">性别</td> <td width="20%" align="center">班级</td> </tr> <tr> <td width="20%" align="center"><%=rs("id")%></td> <td width="20%" align="center"><%=rs("user_number")%></td> <td width="20%" align="center"><a href=xsxx.asp?id=<%=rs("id")%>><%=rs("user_name")%></td> <td width="20%" align="center"><%=rs("user_sex")%></td> <td width="20%" align="center"><%=rs("user_class")%></td> </tr> <%rs.movenext%> <%loop%> <%else%> <tr> <td width="100%" colspan="5"><marquee>没有您所查找的学生</marquee></td> </tr> <%end if%> </table> </center> </div> <% rs.close set rs=nothing %> </body> </html> 功能模块实现的原理,就是通过输入的学号查询数据库,得到相对应的数据库记录之后就可以通过读取给该记录显示用户。通过单击姓名查询可以查看用户的详细信息,这个功能是由文件xsxx.asp完成的.它的代码如下: 显示用户详细信息功能实现代码xsxx.asp
<!--#include file="data.asp"--> <!--#include file="user.asp"--> <% dim id id=trim(request("id")) set rs=server.createobject("adodb.recordset") sql="select * from st_info where id="& id rs.open sql,conn,1,1 %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>查看学生详细信息</title> <link rel="stylesheet" href="style.css"> </head> <body topmargin="0"> <!--#include file="top.asp"--> <div align="center"> <center> <table border="0" width="500" cellspacing="0" cellpadding="0"> <tr> <td width="100%"> <table border="1" width="100%" bordercolorlight="#000000" cellspacing="0" cellpadding="5" bordercolordark="#FFFFFF"> <tr> <td colspan="3"> <p align="center">查看学生详细信息</td> </tr> <tr> <td width="49%" align="right">学号:</td> <td width="32%" align="left"><%=rs("user_number")%></td> </tr> <tr> <td width="49%" align="right">姓名:</td> <td width="32%" align="left"><%=rs("user_name")%></td> </tr> <tr> <td width="49%" align="right">准考证号:</td> <td width="32%" align="left"><%=rs("user_zkzh")%></td> </tr> <tr> <td width="49%" align="right">身份证号:</td> <td width="32%" align="left"><%=rs("user_sfzh")%></td> </tr> <tr> <td width="49%" align="right">性别:</td> <td width="32%" align="left"><%=rs("user_sex")%></td> </tr> <tr> <td width="49%" align="right">出生年月:</td> <td align="left" colspan="2"><%=rs("user_time")%></td> </tr> <tr> <td width="49%" align="right">籍贯:</td> <td align="left" colspan="2"><%=rs("user_address")%></td> </tr> <tr> <td width="49%" align="right">联系电话:</td> <td align="left" colspan="2"><%=rs("user_tel")%></td> </tr> <tr> <td width="49%" align="right">专业:</td> <td align="left" colspan="2"><%=rs("user_major")%></td> </tr> <tr> <td width="49%" align="right">班级:</td> <td align="left" colspan="2"><%=rs("user_class")%></td> </tr> <tr> <td width="49%" align="right" valign="top">高考成绩:</td> <td align="left" colspan="2"><%=rs("user_gkcj")%></td> </tr> <tr> <td align="right" valign="top" colspan="3"> <p align="center"></td> </tr> </table> </td> </tr> </table> </center> </div> </body> </html> 通过姓名查询学生信息 该功能模块实现和通过学号查询学生信息是类似的,只是通过学生姓名定位记录 5.2.2客户端模块设计 管理员端主要提供教务人员对信息的管理功能,包括以下几个功能模块 ●基本信息管理模块。 ●成绩管理模块。 ●班级管理模块和科目管理模块。 ●管理员维护模块。 1.登陆页面 关于用户登陆模块由用户名、密码两个文本区域组成。他是由输入的数值与数据库中的验证。如果一致。就进入管理页面。他的实现过程如下 <!--#include file="data.asp"--> <% dim admin_name,admin_pwd admin_name=trim(request("name")) admin_pwd=trim(request("pwd")) if admin_name="" or admin_pwd="" then response.write "<script>alert('对不起,用户名和密码不能为空!');document.location.href='admin.asp';</script>" response.end end if set rs=server.createobject("adodb.recordset") sql="select * from admin where admin_name='"&admin_name&"'" rs.open sql,conn,1,1 %> <% if not rs.eof then if rs("admin_pwd")<>admin_pwd then response.write "<script>alert('对不起,密码不正确,请重新输入');document.location.href='admin_index.asp';</script>" response.end else session("user")=admin_name response.redirect "info-manager.asp" end if else response.write "<script>alert('对不起,你的用户名不存在,请与管理员联系!');document.location.href='admin.asp';</script>" response.end end if %> 学生信息管理模块 学生信息管理模块主要有以下几个功能: 学生信息列表主要由文件info-manage.asp、updataxx.asp、delxx.asp 录入学生信息主要由add-info.asp、addxx1.asp两个文件来完成的 查询学生信息主要由search2.asp完成 学生信息列表功能实现info-manage.asp <!--#include file="data.asp"--> <!--#include file="user.asp"-->
<% set rst=server.createobject("adodb.recordset") sql="select * from st_info order by id desc" rst.open sql,conn,1,1 %> <html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>学生信息管理</title> <link rel="stylesheet" href="style.css"> </head>
<body topmargin="0"> <!--#include file="top-1.asp"--> <div align="center"> <center> <table width="738" height="35" cellspacing="0" cellpadding="0"> <td background="images/top_1.jpg"> <a href="info-manager.asp">学生信息列表</a> | <a href="add-info.asp">录入学生信息</a> | <a href="search2.asp">查询学生信息</a></table> </center> </div> <div align="center"> <center> <table border="0" width="700" cellspacing="0" cellpadding="0"> <% if Not(rst.bof and rst.eof) then'判别数据表中是否为空记录 NumRecord=rst.recordcount rst.pagesize=10 NumPage=rst.Pagecount if request("page")=empty then NoncePage=1 else if Cint(request("page"))<1 then NoncePage=1 else NoncePage=request("page") end if if Cint(Trim(request("page")))>Cint(NumPage) then NoncePage=NumPage end if else NumRecord=0 NumPage=0 NoncePage=0 end if %> <table border="1" width="700" bordercolorlight="#000000" cellspacing="0" cellpadding="5" bordercolordark="#FFFFFF"> <tr> <td width="71" bgcolor="#EBE9FE" align="center">学号</td> <td width="78" bgcolor="#EBE9FE" align="center">姓名</td> <td width="65" bgcolor="#EBE9FE" align="center">性别</td> <td width="78" bgc
首页 上一页 1 2 3 下一页 尾页 1/3/3