VB编写的课堂随机点名小程序代码
基于VB和SpeechSDK的课堂随机语音点名系统设计_刘杰

DOI:10.13797/ki.jfosu.1008-0171.2014.0030
点名制度是高等院校普遍采用的维持学生到课率的方法 , 但经常 性 点 名 往 往 会 起 到 以 下 两 个 方 面
1] 。 的反作用 [
) ( 经常性点名会挤占正常的教学时间 , 从而影响教学工作的完成 。 1 ( ) 经常性点名可能会引起学生的反感 , 甚至会让爱学习的学生产生老师故意浪费课堂时间这样的 2 误解 。 为改善这一状况 , 本文基于 V B和 S e e c h S D K 设计了一种课堂随机语音点名系统。该系统采用 p 能够有效控制点名的时间消耗 。 此外 , 将 该 系 统 与 课 堂 提 问 相 结 合, 还能起 完全随机的方式进行点名 , 到活跃课堂气氛 、 提高学习热情的作用 。
: A b s t r a c t A k i n d o f r a n d o m v o i c e r o l l c a l l s s t e m i s d e s i n e d b a s e d o n V B a n d S e e c h S D K. T h e s s - y g p y , t e m c r e a t e s t h e r o l l c a l l l i s t f r o m t h e t e x t f o r m a t l i s t o f s t u d e n t s s e l e c t s a s t u d e n t r a n d o m l a n d r e a d s y , t h e n a m e a n d t h e s t u d e n t n u m b e r a l o u d . I n o r d e r t o a v o i d r e c u r r e n t s e l e c t i o n a k i n d o f d u a l l i s t i s t o s t o r e t h e s e l e c t i o n t e m o r a r i l . T h e o f v o i c e b r o a d c a s t i n o f s t u d e n t n u m b e r i s s o l v e d u s e d r o b l e m p y g p b i n s e r t i n b l a n k i n t o a d a c e n t n u m b e r s . T h e s s t e m h a s b e e n i n t o u s e i n t h e c l a s s r o o m a n d o b u t - y g j y p t a i n e d o o d r e s o n s e . g p : ; ;V K e w o r d sr a n d o m v o i c e c a l l v o i c e b r o a d c a s t i n o f s t u d e n t n u m b e r B; S e e c h S D K g p y
Vb课程设计饭店点菜系统代码

Vb课程设计饭店点菜系统代码Vb课程设计饭店点菜系统代码Dim g As Single Private Sub Command1_Click()Data1.DatabaseName = "d:\菜品\素菜.mdb" Data1.RecordSource = "select * from 素菜" Data1.RefreshEnd SubPrivate Sub Command12_Click()Unload Form2Form4.ShowEnd SubPrivate Sub Command11_Click()End SubPrivate Sub Command13_Click()Unload Form1Form2.ShowEnd SubPrivate Sub Command14_Click()Unload Form1Form2.ShowEnd SubPrivate Sub Command15_Click()Unload Form1Form2.ShowEnd SubPrivate Sub Command2_Click()Data1.DatabaseName = "d:\菜品\荤菜.mdb" Data1.RecordSource = "select * from 荤菜" Data1.RefreshEnd SubPrivate Sub Command3_Click()Data1.DatabaseName = "d:\菜品\酒类.mdb"Data1.RecordSource = "select * from 酒类"Data1.RefreshEnd SubPrivate Sub Command4_Click()Data1.DatabaseName = "d:\菜品\汤类.mdb"Data1.RecordSource = "select * from 汤类"Data1.RefreshEnd SubPrivate Sub Command5_Click()Data1.DatabaseName = "d:\菜品\主食.mdb"Data1.RecordSource = "select * from 主食"Data1.RefreshEnd SubPrivate Sub Command6_Click()MsgBox "尊敬的顾客,恭喜您获得抽奖机会,请到抽奖板块中进行抽奖", vbInformation + vbOKOnly, "恭喜您"Data2.Recordset.AddNewText2.SetFocusData2.Recordset.UpdateCommand8.Enabled = FalseEnd SubPrivate Sub Command7_Click()Dim a, b As Integera = Len(Text1.Text)b = Len(Text2.Text) + Len(Text3.Text) + 1List1.AddItem Text1.Text & Space(18 - a * 2) & Text2.Text & "*" & Text3.Text & Space(18 - b) & Val(Text2) * Val(Text3)Dim c As Singlec = Val(Text2.Text) * Val(Text3.Text)Text5.Text = c + Val(Text5.Text)End SubPrivate Sub Command8_Click()If List1.ListIndex <> -1 Thenx = List1.ListIndexList1.RemoveItem xEnd IfText5 = Val(Text5) - gEnd SubPrivate Sub Form_Load()List1.AddItem " " & "菜名" & " " & "单价" & "*" & "数量" & " " & "总价"Text3.Text = 1MSFlexGrid1.ColWidth(1) = 16Combo1.AddItem "五百元以下"Combo1.AddItem "五百至一千元"Combo1.AddItem "一千至三千元"Combo1.AddItem "三千以上"End SubPrivate Sub List1_Click()If List1.ListIndex <> -1 Thenx = List1.ListIndexEnd IfDim e, f As Stringe = List1.List(x)Text1.Text = Left(e, 8)f = Right(e, 5)g = Val(f)End SubPrivate Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)Text1.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)Text2.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 4)Picture4.Picture = LoadPicture(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 6)) End SubPrivate Sub Command9_Click()If Command9.Caption = "确认" ThenCommand9.Caption = "添加"mbookmark = Data3.Recordset.BookmarkData3.Recordset.AddNewText4.SetFocusElseIf Text6.Text = "" ThenMsgBox "留言内容不能为空!"Exit SubEnd IfCommand9.Caption = "确认"Data3.Recordset.UpdateEnd IfEnd SubPrivate Sub Combo1_Click()Select Case Combo1.TextDim intranum As Integer, i As Integer, j As Integer, a As IntegerCase "三千以上"RandomizeFor i = 1 To 1000intranum = Int(3 * Rnd) + 1a = 0For j = 1 To 10000a = a + 1Next jText1.Text = CStr(intranum) Text7.RefreshNext iText7.Text = CStr(intranum) Case "一千至三千元" RandomizeFor i = 1 To 1000intranum = Int(4 * Rnd) + 1a = 0For j = 1 To 10000a = a + 1Next jText1.Text = CStr(intranum) Text7.RefreshNext iText7.Text = CStr(intranum) Case "五百至一千元" Randomize For i = 1 To 1000intranum = Int(5 * Rnd) + 1a = 0For j = 1 To 10000a = a + 1Next jText1.Text = CStr(intranum) Text7.RefreshNext iText7.Text = CStr(intranum) Case "五百元以下" RandomizeFor i = 1 To 1000intranum = Int(6 * Rnd) + 1a = 0For j = 1 To 10000a = a + 1Next jText7.Text = CStr(intranum) Text7.RefreshNext iText1.Text = CStr(intranum) End SelectLabel10.Caption = "恭喜您!" Label10.FontName = "华文行楷" Label10.FontSize = 40Label10.ForeColor = vbRed End SubForm1抽奖Form4。
用vb制作随机点名器

