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

計算機基礎課程考試自動評分功能的研究與實現

2022-04-20 07:04:04曾之光
科教創新與實踐 2022年5期

曾之光

摘要:大學計算機基礎課程的考試主要考核的是學生的理論知識與實際操作兩部分內容,理論知識采用選擇題的形式考核,操作部分包括Windows的基本操作和office軟件的應用操作進行考核。如果單純依靠人工閱卷,效率會非常低,而且容易出現誤判、漏判、給分不公正等問題。為了解決這些問題,我認真研究了很多資料,采用Python語言對選擇題編寫自動閱卷程序,使用VB語言編程,實現了操作題的自動閱卷功能。本文闡述了自動評分功能構成原理及各模塊的設計與實現方法,從技術上給出了實現這些閱卷功能的主要代碼。解決了這些問題將提高教師試卷批閱的工作效率,并且其準確性很高,可以廣泛地應用于計算機基礎課程考試的閱卷中。

關鍵詞: 大學計算機基礎;自動閱卷;Python;VB;選擇題;操作題

0 引言

信息技術已融入社會生產和生活的各個方面。目前在我國計算機教育正在不斷的進行普及,廣大高校普遍都采用在計算機上直接操作的考核方式。但由于《大學計算機基礎》是被是各大高校所有非計算機專業的公共必修課,上課學生數量多,考試的人數也多,單純依靠人工進行閱卷會帶來很大的工作量。電腦自動閱卷可以減輕閱卷教師工作量的同時,也可以降低判卷的錯誤率,提高閱卷的質量和客觀性。因此,在計算機基礎考試中采用自動評分是最好的選擇。目前各個高校的計算機基礎考試主要分理論選擇題、 Windows操作題、文字處理Word、電子表格 excel、演示文稿PowerPoint等知識內容的考察。理論知識部分的選擇題進行自動的評分相對比較容易實現,對于操作部分的題目進行自動評分還是有著較大的難度。該部分內容實踐性很強,讓學生按題目要求對 windows和office軟件的操作題進行操作,再對操作結果進行判斷。本人自主開發設計了針對選擇題的自動改卷評分,針對windows操作題和office軟件操作題的自動改卷評分等功能及解決方案。

1 利用Python編程設計對選擇題考核自動閱卷的實現

Python語言因具有簡潔、直接、易用的特點,被廣泛地應用于解決實際問題,同時,它具有很大的靈活性,有非常強大的第三方庫支持,工作效率高。大學計算機基礎考試一般有20道理論選擇題,都是單選題。每套題的題目和答案都不一樣,需要在短時間內準確地把每個班的選擇題成績統計出來,實現自動化批改,要做以下工作。

1.1 準備工作

要實現自動化改卷,電子試卷的答題卡必須要統一模板。答題卡采用Excel文檔,要在規定的位置填寫姓名和學號,答案填在第三行,每一題的答案要填在對應的單元格,如圖1所示。為了便于程序讀取文件,所有的電子答題卡文件必須與Python程序放在同一個文件夾目錄下。

1.2 讀取Excel表格數據

Python要讀取Excel表格數據就必須安裝openpyxl庫。在命令窗口輸入:pip install openpyxl,然后回車就安裝好了。本文以10道選擇題的自動評分為例,選擇題自動評卷的主要部分代碼如下:

import openpyxl

print(“請輸入答案所在的行數”)

# day = 3

day = int(input())

print(“請輸入正確答案”)

print(“輸入的答案是不帶空格或逗號的大寫字母”)

keys = [‘D’, ‘B’, ‘D’, ‘B’, ‘D’, ‘D’, ‘D’, ‘B’, ‘B’, ‘B’]

keys = input()

# DBDBDDDBBB

awb = openpyxl.Workbook()

awsheet = awb.active

# first row

for i in range(4, 14):

awsheet.cell(row=1, column=i - 1, value=i - 3)

awsheet.cell(row=1, column=1).value = “學號”? # write in

awsheet.cell(row=1, column=2).value = “姓名”

awsheet.cell(row=1, column=13).value = “得分”

aws = []

# get answer 1-10

for i in range(4, 14):

charaws = ws.cell(row=day, column=i).value.upper()? # turn into upper case

aws.append(charaws)

awsheet.cell(row=j, column=i - 1, value=charaws)

if charaws != keys[i - 4]:? # WA

# thiscell.font.italic = True

awsheet.cell(row=j, column=i - 1, value=charaws).font = RedFont

