999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OWC的在線成績分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2008-12-31 00:00:00
電腦知識(shí)與技術(shù) 2008年34期

摘要:在線成績分析是網(wǎng)絡(luò)教學(xué)系統(tǒng)中的重要功能。基于OWC的在線成績分析系統(tǒng)利用OWC組件統(tǒng)計(jì)計(jì)算和圖表功能可以在WEB上實(shí)現(xiàn)在線考試成績的匯總和分析。將其設(shè)計(jì)為一個(gè)Web Services可以為各種網(wǎng)絡(luò)教學(xué)系統(tǒng)提供教學(xué)評(píng)價(jià)。

關(guān)鍵詞:OWC;成績分析;Web Services

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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 function of Web based instruction,Base on Office Web Component's statistic calculate and chart function, Online Score Analysis System can collect and analysis the score data of online test in Web. This system is designed as a Web Services in order to evaluate various Web based instruction.

keywords: Office Web Component; Score Analysis; Web Services

1 引言

基于WEB的遠(yuǎn)程教育強(qiáng)調(diào)以自主學(xué)習(xí),個(gè)性化學(xué)習(xí)。采用必要的學(xué)習(xí)過程監(jiān)控和學(xué)習(xí)效果評(píng)價(jià)手段是網(wǎng)絡(luò)教學(xué)取得成功的重要保證。EXCEL電子表格軟件包含了豐富統(tǒng)計(jì)分析工具和圖表制作工具,利用它的公式和宏可以方便地完成成績分析功能。但EXCEL只能單機(jī)使用,無法直接嵌入WEB教學(xué)系統(tǒng)中。基于Office Web Component(簡稱OWC)的在線成績分析系統(tǒng)在WEB上實(shí)現(xiàn)了EXCEL的成績分析功能,為網(wǎng)絡(luò)教學(xué)評(píng)價(jià)提供了有力支持。

2 基于OWC的在線成績分析系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)功能

目前,絕大多數(shù)WEB教學(xué)系統(tǒng)的在線考試都是通過WEB網(wǎng)頁動(dòng)態(tài)訪問數(shù)據(jù)庫實(shí)現(xiàn),常用有ACCESS和SQL 數(shù)據(jù)庫,數(shù)據(jù)庫一般包含學(xué)生表(USERS)、試題庫表(TEST)、成績表(SCORE)等。基于OWC的在線成績分析以WEB教學(xué)中的成績表為主要數(shù)據(jù)源。系統(tǒng)設(shè)計(jì)為一個(gè)Web Services,只需將考試成績表傳遞給該Web Services,系統(tǒng)就可以像EXCEL一樣進(jìn)行統(tǒng)計(jì)分析、生成圖表,再將結(jié)果插入一WEB網(wǎng)頁返回客戶端。任何基于WEB的網(wǎng)絡(luò)教學(xué)系統(tǒng)都可以方便調(diào)用該Web Services,實(shí)現(xiàn)資源共享。

2.2 技術(shù)方案

在線成績分析系統(tǒng)調(diào)用的OWC是一組能夠在 Web 頁上使用并提供 Office 功能的 ActiveX 控件的集合,隨同OFFICE軟件一起安裝。包含四個(gè)主要組件: Spreadsheet (電子數(shù)據(jù)表)、Chart(圖表)、PivotTable(數(shù)據(jù)透視表)、Data Source(數(shù)據(jù)源)。目前Office2003提供的Office Web Component的版本為11.0(OWC11) [1]。根據(jù)成績分析的實(shí)際需要在系統(tǒng)中只使用了前三個(gè)。

Spreadsheet用于接收和顯示成績表數(shù)據(jù),同時(shí)利用函數(shù)公式計(jì)算統(tǒng)計(jì)數(shù)據(jù),如排名、分段人數(shù)、正態(tài)分布率等。其接收的數(shù)據(jù)類型有XMLUrl 、XMLData,CSVUrl、CSVData和HTMLData。前兩種必須是EXCEL格式的XML文件和數(shù)據(jù),將成績數(shù)據(jù)轉(zhuǎn)換為此格式比較麻煩。CSV(Comma Separated Values)是逗號(hào)分開的數(shù)據(jù)文件,每行為一條記錄,數(shù)據(jù)轉(zhuǎn)換比較簡單,而HTMLData不符合二維表結(jié)構(gòu),不利于生成圖表,一般不用。經(jīng)測試,以CSVData字符串作為Spreadsheet數(shù)據(jù)源時(shí),由于網(wǎng)頁中字符串變量總長度的限制,導(dǎo)入的數(shù)據(jù)過大會(huì)造成瀏覽器錯(cuò)誤,且速度慢。因此,最終選擇將成績表轉(zhuǎn)換為CSV文件作為CSVUrl數(shù)據(jù)源。