用vb制作随机点名器,提供代码及详细制作步骤1.Form的Caption属性可命名为:课堂随机点名2.在界面放入一个Listbox, 一个Label ,一个commandbotton,它们的属性不用改变。
3.右击表单Form,选择“查看代码”4.输入下列代码:Option ExplicitDim flag As BooleanPrivate Sub Command1_Click()With Command1If .Caption = "点名" Then.Caption = "停止"flag = FalsetestElse.Caption = "点名"flag = TrueEnd IfEnd WithEnd SubFunction test()Dim tDo Until flagLabel1.Caption = List1.List(Int(Rnd * List1.ListCount)) t = TimerDo Until Timer - t > 0.05DoEventsLoopDoEventsLoopEnd FunctionPrivate Sub Form_Load()Dim arr, i As IntegerList1.Visible = FalseCommand1.Caption = "点名"With Label1.Caption = "".AutoSize = True.ForeColor = vbRed.FontSize = 24.FontBold = TrueEnd WithOpen App.Path & "\123.txt" For Input As #1 (备注说明:在保存位置同一目录下新建一个123的文本文件,并把名单录入到文本中,一个名字一行。
)Close #1For i = 0 To UBound(arr)If Len(arr(i)) > 0 Then List1.AddItem arr(i)End Sub运行界面如下:。
课程设计教师上课随机点名系统

