admin 管理员组

文章数量: 1087139


2024年4月18日发(作者:阿根廷vs法国直播)

ISSN 100gL_3044 

E-maih x ̄l@cccc.net.en 

http://www.dnzs.net.ell 

Tel:+86—551-5690963 5690964 

ComputerKnowledgeAnd Technology电脑知识与技术 

Vo1.4,No.7,December 2008,PP.1665-1667 

基于OWC的在线成绩分析系统的设计与实现 

(扬州大学新闻与传媒学院,江苏扬州225002) 

摘要:在线成绩分析是网络教学系统中的重要功能。基于owe的在线成绩分析系统利用owe组件统计计算和图表功能可似在 

WEB上实现在线考试成绩的汇总和分析。将其设计为一个Web Services可以为各种网络教学系统提供教学评价。 

关键词:0WC;成绩分析:Web Services 

中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2008)34—1665—03 

The Design and Implement of Online Score Analysis System Based on OWC 

SHAO Shan 

(News and Media Department of Yangzhou University,Yangzhou 225002,China) 

Abstract:Online score analysis is an important funcdon of Web based instruction.Base on Office Web Component S statistic calculate and 

chart ̄ncdon,Online Score Analysis System can coHect and analysis the score data of online test in Web.This system is designed as a Web 

Services in order tO evalHate various Web based instruction. 

keywords:Office Web Component;Score Ana1vsis;Web Services 

1引言 

基于WEB的远程教育强调以自主学习,个性化学习。采用必要的学习过程监控和学习效果评价手段是网络教学取得成功的重 

要保证。EXCEL电子表格软件包含了丰富统计分析工具和图表制作工具,利用它的公式和宏可以方便地完成成绩分析功能。但 

EXCEL只能单机使用,无法直接嵌人WEB教学系统中。基于Office Web Component(简称OWC)的在线成绩分析系统在WEB上实 

现了EXCEL的成绩分析功能,为网络教学评价提供了有力支持。 

2基于oWC的在线成绩分析系统设计 

2.1系统功能 

目前,绝大多数WEB教学系统的在线考试都是通过WEB网页动态访问数据库实现,常用有ACCESS和SQL数据库,数据库一 

般包含学生表(USERS)、试题库表(TEST)、成绩表(SCORE)等。基于OWC的在线成绩分析以WEB教学中的成绩表为主要数据源。 

系统设计为一个Web Services,只需将考试成绩表传递给该Web Services,系统就可以像EXCEL一样进行统计分析、生成图表,再将 

结果插入一WEB网页返回客户端。任何基于WEB的网络教学系统都可以方便调用该Web Services,实现资源共享。 

2.2技术方案 

在线成绩分析系统调用的OWC是一组能够在Web页上使用并提供Ofifce功能的ActiveX控件的集合。随同OFFICE软件一 

起安装。包含四个主要组件:Spreadsheet(电子数据表)、Chart(图表)、PivotTable(数据透视表)、Data Source(数据源)。目前Ofifce2003提 

