基于Excel VBA的讲课竞赛抽签系统设计与实现
【原创】ExcelVBA实现不重复、多次抽奖小程序

【原创】ExcelVBA实现不重复、多次抽奖⼩程序在活动中,我们常会有抽奖,抽奖箱准备繁琐,现在多采⽤线上抽奖⽅式,下⾯⽤Excel VBA写了⼀个简单的抽奖⼩程序简单测试效果如下,可实现:多次抽奖,且每次抽奖都不重复抽奖界⾯滚动⼈员信息,点击抽奖按钮锁定中奖⼈员中奖⼈员信息在右侧公⽰区域展⽰,最新中奖⼈员展⽰在最上⽅设置了⼀部分误点、误操作提⽰,以及抽奖完成提⽰等已优化,⽀持万⼈级抽奖做了⼀个抽奖简单演⽰,演⽰GIF如下:实现代码如下,按需⾃取,转载请备注出处:'申明Flag、d、e三个模块变量,跨进程引⽤,实现滚动和抽奖数据传递Dim Flag As Boolean '屏幕停⽌滚动并抽奖的判断参数Dim d As Object '将随机抽取的中奖⼈员按⾃增键储存Dim e As Object '将随机抽取的中奖⼈员按原键储存Dim dict_id As Object '本轮参与抽奖⼈员⼯号Sub 重置()'清空上次抽奖内容,将⼈员名单复制到辅助列Application.ScreenUpdating = False '屏幕刷新禁⽤,不展⽰清空数据过程Sheets("抽奖界⾯").SelectSheets("抽奖界⾯").Range("E2") = 0Sheets("抽奖界⾯").Range(Range("B6"), Range("F15")).ClearContentsSheets("抽奖界⾯").Range(Range("J3"), Range("P3").End(xlDown)).ClearContentsSheets("⼈员名单").SelectSheets("⼈员名单").Range(Range("H3"), Range("H3").End(xlDown)).ClearContentsSheets("⼈员名单").Range(Range("A3"), Range("A3").End(xlDown)).Copy _Sheets("⼈员名单").Range("H3")Sheets("抽奖界⾯").SelectApplication.ScreenUpdating = True '屏幕刷新开启,为滚动抽奖做准备End SubSub 准备() '准备开始抽奖,灰⾊区域滚动更新中奖⼈员Set d = NothingSet e = NothingSet dict_id = NothingFlag = Truetext_level = Sheets("抽奖界⾯").Range("A2") '抽取奖项lottery_target = Sheets("抽奖界⾯").Range("D2") '抽奖次数⽬标'判断该奖项是否已经抽取过,当变更了抽取奖项时,⾃动重置已抽取次数为0If Application.WorksheetFunction.CountIfs(Sheets("抽奖界⾯").Range("J:J"), _text_level) = 0 ThenSheets("抽奖界⾯").Range("E2") = 0End If'判断剩余参与⼈数是否⾜够抽奖If Sheets("抽奖界⾯").Range("F2") < Sheets("抽奖界⾯").Range("C2") ThenMsgBox ("剩余参与⼈数不⾜,请修改抽奖参数或停⽌抽奖")Exit SubEnd If'判断该奖项是否已抽取完,提⽰操作⼈员是选择加抽还是变更抽奖奖项If Sheets("抽奖界⾯").Range("E2") >= lottery_target ThenQS_Return = MsgBox(text_level & "抽奖" & lottery_act & "已完成!" & _Chr(10) & "要变更奖项请选择是" & Chr(10) & "要再次抽取" & text_level & _"请选择否", vbYesNo + vbQuestion, "提⽰")If QS_Return = vbYes ThenMsgBox (text_level & "请重新选择奖项,输⼊抽奖次数和单次抽奖⼈数!")Exit SubElseSheets("抽奖界⾯").Range("D2") = Sheets("抽奖界⾯").Range("D2") + _Sheets("抽奖界⾯").Range("E2")End IfEnd If'清空抽奖滚动区域Sheets("抽奖界⾯").Range(Range("B6"), Range("F15")).ClearContentsnum_agent = Sheets("抽奖界⾯").Range("F2")'字典赋值Set dict_id = CreateObject("Scripting.Dictionary")For i = 1 To num_agentdict_id(i) = Sheets("⼈员名单").Cells(i + 2, 8)Nextnum = Sheets("抽奖界⾯").Range("C2")'持续滚动抽奖界⾯,等待点击抽奖后停⽌DoSet d = CreateObject("Scripting.Dictionary")Set e = CreateObject("Scripting.Dictionary")For j = 1 To numDoa = Int(Rnd * num_agent) + 1Loop Until Not e.Exists(a)d(j) = dict_id(a)e(a) = dict_id(a)NextFor m = 1 To 10For n = 1 To 5If n + (m - 1) * 5 > num ThenExit ForElseSheets("抽奖界⾯").Cells(m + 5, n + 1) = d(n + (m - 1) * 5)DoEvents '将控制权传给操作系统,实现滚动的同时可以点击抽奖按钮,⾮常关键 End IfNextNextLoop Until Flag = FalseEnd SubSub 抽奖()If Not Flag ThenMsgBox ("请先点击准备按钮,再开始抽奖")Exit SubEnd IfFlag = False '停⽌抽奖滚动,中奖⼈员确定Set f = CreateObject("Scripting.Dictionary")text_level = Sheets("抽奖界⾯").Range("A2")Sheets("抽奖界⾯").Range("E2") = Sheets("抽奖界⾯").Range("E2") + 1 '已抽取次数+1lottery_act = Sheets("抽奖界⾯").Range("E2") '已抽取次数,后⾯需要判断是否提⽰抽奖完成num = Application.WorksheetFunction.CountA(Sheets("抽奖界⾯").Range("B6:F15"))num_exist = Sheets("抽奖界⾯").Range("G2")'将新中奖⼈员信息添加⾄公⽰区域末尾For i = 1 To numSheets("抽奖界⾯").Cells(2 + num_exist + i, 10) = text_levelSheets("抽奖界⾯").Cells(2 + num_exist + i, 11) = lottery_actSheets("抽奖界⾯").Cells(2 + num_exist + i, 12) = d(i)Sheets("抽奖界⾯").Cells(2 + num_exist + i, 13) = _Application.WorksheetFunction.VLookup(d(i), Sheets("⼈员名单").Range("A:E"), 2, False)Sheets("抽奖界⾯").Cells(2 + num_exist + i, 14) = _Application.WorksheetFunction.VLookup(d(i), Sheets("⼈员名单").Range("A:E"), 3, False)Sheets("抽奖界⾯").Cells(2 + num_exist + i, 15) = _Application.WorksheetFunction.VLookup(d(i), Sheets("⼈员名单").Range("A:E"), 4, False)Sheets("抽奖界⾯").Cells(2 + num_exist + i, 16) = _Application.WorksheetFunction.VLookup(d(i), Sheets("⼈员名单").Range("A:E"), 5, False)Next'将所有中奖⼈员存放⾄字典For i = 1 To num_exist + numIf i <= num Thenf(i) = Sheets("抽奖界⾯").Range(Cells(num_exist + i + 2, 10), _Cells(num_exist + i + 2, 16))Elsef(i) = Sheets("抽奖界⾯").Range(Cells(i + 2 - num, 10), Cells(i + 2 - num, 16))End IfNextSheets("抽奖界⾯").Range(Cells(3, 10), Cells(num_exist + num + 3, 16)).ClearContentsSheets("抽奖界⾯").[J3].Resize(f.Count, 7).Value = _Application.Transpose(Application.Transpose(f.items))'奖项抽取完成后提⽰⼈员变更参数If lottery_act = Sheets("抽奖界⾯").Range("D2") ThenMsgBox (text_level & "抽取" & lottery_act & "次已完成,请变更抽奖奖项和次数")End If'更新待抽奖⼈员名单,实现不重复抽奖num_agent = Sheets("抽奖界⾯").Range("F2")Application.ScreenUpdating = False '屏幕刷新禁⽤,不展⽰清空数据过程Sheets("⼈员名单").SelectFor Each Key In edict_id.Remove (Key)NextSheets("⼈员名单").Range(Range("H3"), Range("H3").End(xlDown)).ClearContentsSheets("⼈员名单").[H3].Resize(dict_id.Count, 1).Value = _Application.Transpose(dict_id.items)Sheets("抽奖界⾯").SelectApplication.ScreenUpdating = True '屏幕刷新开启,为下⼀轮滚动抽奖做准备End Sub功能实现思路:通过随机函数Rnd产⽣[0,1)的随机数,再乘以当前参与⼈数放⼤,实现随机抽奖通过字典的Exists⽅法判断是否重复,实现去重抽奖定义模块变量,实现⼈员滚动和抽奖的分离DoEvents语句将控制权传给操作系统,实现滚动的同时可以点击抽奖按钮,是实现抽奖屏幕滚动更新的关键最初以遍历的⽅式回填数据,发现参与⼈数上万时明显卡顿,改⽤字典的items⽅法回填数据(⼀维数据回填到列:Application.Transpose(dict.items),⼆维数据回填到列:Application.Transpose(Application.Transpose(dict.items)))。
基于EXCEL二次开发的比赛评分系统的设计与实现

