VB软件(精选8篇)
VB软件 篇1
1 软件编写目的
在日常生活中我们常常需要用抽签来解决实际问题,比如在大学课堂,老师可以用随机抽签的方式来查看学生的出勤情况;在文艺晚会上,主持人可以用抽签的方式对观众进行奖品发送。而传统的人工抽签使得人力在处理大的样本容量时显得力不从心,由此,本软件以公平、公正、简洁、高效为编写原则,希望解决这一难题。
2 程序运行流程及实现代码
1)启动软件时,软件主界面只提供一个获得焦点的可操作按钮“选择文件”,如图1所示,单击其可引导用户利用弹出的对话框选择文本格式(*.txt)的抽签名单文件。
2)按提示选择抽签名单文本文件后会自动弹出如图2所示的对话框,让用户查看抽签名单是否正确,正确则点击“确定抽签数据”按钮就可返回至抽签软件主界面;如需对名单进行修改,则可点击“编辑抽签数据”按钮出现如图3所示的对话框,在该对话框中可完成在不改变抽签数据源文件的情况下临时修改抽签名单的需求;如果发现所选名单错误,则可在点击“确认”按钮后进入抽签主界面时重新选择抽签文件。
选择抽签名单文件的实现:
使用可返回文件地址和文件名的通用对话框控件进行文件筛选并导入抽签数据,对话框控件的过滤器设置为:【"文本文档(*.txt)"|*.txt|"所有文件(*.*)"|*.*】;为了避免用户的错误操作,通过设置按钮的Enabled属性,在不同条件下控制用户的操作行为。同时,在用户临时编辑抽签名单时,为了帮助用户理解操作界面上各按钮的功能,设置了该操作界面“删除”和“增加”按钮的Tool Tip Text属性,如图3所示是鼠标指针指向编辑抽签数据对话框中的“删除”按钮时,其Tool Tip Text值为【从抽签名单编辑框中删除项目】;将“增加”按钮的Tool Tip Text属性值设置为【向抽签名单编辑框中添加项目】。在“增加”按钮操作中,使用Input Box函数引导用户临时增加抽签条目,设置其为【info=Input Box("请输入需要增加的项目","增加","")】;在“删除”按钮的功能中,提供了多项选择并删除的功能,利用【For…next】循环语句批量删除所选项,利用Msg Box函数提醒用户的错误操作。
3)程序运行时提供了两种操作模式和两种抽签模式,分别为“手动抽签”,“自动抽签”“;重复抽签”,“条件抽签”。
软件默认为手动、重复抽签模式,即确定抽签名单后,单击“开始抽签”,待抽签名单循环一周后,原按钮自动转变为“停止抽签”按钮并激活,以此模式进行抽签,每一次的抽签名单都不变,且都与确认抽签名单一致。
主界面上“开始抽签”按钮的单击事件过程代码设计思想如下:
利用条件语句【If…Then…Else】,设置按钮功能替换【Timer1.Enabled=Not Timer1.Enabled】;【If Command2.Caption="开始抽签"Then Command2.Caption="停止抽签"】;记录抽签次数【Text1.Text="第"&z+1&"次抽签结果为"&vbCr Lf&Text2.Text&vb Cr Lf&Text1.Text】;【z=z+1】;利用计时器Timer1进行文本框Text2框内的名单替换和记录名单循环次数。
在手动、重复抽签模式的基础上增设了自动、条件抽签模式,当然,两种操作模式和抽签模式是可以随意搭配的,通过选择抽签模式按钮即可激活对应的抽签模式。右键单击“开始抽签”按钮即可激活自动抽签功能。设置此功能的初衷是为了解决大批量抽签时,人工操作的难题。同时,条件抽签可在特定场合下使用,比如在有奖抽签环节,获奖者便不能进入下一轮的抽签名单,于是在条件抽签模式下,系统会自动将上一轮的获奖者名单删去。
自动、条件筛选抽签模式实现思想如下:
首先由开始抽签按钮判断选择模式,如果用户选择了条件筛选模式,则执行删除上一次获奖者名单的操作。设置j变量为抽签名单代号,代码如下:
如果要切换回重复筛选模式,则在系统判断选择模式为重复筛选模式后,将确认的抽签名单重新载入抽签列表框即可。
自动抽签功能的实现,模仿了人工抽签的模式,即随机产生时间段,按下停止抽签按钮,得到抽签结果,再次按下开始抽签按钮,进行下一次抽签。当达到要求的次数b时告知用户抽签结束。所以,此功能应用了计时器控件Timer2和随机数命令【Randomize】,激活按钮单击事件过程——【Command2_Click】,由Msg Box函数告知用户,代码如下:
b值由用户激活自动抽签按钮时的Input Box输入【b=Input Box("请输入自动抽签的次数","输入",1)】
右键菜单的设置应用了VB中的Popup Menu功能,当系统判定用户在软件停止抽签的情况下单击鼠标右键时,激活右键菜单autom,autom_click过程部分关键代码如下:
3 抽签软件开发意义
本软件的成功编写对解决实际生活问题有极大意义。既可以满足用户对小样本容量手动抽签的需求,又可以节省用户体力,进行大样本容量的批量抽签。同时,在不改动源文件的条件下还可临时增、删抽签名单,省去了用户对源文件数据的处理步骤。软件特有的条件抽签模式使本软件在实际生活中的适用场合更加广泛。抽签模式强制性要求循环一周后随机抽签,保证了人工抽签不能保证的公平性,同时,软件自动记录抽签结果,支持抽签结果的保存,加强了用户在使用过程中的便捷性。
参考文献
[1]王建忠.Visual Basic程序设计[M].北京:科学出版社,2012.
[2]方波,李亚男,刘加加,等.VBA在考试系统中的运用[J].电脑知识与技术,2015(8):48-49.
VB软件 篇2
关键词VB计算机基础 操作教学 批阅软件
运用VB优化了计算机基础教学,实际教学中的效果良好。本文对此进行了研究。
一、界面设计与文件结构
界面设计:按照软件结构图设计好界面。文件结构:设计好每一套试题,并建立好相应的目录。题目少可以用文本文件来存储。题目多可以用Access数据库来存储。这样只要给数据库设置个密码就可以保证题库的安全性了。开发工具采用VB,一是因为VB适合快速开发,相对于VC等开发软件更易于上手,而且开发的效率高、周期短。二是因为Word、Excel等office软件里的宏都是VBA,而VBA是VB的一个子集,两者可以很好地结合,并且利用宏可以帮助快速有效地写出阅卷程序。
二、选题
设计好界面和题目后就可以编写各功能模块的代码了。当学生选择某一套试卷后,就要执行选题操作。对文件和文件夹进行操作需要使用FSO(File System Object)对象模型,FSO的功能非常强大,它能创建、改变、移动、删除文件/文件夹;能检测文件、文件夹是否存在,文件、文件夹的路径;能获取文件、文件夹的信息,如:名称、创建日期等。要使用FSO,首先必须在工程中引用Microsoft Scripting Runtime。采用与题库中各库表对应的试卷表———理论试卷表、操作系统试卷表、文档处理表等。
下面以抽取单选题为例说明其组卷过程如下:
(1)考试要求库。
(2)取出单选题题量。
(3)从单选题库中筛选符合要求(范围)的题目。
(4)判断题数<题量,若是则显示错误信息,退出。
(5)抽题数=0。
(6)判断抽题数<=题量,否则进入下一大题抽取。
(7)产生在1———题数范围内的随机整数。
(8)判断该题是否抽过,若是则返回(7),重新产生。
(9)抽取该题入理论题库。
(10)抽题数增加1,返回。
(11)抽取下一大题。选题主要使用了FSO复制文件和复制文件夹这两个方法,及CopyFile和CopyFolder。部分代码如下:Public Ex(5)As String'定义一个字符串数组用于存放试卷名Public fso As New FileSystemObject'定义一个fso对象Private Sub Form_Load()'窗体显示时初始化Ex()数组中的值Ex(1)="试卷一"Ex(2)="试卷二"Ex(3)="试卷三"Ex(4)="试卷四"Ex(5)="试卷五"End Sub因为每一个选题按钮的功能都是类似的,惟一不同的就是所抽取的试题名称不一样,所以可以将选题按钮做成按钮控件数组,以提高程序开发效率,也便于以后的源程序维护。这样,将试题的文件名用数组变量来表示,就可以用一段程序来实现所有按钮的选题功能。Private Sub Button1_Click(Index As Integer)'当点击某一套的按钮后执行选题操作fso.CreateFolder“(c:考生文件夹”)'在c盘下建立考生文件夹,路径和目录名可自已设定。fso.CopyFile App.Path&“xxjshkExcel”&Ex(in-dex)&“.xls”,“C:考生文件夹”&Ex(index)&“.xls”'复制Excel试题文件fso.CopyFolder App.Path&"xxjshkWebDo",“C:考生文件夹WebDo”'复制网页试题文件夹End Sub上述主要以复制Excel试题为例,复制其它试题方法类似。判断文件或文件夹是否存在通常使用fso的FileExists()和FolderExists()方法。
三、阅卷功能的实现
学生做完练习题后,需要点击“阅卷”按钮来反馈成绩。计算机教学中常见的操作试题类型有:Windows操作题、Word操作题、Excel操作题、PowerPoint操作题、Internet操作题等。下面介绍了Windows操作题操作题的阅卷原理。
没有编写过练习软件的老师可能会觉得很难,怎么知道学生有没有对文件执行新建、复制、剪切等操作呢?其实根本没必要去知道,不可能去写大量的代码来截取捕捉鼠标和键盘事件,看学生有没有执行这些操作,这样有些小题大做了。其实Windows操作题的阅卷非常简单,原理如下:新建、删除、重命名、复制、剪切、创建快捷方式就是判断该文件或文件夹是否存在。
判断文件夹是否存在:fso.FolderExists
判断文件是否存在:fso.FileExists
例如:If fso.FolderExists("C:单元二WinWorkFlowerBmp")=True Then score=score+5If fso.FileExists("C:单元一WinWorkNoipa.pas")=True Then score=score+5设置墙纸、屏保主要就是读取注册表中相关的键值。VB读取注册表:可以使用API函数RegOpenKeyEx、RegQueryValueEx、RegCloseKey来对注册表进行打开、查询等操作,并通过读取相对应的键值来判断墙纸、屏保的设置。
四、结语
运用VB优化了计算机基础教学,可以将教师从繁琐的教学环节中解放出来,节省了大量的人力、物力,使教师有更多的时间与精力放在题目的科学性建设中和教学内容、教学方法的钻研中。
参考文献:
[1]李雅琴.信息技术的应用、发展与创新人才的培养[A].中国教育技术协会2004年年会论文集[C].2004.
具有区域意识的VB软件研究 篇3
在全球化快速发展的今天,软件开发过程中不可避免地要考虑海外市场的推广问题。为此,需要创建出国际化软件,其过程包括两方面:其一,要确保软件针对全球可用性进行设计,使其具备全球化的特点以及本地化能力;再次,要对产品进行本地化,以在目标市场上进行推广。开发全球可用的程序时,要做两方面的工作。一是进行软件的通用性编程,使软件的代码和资源相分离,在全球使用相同单一二进制代码。另一方面要使开发的软件具有区域意识。
具有区域意识程序是指遵守用户所选定的语言规则和文化惯例的软件[1,2]。由于它们的最终表示在不同的各种语言和文化之间,可能有不同的意义和解释,因此例如日期、时间以及货币符号等表示格式化的数据,已成为一个敏感性问题。Microsoft Windows通过Microsoft Win32国际语言支持应用程序编程接口(NLS API)提供了对语言和文化惯例的一般性支持[3]。这些API还为操作系统支持的所有区域提供排序和字符类型信息。
1 操作系统对区域的支持
区域指的是与某个地方或者某种文化关联的一组信息,是由语言、国家/地区,以及文化惯例确定的用户环境特征集[4]。区域决定了排列顺序、键盘布局,以及日期、时间、数字和货币格式等的设置。Windows上的区域信息包括口语的名称和标识符、书面语的文字以及文化惯例。区域意识是依据区域不同而表现出不同的行为或者返回不同的数据。区域意识标准包括键盘布局、默认的纸张大小和信封大小、字符集或字符编码范围、文本方向以及输入法。
1.1 区域变量
Windows的区域变量包括语言组/语言集,系统区域,用户区域,输入区域和UI语言。
语言组包含代码页信息、键盘布局和字体,某些还包含文字引擎,可以通过其编辑操作系统支持的文字。由于Windows XP是全球可用的单一二进制软件,因此所有得到支持的文字的功能在这些操作系统的所有语言版本中都可用。语言集是具有相似属性的语言组集合到一起,构成语言集。除英文外,还有欧洲语言集、东亚语言集和复杂文字。
系统区域变量确定系统默认使用的代码页——例如简体中文936或朝鲜语949[5]。当处理非Unicode应用程序时,把Unicode用作内在编码格式的操作系统,如Windows XP,将用系统区域的代码页,把文本数据根据代码页从Unicode转化为代ANSI编码。所有未把Unicode作为默认字符编码格式的应用程序都会受到用户区域设置的影响;因此,已经用Unicode编码的应用程序可以忽略这个设置的值和功能。
用户区域变量确定用户希望用来格式化日期、时间、货币和大量数据的默认设置。虽然它表现为某种语言(某些是语言和国家的组合),但它并非语言设置。
输入语言变量描述用户输入到应用程序中的语言及输入法。可以安装多个输入区域,用户可以在它们之间进行切换。默认输入区域是在启动新应用程序时有效的区域。切换到另一个输入法的操作是以每个线程为基础完成的。这使得用户可以在两个不同的应用程序中拥有两个不同的区域。
UI语言变量允许每个用户为对话框、菜单和帮助文件等内容选择UI语言。区分系统UI语言和用户UI语言很重要。虽然,有时候用户UI语言确实就是系统UI语言,但在另外一些情况下却并非如此。
1.2 NLS API
NLS API被应用于Win32程序设计模式中,以提供区域敏感性信息[6]。其提供了恰当的工具,来消除应用程序中的区域特定假设,从而允许用户以符合当前选定的用户区域的格式来表示数据。
NLS API提供了三组API解决用户希望设置的区域信息:
①检索某个特定的区域值。
②查询关于某个特定区域的信息。
③某个特定区域的格式数据。
该模块化方法将查询选定的用户区域,取得检索到的该区域的默认日历格式,并用默认的日历格式来格式化系统时间。这些NLS API的一个通用参数是区域标识(LCID)[7]。LCID是语言标识(LANGID)和排序标识的组合。
语言标识是由主语言和定义国家、地区甚至是使用该语言的书写系统的亚语言构成的WORD值。例如,英语是一种主语言,美国是一种亚语言,构成英语(美国)语言标识。
对于大多数区域而言,使用LANGID已足够清楚地标识某种给定语言的文化特性。然而,少数区域有一个额外的参数,这使得它们的各种变形之间具有可区分性;这个参数就是排列顺序,或者字符被排序的方式。例如,德语(德国)具有两种排序类型:字典序和电话薄序,它们以不同的方式处理元音变音字符。为了标识德语(德国)的这两种排序方式,因而通过排序标识扩展了LANGID的概念,创建了叫做“LCID”的DWORD值。结构如图1所示。
2 VB中实现区域意识
在区域变量中,只有用户区域和UI语言变量涉及到应用程序中的区域意识,其中用户区域变量将直接影响系统日期、数字和日历的显示格式。本文讨论这两个变量在VB软件中的应用。
2.1 日期、数字和日历格式
2.1.1 日期格式
VB软件可以很好地处理基于系统区域设置的日期和时间显示。在计算机内部,日期和时间仅仅是一个Double型数据,用来表示距离1899年12月30日上午12点的日期数[5]。运行CDbl函数会得到当前据上述时间的天数[8]。例如运行CDbl(#3/1/2009#)会返回值39873,即为距离该日39873天。由此可知,日期和时间数据在系统内部是以数值方式存储的,只要解决如何显示的问题即可。
当在程序中以格式dt=3/1/2009输入日期,其中dt为Date型变量。因为“/”在VB语言中被解释为除号,所以这种情况下储存的值为算式的结果,无法正确显示日期。第二种是以格式dt=“3/1/2009”输入日期。当区域的日期格式为mm/dd/yy形式时,这种输入可以得到正确显示。这是因为VB在存储日期时会调用COM函数VarDateFromStr并利用系统当前的LCID值将字符串转换为日期[9]。但是,当运行在区域以dd/mm/yy形式显示日期的系统时,这种输入方法就会将输入解释为2009年1月3日。因此,在简体中文的操作系统中应避免这种输入。但是,当在窗口手机用户的输入信息时,可以使用这种方法。这里假设用户均会以他们当前区域的日期格式输入数据。因此VB会利用系统的LCID将日期转化为正确的存储格式。除此之外,最好的选择是以格式dt=#3/1/2009#输入日期。
在显示日期和时间时,区域设置并不改变数据的存储,改变的是其显示的方式。因此可以使用FormatDateTime函数和Format/Format?S?函数[3]来显示从用户处获得的日期数据。这里有个假设,即用户都会接受符合他们系统区域设置的日期信息。这些函数会根据系统的LCID将存储的数字值转换为相应格式的日期和时间。
此外还有一点需要注意,如果想在系统中设置不同的区域设置以显示日期和时间时,要保证都是在相同的代码页上,否则系统无法正确显示,会自动以问号来代替所要显示的数字。
2.1.2 数字格式
数字的处理只要注意一点即可,不要使用逗号当作数字间的分隔符。因为在VB中,逗号用来分隔函数中的参数。当数字以字符形式出现时,要与当前系统区域设置中的格式相同。
每种区域中的数字格式是不同的。可以通过API函数GetLocaleInfo,并设置参数LOCALESNATIVEDIGITS和目标区域的LCID值获得数字的显示[10]。例如像获得阿拉伯语的数字显示,输入下列代码即可:
GetLocaleInfo( 1025, LOCALESNATIVEDIGITS, digInfo, Len(digInfo))
1025为阿拉伯语区域的LCID值,digInfo用来指定一个缓冲区,用于装载要求的信息。注意预先将字串格式化成合适的长度。
2.1.3 日历格式
系统中可以运行的日历格式不止一种。有的区域设置中只存在一种日历格式,而剩下的区域设置则存在不只一种格式。与日期和时间一样,日历的存储也是与区域无关的。选择不同的区域时,系统会启用不同的算法显示不同的日历格式。
可以通过DTPicker和MothView控件来显示系统默认的日历格式。用户可以通过设置控件的属性,来确定一周的起始或日历显示方式。有一点需要注意,当改变系统的用户区域变量,使得其中包含非当前代码页的字符时,这种控件无法正常显示日历。除非系统区域变量,以更改系统代码页,否则无法解决其显示的问题。
2.2 用户界面
用户界面的问题涉及到如何将应用程序呈现给用户。即使用户界面没有被翻译为用户使用的语言,应用程序也应可以处理和使用用户的数据。
2.2.1 字体
假设系统的默认语言与应用程序的语言相同时,可以忽略代码页的问题,此时,字体成为了唯一需要关心的。
最初的字体被限制为某种给定文字的点阵集合的固定宽度光栅字体,后来发展为包含字形定位和置换的扩展表的基于Unicode的OpenType字体[5]。字体是多语言数据被显示给用户的最终形式。各种语言版本的系统字体都不同。转换资源文件的过程中,应当为转换的文本的不同语言改变字体表征名,即字体名称。如果现有的系统字体与资源的字体信息不同,程序在运行时就会出现无法显示字符的情况,系统会使用方框替代需要显示的字符。为避免这种情况,在本地化资源文件时,要相应地修改资源文件中包含的字体信息。
2.2.2 字符显示空间
如果输入英文使用8pt的字体,那么输入中文时至少要9pt。同样,为了表达同样的意思,德语由于更长的词汇和更复杂的语法结构,至少要多留出20%~40%的显示空间。所以在一个全球可用的应用程序中,保证控件上有足够的空间以使得其上显示的数据不被截断是很重要的。所以需要根据显示文本的长度动态地调整控件的大小。
首先获取每个逻辑单元的像素信息,代码如下:
nLogPixelsX=GetDeviceCaps(hDC, LOGPIXELSX)
nLogPixelsY=GetDeviceCaps(hDC, LOGPIXELSY)
API函数GetDeviceCaps用来返回指定设备场景中的信息。其中参数hDC用来表示设备场景,LOGPIXELSX/LOGPIXELSY参数表示返回像素/逻辑英寸值。存储在变量nLogPixelsX/nLogPixelsY中。
下一步是使用GetTextMetrics函数来获取设备中的字体信息,代码如下:
Call GetTextMetrics(hDC, typTM)
hDC为当前设备句柄,typTM为WIN32 API文件中定义的数据结构TEXTMETRIC。用来存储字体的信息。
然后获得要显示字符串的长度和高度信息,使用API函数GetTextExtentPoint32。代码如下:
Call GetTextExtentPoint32(hDC, stText, Len(stText), typSize)
wTextWidth=typSize.cx
wTextHeight=typSize.cy
其中参数hDC是窗口句柄,stText为要输入的文本信息,第三个参数为文本的长度,最后把返回的结果存到变量typSize当中。这个变量是WIN32 API文件中定义的数据结构size,其中包含两个内部数据cx和cy,分别表示文本的长度和高度信息。
最后,获得新控件的大小,通过函数MulDiv函数计算完成,MulDiv(a,b,c)代表计算a*b/c。代码如下:
dx=MulDiv(wTextWidth, 1440, nLogPixelsX)
dy=MulDiv(wTextHeight+typTM.tmExternalLeading),1440,nLogPixelsY)
dx和dy分别为控件的宽和高度,1440是个经验数值,经过多次试验所取得。typTM.tm-ExternalLeading标识TEXTMETRIC数据结构中的tmExternalLeading变量,它表示加在文字两行之间的像素大小。根据dx和dy就可以重新设置控件的大小以适应新输入的文本。
3 实验及分析
实验测试的结果如图2和图3所示:
图2是在中文区域设置下得到的测试结果;图3是在日语区域设置下得到的测试结果。从对比中可以发现两者具有不同的区域意识。
界面最上端用CommandButton控件和TextBox控件来显示系统当前的日期和时间。从图中对比可以看出,日语区域设置的默认日期分隔符号不同于中文区域设置。
为了对比日历格式的不同,在日语区域设置下选择的是和历。可以看到,在MonthView控件中,两者的日期格式是不同的。
此外,对CommandButton控件进行编程,使其可以根据文本的长短自动调整大小。文本信息通过资源文件取得。从图中对比可以看出,CommandButton控件根据文本的加长自动调整了宽度。
从图3的日历中可以发现一个乱码字符,这是因为用户区域设置中的字符在当前系统代码页中无法正常映射所造成的。而“今天”两字由于不是字符资源,所以不受代码页和用户区域设置的影响。
4 结束语
本文在分析系统区域变量的基础上提出使VB软件具有区域意识的方法。经实验验证,其可以使VB软件支持用户不同的区域设置,使数据和界面得到正确的显示。但是,全球可用性除了要求软件具有区域意识外,还应使其可以支持各语言字符的显示。下一步的工作要在软件具有区域意识的基础上,开发核心单一二进制代码,将资源与代码相分离,使软件真正做到达到国际化标准。
摘要:提出使VB软件具有区域意识的方法。在对区域变量和NLS API函数进行介绍的基础上,选出具有区域意识的变量。然后对其进行分析并提出在VB软件上对这些变量提供支持的方法。实验结果表明,提出的方法可以使VB软件具有区域意识。
关键词:区域意识,全球可用性,区域变量,Visual Basic
参考文献
[1]张阳,蒋胜平,高炜.中文软件的国际化方法研究[J].电脑与信息技术,2006,14(6):43-46.
[2]冀斌.Windows平台下应用软件多语言支持[J].计算机工程,2004,12(4):163-164.
[3]Jeffrey Richter.Windows核心编程[M].北京:机械工业出版社,2008:657-678.
[4]International Dr.国际化软件开发[M].北京:机械工业出版社,2003:320-329.
[5]Michael S.Internationalization with Visual Basic[M].USA:Kaplan,2000:31-123.
[6]刘炳文,李凤华.Visual Basic 6.0 Win32 API程序设计[M].北京:清华大学出版社,2001:228-252.
[7]Nadine Kano.Windows NT国际软件开发指南[M].北京:清华大学出版社,1998:41-84.
[8]Harvey M.Deitel,Paul J.Deitel,Tem R.Nieto.Visual Basic 6大学教程[M].北京:电子工业出版社,2003:582-607.
[9]David S.Platt.COM精髓[M].北京:人民邮电出版社,2001:107-132.
VB软件 篇4
目前, 煤矿企业中, 机电技术人员主要靠人工完成高压电缆截面选择计算, 而计算中需要进行大量的数值计算, 具体计算过程耗时费力, 容易出错, 对于快速准确选择高压电缆有较大难度。用Visual Basic程序设计语言编写的井下高压电缆选型计算软件能够快速、准确的完成计算, 并对电缆进行正确选型。
1 软件介绍及基本流程
1.1 软件介绍
煤矿井下高压电缆选型计算软件运用Visual Basic程序设计语言编写。Visual Basic程序语言是Microsoft公司于1991年在Basic语言基础上开发出的面向对象的、可视化的、以事件驱动为运行机制的程序设计语言[3]。
电缆型号的选择应根据其所处的电压等级和使用场所进行选择。井下高压电缆的截面选择计算应按下列原则确定: (1) 按持续允许电流选择截面; (2) 按经济电流密度选择电缆截面; (3) 按电缆短路时的热稳定选择电缆截面; (4) 按电压损失校验电缆截面[2]。
按电缆短路时的热稳定选择电缆截面有两种方法: (1) 热稳定系数法, 一般在纸绝缘电缆的热稳定计算都采用此法; (2) 电缆的允许短路电流法, 交联聚乙烯电缆的热稳定计算采用此法。
煤矿井下高压电缆选型计算软件严格按照高压电缆截面选择的四个原则进行校验。
交联聚乙烯绝缘电缆的绝缘性能好, 结构简单、外径小、质量轻、不受水平落差的限制, 长期允许工作温度高, 载流量大, 在煤矿已经得到广泛应用[1]。因而井下高压电缆选型计算软件在进行短路热稳定计算时, 采用允许短路电流法进行计算。
由于煤矿井下高压电缆选型计算软件需要输入大量的初始数据、计算公式多以及计算过程烦琐, 为避免数据混淆和公式混乱的情况出现, 整个软件编写过程中, 本程序采用了结构化的编程方法, 根据实际计算过程, 自定义了相应的子过程, 程序结构分明, 流程清晰, 易维护。
软件计算结果都保留到小数点后三位, 并在计算结果中标明了单位符号, 便于计算结果识读。
1.2 软件的基本流程
程序基本流程 (图一) :1) 登陆;2) 初始数据输入;3) 进入井下高压电缆选型计算;4) 计算并输出结果;5) 退出。
图二~图三为本软件的运行界面。
打开软件后, 在登录界面 (图二) 中输入预先设定好的账号和密码, 点击登录, 即可进入初始数据输入界面, 输入计算所需初始数据, 然后进入井下高压电缆选型计算界面, 点击计算, 即可得出计算结果。
若计算结果为“-1”, 表明此项计算所需的某项 (或全部) 初始数据为“0” (或者未输入) ;如果持续允许电流计算结果大于所选电缆的载流量, 则弹出对话框提示“不满足持续允许电流”;经济电流截面计算结果若大于所选电缆截面, 则弹出对话框提示“不满足经济电流截面”。需计算另一组数据, 在初始数据输入界面中, 点击清除, 可清除所有初始数据, 输入新的数据后, 在井下高压电缆选型计算界面中点击计算即可得到新的计算结果。计算结束后, 点击清除, 将计算结果清除, 点击退出, 即可关闭整个软件。
2 实例分析
2.1 初始数据输入
为了能正确输入数据, 避免数据单位不同造成计算结果错误, 设计程序界面时, 每个需要输入的初始数据后面都注明了单位。
在软件界面中输入以下数据进行计算 (如图三所示) 。井下小绞车:11.4k W, 2台;刮板输送机:75k W, 2台;排水泵:55k W, 1台;喷浆机:5.5k W, 1台;高压电网额定电压Un:10k V;需要系数Kd:0.52;功率因数cosφ:0.7;选择的高压电缆型号为MYJV22-3*50, 其载流量Ip:185A;同时工作电缆根数:1;经济电流密度J:2.25 A/mm2;铜芯导线在20℃下的电阻系数ρ20:1.84×10-6Ω·cm;导线截面积A:50 mm2;铜在20℃时电阻温度系数α:0.003931/℃;扭绞系数, 一般取k1=1.012;成缆系数, 一般取k2=1.007;紧压效应系数, 一般取k3=1.01;频率f:50 Hz;导线中心轴间距离Sz=17 mm;常数Ks=1, 常数Kp=1;电缆导线温度θ:20℃;电缆允许短路温度θsc:230℃;短路前电缆温度θ0:40℃;铜导线的热容系数为Cc=3.5 J/cm3·℃;短路时间t=0.5s;电缆线路单位长度的电阻R0:0.42Ω/km;电缆线路单位长度的电抗X0:0.08Ω/km;高压电缆线路长度L:1 km;每兆瓦公里负荷矩电缆中电压损失的百分数K:0.502.
2.2 井下高压电缆选型计算
进入本界面后点击“计算”即可在高压电缆选型计算界面上输出结果。计算结果包括持续允许电流Im (A) 、经济电流截面Aj (A) 、直流电阻r' (Ω·cm) 、集肤效应系数Ys、邻近效应系数Yp、导体交流电阻r (Ω·cm) 、交联聚乙烯电缆允许短路电流I sc (k A) 、允许电压损失△U%等计算结果 (如图四所示) 。
3 软件计算结果验证
为验证软件计算结果的准确性, 按照井下高压电缆选型要求进行人工计算, 计算结果均保留到小数点后三位, 便于与软件计算结果比较。
3.1 井下高压电缆选型人工计算
3.1.1 按持续允许电流计算
总的持续工作电流Im (A) :
3.1.2 按经济电流密度计算电缆截面
经济电流密度截面Aj (mm2) :
3.1.3 按电缆短路时的热稳定选择电缆截面
导线直流电阻r' (Ω/cm) :
集肤效应系数Ys:
邻近效应系数Yp:
导线交流电阻r (Ω/cm) :
交联聚乙烯电缆允许短路电流I sc (k A) :
3.1.4 按电压损失校验电缆截面
计算法校验电压损失:
查表法校验电压损失:
3.2 软件计算与人工计算结果比较
从表1中的对比结果看出, 采用Visual Basic程序设计语言编写的井下高压电缆选型计算软件的计算结果与人工计算的结果差异不大。
4 结语
煤矿井下高压电缆选型计算软件采用面向对象的、可视化的Visual Basic程序设计语言编写, 人机交互简单、快捷, 可以快速地进行井下高压电缆选型计算, 计算结果精确、可靠。
摘要:井下高压电缆选型计算是煤矿井下供电设计的重要内容, 对于可靠供电有着非常重要的作用。针对具体计算过程耗时费力的问题, 运用面向对象的、可视化的VB程序设计语言, 编写了井下高压电缆选型计算软件。该软件界面简单, 易于操作, 计算快速, 结果精确。通过实例计算, 验证了该软件的有效性和可靠性。
关键词:VB,高压电缆,电缆选型
参考文献
[1]王彦文, 高彦.煤矿供电技术[M].徐州:中国矿业大学出版社, 2013.
[2]顾永辉, 范廷瓒.煤矿电工手册[M].北京:煤炭工业出版社.1998.
浅谈VB程序设计课程教学软件 篇5
在普通高等院校中, 程序设计是一门基础课程, 也是一门综合课程, 但是如何学好它对许多人来说却是一个难题。Visual Basic (简称VB) 是一个开发快捷、功能强大的工具, 深受诸多程序员的喜爱, 并成为大多数高校非计算机专业开设的首选程序设计语言。
目前, 多媒体技术已经广泛应用于教育领域, 它对教学效果的影响不言而喻。但就目前而言绝, 大多数课程的多媒体课件只是停留在一个简单的PPT上面, 即把传统的板书内容简单地复制在幻灯片并用投影仪呈现而已, 这种课件其实并未达到多媒体课件的定义, 真正的多媒体课件追求的是可以形成声、光、形、色、动等对学生感官的全方位刺激, 能够增强学生的记忆, 增加学生的联想, 并力图教学过程形象生动, 学生感知鲜明。
在传统的Visual Basic程序设计课程教学中, 多数教师上课使用的课件基本上是采用上述方式创建的PPT, 同时, 普遍采用的又是一种“被动式”教学模式, 即老师上面教, 学生下面学, 这种教学的效果不理想。再者, 程序设计又比较抽象, 许多学生尤其是文科学生在学习过程当中难以理解, 从而在众多学生的心里出现了“Visual Basic是否有用”、“Visual Basic能用来做什么”等疑问。因此, 亟待一套便于学生理解, 吸引学生兴趣的学习方法和教学理念。
程序设计在本质上可以归结为四大要素:问题、概念、逻辑和技巧。对于程序设计初学者, 应该以系统地学习程序设计的基础知识为主, 并尝试用程序解决现实生活中某些实例化的应用问题。本文介绍一种基于这种理念的已应用于VB程序设计课程教学的多媒体软件———“Visual Basic快乐自学好帮手”, 它本身亦采用Visual Basic语言开发, 是一款以身铺路型的辅助教学工具和学生自学平台。
二、解决方案
“Visual Basic快乐自学好帮手”整个教学软件的设计以重视实践、突出技能为原则, 侧重Visual Basic程序设计基础知识的应用和对学生实践能力的培养, 其覆盖的内容按照“编程入门”、“语法基础”、“常用控件”、“图形方法”和“顺序文件”的框架进行组织, 最终的编排按照人的认知规律并结合多位长期从事Visual Basic程序设计课程一线教学的教师的经验划分成15个单元, 每个单元针对相应知识点精选3个案例, 以案例来带动相关知识点的讲解。对每一个案例, 均以“案例效果”※“设计过程”※“相关知识”※“初试牛刀”※“归纳总结”的线索进行循序渐进讲授和演示。
“案例效果”模块, 先介绍案例的引出背景, 然后描述案例的功能和呈现案例的运行效果。设计这个模块的目的除了明确任务之外, 很大程度上还为激发学生的好奇心, 缘由是案例具有相当的趣味性, 所以在案例效果演示后, 它能够很好地吸引学生的兴趣, 这好似将一盘菜端在人们的面前, 而这盘菜的色、香、味看上去挺诱人, 那么人们自然会好奇这盘菜是如何做出来的。“设计过程”模块主要从界面和代码两部分来介绍案例的设计过程, 这好比教给人们烧出那道菜的菜谱, 通过这个环节向学生介绍程序设计过程的一般流程, 使学生掌握软件开发过程和控制实现的要领。“相关知识”模块介绍的是实现本案例会涉及的相关知识, 就像教人们做出一道可口的菜, 除了告诉它的制作方法, 还需要让人们知道它所需的各种烹饪原料。最后, 软件还设计了“初试牛刀”和“归纳总结”两个模块, 通过“初始牛刀”的练习题, 使学生掌握消化案例所涉知识点, 而“归纳总结”对案例的关键知识和编程思路进行回顾, 帮助学生进一步巩固对重点内容的掌握。总的来说, 本软件重在过程引导, 做到了精基础、重实践和强能力。
本软件很重要的另一个特点是, 它本身就是用Visual Basic语言开发的, 这种用学习目标来创建学习平台的做法, 使学生深刻感受到了Visual Basic的应用价值, 激发了他们的学习热情, 而这也很好地回答了学生的“Visual Basic是否有用”、“Visual Basic能用来做什么”等疑问, 起到了一个以身铺路的示范。而且, 这样做还有一个传统PPT不可实现的优势, 即它可以做到平台与目标的无缝衔接, 从而在知识讲授的过程中能向学生演示最原汁原味的Visual Basic对象和相关内容, 例如图1所示的是设置标签 (Label) 对象相关属性的效果演示, 它可让学生直接感受到标签各属性值设置后的外观效果变化, 而这用其他工具是很难表达出来的, 即使找到某些方法来模拟, 它与最真实的效果显示还是会有很大的区别。正是这个优势, 大大增强了课件与学生之间的交互性, 使教学内容由抽象变为直观, 便于学生观察和认识, 利于学生对所学知识的理解和掌握。
在案例的各个讲授过程中, 本软件还配合了大量的图示、动画和音频, 提升了课件的形象生动性, 例如图3所示的是对象的“属性”和“方法”等概念的总结, 通过图示让学生直观地理解了“属性”的概念, 而通过动画演示使学生直观地理解了什么是“方法”。
综合来说, 本软件结合了案例教学和探究式学习的理念, 以一个环境高度集成多个学习环节, 内容覆盖全面且符合认知规律, 通过文字、图示、动画及音频媒体对每一精选案例进行了详细阐述, 学生不仅能够直观地感受到各案例作品的效果, 还能够进行交互操作, 可以随时查看感兴趣的案例代码, 能够即用即学, 从而不再觉得Visual Basic无趣, 变被动学习为主动探究.
三、教学实践效果
目前, “Visual Basic快乐自学好帮手”已在浙江理工大学科技与艺术学院的VB程序设计课程教学中使用了一年, 平时作为教师上课的辅助教学工具, 由于其小巧且安装简易, 又作为学生课后的复习和自学工具, 最终取得了不错的教学效果。笔者就任课班级的所有学生做了一个调查, 设计的问题为:“Visual Basic快乐自学好帮手”多媒体软件对你学习VB程序设计课程有帮助吗?, 对返回结果进行汇总的情况如图3所示, 在接受调查的179名学生中, 73人选择了“非常有”帮助, 89人选择了“有”帮助, 即完全肯定此教学软件的人数占到了90.50%的比例, 这也表明绝大多数人认可此软件对VB程序设计课程的教学质量具有积极的促进作用。
事实上, 透过2010年秋浙江省非计算机专业VB二级考试的成绩, 再次验证了“Visual Basic快乐自学好帮手”的作用和价值, 图4是浙江理工大学科技与艺术学院近三年在浙江省非计算机专业VB二级考试中通过率的情况。从结果来看, 在应用了本多媒体软件一年后, 学生参加等级考试的通过率有了较大的提高分别比年和年提高了和
四、结束语
制作多媒体课件, 要在内容和表现手法上不断创新, 不能搞教材大搬家, 从纸上直接搬到幻灯片中去。“Visual Basic快乐自学好帮手”就是一个很好的尝试, 从实际的教学效果来看也取得了一定的成效。另外, 此软件在2010年浙江省高校多媒体教育软件评比中获得了二等奖, 在第十届全国多媒体课件大赛中获得了三等奖, 说明许多现代教育技术专家也肯定它的应用价值。在许多高校的计算机基础课程中, 还开设了C程序设计、Java程序设计等课程, 本教学软件带来的教学效果对这些课程势必也具有一定的借鉴作用
参考文献
[1]徐大纹, 吴瑞镛, 童占荣.开发智能型计算机辅助教学课件的探讨[J].高等建筑教育, 2000.
[2]杨青, 阮芸星, 郑世珏等.多媒体CAI课件制作技术与应用[M].北京:人民邮电出版社, 2007.
用VB6开发瓦斯数据管理软件 篇6
瓦斯数据管理软件采用加密的Access2000数据库, 用VB6开发。软件开发过程中主要解决了数据的串口通信问题、与数据库的接口问题。
1 瓦斯数据管理软件的主要功能
该软件包括设备设置、设备查询、数据采集、数据查询、数据备份、用户管理和密码修改等7个功能模块。
1) “数据采集”模块。将存储在设备内的瓦斯检测数据采集到计算机上, 并按检测时间的倒序显示出来;根据需要还可打印出来。如果设备已经通过“设备设置”模块登记到计算机数据库, 则显示其登记的有关信息;并将瓦斯数据存储到数据库里。
2) “数据查询”模块。按条件 (如设备ID号, 或瓦斯检测日期范围, 或瓦斯值) 查询瓦斯数据。查询到的瓦斯数据可打印统计出来;也可导出为XLS电子表格文件, 用户按自己所需格式对文件进行编辑后再打印出来。
3) “设备设置”模块。将设备登记到计算机数据库;对设备参数 (包括设备ID号、设备的时钟等) 进行修改。
4) “设备查询”模块。按条件 (如设备ID号, 或登记日期范围) 查询登记设备的有关信息;将查询到的设备信息打印统计出来。
5) “数据备份”模块。完成数据库的备份工作。
6) “用户管理”模块。由系统管理员 (admin用户) 完成用户的添加、删除, 以及修改用户的帐号、密码和权限等工作。
7) “密码修改”模块。登录用户可修改自己的密码。
2 计算机与设备的数据传输
2.1 串口通信原理
MSComm控件提供了2种处理通信的方法: (1) 事件驱动方式, 使用MSComm控件的On Comm事件来捕获和处理通信事件和错误, 然后通信程序根据MSComm控件的Comm Event属性值来执行不同的操作。 (2) 查询方式, 通过检查MSComm控件的Comm Event属性值来检测通信事件和错误。软件采用了MSComm控件的事件驱动方式来实现瓦斯数据采集。
光干涉式数显甲烷测定器的通信协议是:数据传输速率为9 600 bit/s, 8位数据位, 1位停止位, 无奇偶校验位。当设备与计算机串口相连, 且设备打开电源后, 设备会不停地向计算机串口发送设备连接字符串“Join”, 并持续10 s, 等待计算机的回应。这时如果计算机也发送设备连接字符串“Join”, 设备接收到连接指令则显示“Lint”, 表示通信连接成功。连接成功后5 s内, 如果计算机不再发送连接指令, 将断开设备通信连接。读取瓦斯检测数据的指令是:
命令符:″*Data″
返回:
每条瓦斯检测数据由16个字节组成, 具体的数据结构是:
2.2 瓦斯数据采集程序
用MSComm控件的事件驱动方式实现瓦斯数据采集的程序如下:
3 用Adodc控件来访问加密的Access2000数据库
3.1 数据库接口技术
VB可以用4种方法打开数据库, 并对其进行相关的操作: (1) 数据控件 (Data) 和数据绑定; (2) 数据访问对象 (DAO) ; (3) 远程数据对象 (RDO) ; (4) Active X数据对象 (ADO) 。其中ADO是VB6新增的对象, 是基于OLEDB数据库访问接口之上的技术, 通过ODBC的方法同数据库接口, 是一个更简单的对象模型, 更易使用。与Active X数据对象 (ADO) 相对应的Adodc控件可以打开数据库中的表, 使用SQL查询或存储过程和视图产生记录集。还可以将数据传递给数据绑定控件Data Grid显示出来。
3.2 用Adodc控件访问加密的Access2000数据库 (密码是“090417”) 程序
4 试验数据及结论
用该软件对3台光干涉式数显甲烷测定器进行了数据采集试验, 并对采集到的数据进行了各个功能模块的测试工作, 软件的主要功能窗口见图1—3。
VB软件 篇7
远程唤醒(Wake-on-LAN,WOL)是在计算机的电源、主板和网卡等设备的支持下,通过向处于半工作状态的网卡发送特定数据包,实现计算机从停机状态自动开启的一种远程控制技术。利用远程唤醒技术可以一次性批量启动多台计算机,将该技术应用于配备大量计算机的机房日常管理中,会产生事半功倍的效果。
在实际应用中,一般由专门的软件负责发送远程唤醒数据包,以开启局域网范围内的计算机。在Windows平台上,VC++、VB、Delphi等均可用来开发这种远程唤醒软件,这里介绍基于VB的设计实现方案。
2 基本原理
远程唤醒数据包是一种具有特定内容的数据包,其内容是FFFFFFFFFFFF加上16遍被唤醒计算机的网卡MAC地址。假设希望唤醒网卡MAC地址为11-22-33-44-55-66的计算机,那么构造出的远程唤醒数据包的内容应为FFFFFFFFFFFF112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566。远程唤醒软件利用UDP协议,在局域网内广播发送该数据包,网内每台计算机的网卡收到数据包后,都会将包内MAC地址与自己的MAC地址相比较,如果相同,便向主板发送开机信号,计算机将自动开启[1]。
由此可知,若想唤醒某台计算机,必须首先知道它的MAC地址。在TCP/IP协议中,ARP协议负责地址解析,它能通过计算机的IP地址解析出MAC地址,从而为构造远程唤醒数据包提供支持[2]。
远程唤醒软件用到ARP和UDP这两个网络协议,ARP协议用于获取MAC地址,UDP协议用于发送远程唤醒数据包。
3 设计与实现
3.1 用户界面[3]
在远程唤醒软件的主窗体(图1)上,使用4个Command Button控件作为功能按钮,分别对应远程唤醒、参数配置、获取MAC地址、清空地址列表4种功能;使用List Box控件显示已获取的MAC地址及相应IP地址。
点击“参数配置”按钮可以打开“设置IP地址范围”窗体(图2),通过该窗体,可根据不同局域网中计算机IP的具体设置情况,灵活地修改获取MAC地址时的条件参数,使软件具有通用性。
3.2 外部文件
为了持久保存软件运行所需的IP地址范围、MAC地址列表等数据,应将它们存储于外部文件中,由于数据量不大,使用普通的文本文件即可。为使文件内容不易被人修改,要去掉文件的扩展名。这里用ipcfg文件保存IP地址范围,用list文件保存获取的MAC地址及相应IP地址(图3),这两个文件均置于Config目录下。
3.3 获取MAC地址[4]
如前所述,利用ARP协议可通过计算机的IP地址获取网卡MAC地址。为了获取局域网中全部计算机的网卡MAC地址,需要向每台计算机逐一发送ARP包,这要用到C:WINDOWSsystem32iphlpapi.dll(在Windows XP中的路径)中的Send ARP函数。ARP包中需要填充的IP地址,则由存储于ipcfg文件中的IP地址范围来决定。
由于ARP包返回的MAC地址在形式上与实际的有差异(例如,若返回的MAC地址为00-11-22-33-44-55,则实际上应是33-22-11-00-55-44),故而要经过一定的格式转换和重组,才能得到可被远程唤醒数据包直接利用的真实MAC地址。最终得到的MAC地址将被存储在list文件中。
使用Send ARP函数,需要先在代码的“通用”部分声明:
Private Declare Function Send ARP Lib"iphlpapi.dll"(By Val Dest IP As Long,By Val Src IP As Long,p Mac Addr As Long,Phy Addr Len As Long)As Long
此外,这里还要用到Winsocket中的inet_addr函数,同样要在“通用”部分声明:
其中,函数Transform1()和Transform2()用于完成MAC地址的格式转换。
3.4 远程唤醒[5]
前面已阐述过远程唤醒数据包的内容,它包含了被唤醒计算机的网卡MAC地址,利用存储于list文件中的MAC地址构造远程唤醒数据包,再利用UDP协议进行广播发送,便可达到远程启动计算机的目的。这里要使用Winsock控件,相关代码如下:
实现“远程唤醒”功能的主要代码如下:
4 结语
基于VB的远程唤醒软件设计实现方案展现了该软件的技术要点和实现细节。该软件具有使用简捷、绿色免安装等特点,在实际应用中运行稳定,能迅速批量唤醒局域网中的计算机,可有效提高计算机房的管理效率和管理水平。
摘要:远程唤醒是通过向网卡发送特定数据包,实现计算机自动开启的技术。阐述了远程唤醒的原理,设计并实现了基于VB的远程唤醒软件。该软件能批量唤醒局域网中的计算机,从而提高计算机房的管理效率。
关键词:VB,远程唤醒,MAC地址
参考文献
[1]AMD.Magic Packet Technology white paper[DB/OL].http://www.amd.com/products/npd/overview/20212.html.1998.
[2]Timothy Parker.自学TCP/IP十四日通[M].北京:学苑出版社,1994.
[3]梁丽平,黄平,黄振中.Visual Basic程序设计[M].第2版.北京:北京理工大学出版社,2007.
[4]在VB中使用Iphlpapi.dll获取网络信息[DB/OL].http://wenku.baidu.com/view/17ffec1755270722192ef7fe.html.2010.
VB软件 篇8
实验教学是培养学生实践和创新能力的一个重要手段,也是教学中的必要环节。随着高校学生人数的不断增加,多数院校在实验教学上都存在实验设备、器材、场地、经费不足等问题,使学生动手的机会少或一些应该开设的教学实验无法进行[1]。这在一定程度上制约和影响了实验教学的效果,也减弱了对学生动手能力培养的力度,更重要的是教学方法缺少人性化特点,使学生学习感到枯燥无助。另外,对于国内众多接受函授、电大、网络教育的学生更难得开展实验,影响了教学质量。在这样的现实背景下,虚拟实验的作用不可忽略,而开发各种专门的虚拟实验也成为非常紧迫的需要。
虚拟实验技术是虚拟现实技术在实验教学中的应用扩展。虚拟现实技术是一种综合应用各种技术制造逼真的人工模拟环境,并能有效地模拟人在自然环境中视、听、触觉等各种感知行为的高级人机交互技术。随着虚拟技术的发展,在计算机上模拟工程及科学实验室已成为可能,互联网联网的发展也为在线虚拟实验及虚拟环境提供了支持[2]。十几年来,国内外在虚拟实验系统的研究和开发方面做了很多研究探索,国内众多高校科研部门也积极投入到虚拟实验的开发中,也开发出了一些较成功的虚拟实验系统[3,4],但受开发技术较复杂的制约,一直没能在教育领域获得广泛的应用。
出于开发低成本、易于实现及可实现较好的实验效果多方面的综合考虑,本文利用Visual Basic6.0(简称VB)软件作为开发平台,结合专业课程进行了桌面型的虚拟实验软件的开发。
1 虚拟实验软件的功能与架构
虚拟实验是一种新兴的计算机教育技术,其既可以用于各类学校的实验教学,也可用于特殊机构和培训领域。因此,虚拟实验的根本是用于学习,是通过对教学场景、实验操作、实验现象等进行模拟再现,通过软件的沉浸性、可交互性、可操作性等优势,充分调动学习兴趣,促进知识的掌握。因此虚拟实验软件应实现四项基本功能:(1)提供逼真的虚拟实验场景;(2)提供良好的人机交互操作功能;(3)对实验过程、现象等能进行真实再现;(4)与教学要求相适应的辅助功能。而这四项基本功能中的开发重点,一是虚拟实验场景的实现,二是完善的人机交互功能。
根据虚拟实验软件的功能,设计的虚拟实验软件的架构如图1所示。
2 虚拟实验场景的实现方法
虚拟实验场景是在计算机上对真实场景的还原。在采用VRML,Java3D等技术来开发虚拟实验场景时,需要基于真实场景进行虚拟现实场景的建模,其开发工作量大,技术难度高。本文在虚拟实验场景的实现上采用了Visio软件绘制实验素材结合实景照片的模式。在开发虚拟实验时,可先对现有实验装置设备等拍照以供设计参考。由于拍照时往往畸变、阴影、脏污等缺陷,不宜直接采用所拍摄图片作为实验背景。
为还原清晰逼真的实验场景,本文在设计中是利用Visio2003软件,对照实验照片,完成了实验场景中各个组件的绘制,如旋钮、端子、仪表等,将其分别保存作为实验素材。采用Visio软件绘制图形,主要是该软件绘制的图形为矢量图形,在后期图像处理中缩放不会产生变形、锯齿等问题,同时该软件具有对图形进行各种丰富的处理功能。如图2所示,是在Visio中绘制的分组件及组合完成的绿色实验状态指示灯,可以看出,通过对简单图形的填充、渲染、着色、组合等操作,能够绘制出非常美观甚至有些立体效果的图形。另外,通过设置绿颜色的深浅,还可以表现灯处于点亮和关闭状态。
将构建虚拟实验场景的各个图形素材完成后,可以把它们按照真实实验景象进行组合、布置、还原。如图3所示,是利用该方法实现并设计的一个虚拟实验软件操作界面。虚拟实验的界面设计应尽量与真实的实验装置相一致,在适当情况下可以适当修改,以使操作界面简洁、便于操作。利用Visio这类图形工具软件,可以较方便快速地构建我们所需的各种虚拟实验场景,其在专业技术方面的要求相比并不高,但在实现真实逼真的虚拟实验场景效果上并不差。
3 人机交互功能设计
人机交互功能的设计应以人为中心,同时在软件的一致性、易用性、简洁美观等方面达到统一[5]。在人机交互功能的实现上,采用VB6.0编程语言来实现。VB由微软公司开发,是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,且功能强大,可以与Windows专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统[6]。基于VB开发虚拟实验在为实验人员模拟操作、显示实验现象、实验数据处理等方面均可很好地实现。
3.1 虚拟操作的实现
作为桌面型虚拟实验,人机交互主要是利用键盘和鼠标,其中大部分的虚拟操作可通过鼠标的点击、移动等来完成,通过检测鼠标在界面上的位置可以做出不同的处理响应。如以图3为例,点击“送电”和“断电”处按钮事件响应的部分程序为:
'鼠标处于“送电”按钮区域时,若点击鼠标左键,将实验状态的红色指示灯切换为点亮
'鼠标处于“断电”按钮区域时,若点击鼠标左键,将实验状态的红色指示灯切换为关闭
3.2 实验现象的显示
实验现象的再现是虚拟实验软件质量的一个重要体现,为生动形象展示实验中的各种参数变化、器件的运动、姿态改变等,可以采用图像切换方式,也可以利用VB软件的绘图功能实现。一般对于变化比较简单的实验现象,如电源的开闭、灯光的明暗等可以采用切换图片方式实现。上例中,实验状态指示灯的“点亮”和“关闭”就是通过切换图片的形式来模拟实验现象的一种方式。对于变化形式较多,用切换图片来显示实验现象不理想时,可以通过编程利用VB的绘图功能来实现。仍以图3为例,要使模拟电压表的指针随着电压值变化,程序如下:
虚拟实验的人机交互功能的实现需要大量的编程来支持,因此程序设计上区分开主次,强调以实验目的为中心,能充分展示实验重点,不宜追求所有功能都与实际完全一致,否则会造成工作量的大大增加。
4 结论
本文采用基于VB软件平台开发的虚拟实验软件,可以实现逼真的虚拟实验场景、良好的人机交互性能和完善的数据处理功能,在教学实践应用中获得了良好的教学效果。该方法适合于初高中学校的物理、化学实验模拟及理工科各类实验的模拟,软件在开发难度和开发速度方面相比专业虚拟实验软件开发更有优势。
参考文献
[1]胡杰,郑祥明.机电虚拟实验,实验室研究与探索,2008.27(7):80-82
[2]方慕真,虚拟技术在远程教育中的应用探索[J].开放教育研究,2009.15(4):103-106
[3]陈健,孙兰凤,陆达.虚拟现实技术的现状与展望[J].天津纺织工学院学报,1998.17(2):91-96,
[4]http://baike.baidu.com/view/591818.html
【VB软件】推荐阅读:
软件质量与软件测试05-30
深圳软件开发公司_软件公司介绍07-29
邯郸财务软件_用友软件_奥维百特09-22
测评软件10-24
软件组态07-14
平台软件07-15
软件院校07-15
软件图标10-15
软件智能10-17
软件剖析10-20