供的Oficef Web Component的版本为l1.O(OWC111 。根据成绩分析的实际需要在系统中只使用了前三个。 

Spreadsheet用于接收和显示成绩表数据,同时利用函数公式计算统计数据,如排名、分段人数、正态分布率等。其接收的数据类 

型有XMLUrl、XMLData,CSVUd、CSVData和HTMLData。前两种必须是EXCEL格式的XML文件和数据,将成绩数据转换为此格式 

比较麻烦。CSV(Comma Separated Values)是逗号分开的数据文件,每行为一条记录,数据转换比较简单,而HTMLData不符合二维表 

结构,不利于生成图表,一般不用。经测试,以CSVData字符串作为Spreadsheet数据源时,由于网页中字符串变量总长度的限制,导 

人的数据过大会造成浏览器错误,且速度慢。因此,最终选择将成绩表转换为CSV文件作为CSVUd数据源。 

PivotTable主要是基于Spreadsheet中的数据生成数据透视表。 

Chart则用于绘制各种统计图表,如柱状图、折线图、饼图等,Chart 

网络教学 W曲¥ ̄rlees 

以Spreadsheet和PivotTable的数据区域作为数据源。 

服务器 

系统结构如图1所示,只要客户端安装了Ofice软件,f则在WEB 

浏览器中均可以使用OWC。 

lCi 

3利用OWC实现在线成绩分析的方法 

3.1数据库数据导入OWC Spreadsheet 

lI DB lJ—\  l文件P 

◆客J 端 

通常的成绩表结构示例如下: 

SCORE(考试编号(C6)、课程名(C20)、学生名(C15)、成绩(N4.1)) 

在Mcrosoft Visual Studio 2005中用ASP.net(VB)建立WEB SER— 

在线+考 试 

WEB页 

广●0! 

1 Tal; I

T 

图1在线成绩分析系统图 

VICES开发项目中,可以通过OleDbConnection访问ACCSE数据库, 

SQLConnection访问SQL数据库,将数据库成绩表读DataReader中,根 

收稿日期:2008—09-15 

作者简介:邵山(1968~),男,江苏扬州人,扬州大学新闻与传媒学院讲师,主要从事计算机网络教育、数据库应用研究。 

本栏目责任编辑:谢媛媛 

t-・-一 -・一软件设计升发-・1665 

ComputerKnowledgeAnd Technology电脑知识与技术 2008年第4卷第7期(总第34期) 

据技术方案中的思路,应先将DataReader中的成绩表数据读取出来写进一个CSV文本文件score.CSV中,再将该文件作为Spread— 

sheet的CSVUd数据源。 

在网页中插入0mce web spreadsheet componentl1.0组件的HTML代码为: 

<obiect classid=”clsid:0002E559--00oo一000o—CO00删0oo00046”id=”Sheet”> 

</object> 

设置数据源代码如下: 

Private Sub importData() 

此处为数据库连接,和将成绩表读入dtReader中代码,略 

Dim csvfile as string ”score.csv” 

DrtoCSV(dtreader,csvfile) 

end sub 

Sub DnoCsvfdtReader as DataReader,csvfile as string) 

Dim strwriterobj As StreamWriter 声明流书写对象 

strwriter-Fi=le.CreateText(servermappath(csvfile) 

Dim I as intger 

创建文本文件对象 

Set def

sep=”.” 以逗号分隔 

strLine=”” 

_

For I=0 to DtReader.ifeldcount一1 读字段名作为第一行 

strLine=strLine&DtReader.GetName(I1&def_sep 

Next 

strwriterobj.WriteLine(strLine1 写入字段名内容 

While DtReader.Read() 

strLine=”” 

For I=0 to DtReader.ifeldcuont-1 

. 

strLine=strLine&trim(DtReader.GetValue(I)1&def sep 

Next 

strwriterobj.WriteLinef strLine) 写入记录内容 

End while 

strwriterobj.Close f) 完成操作,关闭流对象 

End Sub 

<scriptlanguage=”VBScnpt”> 

sheet.CSVUd="score.CSV” 设置CSVUd数据源 

</script> 

3.2在WEB网页spreadsheet组件中修改和导出数据 

将数据导人spreadsheet组件后,该组件不仅能修改数据、添加计算公式,也可以通过编程实现数据导出。操作该对象的代码为: 

1)数据区域命名: 

sheet.Names.Add(”ScoreRange”,’‘sheet1 1¥D¥2:¥D”1 

2)修改单元格数据:intRow,intCol为工作表单元格行和列 

sheet.ActiveSheet.Cells[intRow,intCo1].Value=request.【”Cellvalue”】; 

3)在指定单元格中插入公式:如求考试成绩的平均值 

sheet.ActiveSheet.Cells[intRow.intCo1].Formula=。’=Average(ScoreRange)” 

4)导出数据:spreadSheet带有方法Exports可以将SpreadSheet中的数据和格式统统导出成ExcelXML编码的文件。该文件可用 