基于EXCEL二次开发的比赛评分系统的设计与实现摘要:针对目前系统的高技术和高要求,文章探讨了基于Excel,配合VB、PowerPoint实现二次开发设计的比赛评分系统,可实现调阅选手情况、评判分数,统计奖项,与比赛情况同步采用多媒体技术演示结果等功能。
快捷、高效地解决了学院在举办“校园歌手大奖赛”中的评分过程混乱,统分时间过长,评委、选手和观众等不能及时知晓比赛结果等难题。
让学生在学习当中始终充满成就感和探索精神,变被动学习为主动学习,变盲目学习和有目的学习,具有一定的理论研究和实用价值。
关键词:Excel 平台设计系统实现[中图分类号] G423 [文献标识码] A [文章编号] 1000-7326(2012)05-0135-02一、开发背景:本文根据广西水利电力职业技术学院《计算机应用基础》、《数据库应用与开发》、《办公自动化》等课程实训环节而设计。
(一)任务描述:学校要举办一个歌唱比赛,请设计一个比赛评分系统,对参赛的选手进行评分。
(二)要求系统实现以下功能:1.系统能录入参赛人员资料;参赛选手按抽签序号依次比赛,统计最后得分;2.能够随时查阅选手得分情况;3.每位选手比赛结束后,显示得分排名情况;4.比赛结束后,能够快速准确地公布一、二、三等奖的得奖选手名单。
二、系统需求分析与系统可行性分析当前关于计算机方面的考试系统很多,其中既有单机版系统,也有网络版系统,有基于.Asp 等开发的,也有基于其他各种语言(如C语言)开发的。
单机版的一般无成绩导出、分析、汇集和统计等功能,不适合比赛中统一评判与成绩分析;而网络版的判分系统又需要服务器等较专业的技术支持,并且对带宽也有一定的要求,不方便推广使用。
随着信息技术的飞速发展,掌握Office办公系统软件操作的人越来越多,其中数据处理软件Excel不失为人们统计、管理数据的好帮手,大家对它并不陌生,如何从更高级的功能入手对它加以开发应用是非常有益的。
使用Excel设计竞赛评分系统

使用Excel设计竞赛评分系统使用Excel设计竞赛评分系统,输入各种基础分值之后,其他所有需要的结果立马自动显示出来,十分方便。
机关、学校、企事业单位都会举办各种竞赛活动,竞赛的评分如果采用纯手工方式进行处理,不仅速度慢,而且可能出现差错,很大程度影响竞赛活动的实际效果。
笔者运用Excel设计了一个评分系统,只要主持人把各评委的打分宣布完毕,工作人员同步进行分数录入,系统就会自动提示错误分值;自动将最高分、最低分分别用不同的颜色和字体进行区分显示;自动去掉最高分和最低分;自动计算每位选手的最后得分;自动生成参赛选手的得分名次;自动将得分较多的前三名用红色加粗字显示。
如果此系统采用多媒体投影设备显示,能使整个竞赛评分过程显得快捷、紧凑、公开、透明,很能烘托竞赛气氛。
此系统只要根据实际评委人数和选手数量稍加修改,即可广泛运用于各类竞赛活动的评分和统计。
设计步骤如下:一、新建竞赛评分系统新建“竞赛评分系统.xls”工作簿,C2:J2单元格中为各评委,B3:B12单元格中为各选手,K3:K12单元格为最后得分,L3:L12单元格为得分排名。
C3:K12为记分区,所有的分数录入均在此区域(图1)。
二、设置数据有效性如果评分标准为百分制,当录入数据不在此范围时,可采用“数据有效性”自动提示数据错误。
(1)用鼠标选择C3:K12数据录入的单元格。
(2)在“数据”菜单中,单击“有效性”。
(3)打开在“设置”选项卡,设置数据的有效范围(图2)。
(4)打开“出错警告”选项卡(图3,设置当录入数据超出设定范围时,弹出提示窗口的标题和内容。
三、显示最高、最低分录入评委打分后,使用“条件格式”,通过字体和颜色,能将最高分、最低分与其他分值区别显示。
(1)使用鼠标选择C3:J3单元格区域,选择菜单“格式→条件格式”命令,打开“条件格式”对话框(图4)。
(2)单击“条件1”下方的下拉箭头,在弹出的下拉列表中选择“公式”。
将最高分的条件格式公式设置为:“=MAX($C3:$J3)=C3”。
比赛抽签系统c语言课程设计

比赛抽签系统 c语言课程设计一、教学目标本节课的教学目标是使学生掌握比赛抽签系统的C语言编程方法。
知识目标为学生能够理解并运用C语言的基本语法、数据类型、运算符、控制结构等知识;技能目标为学生能够运用C语言实现比赛抽签系统的基本功能,提高其逻辑思维能力和编程能力;情感态度价值观目标为学生能够体验到编程的乐趣,增强其对计算机科学的兴趣和好奇心。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等知识,以及如何运用这些知识实现比赛抽签系统。
具体的教学大纲如下:1.C语言的基本语法和数据类型2.C语言的运算符和控制结构3.比赛抽签系统的需求分析和设计4.比赛抽签系统的C语言实现三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构等知识。
2.案例分析法:通过分析比赛抽签系统的案例,使学生理解并掌握如何运用C语言实现相关功能。
3.实验法:让学生动手编写比赛抽签系统的C语言程序,提高其编程能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》2.参考书:《C语言编程实例解析》3.多媒体资料:比赛抽签系统的案例视频教程4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)通过以上教学资源的使用,我们将帮助学生更好地学习本节课的知识,提高其编程能力,并激发其对计算机科学的兴趣和好奇心。
五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。
评估方式包括:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估其对C语言知识的掌握和运用能力。
2.作业:布置相关的编程作业,评估学生对比赛抽签系统C语言实现的理解和编程能力。
3.考试:设置期末考试,涵盖C语言的基本语法、数据类型、运算符、控制结构等知识,以及比赛抽签系统的实现。
基于ExcelVBA的讲课竞赛抽签系统设计与实现

