基于Visual Basic的高校教师讲课比赛评分系统的设计

时间:2022-05-20 07:02:31

基于Visual Basic的高校教师讲课比赛评分系统的设计

[摘要]高校教师讲课比赛对于提高教师的教学能力,促进其专业成长有着重要的意义。Visual Basic语言是面向对象的可视化编程语言。为了提高评分效率,提高评分过程的公正性,本文旨在探究如何设计一个基于Visual Basic语言的高校教师讲课比赛评分系统。

[关键词]Visual Basic 讲课比赛 可视化 评分系统 设计

一、引言

近年来,随着我国高等教育进程的不断加快和高校扩招规模的不断加大,高校师资力量的建设日益成为我国高校发展的核心任务。高校教师的主要任务分为课堂教学和科研两个方面,其中课堂教学环节是高校教学质量的基础。为了营造“人人关心教学”的良好氛围,为了给高校教师提供展示自我的舞台和相互切磋、学习的机会,更为了激发教师的教学热情,提高教师的综合教学能力,促进教学模式的转变,我国各大高校广泛举办起教师讲课比赛观摩活动。[1]

据了解,目前高校的教师讲课比赛大多还是采用人工计分、算分的手段,这种评分方式往往耗时、耗力,且人工算分的可信度和公正性较低。随着计算机技术和可视化编程技术的迅速发展,在教师讲课比赛中采用可视化的自动评分系统不仅可以使比赛的打分过程更趋于客观、公正,还可以使评分过程更加规范,使评分结果更精确。

Visual Basic是一种由微软公司开发的以结构化的Basic语言为基础的,包含协助开发环境的事件驱动编程语言。VB具有面向对象的可视化图形用户界面,可以便捷地使用DAO、RDO、ADO连接数据库。本文就是以可视化、面向对象的思想来探讨如何基于Visual Basic语言和Access数据库开发一个高校教师讲课比赛的评分系统[2]。

二、评分系统的评分流程

1.课堂教学环节专家评委打分

本评分系统中设定一共有十个专家评委,其中有两个本单位专家评委不参与打分,剩余八个评委打分后去掉一个最高分、一个最低分取平均分即为评委课堂教学环节打分成绩。

2.课堂教学环节学员评委打分

一共有二十个学员评委,他们的打分方式分为“优秀”和“良好”两种,其中,“优秀”为1分,“良好”为0.8分,取平均分即为课堂教学环节学员评委打分成绩。

3.超(差)时扣分环节

本评分系统中规定一堂课的比赛时间为45分钟,其中44至46分钟不扣分,超(差)时半分钟以内扣0.1分,以此类推,例如比赛用时“46分25秒”超时扣0.1分,比赛用时“46分32秒”扣0.2分。

4.加权得分

参赛教师的课目类型分为理论课、研讨课和案例课三种形式,其中研讨课和案例课可获得“1%”的加权分,理论课的加权分为“0”。研讨课和案例课加权分的计算方法为:“加权分=(课堂教学环节评委打分成绩+课堂教学环节学员打分成绩—超(差)时扣分)*1%”。

5.现场抽题回答环节专家评委打分

教师在完成课堂教学之后有5分钟时间的抽题回答时间,总分为“0-1”分,评委组将根据选手的回答情况最后商定一致给一个得分。

6.参赛教师的最终得分

参赛教师最终得分的计算方法为:“最终得分=课堂教学环节专家评委打分成绩+课堂教学环节学员评委打分成绩—超(差)时扣分+加权分+现场抽题回答得分”。

三、评分系统的功能模块设计

图1:评分系统的主界面

Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统,和其他办公应用程序一样,Access支持Visual Basic语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件,Visual Basic对Access数据库的集成非常紧密。

在用Visual Basic设计本评分系统之前,首先要使用Microsoft Office Access建立一个数据库db1.mdb,再在数据库中建立两张表,分别为参赛教师信息表和参赛教师得分情况信息表。

1.参赛教师信息模块的设计

参赛教师的照片、单位、课程名称、授课班次以及课程类型等信息可以通过选择他们的姓名相对应的从Access数据表中读取出来。该模块的主要代码如下:

Private Sub Combo1_Click()

