攀登英语网

关注大学英语教学和四六级考试

« 21世纪大学英语读写教程1-4册mp3打包下载旧版中日交流标准日本语中级电子书word版下载 »

大学英语期中期末考试试卷分析查询语句

今年我校2008级本科生级为3083人,明年本科生招生的规模预计为4300人,加上专升本、专科及软件学院的学生,2010级学生的规模高达5900人,教学班级将达创纪录的80多个。随着班级和学生人数的增加,大学英语的阅卷工作将越来越繁重,尤其是试卷分析5000多人的学生成绩。本人经历了三次阅卷,总结出了试卷分析的一些方法和大家一起分享。

山东欧玛阅卷机阅卷后的数据可以通过“数据导出”生成一个dbf文件,这个数据文件可以用VFP软件打开,使用select 语句进行各种查询。以下是本人摸索出来的查询命令。假如导出的数据库名为“总成绩表.dbf”,那么可以通过以下命令来查询。

1.查询成绩平均分

更新:

select class,avg(zf),count(zf),max(zf),min(zf) from 总成绩表 where class="01"  //left是取左边七位字符的函数,把第一个班级的班级代码、平均成绩、人数、最高分和最低分查询出来
copy to b.dbf  //把查询结果输入到一个名字叫“b.dbf”的数据库中。
select class,avg(zf),count(zf),max(zf),min(zf) from 总成绩表 where class="02"  into array temp  把第一个班级的班级代码、平均成绩、人数、最高分和最低分查询出来,并输入到数组中
insert into b.dbf from array temp 把数组的数据写入到"b.dbf"文件中

同时,也可以利用以下程序来批量解决,modi comm 1.prg 把以下内容插入运行:

一代查班级平均分
set talk off
input "请输入班级" to i
select class,avg(zf),max(zf),min(zf)  from d:/cj0106.dbf  where val(class)=i
copy to e.dbf
for i=2 to 60
select class,round(avg(zf), 2),round(max(zf),2),round(min(zf),2)  from d:/cj0106.dbf  where val(class)=i  into array temp
insert into e.dbf from array temp
use
endfor
set talk on

二代查班级平均分
set talk off
input "请输入班级" to i   //一般输入“01”
select class,avg(zf),max(zf),min(zf)  from d:/cj0106.dbf  where val(class)=i  //val 函数的功能是把class这一字符转化为数字型
copy to y.dbf
for i=2 to 60 //批量处理,i的最大值为班数的最大值
select class,round(avg(zf), 2),round(max(zf),2),round(min(zf),2)  from d:/cj0106.dbf  where val(class)=i  into array temp
insert into y.dbf from array temp
use
endfor
sele * from y.dbf order by avg_zf desc  //给查询的结果排序
copy to "c:\documents and settings\owner\桌面\2.xls" TYPE XL5  //导出到excel
set talk on


select left(code,7),avg(zf),count(zf),max(zf),min(zf) from 总成绩表 where code="0114081"  
select code,avg(zf),count(zf),max(zf),min(zf) from 总成绩表 where code="0114082" into array temp    //temp是数组,本句将查询结果存在数组
insert into b.dbf from array temp   //本句是把数组中的数据“传递”给数据库b.dbf ,b.dbf是全年级各班的平均分、人数、最高分和最低分的表

注:此步可以简化为:select code(subs(1,7)),avg(zf),max(zf),min(zf) from 总成绩表 where class="01"  class 可以一直从1到73(总的班级数)

2.查询前五名
select top 5 * from 总成绩表 order by zf desc   //desc 为降序
查询后五名
select top 5 * from 总成绩表 order by zf asc    //desc 为升序

3.查询每个系的平均分
select subs(code,1,2) avg(zf) from 总成绩表 where code="01"
copy to c.dbf
select subs(code,1,2) avg(zf) from 总成绩表 where code="02" into array temp   //temp是数组,本句将查询结果存在数组
insert into c.dbf from array temp   //本句是把数组中的数据“传递”给数据库c.dbf 

4.查询每个老师的平均分
更新:

四个班级查平均成绩
set talk off
input "请输入班级1" to i
input "请输入班级2" to j
input "请输入班级3" to k
input "请输入班级4" to l
select avg(zf) from d:/cj0106.dbf  where val(class)=i or val(class)=j or val(class)=k or val(class)=l
set talk on

三个班级查平均成绩
set talk off
input "请输入班级1" to i
input "请输入班级2" to j
input "请输入班级3" to k
select avg(zf) from d:/cj0106.dbf  where val(class)=i or val(class)=j or val(class)=k
set talk on

二个班平均成绩
set talk off
input "请输入班级1" to i
input "请输入班级2" to j
select avg(zf) from d:/cj0106.dbf  where val(class)=i or val(class)=j
set talk on

select 1,avg(zf) from 总成绩表 where code="0334081" or code="0444081" or code="0424082" or code="1714081"
copy to d.dbf     //把查询的数据“复制”到表d.dbf中
select avg(zf) from 总成绩表 where code="1214081" or code="1224081" or code="1234082" into array temp
insert into d.dbf from array temp  //生成的表d.dbf 为每个老师所教班级的平均分。

附:VFP(Visual Foxpro .0 软件下载地址) http://xiazai.zol.com.cn/detail/37/361341.shtml   序列号为:111111111

  • 文章排行:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204

豫ICP备10203897号-2Copyright 2009~2011 5pds.com All Rights Reserved.