VB,PPT制作评分系统

由学生朗诵,八位教师现场打分,通过比赛评分系统即时评比。用PowerPoint内嵌的VBA功能制作即时评分系统。比赛评分系统,首先对PPT内嵌的控件工具箱进行简单的学习。

准备工作

新建一文件夹。命名为“考试评分”。用于存放参赛人员的相关信息,其中Name.txt中保存参赛人员名字(事先准备好Name.txt,每位参赛选手人员占一行)。

制作过程

1、界面设置

打开PowerPoint 2003新建一幻灯片,点击“视图—工具栏—控件工具箱”打开“控件工具箱”。在工具箱中使用“图像控件”来插入八位语文老师的照片,分数可以用“文本框”来表示,再插入两个“命令按钮”来进行操作,分别为:清空“和”最终得分“按钮。放置好控件之后再调整各控件的属性美化界面。

评委打分的文本框名称为Text1,Text2,.......Text8,“最终得分”按钮的名称为CommandTotal,第二张幻灯片用来显示最后得分,名称为Tota1Score.

2、全局变量设置

打开VBA编辑器输入代码。

Const Path$ = "C:\考试评分\"

''指定得分的统计文件路径

Dim sum As Single

''全局变量总分

Dim AverageScore As Single

''全局变量平均得分

Dim GroupNum As Integer

''全局变量记录组次

Private Sub CommandButton1_Click()

''清空得分

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

Text6.Text = ""

Text7.Text = ""

Text8.Text = ""

Slide2.TotalScore.Caption = ""

''清空下一张幻灯片的最后总分

End Sub

Private Sub CommandTotal_Click()

''“最终得分”按钮

On Error GoTo er

Dim sum As Single

''将8个评委的分数相加得出总分sum

sum = sum + CSng(Text1.Text)

sum = sum + CSng(Text2.Text)

sum = sum + CSng(Text3.Text)

sum = sum + CSng(Text4.Text)

sum = sum + CSng(Text5.Text)

sum = sum + CSng(Text6.Text)

sum = sum + CSng(Text7.Text)

sum = sum + CSng(Text8.Text)

AverageScore = Format(sum / 8, "#.###")

''计算出最后得分(平均分),精确到小数点后3位

Slide2.TotalScore.Caption = AverageScore

''第二张幻灯片显示最后得分

If GroupNum>=1 AND GroupNum <= 5 Then

''写入最后得分

Open Path$ & "InpScore.txt" For Append As #1

Print #1, AverageScore

Close #1

End If

GroupNum = GroupNum + 1

er:

End Sub

3、建立评奖模块

在MICIosoft Visua1 Basic中点击“插入—模块”来建立评奖模块,再次输入代码,

Const Counter = 6

''如评一等奖1名,二等奖2名,三等奖3名,故Counter设为6

Public StrName(Counter) As String

Public SngScore(Counter) As Single

Public Sub ReadDataInp()

''读取得分文件,并对得分加以排序

On Error GoTo er

Open Path$ & InpName.txt For Input As #1

For i = 1 To Counter

Input #1, StrName(i)

Next

Close #1

Open Path$ & InpScore.txt For Input As #2

For i = 1 To Counter

Input #2, SngScore(i)

Next

Close #2

For i = 1 To Counter

For j = 1 To Counter

If SngScore(i)  SngScore(j) Then

a = SngScore(i) SngScore(i) = SngScore(j) SngScore(j) = a

b = StrName(i) StrName(i) = StrName(j) StrName(j) = b

End If

Next

Next

er

End Sub

4、建立显示获奖名单

回到PPT中新建一张幻灯片,用于显示获奖名单,按钮名称为CmdDisply,6个文本框的名称为Prize1,...,Prize6.输入代码。

Private Sub CmdDisply_Click()

ReadDataInp

''因为分数从高到低排序,因此先输出最后三组

Prize1.Text = StrName(4)

Prize2.Text = StrName(5)

Prize3.Text = StrName(6)

大家在制作时可以加入其他的幻灯片用做装饰,这样就能让赛场气氛非常热烈。