Set cnn=New ADODB.Connection

Set rs=New ADODB.Recordset

cnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb;Persist Security Info=False"

rs.CursorLocation=adUseClient

rs.Open "select教师,单位, 课程名称,授课班次,课程类型from表1 where 教师='"&Combo1.Text &"'",cnn, adOpenDynamic,adLockPessimistic

Text15.Text=rs!单位

Text16.Text=rs!课程名称

Text17.Text=rs!授课班次

Text14.Text=rs!课程类型

Dim PicName

PicName=rs!教师

PicName=App.Path&"\选手\"& PicName&".jpeg"

Image1.Picture=LoadPicture(PicName)

StrName=Combo1.Text 'fuzhi

Combo1.Text=StrName

rs.Close

cnn.Close

End Sub

2.评委亮分模块的设计

(1)评分录入

图2:评分录入对话框

单击“评分录入”按钮会弹出“评分录入”对话框,依次输入各个评委的打分,其中本单位评委的打分记为零分。该模块的主要代码如下:

Private Sub Command1_Click()

s=0

a=1

For i=1 To 10

counterA(i)=Val(InputBox("请依次输入评委所打分"))

Next i

b=counterA(1)

c=counterA(1)

For i=2 To 10

If counterA(i) > b Then

b=counterA(i)

End If

If (c=0) Then

c=counterA(i)

Else

If (counterA(i) < c) Then

If (counterA(i) > 0) Then

c=counterA(i)

End If

End If

End If

Next i

While a < 11

s=s+counterA(a)

a=a+1

Wend

d=s-b-c

End Sub

(2)评委亮分

单击“评委亮分”按钮,评分录入环节中录入的分数就会按顺序显示在相应的评委文本框当中。该模块的主要代码如下:

Private Sub Command2_Click()

For i=1 To 10

Controls("Text"&i).Text=counterA(i)

Next i

End Sub

3.计时器模块的设计

图3:计时器截图

教师讲课的时间限制在45分钟以内,因此,在评分系统中加入了计时和声音提示功能,分别在40分钟和45分钟时发出不同的提示音。添加一个Timer控件Timer1,该控件的主要代码如下:

Private Sub Timer1_Timer()

Text18.Text=Min

Text19.Text=Sec

Sec=Sec+1

If Sec=60 Then

Min=Min+1

Sec=0

End If

If Min=40 And Sec=0 Then

WindowsMediaPlayer1.URL=App.Path&"\dingdong.mp3"

WindowsMediaPlayer1.settings.autoStart=True

WindowsMediaPlayer1.Controls.play

Call UnRes(101,"CUSTOM",App.Path&"\dingdong.mp3")

End If

If Min=45 And Sec=0 Then

'MsgBox ("第二次ok")

WindowsMediaPlayer2.URL=App.Path&"\xiake.mp3"

WindowsMediaPlayer2.settings.autoStart=True

WindowsMediaPlayer2.Controls.play

Call UnRes(102,"CUSTOM",App.Path&"\xiake.mp3")

End If

End Sub

关于声音提示功能需要添加WindowsMediaPlayer控件,声音文件的添加需要打开外接程序管理器,添加VB资源编辑器,打开资源编辑器,将声音资源添加进来,便可通过WindowsMediaPlayer控件调用该声音资源文件。

另外,在“开始计时”按钮中加入如下代码以激活计时器:

Private Sub Command6_Click()

Timer1.Enabled=True

End Sub

在“暂停”按钮中加入如下代码:

Private Sub Command7_Click()

Timer1.Enabled=False

End Sub

4.参赛教师最终得分页面的设计

图4:最终得分窗口界面

单击“最后得分”按钮,按照评分规则计算出参赛教师的最终得分,并弹出最终得分窗口。该模块的主要代码如下:

Private Sub Command3_Click()

Dim m As Single, n As Single, p As Single, q As Single, r As Single, t As Single, x As Single

m=Format((d/6), "0.00")

n=Format(((Val(Text11.Text) * 1+Val(Text13.Text) * 0.8)/20), "0.00")

x=Form1.Text12.Text

If 44

p=0

End If

If Text18.Text=46 And Text19.Text=0 Then