沈阳航空航天大学课程设计任务书学院:航空宇航工程学院专业:航空维修班级:04030501 学号:2010040305004 题目:教师上课随机点名一、课程设计时间2011年3月12日~18日(第2周),共计1周。
二、课程设计内容教师在每次上课时,需要对学生随机点名,学生信息保存到文本文件或access 数据库中,学生信息至少包括:学号,姓名,点名次数(初始值为0)。
所谓点名,是指将某位同学的姓名和学号显示到屏幕上,则表示该同学被点名一次,并累加点名次数,注意点名的随机性(可使用随机函数)。
用户界面中的菜单至少包括“编辑学生数据”,“开始点名”,“查询学生点名情况”,“退出”4项。
三、课程设计要求程序质量:✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
✧用户界面中的菜单至少应包括“编辑学生数据”、“开始点名”、“查询学生点名情况”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录需求分析 (4)设计分析 (4)技术要点 (5)主要界面截图 (9)图(一)学生点名系统主界面 (9)总结 (10)参考文献 (14)需求分析教师在每次上课时,需要对学生随机点名,学生信息保存到文本文件或access数据库中,学生信息至少包括:学号,姓名,点名次数(初始值为0)。
1.运用随机函数从数据库中提取学生的数据。
2.对学生的点名情况进行查询,并在用户界面中显示。
3.对学生的学号和姓名等信息进行编辑,并添加到数据库中。
设计分析(1)概述:通过使用ADO控件建立程序设计与数据库的联系,用SQL语句在数据库中查找,添加和更改数据,运用随机函数,随机地提取学生的数据,体现点名的随机性。
抖音同款课堂点名系统,PyQt5写起来很简单...

抖音同款课堂点名系统,PyQt5写起来很简单...刷抖音的时候发现一个老师在用的课堂点名系统。
用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。
操作效果展示:完整源代码块还是放在了文章的最后面,有需要直接运行到文末获取下载方式就好了。
使用的时候准备好学生姓名的文件,使用导入数据的按钮直接导入就可以开始点名了。
新建一个文本文档,将姓名设置设置好,姓名文件示例如下。
使用系统库或者第三方库都比较常规,这里就不一一介绍了。
from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from qdarkstyle import load_stylesheet_pyqt5import osimport sysimport timeimport random为了和UI界面的主线程分离开来,我们采用的还是QThread多线程的方式来实现随机点名模块的。
这样做的目的是为了防止主线程阻塞,下面是子线程的实现部分。
class WorkThread(QThread):trigger = pyqtSignal(str)finished = pyqtSignal(bool)def__init__(self, parent=None):super(WorkThread, self).__init__(parent)self.parent = parentself.working = Truedef__del__(self):self.working = Falseself.wait()def run(self):data_list = self.parent.data_listif len(data_list) >= 1:ran = random.randint(20, 40)print('遍历次数:', ran)for a in range(ran):name = random.choice(data_list)self.trigger.emit(name)print(name)time.sleep(0.6)self.finished.emit(True)else:self.trigger.emit('无数据')UI 界面的实现部分也比较常规,下面主要实现部分的代码块。
用VB编写点名系统

用VB编写点名系统张晓理工六班1.效果图运行前:运行以后:2.创建控件过程首新建工程里,将form的背景插入背景图片。
创建一个命令按钮,名称为Command1,调整其属性,Caption设置为“开始”二字;创建一个命令按钮,名称为Comman21,调整其属性,Caption设置为“退出”二字;创建标签一个,名称为label。
将其属性里的Alignment调整为2-center,目的是将标签里的字居中。
将front设置为楷体。
字体大小为17。
在创建一个按钮名称为timer1,调整其属性,设置间隔,即Timer1.Interval = 50定义名单跳转时间为50ms。
Timer1.Enabled = False。
3.代码Dim a() As StringDim i As IntegerPrivate Sub Command1_Click()If Command1.Caption = "开始" ThenCommand1.Caption = "暂停"Timer1.Enabled = TrueElseIf Command1.Caption = "暂停" ThenCommand1.Caption = "开始"Timer1.Enabled = FalseEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()i = 0'定义名单跳转的时间间隔为10msTimer1.Interval = 100Timer1.Enabled = FalseCommand1.Caption = "开始"Label1.Alignment = 2 '字体居中Label1.Font = "微软雅黑" '字体为微软雅黑Label1.FontSize = 17 '设置字体大小'读取名单,注意:名单必须已经放在D盘的1.txt文件内 Open "D:\dianming.txt" For Input As #1Do Until EOF(1)i = i + 1ReDim Preserve a(1 To i) As StringLine Input #1, a(i) '按行读取,所以名单名字必须一行一个 LoopEnd SubPrivate Sub Timer1_Timer()Dim j As IntegerRandomize'i为名单的人数,Rnd为0-1之间的数,不包括0,1j = Int(1 + Rnd * i)Label1.Caption = a(j)End Sub。
2024版6款课堂活动随机点名

