您现在的位置: 中国电脑教育网 >> 教育信息化 >> 新闻直击 >> 教育信息化正文
打造低成本成绩查询系统
作者:佚名    教育信息化来源:本站原创    点击数:    更新时间:2008-4-28

症结已久

很多大中专院校一般都有校园网系统,可因为没有通用的成绩管理软件。大部分学校仍然是由任课教师把成绩录入Excel工作簿中,再打印、填写、寄成绩单。不仅教师工作量大,而且由于平信容易丢失,导致很多工作前功尽弃。随着因特网的不断普及,如果可以在不引入昂贵的数据库软件和尽量不改变工作习惯的前提下,借助因特网、校园网和大家所熟知的Excel来实现成绩的网上查询,将极大地节约办公成本,提高工作效率,方便广大师生的工作和学习。

工作原理

校园网大多数采用的都是Windows 2000或2003 Server操作系统,这些服务器均可加装Windows的IIS(Internet Information Server)组件,实现对ASP的支持。本文所探讨的就是把Excel工作簿作为数据库,其中的工作表作为数据表,用VB Script或JAVA Script(本文以VB Script为例)等编制ASP程序,实现在Windows的IIS中发布成绩。

成绩查询系统的实现

1.数据库的建立

Excel本身并不是一个完善的数据库,如果要用来作为网站的成绩数据库,必须对成绩的录入和存放有一定的限制。工作簿文件名可以按照×××系××级××-××学年第×学期.xls,如计算机系06级06-07学年第一学期.xls。工作簿中的工作表命名,可以按照班级进行命名,如04中三班、06微机大专班,注意班级名称的简化,不宜过长。这样就用工作簿区分开了不同的系别,用工作表区分开了不同的班级。可以在网页的程序读取工作簿的文件名形成系别下拉列表,让用户选择系别,再由程序自动读取工作簿中的工作表名形成班级下拉列表,让用户选择自己所在的班级。

2.成绩的录入

数据库中的表的结构都有严格的规定,如字段的名称、数据类型等,Excel的工作表也要与数据库存的表一样遵循一些规定,方便程序的编写。工作表的第一行必须为字段名,包括姓名、课程名等,如字段名可为姓名、Excel、语文、数学等。第一行的以下各行为各条记录。其中“姓名”这个字段名是程序中经常用到的,不能随意添加空格或其他字符写为“姓  名”等,这在程序中均认为是不同的字段名(图1)。


(图1)

3.查询程序的编写

为了方便用户的查询,可以将系别和班级做成网页中的下拉列表,让用户选择。这里主要应用了ASP中的Recordset、Connection、Response、Request、Server等五个基本对象。使用这些ASP对象可以完成打开Excel工作簿、读出工作簿中各个工作表的名字、读取工作表中数据等操作。

其中打开Excel工作簿可使用以下代码(以不设置DSN的打开方式为例):
代码中成绩工作簿保存在“成绩”文件夹中,db为成绩工作簿的文件名
Set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source="&Server.MapPath("成绩/"&db&"")
conn.open connstr
打开Excel工作簿后,读出各个工作表的名称,要用到Connection对象的Open Schema方法:
set rs=server.createobject("adodb.recordset")
Set oSchemaRs = Conn.OpenSchema(adSchemaTables,TABLE_NAME)
这里的adSchemaTables常量为20时,Connection对象的OpenSchema方法将获取工作簿中各个工作表的名字形成一个集合,可以用枚举循环的形式列出集合中的工作表名,在网页中形成下拉列表(图2)。


(图2)

4.显示成绩程序的编写

查询成绩的页面中用户输入了姓名(或学号),提交给显示成绩的页面进行处理。程序中要用到SQL中的Select语句。
下面的代码中的db为成绩工作簿的文件名(系别),classname为获取的工作表名称(班级)。
Set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source="&Server.MapPath("成绩/"&db&"")
conn.open connstr
set rs=server.createobject("adodb.recordset")
sqlstr="select * from "&"["&classname&"$]"&"where 姓名="&"'"&trim(request.form("name"))&"'"
这里工作表的名称前后要加“[”和“]”,这一点与其他数据库读出的表名不一样。
查询出来的成绩在显示时,为了提高程序的通用性,应避免出现具体的字段名。在程序中使用了Recordset对象的一些属性,以避免出现具体的字段名。
for i=0 to rs.fields.count-1
’field属性取得工作表的字段个数
response.write "<td width='150' align='center'>"&rs(i).name&"</td>"
’name属性取得各个字段的字段名
next
response.write "</tr>"
rs.movefirst
while not rs.eof
temp=""
response.write "<tr>"
for j=0 to rs.fields.count-1
temp=temp&"<td width='150'
align='center'>"&(rs(j))&"</td>"
next
response.write temp
response.write "</tr>"
rs.movenext
wend
response.write "</table>"
成绩显示的页面查询结果(图3)。


(图3)

5.成绩查询网站的建立

在Windows 2000或2003 Server中打开“控制面板”中的“管理工具”,再打开其中的“Internet信息服务”进行网站发布的设置。把设计的所有网页和工作簿都放在IIS的主目录中,并且必须选中站点属性中的“脚本资源访问”复选框,这样才可以运行ASP程序。校园网的服务器如果有固定的IP地址,则可以直接在因特网中发布。如果没有固定的IP地址,则可以安装花生壳(可以在http://www.oray.cn/网站下载)之类的软件,将动态IP地址与申请的域名进行绑定。

成绩查询系统的管理

系统中的查询网页和显示成绩的网页是不需要进行管理的,需要不断更新的是成绩工作簿。在实际应用中可以把成绩工作簿单独存放在一个文件夹中,比如上面程序中的“成绩”文件夹。然后在服务器上安装FTP软件,使得成绩汇总部门的人员在校园网中通过FTP软件可以访问成绩工作簿存放的文件夹,以便随时更新维护成绩数据库。(感兴趣的老师可以上http://hnjmjx.vicp.net/cjcx/尝试该成绩查询系统,文中Excel的下载地址为http://hnjmjx.vicp.net/jsj/ShowPost.asp?ThreadID=1347

关于成绩查询系统的几点说明

1.系统在必要时可以增加成绩查询的学号验证等功能,必须输入正确的学号才能查询成绩,从而可以在一定程度上保护学生的隐私。

2.程序中是自动读取工作表的字段,自动显示各个字段名和字段值,所以通用性非常强,可以适应不同系别、不同班级的不同课程。

3.Excel简单、易用,又与现有的成绩录入、管理方式一致,ASP在校园网的服务器上设置又很方便,采用Excel和ASP结合的成绩发布系统将极大地节约办公成本,提高工作效率,方便广大师生的工作和学习。

  关闭本页窗口
 
  • 上一篇教育信息化:

  • 下一篇教育信息化:
  •    教育信息化搜索
    最新教育信息化
    推荐教育信息化
    热点教育信息化
    设为首页 | 加入收藏 | 内部邮箱 |友情链接 | 版权申明 | 管理登录 | 
    E-mail:mailmaster@cce.com.cn
    地址:北京市海淀区紫竹院路66号 赛迪大厦16层 邮编:100044
    中国电脑教育网 版权所有2003 本网站内容未经许可不得转载
     经营性网站备案信息
    主办单位名称:北京中电报科技发展有限公司 京ICP证 041415