EXCEL打开或作为其它spreadSheet的XMLUd源。 

SpreadSheet.Export (desPathFileName,Owc11.SheetExportActionEnum.ssExportActi0nNone,Owe]1.SheetExportorFmat.ssExportXML— 

Spreadsheet); ・ 

3.3数据筛选和排序 

Spreadsheet组件本身具有的工具栏中就有筛选和排序按钮,在WEB网页中可交互方式完成数据的筛选和排序。如有必要,也 

可通过代码f略)实现此功能。 

3.4数据统计和分析 

EXCEL表格的统计分析功能主要通过计算函数和公式完成,对成绩分析来讲主要有: 

成绩平均值:=AVERAGE(rangeName);方差:=DEVSQ(rangeName) 

最高:=MAX(rangeName);最低:=MIN(rangeName); 

排名:=RANK(rangeName.rangeName1 

正态分布率:=NORMDIST(rangename,AVERAGE(rangename),DEVSQ(raugename),TRUE1 

分段人数统计: 

80分-90分的人数=C0uNTIF(rangeName,”>=80”)一COUNTIF(rangeName,">90”) 

7O分-80分的人数=COUNTIF(rangeName,">=7O”1一COUNTIF(rangeName,">80”1 

不及格的人数--COUNTIF(rangeName ”<60”1 

及格率:=COUNTIF(rangeName,">=60”)/COUNT(rangeName1 

优秀率:=COUNTIF(ran ̄Name,">=90”)/COUNT(rangeName1 

个EXCEL工作薄(book)以包含多个工作表(sheet),为保证数据导人和与CHART组件数据交换的安全性,一般应将成绩 

数据放在sheetl工作表中,而将统计数据放在sheet2中。其中的rangeName为成绩数据的区域(range) 。可通过代码修改单元格公 

式,只需要将公式字符串赋值给指定的单元格Formula即可: 

如:speadsheet1.Names.Add(”rangename”.”sheetl!SD¥2:¥D”1 

1666 软件设计开发* t 本栏目责任编辑:谢媛媛 

邵山:基于OWC的在线成绩分析系统的设计与实现 

speadsheet1.sheets(2).Cells(intRow,intCo1).Formula=”=COUNTlF(rangename,…’<60…’)” 

3.5数据透视表 

成绩表一般以流水帐形式记录数据,其中的每条记录内容为某位学生在某门课的某次考试成绩,记录数量较大。数据透视表是 

种对大量数据快速汇总和建立交叉列表的交互式表格,能帮助用户分析、组织数据翻。利用它可以很快地从不同角度对数据进行 

分类汇总。对考试成绩来说,可以将课程作为列,将学生作为行,计算每个学生各门课程的平均成绩,生成透视表(图2)。PivotTable 

控件HTML代码如下: 

<OBJECT classid=”clsid:0002E552 ”id=”pvtl’’></OBJECT> 

数据透视表生成代码: 

<scriptlanguage=”VBScript”> 

strPath=server.mappath(”test.mdb”1 

Pvt1.ConnectionString ”provider=microsoft.iet.oledb.4.0;data sonrce=”&strPath 

Pvt1.DataMember=”score” 

Pvt1.ActiveView:AutoLayout’自动导人数据透视表。 

set c=pvt1.Constants 

etotal pvt 1.activeview.AddTotal(”avg”,pvt.ActiveView.FieldSets(3).Fields(o),e.plFunctionAverage) 

With pvt1.ActiveView 

FiherAxis.1nsenFieldSet(pvt1.activeview.iieldsetsf0)1 

FiherAxis.InsertFieldSetfpvt1.activeview.ifeldsets(1)) 

RowAxis.InsenFieldSet(pvt1.activeview,ifeldsets(2)) 

: 

善魅 £ , ・ 

ColumnAxis.InsertFieldSet(pvt1.activeview.ifeldsets(3)) 

DataAxis.InsertTotal(ctota1.0、. 

T07J

弼 由舔r 

0以上 3

l ̄ 分鼹k熟筑 羲 

¨ 

语文 { 5宇 荚语 . 4…、 分成人数 啊 

DetailAutoFit:T丌】e 

■。TOYoi语文 

TO701请艾

萃四 

张三 

92 2 

80-90 15 23 21 计算镕 

91 4 

ExpandDetails=PivotTableExpandEnum.plExpandAutomatic 

T0702语文 张兰 

70--0o 18 骗 15 

88 曼 

60-70 S 5 

TO?02语文 拳四 

87 9 

End With 

t T0703数学i£兰 

93 2 

60 1 9 

</script> 

TO7O4英语李四 

82 l3。 

{ ; 学 轴豁 薯 { 零鹕 

g T0704英语张兰 

92 1 

3.6统计图表输出 

T0703数学 拳四 

熟 

强 T0706数学张兰 

93 哇 

统计图表是以图表直观表现数据关系的一种方式。常用的有 

嘲T0瑚麓语_事四 

膨 2 

l lTO'/05英语涨兰 

曼景 l 

柱状图、饼图、折线图等i31。需要注意的是不同图的参数和数据源 

撼 TO7O6数学 率四 

81 2"2- 

王基 

9。-O0 8i.O0 89.O0 86.67 

选择有所不同。例如用Chart组件生成分段人数的柱状图,组件 

i Toz嫔:

簦T0701:

薅寒 纛熏 

锾寒

82 i9 

8t.0O 87.O0 8五.5O 

93.00 88.5O 9O.O0 9l。.5O 

HTML代码为: 

琏 To7o3戴 

88 lO 

T魍Q6:欺攀

王藁 

王纛 

80 2垒1 

89.00 84.75 88.67 B7.8l 

<objec cl assid=”clsid:0002E500-0000—0000一C000— 

成缝表 

平均成绩透视表 

000000000046”id=”Cspace”> 

</object> 

图2在线成绩分析系统输出wEB页面效果图 

将Chart数据源绑定到spre

adsheet代码:, 

<scriptlanguage=”VBScript”> 

sheet.Names.Add(”RangeFenduan”,”sheetl!SG¥2:¥G7”) 

Dimcht,ser rngValues,C 

Dim iSerieslnCols 

sIerieslnCols=false"false:以行产生系列,true:以列产生系列 

c=sheet.Constants 

cspace.Clear 

cspace.DataSource=sheet 绑定数据源 

eht=espaee.Charts.Add0 

cht.Type=c.chChartTypeColumnClustered 定义为柱状图 

cht.HasTitle=true 显示标题 

cht.Title.Caption=”分段人数统计图” 设置标题内容 

seturgValues=sheet.Range(RangeFenduan) 取数据 

foreaehserincht.SeriesCol1ection 

if iSeriesInCols then 

set.SetData(c.chDimValues,0,rngValues.Columns(set.Index+1).Address) 

else 

ser.SetData(c.chDimValues,0,rngValues.Rows(set.Index+1).Address) 

endif 

setdl=ser.DataLabelsCollection.Add0 

d1.Position=c.chLabelPositionTop 

next 

cht.HasLegend=ture 显示图例 

</script> 

图3 WEB页中生成的Chart图表 

4小结 

基于OWC的成绩分析可以通过成绩数据的导人、公式计算、数据透视表和图表输出,实现了对网络教学的评价。将其设计为一个 

Web Services,可被多个教学系统共享.在实践中取得了良好的效果。但在调用OWC组件时也存在客户端必须安装Office软件局限性。 

参考文献: 

『l1构建基于Web的分析系统[EB/OL].http://msdn.microsoft.corn/. 

『2】Microsoft Office Web组件基础[EB/OL].http://tech.it168.corn/. 

[3]OWC中的PivotTable(J ̄视表)使用XML数据源[EB/OL].http://blog.csdn.net. 

本栏目责任编辑:谢媛媛 t 软件设计开发 -1667 


本文标签: 数据 成绩 分析