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))
:
善魅 £ , ・
j
.
ColumnAxis.InsertFieldSet(pvt1.activeview.ifeldsets(3))
DataAxis.InsertTotal(ctota1.0、.
9
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
版权声明:本文标题:基于OWC的在线成绩分析系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713374211a631455.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论