if i <= 14:

score = score - 1

awsheet.cell(row=j, column=13, value=score)

else:

score = score - 1

awsheet.cell(row=j, column=13, value=score)

print(aws)? # 打印答案數組

j = j + 1

# print(len(f))???????? # 目錄下文件個數

# aws.cell(row = 1, column = 1).value = ‘test’

awb.save(‘aws.xlsx’)

print(“改卷完成,謝謝使用.”)

把上面編寫的程序和學生的答題卡放在同一個文件夾,然后運行代碼,會先彈出“請輸入答案所在行數”,如果答題卡的答案填在第3行就輸入一個“3”字再按回車。回車后會彈出“請輸入正確答案”,并且顯示“輸入的答案是不帶空格或逗號的大寫字母”。按要求輸入了正確答案后再按回車如圖2所示:

最后得到一個Excel文檔,記錄了每位同學的選擇題最后得分,如圖3所示:

通過上面的代碼我們可以對所有學生的選擇題答題卡進行快速的自動批改,就算換了不同的題目,不同的答案,只要輸入正確的答案都可以直接快速修改,而不需要修改代碼,只要按原來答題卡的模板進行填寫答案就可以,這樣便捷而快速。

2 利用VB編程設計對操作題自動閱卷的實現

VisualBasic是由微軟推出的用于Windows程序設計優秀編程語言。它對微軟的Windows系統和Office軟件的兼容性高。而且,它還引入了可視化的和面向對象的程序設計方法,大大提高了開發效率。所以,我利用VB編程設計對操作題進行了自動評卷。

2.1 Windows操作題考核自動閱卷的實現示例

本節介紹了 windows 操作考題自動閱卷的基本思想,并提出了解決方案。Windows 操作題自動閱卷最關鍵的技術就是對學生考題的對象屬性進行提取與判斷。考題對應的判斷模塊主要是通過選擇性語句來實現對考生文件夾中對象的屬性與考試要求逐一進行比較,如果比較結果一致表示正確,比較完成后將累加相應的得分。基于該思想,我利用 vb的相關知識編寫了自動判斷Windows操作題對錯的代碼。下面將對各個類型題目的自動閱卷的關鍵代碼進行逐個介紹。由于全部閱卷的代碼較多,這里只列出了部分關鍵性代碼。

首先在計算機自動閱卷時 ,程序要和文件或文件夾放在同一個文件夾下進行 ,先進行讀取,然后再判斷正確與否,正確的增加相應的得分。比如:文件與文件夾在指定文件夾下是否存在,文件與件夾的屬性是否正確等,利用 VB編程能比較方便地進行判斷。主要代碼如下:

我們以五題Windows操作題為例,首先,先定義五個變量為整數型作為每題獲得的分數。

Dim one As Integer

Dim two As Integer

Dim three As Integer

Dim four As Integer

Dim five As Integer

然后我們新建一個EXCEL表格作為各學生成績數據存放的地方,工作表中有姓名,總分,每一題得分等字段名,后面自動判斷得出的評分數據可以按順序自動填到相應的單元格。

exl.Workbooks.Add

Cells(1, 1).Value = “姓名”

Cells(1, 2).Value = “總分”

Cells(1, 3).Value = “第一題”

Cells(1, 4).Value = “第二題”

Cells(1, 5).Value = “第三題”

Cells(1, 6).Value = “第四題”

Cells(1, 7).Value = “第五題”

Dim o As String

Dim p As String

Dim pathstr As String

pathstr = Label3.Caption & “\” ‘父目錄

p = Dir(pathstr, vbDirectory) ‘取第一個

Do While p <> “” ‘不為空就循環

If p <> “.” And p <> “..” Then ‘如果不是當前目錄及上一級目錄 . 及 ..

If (GetAttr(pathstr & p) And vbDirectory) = vbDirectory Then ‘是否是目錄

Cells(i, 1).Value = p?? ‘確定是目錄,添加到列表,這里可以自己處理

Cells(i, 3).Value = 4

End If

End If

p = Dir ‘取下一個

i = i + 1

Loop

具體操作是否正確得分,判斷文件ATEND.DOC移動到JINK文件夾,判斷USER.txt文件屬性為只讀和將文件夾REMOTE壓縮在LOCAL文件夾中。如果操作正確則增加相應的得分,把得分填入相應的單元格,代碼如下:

If Dir(Path & “JINK\” & “ATEND.DOC”, vbNormal) <> “” And Dir(Path & “success\” & “ATEND.DOC”, vbNormal) = “” Then two = two + 3

Cells(m, 4).Value = two

If Dir(Path & “PAINT\” & “USER.txt”, vbReadOnly) <> “” Then three = three + 3

Cells(m, 5).Value = three

If Dir(Path & “LOCAL\” & “REMOTE.rar”, vbNormal) <> “” Then four = four + 3

Cells(m, 6).Value = four

If Dir(Path & “MAULYH\” & “BADBOY”, vbDirectory) = “” Then five = five + 2

Cells(m, 7).Value = five

遍歷考試文件夾里每位學生的學號和姓名文件夾,把各名學生的學號和姓名填入對應的單元格,把Windows文件操作題最后得分自動相加后填入EXCEL表格中,并把EXCEL文件命名為“操作成績”,代碼如下:

FName = Label3.Caption & “\” & “操作成績.xls”

ActiveWorkbook.SaveAs FileName:=FName

i = 1

j = 1

Do While Cells(i, 1).Value <> “”

i = i + 1

Loop

Do While Cells(1, j).Value <> “”

j = j + 1

Loop

i = i - 1

j = j - 1

score = 0

For a = 2 To i

For b = 3 To j

If Cells(a, b).Value = Cells(1, b).Value Then score = score + 1

Next b

Cells(a, 2).Value = score

score = 0

Next a

Command1.Enabled = False

For k = 1 To j

最后通過窗體和控件把代碼界面化便于操作和運行,最后的效果如下圖2

2.2 Office操作題考核自動閱卷的實現示例

在VB中對Office操作題進行自動批改評分的思路與Windows操作題自動閱卷的思路一樣。在Word、Excel、PowerPoint大題模塊中有幾道小題就先定義幾個變量作為每題獲得的分數,然后創建一個EXCEL表格填寫成績。通過IF和Then函數對題目進行判斷,對的就在定義得分變量進行累加得分。最后遍歷考試文件夾里每位學生的學號和姓名文件夾,把各名學生的學號和姓名填入對應的單元格,把Windows文件操作題最后得分自動相加后填入EXCEL表格中。

我們在對Office操作題目的設置做出判斷時,要用到office軟件自帶的宏功能幫助。利用宏可以幫助我們快速寫出批改程序,在不知道該用什么命令時,可以先錄制好完成該題時的宏,然后去理解其中的宏命令含義,再編寫相應的程序,這樣可以提高編程效率。對于Office操作都可以采用這種方法獲得宏命令代碼,但要經過修改才能使用。比如想要判斷字體、字號、字體顏色等等的操作是否正確時,我們可以先錄制相應的宏命令,找出里面字體設置的代碼,因為宏命令的腳本語言是VBscript,用到的代碼在VB中一樣適用。下面我們分別對Word、Excel、PowerPoint這三大模塊的操作閱卷的主要實現代碼做出講解。

2.2.1 Word操作題實例

通過前面所說,我們對VB語言自動批改Word操作題已經有了大致的思路。下面,我們通過兩個實例學習VB批改Word操作題的編程方法。

例1字體格式的評測。

題目要求:將標題段文字(“搜狐榮登Netvalue五月評測榜首”)的格式設置為:小三號宋體、紅色、加下劃線、居中,并添加藍色底紋。 批改代碼如下:

Set yirange = ActiveDocument.Paragraphs(1).Range???? ‘定義區域為第一段

With yirange

If .Font.Name = “宋體” And .Font.Size = 15 Then one = one + 1

If .Font.Color = wdColorRed Then one = one + 1

If .Font.Underline = wdUnderlineSingle Then one = one + 1

If .ParagraphFormat.Alignment = wdAlignParagraphCenter Then one = one + 1

If .Shading.Texture = wdTextureNone Then one = one + 1

例2表格格式的評測。

題目要求:將文檔中第二頁所提供的文字轉換為一個6行3列的表格,再將表格內容設置成“中部右對齊”;設置表格各列列寬為3厘米,各行行高為1厘米,并將表格最外面的四條邊線邊框設置為紅色、1.5磅粗細的雙實線。 批改代碼如下:

Set wurange = ActiveDocument.Paragraphs(5).Range???? ‘定義區域為第五段

With wurange

If .Paragraphs.CharacterUnitFirstLineIndent = 2 Then four = four + 1

End With

If wrd.Documents(s).Tables.Count > 0 Then five = five + 2

