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

办公软件
让表头自动填写当前月份和日期
紧急自救 Excel 受损文件急救六招
教你让Excel中人名显示更美观的技巧
随时都要玩 让纸牌游戏进驻Excel里
教你让Office Excel中人名显示更美观的技巧
妙用Excel把有规律的文本数据分列
复制Excel自定义菜单栏 换台电脑照样用
事半功倍 批量删除Excel空行
Excel工作表的复制与移动技巧
Excel中巧用样式列表快速实现文本换行
Excel高效数据校验的两种方法
Google电子表格Spreadsheets全面试用
用Excel计算个人所得税的四套方案
让你从菜鸟成为玩转Excel的高手
录入数据时让Excel自动插入当前时间
Excel2007中插入页眉和页脚超简单
给Excel表格设置边框的三项常用操作
单元格显神威 Excel操作应用技巧四则
快速找到所需要的Excel函数的小技巧
Excel快速导入文本文件技巧

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 62 ::
收藏到网摘: 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