p=0

End If

If Text18.Text=46 And Text19.Text0 Or Text18.Text > 46 Then

r=Val(Text18.Text) * 60+Val(Text19.Text)-46 * 60

p=Int((r) / 30 + 0.99) * 0.1

End If

If Text18.Text < 44 Then

r=Val(Text18.Text) * 60 + Val(Text19.Text)-44 * 60

p= Int((-r)/30+0.99) * 0.1

End If

If Text14.Text="理论课" Then

q=m+n-p

t=0

Else

If Text14.Text="研讨课"Or Text14.Text="案例课"Or Text14.Text="实践课" Then

q=(m+n-p)*101/100

t=(m+ n-p)*1/100

End If

End If

Form2.Text4.Text=Format(m,"0.00")

Form2.Text5.Text=Format(n,"0.00")

Form2.Text6.Text=Format(t,"0.00")

Form2.Text2.Text=Format(b,"0.00")

Form2.Text3.Text=Format(c,"0.00")

Form2.Text7.Text=Format(p,"0.00")

Form2.Text8.Text=Format(x,"0.00")

Form2.Text12.Text=Format((q+x),"0.00")

Form2.Show

End Sub

5.保存数据模块的设计

单击“保存”按钮,可以将参赛教员的具体得分情况保存到Access数据库中的参赛教师得分情况信息表中。该模块的主要代码如下:

Private Sub Command5_Click()

Set cnn=New ADODB.Connection

Set rs=New ADODB.Recordset

cnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb;Persist Security Info=False"

rs.CursorLocation=adUseClient

rs.Open"表2",cnn, adOpenDynamic, adLockOptimistic

rs.AddNew

rs.Fields("教师").Value=Trim(Combo1.Text)

rs.Fields("评委1").Value=Trim(Text1.Text)

rs.Fields("评委2").Value=Trim(Text2.Text)

rs.Fields("评委3").Value=Trim(Text3.Text)

rs.Fields("评委4").Value=Trim(Text4.Text)

rs.Fields("评委5").Value=Trim(Text5.Text)

rs.Fields("评委6").Value=Trim(Text6.Text)

rs.Fields("评委7").Value=Trim(Text7.Text)

rs.Fields("评委8").Value=Trim(Text8.Text)

rs.Fields("评委9").Value=Trim(Text9.Text)

rs.Fields("评委10").Value=Trim(Text10.Text)

rs.Fields("优秀").Value=Trim(Text11.Text)

rs.Fields("良好").Value=Trim(Text13.Text)

rs.Fields("时间").Value=Trim((Text18.Text)*60+Trim(Text19.Text))

rs.Fields("最高分").Value=Trim(Form2.Text2.Text)

rs.Fields("最低分").Value=Trim(Form2.Text3.Text)

rs.Fields("专家评委(均分)").Value=Trim(Form2.Text4.Text)

rs.Fields("学员评委(均分)").Value=Trim(Form2.Text5.Text)

rs.Fields("现场答题得分").Value=Trim(Form2.Text8.Text)

rs.Fields("加权分数").Value=Trim(Form2.Text6.Text)

rs.Fields("超(差)时扣分").Value=Trim(Form2.Text7.Text)

rs.Fields("最后得分").Value=Trim(Form2.Text12.Text)

rs.Update

rs.Close

cnn.Close

End Sub

四、结束语

为了丰富业余生活以及开展日常工作需要,现代高校乃至社会经常会举办形式多样的竞赛和评比活动。然而,比赛就离不开评分,为了提高工作效率,客观、公正地评价各位参赛选手的竞技水平,本文抛砖引玉,希望计算机类工作者可以设计开发出通用性更强、功能更全面、性能更稳定的评分系统。

[参考文献]

[1]熊志勇.讲课比赛对提升青年教师教学能力的作用[J].重庆科技学院学,2011(3):170-172.

[2]匡松,吕峻闽.Visual Basic程序设计及应用[M].北京:清华大学出版社,2008.

(作者单位:南京政治学院 信息管理中心 南京)

上一篇:中职人才培养模式之初探 下一篇:阿拔斯王朝和唐朝时期的社会阶层对比