基于ExcelVBA的讲课竞赛抽签系统设计与实现基于Excel VBA的讲课竞赛抽签系统设计与实现[摘要] 通过组织讲课竞赛等形式不断提高青年教师教学能力,是高等院校确保人才培养质量稳步提升的重要保证。
在高校讲课竞赛等活动中,需要以公正、快捷、直观的方式对参加人员、讲课题目进行抽签,文章通过实例介绍基于Excel VBA设计讲课竞赛抽签系统的实现方法。
[关键词] VBA;讲课竞赛;抽签系统;洗牌算法doi :10 . 3969 / j . issn . 1673 - 0194 . 2016. 11. 112[中图分类号] TP317.3 [文献标识码] A [文章编号] 1673 - 0194(2016)11- 0187- 041 引言在高等院校中,提高青年教师教学能力是不断提升人才培养质量的重要保证。
组织以老带新、岗位练兵、讲课竞赛等形式的教学实践活动成为促进青年教师提高教学能力的有效手段。
在讲课竞赛活动中,如何保证分组抽签环节的公开、公正、透明,成为参赛人员关注的焦点。
由于通用抽签软件无法满足特定的抽签规则,对抽签数据格式和内容的具体需求存在差异,在解放军信息工程大学校2014年组织的青年教员讲课竞赛活动中,为了高效、公正、透明地进行抽签,自行开发了讲课竞赛抽签系统。
在全年度的竞赛活动中,抽签系统发挥了重要作用。
2 需求分析在比赛前,按照竞赛规则,全校各教研室所有符合条件的青年教员均列入参赛备选人员名单,每人准备数个讲课题目。
按照学科类别,将所有教研室分为4个大组,全年组织多轮次讲课比赛,每轮次从每组人员中抽取相同数量的选手参赛,讲课题目和出场顺序随机确定。
同时,为了确保青年教员广泛参与,需要实现全年每个教研室青年教员参赛比例和覆盖面基本相当。
在此规则下,抽签系统既要保证公平、公开,又须符合各项比例要求。
系统需要实现以下功能:(1)按组别抽选参赛选手和讲课题目。
(2)按教研室人员比例进行抽选。
基于Excel VBA抽签程序的设计与实现

66 •电子技术与软件工程 Electronic Technology & Software Engineering软件应用• Software Application【关键词】Excel VBA 抽签程序1 引言某卫生学校学生在护理技能操作模拟考试前先要进行抽签,根据学校规定的考试项目及题库试题数目抽取相应的题号进行操作考试,这项工作往年都是采用人工抽签,需要耗费很多的人力和时间,然而在抽签过程中难免会出现很多问题。
随着信息化技术的不断普及,学校工作也进入了由信息技术替代人工操作的改革性阶段,实现抽签过程信息化、自动化工作迫在眉睫,为此利用Excel 对数据的便捷性,VBA 对数据的交互性设计并实现了该抽签程序。
2 VBA技术Visual Basic for Applications(VBA)是Visual Basic 的一种新一代标准宏语言,与传统的宏语言不同,传统的宏语言不具有高级语言特征,没有面向对象的程序设计概念和方法,VBA 是以伪代码的形式运行的,它的功能主要通过模块来实现,同其他面向对象的编程语言一样,VBA 中也有对象、属性、方法和事件。
VBA 易于学习,可以使用宏记录用户的操作,并将其转换为VBA 程序代码,是工作自动化。
3 需求分析某卫生学校在期末进行护理技能操作考试前,每位参加考试的学生需要根据四项考试中题库的总数量随机抽取相应的题号,由于每项操作考试题库数都不相同,而每个班的学生数与总题库数也不相同,学生在随机抽取完一基于Excel VBA 抽签程序的设计与实现文/任宇宁项操作考试的总题库试题后,该题库重新开始轮询,需要实现前后两名学生生成的四组题号不能完全相同。
4 抽签程序设计与实现根据需求分析结果,考虑到该抽签程序的实用性和简洁性,使用Excel VBA 实现,分为前台界面和后台代码,前台界面上有抽签按钮,可使用鼠标点击抽签。
为方便学生抽签,也可以使用键盘上的空格键完成抽签。
利用VBA编程搭建赛事自动计分系统