With wrd.Documents(s).Tables(1)

If.Borders(wdBorderBottom).LineStyle=wdLineStyleDouble And .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle Then five = five + 2

If.Borders(wdBorderBottom).LineWidth=wdLineWidth150pt And .Borders(wdBorderHorizontal).LineWidth = wdLineWidth050pt Then five = five + 1

If .Borders(wdBorderBottom).Color = wdColorRed And .Borders(wdBorderHorizontal).Color = wdColorAutomatic Then five = five + 1

If .Rows(1).Range.Paragraphs.Alignment = wdAlignParagraphRight Then five = five + 2

If .Rows(1).Height = 28.35 Then five = five + 2

End With

2.2.2 Excel操作題實例

跟前面Word操作題自動評分的代碼一樣。下面,我們繼續通過實例介紹VB批改Excel操作題的編程方法。

題目要求:1、將sheet1工作表的A1:G1單元格合并為一個單元格,文字水平居中對齊,設置第1行行高為20。2、用函數計算“合計” 、“平均值”列內容,將工作表命名為”家用電器銷售數量情況表”。批改代碼如下:

Set xlSheet = xlBook.Worksheets(1)?? ‘改過工作表名的設置活動工作表

If xlSheet.Range(Cells(1, 1), Cells(1, 7)).MergeCells = True Then one = one + 2

‘設置行高

If xlSheet.Rows(1).RowHeight = 20 Then one = one + 1

‘判斷工作表名

If xlBook.Worksheets(1).Name = “家用電器銷售數量情況表” Then two = two + 1

‘判斷公式

Set xlSheet = xlBook.Worksheets(“家用電器銷售數量情況表”)

If xlSheet.Range(“F3”).Formula = “=SUM(B3:E3)” And xlSheet.Range(“F6”).Formula = “=SUM(B6:E6)” Then two = two + 1

If xlSheet.Range(“G3”).Formula = “=AVERAGE(B3:E3)” And xlSheet.Range(“G6”).Formula = “=AVERAGE(B6:E6)” Then two = two + 1

2.2.2 PowerPoint操作題實例

我們再來看看PowerPoint的閱卷評分代碼,全部幻燈片切換方案為“溶解”,評分的代碼如下:

If pptApp.ActivePresentation.Slides.Count <> 2 Then

If pptApp.ActivePresentation.Slides(3).SlideShowTransition.EntryEffect = ppEffectDissolve Then one = one + 3

Else:If pptApp.ActivePresentation.Slides(1).SlideShowTransition.EntryEffect = ppEffectDissolve Then one = one + 3

End If

自動批改第二題,第二張幻燈片版式改為“兩欄內容”,標題為“尼斯湖水怪”,插入圖片“ppt2.jpg”,設置圖片動畫為“進入“動畫的 “形狀”,效果選項為“形狀-菱形“,設置文本動畫為”進入“-”飛人“,效果選項為”自左上部“。評分代碼如下:

If pptApp.ActivePresentation.Slides.Count <> 2 Then

If pptApp.ActivePresentation.Slides(3).Layout = ppLayoutTwoObjects Then two = two + 1

If pptApp.ActivePresentation.Slides(3).Shapes(1).TextFrame.TextRange.Text = “尼斯湖水怪” Then two = two + 1

If pptApp.ActivePresentation.Slides(3).Shapes(3).Height < 205.5 Then two = two + 1 ‘插入圖片

Set dhshape = pptApp.ActivePresentation.Slides(3).Shapes(2)

With dhshape

If dhshape.AnimationSettings.EntryEffect = ppEffectFlyFromTopLeft Then two = two + 1

End With

Set dh2shape = pptApp.ActivePresentation.Slides(3).Shapes(3)

With dh2shape

If dh2shape.AnimationSettings.EntryEffect = ppEffectDiamondOut Then two = two + 1

End With

Else: two = two + 0

End If

通過上面的代碼分析知道,我們可以針對不同的題目內容去修改IF函數后面的條件,再對應給出相應的分值。最后一段統計分數的代碼和前面Windows操作部分的代碼類似,就是遍歷文件夾里每位考生的Word、Excel、PowerPoint文檔,最后把每位考試的姓名、學號和成績都填到一個新建的Excel文檔。當然,為了方便運行操作,我們也同樣通過窗體和控件把代碼進行界面化。

結束語