优点
高度随机,可自定义名单 和规则,方便灵活。
缺点
需要计算机或其他智能设 备支持,可能存在技术难 题。
9
工具三:扑克牌抽签法
原理
将学生名单写在扑克牌上,通过洗牌 和抽牌的方式进行点名。
缺点
准备工作繁琐,点名过程可能不够严 谨和公正。
优点
具有娱乐性和互动性,增加课堂趣味 性。
2024/1/30
2024/1/30
19
教师观察及反馈收集
教师们普遍反映,随机点名能够有效地提高学生的注意力和参与度,使得课堂教学 更加生动有趣。
通过观察学生的表现和反应,教师可以及时发现和解决学生在学习中遇到的问题和 困难,从而提高教学效果。
随机点名也为教师提供了一种有效的课堂管理工具,使得课堂秩序更加井然有序。
18
学生参与度提升情况分析
通过随机点名,学生的课堂参与度得 到了显著提升。在点名过程中,学生 们更加专注于课堂活动,积极思考和 回答问题。
在多次实施随机点名后,学生们逐渐 习惯了这种课堂互动方式,变得更加 自信和主动,敢于表达自己的观点和 想法。
随机点名增加了课堂的不确定性和趣 味性,使得学生们更加期待和关注每 一次点名,从而提高了他们的学习兴 趣和动力。
21
05
拓展应用及创新思路
2024/1/30
22
在其他科目或场景中尝试应用
在语言类课程中应用
如英语、法语等语言课程,通过随机点名增加学生口语练习机会。
2024/1/30
在体育课程中应用
通过随机点名选择学生进行运动示范或组队比赛,增加课堂互动和 趣味性。
在艺术课程中应用
如音乐、美术等艺术课程,通过随机点名让学生展示个人才艺或分 享创作思路。
用VBA实现课堂语音点名