PivotTable主要是基于Spreadsheet中的數(shù)據(jù)生成數(shù)據(jù)透視表。

Chart則用于繪制各種統(tǒng)計(jì)圖表,如柱狀圖、折線圖、餅圖等,Chart以Spreadsheet和PivotTable的數(shù)據(jù)區(qū)域作為數(shù)據(jù)源。

系統(tǒng)結(jié)構(gòu)如圖1所示,只要客戶端安裝了Office軟件,則在WEB瀏覽器中均可以使用OWC。

3 利用OWC 實(shí)現(xiàn)在線成績分析的方法

3.1 數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入OWC Spreadsheet

通常的成績表結(jié)構(gòu)示例如下:

SCORE(考試編號(hào)(C6)、課程名(C20)、學(xué)生名(C15)、成績(N4.1))

在Mcrosoft Visual Studio 2005中用ASP.net(VB)建立WEB SERVICES開發(fā)項(xiàng)目中,可以通過OleDbConnection訪問ACCSE數(shù)據(jù)庫,SQLConnection訪問SQL數(shù)據(jù)庫,將數(shù)據(jù)庫成績表讀DataReader中,根據(jù)技術(shù)方案中的思路,應(yīng)先將DataReader中的成績表數(shù)據(jù)讀取出來寫進(jìn)一個(gè)CSV文本文件score.csv中,再將該文件作為Spreadsheet的CSVUrl數(shù)據(jù)源。

在網(wǎng)頁中插入Office web spreadsheet component11.0組件的HTML代碼為:

<o(jì)bject classid=\"clsid:0002E559-0000-0000-C000-000000000046\" id=\"Sheet\" >

</object>

設(shè)置數(shù)據(jù)源代碼如下:

Private Sub importData ( )

'此處為數(shù)據(jù)庫連接,和將成績表讀入dtReader中代碼,略

Dim csvfile as string =\"score.csv\"

DrtoCSV(dtReader,csvfile)

end sub

Sub DrtoCsv(dtReader as DataReader, csvfile as string)

Dim strwriterobj As StreamWriter '聲明流書寫對(duì)象

strwriter= File.CreateText(servermappath(csvfile ) '創(chuàng)建文本文件對(duì)象

Dim I as intger

Setdef_sep=\",\"'以逗號(hào)分隔

strLine=\"\"

For I= 0 to DtReader.fieldcount -1 '讀字段名作為第一行

strLine=strLine DtReader.GetName(I) def_sep

Next

strwriterobj.WriteLine(strLine) '寫入字段名內(nèi)容

While DtReader.Read( )

strLine=\"\"

For I=0to DtReader.fieldcuont -1

strLine=strLine trim(DtReader.GetValue(I)) def_sep

Next

strwriterobj.WriteLine( strLine) '寫入記錄內(nèi)容

End while

strwriterobj.Close ( ) '完成操作,關(guān)閉流對(duì)象

End Sub

<scriptlanguage=\"VBScript\">

sheet.CSVUrl=\"score.csv\"'設(shè)置CSVUrl數(shù)據(jù)源

</script>

3.2 在WEB網(wǎng)頁spreadsheet組件中修改和導(dǎo)出數(shù)據(jù)

將數(shù)據(jù)導(dǎo)入spreadsheet組件后,該組件不僅能修改數(shù)據(jù)、添加計(jì)算公式,也可以通過編程實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出。操作該對(duì)象的代碼為:

1) 數(shù)據(jù)區(qū)域命名:

sheet.Names.Add(\"ScoreRange\", \"sheet1! $D$2:$D\")

2) 修改單元格數(shù)據(jù):intRow,intCol 為工作表單元格行和列

sheet.ActiveSheet.Cells[intRow, intCol].Value= request.[\"Cellvalue\"];

3) 在指定單元格中插入公式:如求考試成績的平均值

sheet.ActiveSheet.Cells[intRow, intCol]. Formula= \"=Average(ScoreRange)\"

4) 導(dǎo)出數(shù)據(jù):spreadSheet帶有方法Exports可以將SpreadSheet中的數(shù)據(jù)和格式統(tǒng)統(tǒng)導(dǎo)出成ExcelXML編碼的文件。該文件可用EXCEL打開或作為其它spreadSheet的XMLUrl源。

SpreadSheet.Export(desPathFileName,Owc11.SheetExportActionEnum.ssExportActionNone,Owc11.SheetExportFormat.ssExportXMLSpreadsheet);

3.3 數(shù)據(jù)篩選和排序

