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

办公软件
源文件有改动 需刷新已导入Excel中的数据
不让Excel图表随源数据改变而改变
实时更新Excel文档外部数据源的数据
实现Excel动态链接外部数据库
从SharePoint列表往Excel导入数据
使用向导将数据从文本文件导入Excel中
Excel和Access间复制、导入和导出数据
Excel工作簿连接(导入)外部数据的方法
巧用宏快速合并200个Excel工作簿
Publisher 2007排版实例 模拟一张火车票
挽救文件 为你的WPS文件上个保险
在线版“PowerPoint”,Google演示文稿初体验
WPS表格提取身份证详细信息
巧用WPS表格制作倒计时
Word 2007自选图形操作技巧三则
Word 2007在文档中插入半页稿纸的小技巧
WPS文字插入表格简单实用技巧
关于Office文档保存的几点小常识
Office文档打印成为TIFF图形文件的步骤
巧用宏随意提取Excel单元格的批注内容

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


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