( 中 国石 油 集 团海 洋 工 程 有 限公 司 工 程 设 计 院 , 北京 1 0 0 0 2 8 )
[ 摘 要】 计 分 是 赛 事 必 不 可 缺 的一 个 重要 环 节 。 海 洋 工程 公 司 为 了能 够 快 捷 、 直观 、 准 确 地 进 行 赛 事计 分 而 自主 开发 了赛 事 自动 计 分 系统 。本 文 对 该 系统 的设 计 原理 、 应用需求、 开发 环 境 、 实现 方式 和 应 用特 点 等 方 面 进 行 了详述 和 分 析 . 并提 出
1 设 计 背 景 洋 工 程 公 司每 年 都 会 在 “ 五四” 青 年 节 期 间 举 办 英 语 演 讲 比赛 为 了增 强 比赛 的专 业 性 、 公正性和 观赏性 。 公 司 自 主开 发 了 赛 事
[ 文献标识码】A
[ 文章编号】1 6 7 3 — 0 1 9 4 ( 2 0 1 4 ) 2 0 - 0 0 8 7 - 0 3
V i s u a l B a s i c f o r A p p l i c a i t o n s ( V B A) . 选 择 这种 开发 环 境 的主 要 原 因有 以下 两 点 : 图 1 系 统 结构 图
P o w e r P o i n t 幻 灯 片 承 担 信 息 的 输 出 , 主要 包 括 3个 模 块 : 选 手 信息 读 取 模 块 、 显 示 得 分模 块 和显 示 选 手 排 名 模 块 。选 手 信 息
2 0 1 4 年1 0月 第1 7卷第 2 O 期
中 国 管 理 信 息 化
Ch i n a Ma n a g e me n t I n f o r ma t i o n i z a t i o n
基于Excel VBA的考试系统的设计与实现

收 稿 日期 :2012—08—13 修 稿 日期 :2012-09一()1 作 者 简介 :刘 本 斌 (1976一),男 ,安 徽 六 安 人 ,硕 士 ,讲 师 ,研 究方 向为 计 算 机 网络 技 术 囝 现代计算机 2012 Nhomakorabea09上
器 .能 访 问 教 师 机 更 好 .不 能 就 拷 贝 ;另 一 好 处 是 不 要 求 必 须 有 一 个 功 能 强 大 的服 务 器 .考 生 就 在 自 己的 机 器 上 从 隐 藏 的试 卷 题 库 抽 题 生 成试 卷 ,避 免 了 都 从 同 一 台 服 务 器 抽 题 的拥 挤 瓶 颈 分 发 与 提 交 试 卷 都 用 机 房 的 广 播 系 统 ,考 生 提 交 试 卷 ,文 件 的 名 称 不 要 改 动 , 同 一 格 式 的名 称 可 以批 量 统 计 .如果 经 过 考 试 后 文 件 名 改 了 .就 用 拖 把 更 名 器 等 软 件 .改 成 统 一 格 式 的 答 卷 名 称 。
基 于 Excel VBA的考试 系统的设计 与实现
刘 本 斌
(苏 州 经 贸职 业 技 术学 院 ,苏 州 251009)
摘 要 :用 ExcelVBA 实现 一 个功 能 完备 的 考试 系 统设 计 , 整 个 考 试 环 节 都 在 一 个 工作 簿里 完 成 , 包括 题 库 工作 表 、出卷 工作 表 、自动 抽 题 、考 生 登 录验 证 、考 试 界 面 、判 卷 统 计 等 功 能 。可 以 联 网 收发 试 卷 .也 可 以拷 贝到 不 能 联 网的 单 机 上 考 试 或 者 练 习 ,对 机 房 环 境 的要 求低 ,只要 普 通机 房 就 能 完 全 满足 正 常教 学 的期 末 考 试 的需 要 。
基于Excel VBA的讲课竞赛抽签系统设计与实现

不能正常运营。
更换主板比较复杂,一般不采用该项策略。
因此,掌握正确的维修策略是必要的。
导致主板故障的原因包括人为原因、环境因素、器件质量问题等。
要提高操作人员的综合素质,避免损坏接口和芯片等构件。
重视灰尘清理和打扫,确保周围环境良好。
选购质量良好的器材,保证主板器材质量合格。
日常工作中要注重检测和维护,及时发现和处理存在的缺陷,保证主板更好发挥作用。
2.2元件接触不良的维修接触不良也是常见的质量问题,周围环境影响、不当操作、设备老化等,都可能导致元件接触不良,具体又体现在芯片和内存条接触不良两个方面。
芯片接触不良表现为显示器正常工作,但不显示任何信息,启动时驱动器指示灯不亮,扬声器发出报警信号。
维修过程中,先切断主机电源,拆下可能存在问题的芯片,观看是否存在变形现象,是否有异物堵塞。
对存在的缺陷及时处理,如果没有问题再进行芯片安装。
内存条接触不良会导致启动时发出报警信号,维修时先将内存条拆下来,用橡皮擦拭除尘后再进行安装。
如果采取这些措施后仍然没有排除故障,则需要更换损坏的元件,让医疗设备更为有效的运营和发挥作用。
2.3硬件散热技术的维修设备散热性能不佳,往往会导致死机现象发生,影响设备使用寿命,并且还可能烧坏中央处理器,影响医院各项工作开展,对患者的诊断和治疗也会带来不利影响。
因此,应该重视设备散热工作,保证设备处于良好性能和运营状态。
例如,某设备工作一段时间后经常出现死机现象,按键也没有任何反应。
维修时触摸箱体感觉温度过高,然后打开机箱,发现散热片损坏停止活动。
对散热片更换之后,设备正常运行和工作。
为保证硬件散热性能良好,一般采用除尘、更换散热器等措施进行维修,确保设备综合性能良好。
2.4显示设备故障的维修常见问题为显示混乱,无显示等。
出现故障时,应该先确定是显卡问题还是显示器问题。
用同类型显示器代替原来的显示器,再开机检查。
如果显示器正常工作,证明原来的设备存在故障。
如果没有排除故障,则更换显卡,直至故障排除。
基于Excel VBA抽签程序的设计与实现

基于Excel VBA抽签程序的设计与实现作者:任宇宁来源:《电子技术与软件工程》2018年第11期摘要随着信息化技术的不断普及,人们对Excel软件的应用由单一的表格处理、函数计算、图表制作等逐渐向更高层次的人机交互、信息处理、程序设计转变。
本文就是利用Excel VBA技术对某卫生学校护士技能模拟考试学生抽签程序的设计与实现,在设计过程中实现了前台界面和后台代码的交互,完成了由传统人工抽签到计算机信息化抽签的改变,极大提升了备考的工作效率和准确性。
[关键词]Excel VBA抽签程序1 引言某卫生学校学生在护理技能操作模拟考试前先要进行抽签,根据学校规定的考试项目及题库试题数目抽取相应的题号进行操作考试,这项工作往年都是采用人工抽签,需要耗费很多的人力和时间,然而在抽签过程中难免会出现很多问题。
随着信息化技术的不断普及,学校工作也进入了由信息技术替代人工操作的改革性阶段,实现抽签过程信息化、自动化工作迫在眉睫,为此利用Excel对数据的便捷性,VBA对数据的交互性设计并实现了该抽签程序。
2 VBA技术Visual Basic for Applications(VBA)是Visual Basic的一种新一代标准宏语言,与传统的宏语言不同,传统的宏语言不具有高级语言特征,没有面向对象的程序设计概念和方法,VBA 是以伪代码的形式运行的,它的功能主要通过模块来实现,同其他面向对象的编程语言一样,VBA中也有对象、属性、方法和事件。
VBA易于学习,可以使用宏记录用户的操作,并将其转换为VBA程序代码,是工作自动化。
3 需求分析某卫生学校在期末进行护理技能操作考试前,每位参加考试的学生需要根据四项考试中题库的总数量随机抽取相应的题号,由于每项操作考试题库数都不相同,而每个班的学生数与总题库数也不相同,学生在随机抽取完一项操作考试的总题库试题后,该题库重新开始轮询,需要实现前后两名学生生成的四组题号不能完全相同。
基于VBA的 Excel操作题自动阅卷系统的设计与实现

基于VBA的 Excel操作题自动阅卷系统的设计与实现刘宇君【摘要】This paper analyzes the features of Excellsoftware , and sums up some knowledge items of Excellop-eration competence tests , of which an automatic evaluation algorithm is implemented with VBA is proposed , togeth-er with a realistic example of automatic evaluating Excelldocument .%本文通过对Excel 软件功能的分析,总结出Excel考核的若干知识点,根据这些知识点提出了基于VBA技术的自动阅卷算法,并给出了一个Excel文档自动阅卷实例。
【期刊名称】《洛阳师范学院学报》【年(卷),期】2014(000)008【总页数】6页(P67-72)【关键词】VBA技术;EXCEL;自动阅卷;算法【作者】刘宇君【作者单位】太原工业学院计算机工程系,山西太原030008【正文语种】中文【中图分类】TP311.1作者及其团队成员共同开发设计了基于局域网的“计算机应用基础”考试系统软件,该软件以强化实践能力培养为目标,采用VBA、C#等技术实现,具有随机抽题、自动组卷、自动阅卷等功能.Excel是Office的组件之一,其功能非常强大.它是计算机操作技能中最基本也是需要熟练掌握的软件之一,同时也是计算机基础应用能力考核必不可少的组成部分.由于微软在Office套件中嵌入了VBA技术,因此,本文就如何基于VBA技术用C#实现Excel文档自动阅卷功能提供了一个可行的解决方案.该方案设计了一套较完整、合理、全面的自动评分算法,能够较合理、准确地实现自动评分.该算法已成功应用于我校“计算机应用基础”课程的考试中,效果良好.1 VBA技术在Excel中的应用VBA 是指“Visual Basic For Application”,它是在Office中使用的标准宏语言,与传统的宏语言不同,VBA提供了面向对象的程序设计方法,是相当完整的程序设计语言.VBA的语法类似VB,但提供了VB中没有的函数和对象,这些函数和对象都是针对Office应用的.因此,可以像编写VB程序那样来编写VBA程序,以实现某种特定的功能.对于Office中每个应用系统软件:Word、Excel、Powerpoint等,VBA都嵌入其中,成为COM的一部分,可以用宏的方式录制、执行或直接使用命令编程.它可以有效地记录Office操作的每个步骤并以命令形式控制与再现Office操作过程. COM组件对象模型是OLE和ActiveX技术的基础.它是Microsoft提出的一种基于对象的客户/服务器模型,用于实现软件模块之间或应用程序之间的相互作用. VBA标准宏语言具有跨越多种应用软件并且控制应用软件对象的能力,具有很好的易用性.由于Excel中的文档采用对象数据流的方式进行存储,结构复杂(如图1所示),从外部很难访问到这些数据.而VBA带有大量专门针对Excel文件的函数、对象,通过它们可以方便地访问到文档中的各个对象,并对它们的属性状态进行识别判断,从而判断出用户操作的结果是否正确.(1)Application对象如图1所示,在Excel中能够获得的最高层对象是Application对象,它代表的是Excel应用程序本身,Application对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息.(2)Workbook对象.Workbook对象表示 Excel应用程序中的单个工作簿.(3)Worksheet对象图1 Excel文档对象模型及其关系Worksheet对象是Worksheets集合的成员,Excel提供Sheets集合作为Workbook对象的属性,但是 Excel中没有Sheet类.相反,Sheets集合的每个成员都是一个Worksheet对象或者一个Chart对象.Visual Studio Tools for Office提供Worksheet宿主项,并在创建项目时创建三个实例:Sheet1、Sheet2和Sheet3.(4)Range对象Range对象是 Excel应用程序中最常用的对象,Range对象表示一个单元格、一行、一列、包含一个或多个单元格块(可以连续,也可以不连续),甚至多个工作表中的一组单元格.(5)Chart对象Chart对象代表工作簿中的图表,该图表既可为嵌入图表(包含在 ChartObject 中),也可为一个单独的图表工作表.在VBA中通过Application、Workbook、Worksheet、Range和Chart等对象,可以找到操作的对象并得到其相应的属性值,从而判断出Excel单元格区域中格式(字体、底纹、边框等)、数据处理格式、数据公式/函数、图表等的变化,通过这些变化即可获知用户操作的是否正确.2 Excel自动阅卷的解决方案2.1 Excel考核内容及题目数据表设计根据考试的内容,将题目要求存放在数据表中,其结构如表1所示.每道题有5个要求,考核内容主要包括表1 Excel题目要求结构序号字段数据类型说明1 CNO varchar 考试题号2 Request1 varchar 解题要求1 3 Request2 varchar 解题要求2 4 Request3 varchar 解题要求3 5 Request4 varchar 解题要求4 6 Request5 varchar 解题要求5 7 Excel_FName varchar 考试初始xls文件名(1)工作表的操作插入/删除工作表,重新命名工作表.(2)行、列操作插入/删除行/列,设置列宽、行高,在指定的行/列编辑数据等.(3)单元格区域格式的操作单元格区域的合并、对齐、边框设置、底纹颜色设置;字体、字体大小及其样式设置等.(4)单元格内容单元格内容的编辑等.(5)单元格区域数据的操作排序(文本型、数值型)、筛选、分类汇总、利用公式/函数计算等.(6)图表操作创建图表、图表类型、图表格式等.2.2 Excel自动阅卷流程考生的答案文件ExcelPaper.xls都存放在各自机器上的答案文件夹中,自动阅卷过程与教师人工阅卷过程类似.首先利用COM技术创建Application、Worksheet等一系列OLE对象,然后通过调用VAB接口实现对EXCEL文档操作.打开考生的答案文档ExcelPaper.xls,从中获取相应对象的属性值,与标准答案比较,从而判断操作结果是否正确,并给出相应的得分.阅卷结束后将考生的考号、抽到的题号和每一项的分数进行汇总后写入到成绩文件 Paper_Excel中.自动阅卷流程如图2所示.2.3 Excel自动阅卷实例下面以图3中的内容为例,给出Excel自动阅卷的解决方案.(1)在“总成绩”列前面插入一列“平均成绩”,并设置其列宽为12.设计插入一列的函数如下:图2 Excel自动阅卷流程图图3 (a)Excel操作题要求;(b)学生答案文档通过语句Score+=insertcolumn(2,7,“平均成绩”,2);调用插入列函数,判断Cell(2、7)单元格中的内容是否为“平均成绩”,如果是则加分,否则不加分.设置列宽与之类似,在此不再赘述.单元格内容的操作通常是在Excel工作表中输入数据等操作,单元格中输入的内容存储在Excel单元格对象Range的Value属性中,通过获取该属性值即可得到考生操作的结果,直接将其与标准答案进行比较即可.(2)将A2:H2单元格区域的字体设置为“黑体、16号”,底纹颜色设置为梅红色. 设计判断字体函数如下:通过语句 Score+=fontnamex(2,1,2,8,“黑体”);调用判断字体函数,从而断定单元格区域中的字体是否与标准答案一致.设置字体大小、底纹颜色与之类似,在此不再赘述.单元格格式是Excel中常用的操作,比如设置单元格的字体及其大小、底纹颜色等.在考核要求中,常要求对一个区域进行格式设置,设置的结果自动保存在区域中的每个单元格中.实际考试中,考生常常设置的区域不完整或有偏差,对部分区域进行了正确的设置,另一部分操作错误或未操作,若将整个区域作为一个Range对象来评分,只有答案全部正确才给分显然是不合理的,应该分而治之.本实例采用的解决方案如图4所示.(3)利用公式计算“总成绩”和“平均成绩”.设计求和/平均值等公式的函数如下: 图4 单元格格式评阅算法流程图通过语句 Score+=jsgongshi(2,8,"=SUM(RC[-104]:RC[-101])",2);调用求和函数,在指定的位置生成计算的公式,并与标准答案比较判断结果是否正确.类似的,通过语句Score+=jsgongshi(2,7,"=AVERAGE(RC[-103]:RC [-101])",2);调用求平均值函数.从上面求和、平均值的函数调用语句中可以看出,采用VBA技术,在操作结果单元格中存放的是公式/函数的字符串表达式,而非操作结果值.即在结果单元格G3中存放的是公式字符串:=AVERAGE(RC[-103]:RC[-101]),而非平均值79.3本身.因此,在算法设计中,只需要编写一个函数jsgongshi(),并通过传递不同的参数实现求和、平均值等计算即可.其中,同一个计算公式可以有不同的表达方式.例如:计算D3~F3的平均值的表达方式有:①G3=AVERAGE(D3:F3)②G3=SUM(D3:F3)/3③G3=(D3+E3+F3)/3从上可以看出,同一个问题利用公式/函数计算有多种表示方法,他们都能计算出正确的结果.但是在标准答案中穷举出所有可能的表达式是不现实的,因此,本解决方案采用如图5所示的算法.图5 公式/函数评阅算法流程图(4)将“总成绩”列按照降序排列,并给A2:H9单元格区域加上表格线(单线). 设计排序函数如下:通过语句 Score+=isSortAD_Decimal(7,'D',2);调用排序函数,从而断定单元格区域中的数据是否按要求排序.排序的关键是定位待排序数据所在单元格的位置.(5)根据“姓名”、“英语”、“高数”和“C语言”列数据,创建一个“簇状柱形图”图表,插入到第二张工作表中,并将图表的标题命名为“成绩表”.设计生成图表、图表的类型、图表名称函数如下:通过语句Score+=createshape(2,“成绩表”,“xlColumnClustered”);调用生成图表函数,从而与标准答案比较,断定是否按照要求的类型生成图表.3 结语本文针对Excel操作题要求,采用VBA技术获取其文档对象的属性,使用上述代码实现了自动阅卷、成绩统计等功能.本考试系统在我校计算机基础教学的考试中已应用了三年,系统运行良好,受到了学生和任课教师的欢迎,具有良好的应用前景和较高的实用价值.该系统在完善计算机考试的同时又能客观准确地评价和反映考生对计算机知识的掌握程度,自动阅卷还可以大大减低人工阅卷带来的错判概率,并能减轻教师阅卷工作量,从而提高工作效率.实践结果表明:(1)该系统性能稳定、即答即阅,结果正确可靠;(2)减轻了教师的工作负担,提高了工作效率;(3)摒弃了以前对操作题采用人工阅卷的方式,也消除了人工阅卷的人为因素,充分体现了考试的公开、公正、公平的原则.参考文献[1]教育部高等学校计算机科学与技术教学指导委员会.关于进一步加强高等学校基础教学的意见暨计算机基础课程教学基本要求(试行)[M].北京:高等教育出版社,2006.[2]刘宇君.Visual Basic程序设计[M].北京:高等教育出版社,2013.[3]刘宇君.Visual Basic程序设计例题解析与项目实践[M].北京:高等教育出版社,2013.[4]林海宁.基于VBA技术的Excel自动评阅系统[J].现代计算机,2012(07):78-80.[5]乐颖,张伟.基于VBA技术的计算机基础自动阅卷系统的设计与实现[J].科技信息,2009(13):43-44.[6]高升宇.基于VBA技术的Office操作题自动阅卷设计与实现[J].渭南师范学院学报,2011,26(12):64-65.[7]彭作民.EXCEL文档自动阅卷评分算法设计[J].南京师范大学学报,2007,7(3):70-73.[8]宗德才.操作题自动评分系统的设计与实现[J].计算机过程与设计,2010,31(5):1156-1160.。
基于Excel VBA的随机滚动抽奖系统设计与实现

: ( j 0 f 0 6 5  ̄ 掂 6 7 ~ 一 } 一! L j “ : P [ 1 2 3 ~ 1 2 ~ 3 i 7 ; S r f 薯 i : 3 ■ l : i
0 325
… —
}
0 S l S 2 { S 6 S
“ 抽 奖” f 作 表用来作 为于 I “ 奖 界面 ,此界 向将 作 为
主要界面 、 “ 抽奖”界面包 含抽 奖滚动 显 ≮ 域 ( 默认 抽取 l 0名 )和栩 父的 文 j : 参 数 以及 4个 A t t i v e X控 件
2 功 能 实 现 及 难 点
2 . I 难点与突破
摘 要 :公 司单 位在 组织 活动时 ,大都会有一 个抽 奖环 节来活跃 气氛 抽 奖 方式也有很 多,其 中波常
见的是 利用抽 奖软件 在大屏 幕上进行 随机 滚动抽 奖 目前这 类软件也 不少,介绍 了通过 E x ( ' e I V B A来
制 作 一 个随 机 滚 动 抽 奖 系统
作 者 简 介 : 数删 ( 1 9 8 9 一 ) , ,助 教 ,学 f : ,f i J 1 = 究
参数 2 相 同的排铝 值…现的概牢 u 土 儿乎 趋近 r 零, 终
向 :信息 管 1 j . 信息系统 。
收 稿 日期 :2 0 1 7 — 0 8 — 2 3
“ 于 } ¨ 奖过
操 作复杂 , 若要较 好 的电脑水平 才能操作 : ( 2 )内部 使用 ,通』 t J 性 不强 , ; ( 3 )需 要注册 , f 则无法使 用 , 有 的还需 要 给钱 能 使J } J ; ( 4 )无 法 保存 l 拼 1 奖记录,
基于EXCEL和VBA的自动组卷系统设计与实现

基于EXCEL和VBA的自动组卷系统设计与实现作者:焦乐天王英迪焦万合开赛尔来源:《智能计算机与应用》2016年第04期摘要:论文主要介绍了一款基于EXCEL和VBA的自动组卷系统的设计思路和实现方法。
相关内容既可做为EXCEL教学的高阶案例,也可直接用于学校教师或考试管理人员进行试题库管理和试卷拟制工作,以提高考试工作的质量和效率。
关键词:EXCEL;VBA;自动组卷系统中国分类号:TP391 文献标识码:AAbstract: This paper mainly introduces the design and implementation method of an automatic test paper system based on EXCEL. The relevant content can be used as an advanced case of EXCEL teaching,and it can also be applied directly for school’s faculty or mana gers to manage examination questions and make examination papers, in order to improve the quality and efficiency of the examination work.Keyword: EXCEL;VBA;automatic test paper system0 引言Microsoft Office Excel办公软件功能强大、使用方便、应用广泛,精通运用EXCEL会给日常工作和生活带来极大方便。
本文旨在设计研发一款功能丰富且简单易用的,基于EXCEL 和VBA的自动组卷系统,而与学界探讨可有效运用Microsoft Office Excel办公软件来提高日常工作效率的途径和方法。
用VB编写抽奖程序教学设计

用VB编写抽奖程序教学设计篇一:用VB编了一个小程序来实现电脑抽奖的小功能用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。
Rnd函数的语法结构是Rnd[(number)],可选的number参数是single或任何有效的数值表达式。
Rnd函数返回小于1但大于或等于0的值。
number的值决定了Rnd生成随机数的方式。
为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound-lowerbound+1)×Rnd+lowerbound)这里,upperbound是随机数范围的上限,而lowerbound则是随机数范围的下限。
另外,程序中还使用了INI文件,WindowsINI文件,可解释为Windows初始化文件。
它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。
ini文件是一种文本文件,它可以通过Notepad等文本编辑器进行编辑。
ini文件具有特定的格式。
一个INI文件是由若干个段(section)组成的,每个段中包含若干关键字(key)及相应的值(value)。
创建应用程序自己的INI文件,通过INI文件保存应用程序的一些运行环境信息,然后在程序中读取INI文件中的设置信息并据以处理。
一旦程序的运行环境需要变更,则可以通过直接修改INI文件,或在程序中提供专门的界面间接地修改INI文件来保证程序的可用性。
源程序及注释如下:'窗体源程序OptionExplicitDimm_strNameArray()AsMyName Dimm_bIsStartAsBooleanDimm_nNameIndexAsInteger DimMAX_INDEXAsIntegerDimm_nSelectNumAsInteger'被选定数DimnScrollStepAsInteger DimnScrollWidthAsInteger DimbScrollStateAsBoolean DimnEnableSecondAsIntegerDimm_strTitleAsStringDimm_strAppTitleAsStringDimm_strScrollTitleLeftAsString Dimm_strScrollTitleRightAsString Ifm_bIsStart=TrueThen'按停止钮m_bIsStart=False“开始"Timer_FlashName.Enabled=TrueTimer_ScrollName.Enabled=FalseLabel_FlashName=m_strNameArray(m_nNameIndex).strName+“中奖了!"m_strNameArray(m_nNameIndex).bIsSelect=Truem_nSelectNum=m_nSelectNum+1DimTempAsMyNameTemp=m_strNameArray(MAX_INDEX)m_strNameArray(MAX-INDEX)=m_strNameArray(m_nNameIndex)m_strNameArray(m_nNameIndex)= TempMAX_INDEX=MAX_INDEX-1IfMAX_INDEX=0ThenMsgBox“非常感谢您使用本软件"EndIfElse'按开始钮m_bIsStart=TrueTimer_ScrollName.Enabled=TrueLabel_FlashName.Caption=“"EndIfEndSubPrivateSubForm_Load()Form_Bouns.ScaleMode=3m_nNameIndex=0m_bIsStart=FalseTimer_ScrollName.Enabled=TrueTimer_ScrollTitle.Enabled=TrueLabel_FlashName.Visible=FalseLabel_ScrollName.Caption=“"nEnableSecond=0'定义起始秒数ReDimNameArray'获得文本中的名字和打乱名字顺序nScrollStep=5'设定滚动字的步长nScrollWidth=Label_Congruation.Left'设定title的移动宽度bScrollState=False'设定缺省的开始滚动方向为向左m_nSelectNum=0'初始化被选定数为0Init'初始化本程序的界面EndSubPrivateSubTimer_FlashName_Timer()'闪动中奖者姓名IfLabel_FlashName.Visible=TrueThenLabel_FlashName.Visible=FalseElseLabel_FlashName.Visible=TrueEndIfEndSubPrivateSubTimer_ScrollName_Timer()'滚动出现名字Ifm_bIsStart=TrueThenIfm_nNameIndex>=MAX_INDEXThenm_nNameIndex=0EndIfm_nNameIndex=m_nNameIndex+1Ifm_strNameArray(m_nNameIndex).bIsSelect=TrueThenIfm_nNameIn dex<MAX-INDEXThenm_nNameIndex=m_nNameIndex+1Elsem_nNameIndex=0EndIfEndIfLabel_ScrollName.Caption=m_strNameArray(m_nNameIndex).strName'EndIfEndIfEndSubPrivateSubTimer_ScrollTitle_Timer()'滚动“恭喜发财"字样IfbScrollState=FalseThen'向左滚nScrollStep=10Label_Congruation.Caption=m_strScrollTitleLeftIfnScrollWidth>0ThennScrollWidth=nScrollWidth-nScrollStepElsebScrollState=TrueEndIfElse'向右滚nScrollStep=-10篇二:scratch范例教学-趣味抽奖趣味抽奖教学目标:【知识目标】1.通过抽奖程序的,初步掌握Scratch中随机数模块的应用。
用Excel VBA设计考试信息系统

用Excel VBA设计考试信息系统摘要高校学生期末考试,如果每场考试都采取随机座次,并且直到入考场时学生才知道自己的座次,学生就没有机会提前设计协同作弊。
但是用手工方式实现每场考试随机安排座位,工作量大,效率低下。
使用Excel制作一个考试信息系统,能完美的完成这项工作。
关键词Excel VBA;随机;信息系统1 实际工作中的问题与需要高校学生一般都安排集中期末考试,考试都是各专业单独组织考场,考生都是平时在一起学习的同学。
如果座次直接按照学号,可以方便监考老师检查考生到场情况,但是一直是一样的座次不变,固定考生相邻的时间长了,会出现协同作弊的现象,甚至出现雷同卷。
虽然可以通过监考老师加强监视力度来避免,但是最好用技术的方法来解决。
如果打印出学生学号姓名清单,随机贴到座位上,但是每场考试都贴标签,太麻烦,而且学生不容易找到自己的座位。
后来采用当场抽签的办法,制作两份号码标签,一份贴到考试座位上,另外一份让考生抽签,抽到后对号入座,这种方法虽然能够实现随机排坐,但是太费时间,监考教师手里没有座次表,学生可以趁乱自己换标签调座,另外如果有缺考的学生,难以查找登记。
最后,我们决定还是使用计算机,进行考场安排,以达到事半功倍的效果。
该设想是考场里座位上只贴号码,有N个座位则号码从1~N。
考试前半小时随机产生考生座次表,考试前10分钟在考场门口张贴一张座次表,此表按学号排序,考生可快速查到自己的座位号。
监考教师领一份座次表,此表按座位号排序,监考教师可快速查到每个座位上的考生,对缺考考生快速查找登记。
2 解决问题的思路我们借助Excel电子表格实现这个工作。
首先制作出学生清单,包含学号、姓名、性别等几列,并填入实际数据。
添加一列用来产生随机数,添加另外一列,用来产生座次号。
具体方法如下,在随机数一列第一单元格插入函数rand(),或者直接输入“=rand()”,把这一单元格内容复制到此列其他单元格,或者使用快速填充。
基于ExcelVBA考场教室安排系统的设计与实现

总第69 期南京广播电视大学学报2012 年第4 期Sum No.69No.4.2012Jour nal of Nanjing Radio &TV University基于 Excel VBA 考场教室安排系统的设计与实现韩昌选(南京城市职业学院,江苏南京210002)【摘要】随着学校办学规模逐渐扩大 , 专业不断增多,考试课程数量也随之增加。
针对这一现状,作者根据学校的考场教室安排和人员配置的实际情况,开发了基于E xc e l VBA 技术的考场教室安排系统。
文章简要介绍了 Excel VBA 技术的特点与使用范围,并从系统流程图、系统运行环境、系统初始化、数据的来源、约束条件以及部分算法的实现等六个方面详细阐述了基于E xcel V BA技术的考场教室安排系统的设计与开发。
【关键词】Excel VBA 考场安排【中图分类号】TP315【文献标识码】A【文章编号】1009-1459(2012)04-0082-03开发考场安排系统是学校管理信息化的重要内容,其目的是为了提高教学管理工作的效率。
近年来随着学校办学规模逐渐扩大, 专业不断增多,每学期参加课程考核的学生人数和考试科目的数量也随之增加, 考场安排的工作量不断加大。
在这种情况下, 如果仍然使用手工安排考场这种落后的管理方式, 显然与高效率的教学管理工作不相匹配。
随着教学管理工作的深入进行, 考场安排工作愈发复杂、繁重,所需的周期也较长, 为教学管理工作带来一些不便。
因此,需要利用计算机技术的方法和手段来解决考试安排工作的复杂性问题, 提高考务管理工作的工作效率。
随着电大现代远程开放教育办学规模的扩大,教学场地小、教室考场少、所需考场多、考生人数多、考试科目多的矛盾也日益突出。
根据目前电大系统的办学模式,很多学校的期末考场教室安排工作任务很复杂,虽然中央电大提供了新、老教务管理平台系统,但只是提供了考场号的随机编排功能,无法根据各个学校的具体情况把教室号填充到数据库里面。
基于Excel VBA的讲课竞赛抽签系统设计与实现

基于Excel VBA的讲课竞赛抽签系统设计与实现
周志军;窦志强;朱春晓
【期刊名称】《中国管理信息化》
【年(卷),期】2016(019)011
【摘要】通过组织讲课竞赛等形式不断提高青年教师教学能力,是高等院校确保人才培养质量稳步提升的重要保证.在高校讲课竞赛等活动中,需要以公正、快捷、直观的方式对参加人员、讲课题目进行抽签,文章通过实例介绍基于Excel VBA设计讲课竞赛抽签系统的实现方法.
【总页数】4页(P187-190)
【作者】周志军;窦志强;朱春晓
【作者单位】中国人民解放军信息工程大学训练部考试中心,郑州450001;中国人民解放军信息工程大学训练部考试中心,郑州450001;中国人民解放军信息工程大学训练部考试中心,郑州450001
【正文语种】中文
【中图分类】TP317.3
【相关文献】
1.基于Excel VBA的教学秩序督查报表管理系统设计与实现 [J], 刘柱鸿;黎鑫;彭元辉
2.基于Excel VBA的教学秩序督查报表管理系统设计与实现 [J], 刘柱鸿;黎鑫;彭元辉;
3.基于Excel VBA抽签程序的设计与实现 [J], 任宇宁;
4.基于Excel VBA设计的对口中职招生面试专家组随机抽签系统 [J], 苏永瀚;胡晓熙;王芸;许素芬;邓建飞;张艳军
5.利用Excel和VBA轻松实现批量抽签 [J], 但山秀
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Excel VBA抽签程序的设计与实现

基于Excel VBA抽签程序的设计与实现
任宇宁
【期刊名称】《电子技术与软件工程》
【年(卷),期】2018(000)011
【摘要】随着信息化技术的不断普及,人们对Excel软件的应用由单一的表格处理、函数计算、图表制作等逐渐向更高层次的人机交互、信息处理、程序设计转变。
本文就是利用Excel VBA技术对某卫生学校护士技能模拟考试学生抽签程序的设计
与实现,在设计过程中实现了前台界面和后台代码的交互,完成了由传统人工抽签到
计算机信息化抽签的改变,极大提升了备考的工作效率和准确性。
【总页数】1页(P66-66)
【作者】任宇宁
【作者单位】山西省吕梁市卫生学校,山西省吕梁市033000
【正文语种】中文
【中图分类】TP317.3
【相关文献】
1.基于Excel VBA的数据统计程序的设计与实现 [J], 李闯
2.基于Excel VBA的党员统计审核程序的设计与实现 [J], 丛飚;陈卓然
3.基于Excel VBA与CAD VBA联合编程技术实现快速编制绘图程序 [J], 李祥;李遥玉
4.基于Excel VBA的讲课竞赛抽签系统设计与实现 [J], 周志军;窦志强;朱春晓
5.基于Excel VBA设计的对口中职招生面试专家组随机抽签系统 [J], 苏永瀚;胡晓熙;王芸;许素芬;邓建飞;张艳军
因版权原因,仅展示原文概要,查看原文内容请购买。
基于ExcelVba的课堂随机滚动抽问系统的设计与优化

基于ExcelVba的课堂随机滚动抽问系统的设计与优化
黄钢
【期刊名称】《电脑知识与技术》
【年(卷),期】2017(013)015
【摘要】此前通过excel做过一个随机点名抽问系统,该系统方便了老师们的教学工作,调动了学生的上课热情.但在使用过程中,该系统暴露出一些不足,并且老师们也提出了一些新的需求.根据这些不足与需求,在旧系统的基础上设计了新系统,对旧系统进行了优化,提高了系统的实用性.
【总页数】2页(P180-181)
【作者】黄钢
【作者单位】雅安职业技术学院,四川雅安 625000
【正文语种】中文
【中图分类】TP391.13
【相关文献】
1.基于EXCEL的随机点名抽问系统 [J], 黄钢;付亚康;
2.基于Monte-Carlo法的滚动轴承-转子系统非线性随机振动可靠性分析 [J], 胡明用;李昌;韩兴;李云飞;陈宇
3.基于Excel VBA的随机滚动抽奖系统设计与实现 [J], 黄钢
4.基于VB和Speech SDK的课堂随机语音点名系统设计 [J], 刘杰;张宏钊
5.基于滚动时域随机丢包的网络化系统状态估计研究 [J], 张进飞; 薛斌强
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Excel VBA的讲课竞赛抽签系统设计与实现
作者:周志军窦志强朱春晓
来源:《中国管理信息化》2016年第11期
[摘要] 通过组织讲课竞赛等形式不断提高青年教师教学能力,是高等院校确保人才培养质量稳步提升的重要保证。
在高校讲课竞赛等活动中,需要以公正、快捷、直观的方式对参加人员、讲课题目进行抽签,文章通过实例介绍基于Excel VBA设计讲课竞赛抽签系统的实现方法。
[关键词] VBA;讲课竞赛;抽签系统;洗牌算法
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016. 11. 112
[中图分类号] TP317.3 [文献标识码] A [文章编号] 1673 - 0194(2016)11- 0187- 04
1 引言
在高等院校中,提高青年教师教学能力是不断提升人才培养质量的重要保证。
组织以老带新、岗位练兵、讲课竞赛等形式的教学实践活动成为促进青年教师提高教学能力的有效手段。
在讲课竞赛活动中,如何保证分组抽签环节的公开、公正、透明,成为参赛人员关注的焦点。
由于通用抽签软件无法满足特定的抽签规则,对抽签数据格式和内容的具体需求存在差异,在解放军信息工程大学校2014年组织的青年教员讲课竞赛活动中,为了高效、公正、透明地进行抽签,自行开发了讲课竞赛抽签系统。
在全年度的竞赛活动中,抽签系统发挥了重要作用。
2 需求分析
在比赛前,按照竞赛规则,全校各教研室所有符合条件的青年教员均列入参赛备选人员名单,每人准备数个讲课题目。
按照学科类别,将所有教研室分为4个大组,全年组织多轮次讲课比赛,每轮次从每组人员中抽取相同数量的选手参赛,讲课题目和出场顺序随机确定。
同时,为了确保青年教员广泛参与,需要实现全年每个教研室青年教员参赛比例和覆盖面基本相当。
在此规则下,抽签系统既要保证公平、公开,又须符合各项比例要求。
系统需要实现以下功能:
(1)按组别抽选参赛选手和讲课题目。
(2)按教研室人员比例进行抽选。
(3)参赛人员和讲课题目随机选定。
(4)抽中人员出场顺序随机确定。
(5)抽选结果填入表格即时打印。
(6)生成各组参赛选手基本信息表用于讲课竞赛工作用表。
3 设计思路
VBA是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。
也可说是一种应用程序视觉化的Basic 脚本。
Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用效率更高。
VBA 不但继承了VB 的开发机制,而且VBA 还具有与VB 相似的语言结构,它们的集成开发环境IDE也几乎相同。
由于教员和选题信息是借助Excel 来完成,因此,在 Excel 文件中嵌入 VBA 程序即可直接实现随机抽签。
在数据准备阶段,需将所有教员、分组、课程、选题等信息汇总在一个统一的Excel表格中。
在每次抽选时根据教研室所在组别确定选题抽选范围,利用随机函数在抽选范围内随机确定选手和题目。
在抽选时需检测所抽选教员是否已在之前被选中过,不能重复抽选同一教员。
对检测通过的教员,标记当前教员本次已被抽选,避免后续抽选过程中被重复抽选。
为被选中教员利用随机函数确定出场顺序,抽选完成之后保存并显示抽选结果。
利用打印按钮对抽选结果信息表进行打印,各教学单位抽签代表签字确认,并同步将各组参赛选手基本信息和选题信息从总表中提取出来,生成参赛选手基本信息表用于讲课竞赛工作用表。
系统程序逻辑结构图如图1所示。
4 软件实现
4.1 程序界面
由于系统功能单一而明确,界面设计应立足实用,尽量简洁。
在系统界面上设置必备的选项和按钮。
选项用于选择抽选组别,按钮分别设置“抽签”、“重置”、“确定”、“打印”。
“抽签”按钮用于实现抽签功能;“重置”按钮用于重置各项参数,使抽签操作可重复;“确定”按钮用于确认抽签结果,将抽签结果汇总至表格,并提取抽中的教员和题目信息填入参赛选手基本信息表;“打印”按钮用于打印抽签结果表格,供抽签人员现场确认使用。
在按钮下方设置文本域,用于实时显示各组抽签结果,界面如图2所示。
4.2 主要功能实现
抽签的核心在于随机抽取教员和题目、随机确定出场顺序。
由于教员、课程、选题等信息汇总在一个Excel表中,随机抽取教员和题目即可通过随机选择表格行号来实现。
使用Randomize函数随机选择行号的实现是很简单的,关键点在于确定选择范围。
不同教员归属于不同的教研室,不同教研室分布在不同的组中。
使抽选结果符合抽选规则的过程便转化为使抽选范围符合竞赛规则的过程。
为了合理确定抽选范围,只需将备选信息汇总表依次按照分组、教研室、教员、课程、选题的顺序排序,便可按照抽选要求确定一个连续的行号范围作为抽选范围赋值给边界变量。
Private Sub confirmRange() '确定抽选范围
Dim i As Integer
totalT = 0'备选教研室选题总行数
startRow = 0'备选教研室选题起始行
For i = 2 To totalRow '从汇总表计算备选教研室jID抽选行号范围
If Cells(i, 20).Value = jID Then
totalT = totalT + 1
If totalT = 1 Then
startRow = i
Else
End If
Else
End If
Next i
End Sub
确定抽选范围后,即可随机抽选教员和选题:
confirmRange
Randomize
iRnd = Int(Rnd * totalT + startRow) '所抽选行号
进行冲突检测后,将iRnd行的教员、课程、选题信息等所需提取的信息赋予二维数组tInfo(x,y)的第二维变量。
选题信息抽选完毕后,需要对出场顺序进行随机,若直接使用随机数产生出场序号,可能会出现出场序号重复的情形。
因此,采用洗牌算法对出场顺序数组进行随机的方法实现。
Private Sub shuffle() '洗牌算法,随机出场顺序
Dim tmp As Integer
Dim i As Integer
Dim j As Integer
For i = 1 To gpTotal 'gpTotal为本组参赛人数
tOrder(i) = i
Next i
Randomize
For i = gpTotal To 1 Step -1
j = Int(Rnd*i) + 1
tmp = tOrder(j)
tOrder(j) = tOrder(i)
tOrder(i) = tmp
Next i
End Sub
对出场顺序随机洗牌之后将数组tOrder()的值顺序赋予tInfo(x,y)的第一维变量,再将tInfo(x,y)按照第一维变量值的顺序输出第二维变量的内容,即得到随机出场顺序后的抽签结果。
5 结论
本程序经过反复的修改和调试,运行结果达到了系统设计的目标。
以Excel作为数据源,既便于基础数据整理,又不需进行数据转换,开发调试效率可大大提高,运行效果直观明了。
VBA语法简单易学,基于Excel的VBA程序设计代码简洁、算法易懂,利用简单实用的工具便可高效快捷地实现开发需求。
使用VBA可以为Excel应用程序开发很多新的功能或增强已有的功能,也使得用户对各种数据的处理更加得心应手,大大提高工作效率。
实践证明,利用Excel软件和Excel VBA编程相结合,可高效解决很多日常工作中遇到的常见数据处理问题。
主要参考文献
[1]魏汪洋.Excel VBA语法速查手册[M].北京:化学工业出版社,2011.
[2]孙红梅. 巧用VBA编程实现电大毕业生照片的批量查找[J].福建广播电视大学学报,2014(1):85-88.
[3]门珮玉. 利用VBA编程搭建赛事自动计分系统[J].中国管理信息化,2014,17(20):87-89.。