Spreadsheet組件本身具有的工具欄中就有篩選和排序按鈕,在WEB網(wǎng)頁中可交互方式完成數(shù)據(jù)的篩選和排序。如有必要,也可通過代碼(略)實(shí)現(xiàn)此功能。

3.4數(shù)據(jù)統(tǒng)計(jì)和分析

EXCEL表格的統(tǒng)計(jì)分析功能主要通過計(jì)算函數(shù)和公式完成,對(duì)成績分析來講主要有:

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

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

排名:= RANK(rangeName, rangeName)

正態(tài)分布率:= NORMDIST(rangename,AVERAGE(rangename),DEVSQ( rangename),TRUE)

分段人數(shù)統(tǒng)計(jì):

80分~90分的人數(shù) =COUNTIF(rangeName,\">=80\")-COUNTIF(rangeName,\">90\")

70分~80分的人數(shù) =COUNTIF(rangeName,\">=70\")-COUNTIF(rangeName,\">80\")

不及格的人數(shù) =COUNTIF(rangeName,\"<60\")

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

優(yōu)秀率:= COUNTIF(rangeName,\">=90\")/COUNT(rangeName)

一個(gè)EXCEL工作薄(book)可以包含多個(gè)工作表(sheet),為保證數(shù)據(jù)導(dǎo)入和與CHART組件數(shù)據(jù)交換的安全性,一般應(yīng)將成績數(shù)據(jù)放在sheet1工作表中,而將統(tǒng)計(jì)數(shù)據(jù)放在sheet2中。其中的rangeName為成績數(shù)據(jù)的區(qū)域(range)名。可通過代碼修改單元格公式,只需要將公式字符串賦值給指定的單元格Formula即可:

如:speadsheet1.Names.Add(\"rangename\", \"sheet1! $D$2:$D \")

speadsheet1.sheets(2).Cells(intRow, intCol).Formula=\"=COUNTIF(rangename,\"\"<60\"\")\"

3.5 數(shù)據(jù)透視表

成績表一般以流水帳形式記錄數(shù)據(jù),其中的每條記錄內(nèi)容為某位學(xué)生在某門課的某次考試成績,記錄數(shù)量較大。數(shù)據(jù)透視表是一種對(duì)大量數(shù)據(jù)快速匯總和建立交叉列表的交互式表格,能幫助用戶分析、組織數(shù)據(jù)[2]。利用它可以很快地從不同角度對(duì)數(shù)據(jù)進(jìn)行分類匯總。 對(duì)考試成績來說,可以將課程作為列,將學(xué)生作為行,計(jì)算每個(gè)學(xué)生各門課程的平均成績,生成透視表(圖2)。PivotTable控件HTML代碼如下:

<OBJECT classid=\"clsid:0002E552-0000-0000-C000-000000000046\" id=\"pvt1\" ></OBJECT>

數(shù)據(jù)透視表生成代碼:

<scriptlanguage=\"VBScript\">

strPath = server.mappath(\"test.mdb\")

Pvt1.ConnectionString = \"provider=microsoft.jet.oledb.4.0;data source=\" strPath

Pvt1.DataMember = \"score\"

Pvt1.ActiveView.AutoLayout’自動(dòng)導(dǎo)入數(shù)據(jù)透視表。

set c=pvt1.Constants

ctotal = pvt1.activeview.AddTotal(\"avg\", pvt.ActiveView.FieldSets(3).Fields(0),c.plFunctionAverage)

With pvt1.ActiveView

.FilterAxis.InsertFieldSet(pvt1.activeview.fieldsets(0))

.FilterAxis.InsertFieldSet(pvt1.activeview.fieldsets(1))

.RowAxis.InsertFieldSet(pvt1.activeview.fieldsets(2))

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

. DataAxis.InsertTotal(ctotal, 0)

.DetailAutoFit = True

.ExpandDetails = PivotTableExpandEnum.plExpandAutomatic

End With

</script>

3.6 統(tǒng)計(jì)圖表輸出

統(tǒng)計(jì)圖表是以圖表直觀表現(xiàn)數(shù)據(jù)關(guān)系的一種方式。常用的有柱狀圖、餅圖、折線圖等[3]。需要注意的是不同圖的參數(shù)和數(shù)據(jù)源選擇有所不同。例如用Chart組件生成分段人數(shù)的柱狀圖,組件HTML代碼為:

<o(jì)bjec classid=\"clsid:0002E500-0000-0000-C000-000000000046\" id=\"Cspace\">

</object>

將Chart數(shù)據(jù)源綁定到spreadsheet代碼:

<scriptlanguage=\"VBScript\">

sheet.Names.Add(\"RangeFenduan\", \"sheet1! $G$2:$G7\")

Dimcht,ser,rngValues,c

Dim fSeriesInCols

fSeriesInCols=1 '1:以行產(chǎn)生系列,true:以列產(chǎn)生系列

c=sheet.Constants

cspace.Clear

cspace.DataSource=sheet '綁定數(shù)據(jù)源

cht=cspace.Charts.Add()

cht.Type=c.chChartTypeColumnClustered'定義為柱狀圖

cht.HasTitle=true'顯示標(biāo)題

cht.Title.Caption=\"分段人數(shù)統(tǒng)計(jì)圖\"'設(shè)置標(biāo)題內(nèi)容

setrngValues=sheet.Range(RangeFenduan)'取數(shù)據(jù)

foreachserincht.SeriesCollection

if fSeriesInCols then

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

else

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

endif

setdl=ser.DataLabelsCollection.Add()

dl.Position=c.chLabelPositionTop

next

cht.HasLegend=true'顯示圖例

</script>

4 小結(jié)

基于OWC的成績分析可以通過成績數(shù)據(jù)的導(dǎo)入、公式計(jì)算、數(shù)據(jù)透視表和圖表輸出,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)教學(xué)的評(píng)價(jià)。將其設(shè)計(jì)為一個(gè)Web Services,可被多個(gè)教學(xué)系統(tǒng)共享,在實(shí)踐中取得了良好的效果。但在調(diào)用OWC組件時(shí)也存在客戶端必須安裝Office軟件局限性。

參考文獻(xiàn):

[1] 構(gòu)建基于 Web 的分析系統(tǒng)[EB/OL].http://msdn.microsoft.com/.

[2] Microsoft Office Web 組件基礎(chǔ)[EB/OL].http://tech.it168.com/.

[3] OWC中的PivotTable(透視表)使用XML數(shù)據(jù)源[EB/OL].http://blog.csdn.net.

主站蜘蛛池模板: 91破解版在线亚洲| 永久免费无码日韩视频| 久久黄色一级视频| 99久久人妻精品免费二区| 国产成人在线无码免费视频| 久久性视频| 亚洲婷婷丁香| 97综合久久| 久久青草热| 黑色丝袜高跟国产在线91| 国产精品观看视频免费完整版| 久久精品人妻中文系列| 国产成人精品一区二区免费看京| 婷婷色婷婷| 国产精品99久久久| 欧美色综合久久| 国产精品精品视频| AV不卡在线永久免费观看| 欧美日韩国产在线观看一区二区三区| 白丝美女办公室高潮喷水视频| 精品国产成人三级在线观看 | 免费人成网站在线高清| 伊人成人在线视频| 国产嫖妓91东北老熟女久久一| 亚洲最黄视频| Jizz国产色系免费| 欧美日韩国产在线播放| 国产精品无码一区二区桃花视频| 91视频免费观看网站| 岛国精品一区免费视频在线观看 | 亚洲精品手机在线| 国产主播一区二区三区| 巨熟乳波霸若妻中文观看免费| 91小视频版在线观看www| 大学生久久香蕉国产线观看| 国产高清色视频免费看的网址| 亚洲国产中文在线二区三区免| 日韩欧美综合在线制服| 天堂va亚洲va欧美va国产| 国内精品视频在线| 成年人国产网站| 少妇高潮惨叫久久久久久| 伊人色婷婷| 麻豆精品在线播放| 欧美日韩一区二区三| a欧美在线| 97久久超碰极品视觉盛宴| 久热中文字幕在线| 久久人体视频| 久久香蕉国产线| 亚洲天堂成人在线观看| 亚洲福利一区二区三区| 在线免费亚洲无码视频| 日本中文字幕久久网站| 日本午夜三级| 97在线公开视频| 91在线免费公开视频| 欧洲熟妇精品视频| 亚洲精品欧美重口| 亚洲视频一区| 午夜激情福利视频| 国产精品无码AⅤ在线观看播放| 久久天天躁狠狠躁夜夜躁| 国产黑人在线| 成人毛片免费观看| 69免费在线视频| 免费a级毛片18以上观看精品| 亚洲精品人成网线在线| 成人无码区免费视频网站蜜臀| 99re在线视频观看| 男女男免费视频网站国产| 91欧洲国产日韩在线人成| 欧美不卡在线视频| 日韩黄色大片免费看| 片在线无码观看| 五月天综合网亚洲综合天堂网| 青青草国产一区二区三区| 亚洲精品制服丝袜二区| 国产99欧美精品久久精品久久 | 国产91小视频在线观看| 五月综合色婷婷| a欧美在线|