当前位置: 首页 > 图文教程 > 工具软件 > 办公软件 > 用PowerPoint制作比赛评分系统

办公软件
把图片加入到页眉
WPS Office 2000表格技巧两则
用WPS Office 2002轻松制作试卷卷头
在WPS Office中快速制作田字格
不专业也能为图片做特效
巧用WPS表格提取身份证个人信息
办公高手 认识WPS特殊的文字工具
用好WPS链接文本框,使你填表更容易
垂直居中让公式与正文和谐相处
如何在WPS表格中进行快速查找!
WPS中画出数学中表示交集的图
巧用WPS文字表格工具实现稿纸功能
WPS文档单元格内容轻松锁定
教你在WPS中输入偏旁部首
怎样给WPS演示设置母版
WPS用绘图工具为文字添上划线
如何设置WPS首行缩进的度量单位
绘图工具任意裁剪PowerPoint图片
WPS文字中清除文档中多余的空行
WPS文字中如何清除文档中多余的空

办公软件 中的 用PowerPoint制作比赛评分系统


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 51 ::
收藏到网摘: n/a

  最近单位组织了一次英语会话比赛,笔者用PowerPoint内嵌的VBA功能制作了一个即时评分系统,受到老师和同学们的一致好评,现将制作过程与大家分享。


  准备工作:在桌面新建一个名为“评分系统”的文件夹,用于存放参赛队的相关信息,其中Name.txt中保存了各参赛队名称(需事先准备,每个队名占一行)。

  启动工作:新建一张空白幻灯片,在“视图”菜单下找到“工具栏”子菜单,选择其中的“控件工具箱”(大家也可根据实际需要改变主界面风格)。调整相应控件位置,评委照片用的是“图像控件”,下面的分数用的是“文本框”,两个按钮用的是“命令按钮”,放置好控件之后再调整各控件的属性来美化界面,也可根据实际需要插入图片进行修饰。

  评分系统主界面中包括8个评委的照片和每个评委给出的分数(如图),功能按钮包括“清空”、“最后得分”。


  各评分得分的文本框的名称为TxtS1,TxtS2……TxtS8,“最后得分”按钮的名称为CommandTotal,第二张幻灯片用来显示最后得分的标签名称为LblTotal。

  设计工作:打开VBA编辑器编写代码:


  '指定文件夹用于存放每组得分的统计文件

  Const Path$ = "C:\windows\desktop\评分系统\"

  '全局变量,最后总分

  Dim sum As Single

  '全局变量,最后平均得分

  Dim AverageScore As Single

  '全局变量,记录组次,保存后自动加1

  Dim GroupNum As Integer

  '清空“评委得分”,清空“最后得分”

  Private Sub CommandButton1_Click()

  TxtS1.Text = ""

  TxtS2.Text = ""

  TxtS3.Text = ""

  TxtS4.Text = ""

  TxtS5.Text = ""

  TxtS6.Text = ""

  TxtS7.Text = ""

  TxtS8.Text = ""

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

  Slide2.LblTotal.Caption = ""

  End Sub

  '“最后得分”按钮

  Private Sub CommandTotal_Click()

  On Error GoTo er

  Dim sum As Single

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

  sum = sum + CSng(TxtS1.Text)

  sum = sum + CSng(TxtS2.Text)

  sum = sum + CSng(TxtS3.Text)

  sum = sum + CSng(TxtS4.Text)

  sum = sum + CSng(TxtS5.Text)

  sum = sum + CSng(TxtS6.Text)

  sum = sum + CSng(TxtS7.Text)

  sum = sum + CSng(TxtS8.Text)

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

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

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

  Slide2.LblTotal.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

  新建一个模块,写入如下代码,此处为评奖模块。

  '评选项一等奖1名,二等奖2名,三等奖3名,故Counter变量设为6

  Const 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

  新建一张幻灯片,用于显示三等奖获奖名单,按钮名称为CmdDisply,6个文本框的名称为TxtThirdPrize1……TxtThirdPrize6。

  代码如下:

  Private Sub CmdDisply_Click()

  ReadDataInp

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

  TxtThirdPrize1.Te