用VBA实现课堂语音点名作者:梁里宁来源:《电脑爱好者》2013年第05期具体实现方法思路:制作一个点名页面,安排三个操作按钮,分别是“点名”、“缺”、“到”,并分别给这三个按钮赋予相应的VBA程序代码,完成相应的控制或记录任务。
当开始点名时,老师点击“点名”按钮,让电脑按学生花名册信息自动语音点名,如果学生已到课,点击“到”按钮记录,如果学生缺课,点击“缺”记录。
首先要说明的是,Excel中的“文本到语音”功能不是默认安装的。
打开“工具”菜单,选择“语音”项子菜单中的“显示文本到语音工具栏”命令,Excel会自动进行安装。
安装好后,可以弹出“文本到语音”浮动工具栏。
以Excel 2003为例,具体实现步骤如下:1.在工作表Sheet2中输入学生的点名册信息(图1)。
2.适当设置工作表Sheet1中单元格的格式,并在其上添加三个命令按钮,标题分别为“开始”、“缺”和“到”(图2)。
3.为三个命令按钮“开始”、“缺”和“到”编写单击事件过程,输入具体的VBA代码:PrivateSubCommandButton1_Click()'开始With Sheet2Cells(12,1)=.UsedRange.Columns.Count+1Cells(13,1)=.UsedRange.Rows.Count-1'记录点名人数IfCells(13,1)>0 Then.Cells(1,Cells(12,1))=Date'记录点名日期.Cells(1,Cells(12,1)).ColumnWidth=10CommandButton2.Enabled=TrueCommandButton3.Enabled=TrueCommandButton3.ActivateCells(5,3)=.Cells(Cells(13,1)+1,1)'显示学号Cells(8,3)=.Cells(Cells(13,1)+1,2)'显示姓名Application.Speech.SpeakCells(8,3)'语音朗读姓名CommandButton3.ActivateEndIfEndWithEndSubPrivateSubCommandButton2_Click()'缺IfCommandButton2.EnabledThenWith Sheet2.Cells(Cells(13,1)+1,Cells(12,1))="缺" Cells(13,1)=Cells(13,1)-1'点名人数递减IfCells(13,1)=0 ThenMsgBox"点名完毕!"Cells(5,3)="点名请单击"Cells(8,3)="开始按钮"CommandButton1.ActivateCommandButton2.Enabled=FalseCommandButton3.Enabled=FalseElseCells(5,3)=.Cells(Cells(13,1)+1,1) '显示下一个的学生Cells(8,3)=.Cells(Cells(13,1)+1,2) Application.Speech.SpeakCells(8,3)'语音朗读姓名CommandButton3.ActivateEndIfEndWithEndIfEndSubPrivateSubCommandButton3_Click()'到IfCommandButton3.EnabledThenWith Sheet2.Cells(Cells(13,1)+1,Cells(12,1))="" Cells(13,1)=Cells(13,1)-1'点名人数递减IfCells(13,1)=0 ThenMsgBox"点名完毕!"Cells(5,3)="点名请单击"Cells(8,3)="开始按钮"CommandButton1.ActivateCommandButton2.Enabled=FalseCommandButton3.Enabled=FalseElseCells(5,3)=.Cells(Cells(13,1)+1,1)'显示下一个的学生Cells(8,3)=.Cells(Cells(13,1)+1,2)Application.Speech.SpeakCells(8,3)'语音朗读姓名EndIfEndWithEndIfEndSub点名开始前,“开始”命令按钮是可用的,而“缺”和“到”命令按钮都是不可用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机点名系统。
综合网上各类小程序,自己修改定制了一款新的小程序。
学生名单.txt 放在同一个目录中。
使用截图如下
Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
'定义常量
Const HWND_TOPMOST = -1 'On Top
Const HWND_NOTOPMOST = -2 'No Top
Const SWP_NOACTIV A TE = &H10 '
Const SWP_SHOWWINDOW = &H40 '
'Dim TopOn As Integer
Dim ss, mm, nn
Dim num(1 To 300) As Integer
Dim j, k As Integer
Dim A(500) As String, r As Integer
Dim filename As String
Private Sub Command1_Click()
Dim b As String
Dim t, i As Integer
filename = App.Path & "\" & "学生名单.txt" Open filename For Input As #1
'产生记录总数以内的随机数x
i = 1
While Not EOF(1)
Line Input #1, A(i)
i = i + 1
Wend
c = i
Close #1
Start:
Randomize
t = Int(c * Rnd + 1)
For j = 1 To c
If t = num(j) Then
GoTo Start
End If
Next
Label1.Caption = A(t)
k = k + 1
num(k) = t
If k = c Then
MsgBox "所有人员均已点过!", vbSystemModal Command1.Enabled = False
Command3.Enabled = True
End If
End Sub
Private Sub Command2_Click()
Unload Form1
End Sub
Private Sub Command3_Click()
j = 0
k = 0
For i = 1 To 300
num(i) = 0
Next
Command3.Enabled = False
Command1.Enabled = True
Label1.Caption = "Name"
End Sub
Private Sub Command4_Click()
Timer1.Enabled = True
Command4.Enabled = False
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer) End Sub
Private Sub Form_load()
Form1.Height = 500
Form1.Width = 8550
Command3.Enabled = False
Timer1.Enabled = False
mm = 45: ss = 0
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Dim M As Integer
SetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / 15, _
Me.Top / 15, Me.Width / 15, _
Me.Height / 15, SWP_NOACTIV ATE Or SWP_SHOWWINDOW Line1:
If ss < 10 Then
s = "0" & ss
Else
s = ss
End If
If mm < 10 Then
mmm = "0" & mm
Else
mmm = mm
End If
t = mmm & ":" & s
Label2.Caption = t
ss = ss - 1
If nn = 3 Then
ss = 88
End If
If mm = 0 And ss = -1 And nn = 0 Then
MsgBox "休息时间已到,五分钟后继续", vbSystemModal
nn = 1
mm = 5: ss = 0
GoTo Line1
End If
If mm = 0 And ss = -1 And nn = 1 Then
MsgBox "继续上课", vbSystemModal
nn = 2
mm = 45: ss = 0
GoTo Line1
End If
If mm = 0 And ss = -1 And nn = 2 Then
MsgBox "放学咯!", vbSystemModal
Command1.Enabled = False
nn = 3
mm = 88: ss = 88
End If
If ss = -1 And mm > 0 Then mm = mm - 1: ss = 59
If mm = 0 And hh > 0 Then hh = hh - 1: mm = 59 End Sub。