以上編程方法,有點繁復,也不一定很完美,但畢竟提供了一種閱卷思路,相比用人工去逐一打開學生的文件,然后進行評判來得省時、省力,而且閱卷者能根據自己的需要增減某些項目的評分要求。在Windows平臺上完成計算機基礎考試中各模塊自然融合自動閱卷,已成功地應用于2020年第一學期大學計算機基礎期末考試試題的批改中,經各位老師和實踐驗證表明,該閱卷程序性能穩定,閱卷速度快,結果完全正確。當然批改程序也不是萬能的,只起輔助手段。學生答案可能千奇百怪,若實際操作過程中,出現評錯分的情況時,一定要仔細研究,分析原因,修正程序,以免誤導學生。

參考文獻:

[1] 朱江,謝深泉.考試系統中 Word 操作題自動閱卷的實現[J].湘潭大學自然科學,2002,4(3):49-51.

[2] 王亞利,李井竹.基于 VBA 的 Office 操作題自動閱卷技術的研究與實現[J].廊坊師范學院學報然科學版),2008,8(4):5-7.

[3] 檀小璐.大學計算機基礎考試系統的分析與設計[D].秦皇島:燕山大學,2013.李昕.計算機基礎考試系統的設計與實現 [D].青島 : 中國海洋大學,2014.

[4] 姚利國,姚暉.計算機基礎考試中 Office 操作題自動閱卷的實現[J].四川教育學院學報,2003,(12) :85-86.

[5]楊本倫. Visual Basic 開發技術大全.清華大學出版社, 2010.8

[6] 劉穎,榮義,劉偉.基于VBA 通用的上機考試制卷與評分系統的實現 [J].電腦編程技巧與維護,2010,8:32-34.

主站蜘蛛池模板: 97狠狠操| 国产精品人成在线播放| 九九香蕉视频| 91欧美亚洲国产五月天| 欧美福利在线| 国产AV无码专区亚洲A∨毛片| 国产视频大全| 免费无码AV片在线观看国产| 欧美亚洲第一页| 日韩免费毛片视频| 一级毛片无毒不卡直接观看| 三区在线视频| 久久香蕉国产线看观看亚洲片| 成人午夜亚洲影视在线观看| 久久美女精品国产精品亚洲| 国产精品美女网站| 一级毛片在线播放| 国产69精品久久久久孕妇大杂乱 | 中文字幕亚洲第一| 综合网天天| 国产美女免费网站| 精品自窥自偷在线看| 亚洲视频免费在线看| 五月丁香伊人啪啪手机免费观看| 成人夜夜嗨| 自拍偷拍一区| 日本免费a视频| 日韩人妻无码制服丝袜视频| 免费人成又黄又爽的视频网站| 亚洲无码电影| 国产欧美亚洲精品第3页在线| 国产嫖妓91东北老熟女久久一| 国产高潮流白浆视频| 免费在线国产一区二区三区精品| 免费A∨中文乱码专区| 台湾AV国片精品女同性| 亚洲综合香蕉| 黄色在线不卡| 国产精品va| 亚洲人成网站色7777| 曰韩人妻一区二区三区| 亚洲国产成熟视频在线多多| 久久96热在精品国产高清| 欧美成人一级| 亚洲a级毛片| 亚洲天堂视频在线观看| 伊伊人成亚洲综合人网7777| 狠狠色噜噜狠狠狠狠色综合久| 伊人91在线| 高清欧美性猛交XXXX黑人猛交 | 在线另类稀缺国产呦| 亚洲日本韩在线观看| 亚洲综合色婷婷中文字幕| 欧美精品二区| www.亚洲一区| 欧美一级在线看| 久久综合九九亚洲一区| 日韩精品毛片人妻AV不卡| 毛片大全免费观看| 国产人人射| 伊人久久综在合线亚洲2019| 超级碰免费视频91| 成人在线欧美| 国内精品视频区在线2021| 欧美特黄一级大黄录像| 国产欧美日韩va| 久久综合九色综合97网| 久久久黄色片| 国产v欧美v日韩v综合精品| 婷婷亚洲最大| 人妻中文久热无码丝袜| 在线欧美a| аⅴ资源中文在线天堂| 亚洲乱码视频| 国产日韩欧美成人| 自拍欧美亚洲| 99ri精品视频在线观看播放| 国产精品久线在线观看| 人妻一区二区三区无码精品一区| 亚洲综合中文字幕国产精品欧美 | 99视频在线免费看| 人妻丰满熟妇av五码区|