vb编程范文10篇-欧洲杯买球平台
时间:2023-03-28 15:18:47
vb编程范文篇1
关键词:串口;rs232;api;pcomm;mscomm;通信程序
现在通讯方式越来越多,速度越来越快,但串行通讯由于自身价格低、协议透明、硬件投资少、软件编程简单等诸多优点在远程数据采集、监视、通信及控制领域里一直占据着极其重要的地位。它不仅没有因为时代的进步而被淘汰,反而在规格上越来越完善、应用越来越广,长久不衰。
一、串口通信的通信机理
pc串行通信是指直接对串行端口的uart(pc机的通用异步收发器,也叫异步通信适配器,是pc机用于异步通信的接口)进行编程实现的通信。pc机每个uart中的ins8250中有10个可编程的单字节寄存器,可用于控制、监视操作串行端口,com1的寄存器地址3f8h-3feh,com2的寄存器地址为2f8h-2feh。10个寄存器由7个地址访问,其中5个寄存器的访问条件是先设置3fbh线路控制寄存器的最高位为“1”,该位也称为dlab状态位。
一般说来,pc机都有一个或多个串行端口,它们依次为com1、com2。这些串口提供了外部设备与pc进行数据传输和通信的通道,在cpu和外设之间充当了解释器的角色。当字符数据从cpu发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给cpu进行处理。在操作系统方面,windows用通信驱动程序(comm.drv)调用api函数发送和接受数据。当用通信控件或声明调用api函数时,它们由comm.drv解释并传递给设备驱动程序。
作为一个vb程序员,要编写串口通信程序,只需知道通信控件提供给windows通信api函数的接口即可,换言之,只需设定和监视通信控件的属性和时间即可。
二、串行通讯接口rs-232
前一章节讨论了串口通讯的通信机理,但为了实现具体的数据采集、监视、通信功能,必须了解具体的串口形式。目前使用最广泛的串行接口有两种:rs-232和rs-485。本文着重讨论rs-232,rs-485不作介绍。
rs-232c标准的全称是eia-rs-232c标准,其中eia代表美国电子工业协会,rs代表推荐标准,232是标识号,c代表rs232的最新一次修改(1969年),在这之前,有rs232a、rs232b协议。它规定连接电缆和机械、电气特性、信号功能及传送过程。eia-rs-232c定义了按位串行传输的数据终端设备(dte)和数据通讯设备(dce)之间的接口信息。rs-232c是从dte或计算机串行接口角度来定义引脚信号的。
目前rs-232是pc机与通信工业中应用最广泛的一种串行接口。rs232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。rs232采取不平衡传输方式,即所谓的单端通讯。
db9(9针串口)的接线方式如下:1脚,数据载波检测dcd;2脚,接收数据rxd;3脚,发送数据txd;4脚,数据终端准备dtr;5脚,信号地gnd;6脚,数据设备就绪dsr;7脚,请求发送rts;8脚,清除发送cts;9脚,振铃指示dell。
db25(25阵串口),常用的针脚也有9个,且和db9可以一一对应,具体接线方式为:8脚,数据载波检测dcd;3脚,接收数据rxd;2脚,发送数据txd;20脚,数据终端准备dtr;7脚,信号地gnd;6脚,数据设备就绪dsr;4脚,请求发送rts;5脚,清除发送cts;22脚,振铃指示dell。
一般来说,对于要求不太高的场合,使用接收数据rxd,发送数据txd,信号地gnd三个脚即可实现数据传输。如果要求有硬件流控制,则必须使用dtr、dsr、rts和cts这四个脚。
值得注意的是rs-232c是用正负电压来表示逻辑状态,与ttl以高电平表示逻辑状态的规定不同。因此,为了能够与计算机接口或终端的ttl器件连接,必须在rs-232c与ttl电路之间进行电平和逻辑关系的变换。目前较为广泛地使用集成电路转换器件,如mc1489、sn75150芯片可完成ttl电平到eia电平的转换,而mc1489、sn75154可实现eia电平到ttl电平的转换。
三、三种读取串口数据的方式
目前通用的串口通讯的软件实现方式有3种,本文都进行详细的介绍,它们各有自身的优缺点,读者在编程时可根据具体的情况选择合适的方式。
3.1利用mscomm控件
vb提供的这个通信控件“隐藏”了大部分串口通信的底层运行过程,程序员只需编写少量的代码就可以完成软件的开发过程。在通信数据量不大,通信要求不是很高的情况下建议采取此方式。
利用mscomm控件实现通信最需要掌握的就是它的几个主要属性,下面选取其中重要的进行介绍,其余的可以参考相关资料。
(1)settings属性:以字符串的形式设置并返回波特率、奇偶校验位、数据位、停止位。这个属性很重要,针对不同的终端设备需要根据设备的具体情况进行调整(比如日本的设备不同于美国的设备,通常会采用奇校验)。
(2)inputmode属性:设置接收数据的类型,0为文本格式,1为二进制格式。
(3)input属性:读取并删除接收缓冲区中的数据流。
(4)output属性:向发送缓冲区传送一数据流。
(5)rthreshold属性:该属性为一阀值,它确定当接收缓冲区内的字节个数达到或超过该值后就产生代码为comevreceive的oncomm事件。
(6)handshaking属性:设置和返回握手协议,即计算机内部cpu与串口之间的通讯协议,保证在缓冲区过载时数据不会丢失。这个属性在保证数据传输的正确性方面有很大的作用,共有四个选项,分别表示:①无流控制;②软件流控制;③硬件流控制;④软硬件流控制。采用硬件流控时,要求串口之间和电缆支持硬件握手,在自己制作串口通信线时,有关硬件握手的线rts、cts、dsr、dtr要连接正确。
在正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。
3.2直接调用win32api通信函数
直接调用windowsapi函数,可以清楚地理解串口通信的机制,根据需要灵活地配置串口的各种参数和属性,而且直接调用低层api函数,通信效率比较高,但付出的代价就是程序较复杂,编程周期长,适合于大型通信程序及通讯质量要求较高的场合。
在32位的windows系统中,串口通信是作为文件处理的,串口操作一般为打开、关闭、读取、写入等操作,相应的windowsapi函数如下:
(1)createfile()函数:实现串口的初始化并打开串口,返回串口句柄资源以供后续进程调用。
(2)closefile()函数:关闭串口,串口是非共享资源,应用程序以独占方式使用,通信结束应立即关闭。
(3)readfile()函数:从串口输入缓冲区读取数据流。
(4)writefile()函数:向串口输出缓冲区发送数据。
(5)getcommstate()函数:获取串口的当前配置。
(6)setcommstate()函数:重新分配串口资源的各个参数。
由于windowsapi函数大部分是用c或c 编写,所以在visualbasic6.0中调用windowsapi函数之前必须先在模块级代码上用declare语句对所调用的函数和用到的数据结构进行声明,具体的函数声明及数据结构请参考朱友芹编《新编windowsapi参考大全》。
3.3调用第三方函数库(如pcomm函数库)
dll(dynamiclinklibrary)动态链接库是一种可以被vb语言调用的程序模块。dll中包含的可执行代码不能单独执行,而应由windows应用程序调用执行。一般数据采集卡的供应商都会提供该采集卡的dll库函数,使用这些dll库函数,可以做到程序代码共享,减少程序的编写工作量。用户不需要知道这些代码的实现细节,只需要了解调用函数的参数和函数处理后的返回值。
pcomm函数库是由台湾moxa公司为开发串口通信程序提供的一套函数库。通过对windowsapi函数的进一步封装,提供50多个串口操作函数。覆盖了windows操作系统下几乎所有异步通信的问题,可以简洁的开发多线程通讯程序。采用该库,通信的可靠性与使用mscomm32控件比较有了明显提高,而相对直接使用win32api函数编程则降低了程序开发难度,缩短了程序开发周期。
这种方式上述直接调用windowsapi函数有相似之处,但也有明显的差异。api函数常采取的方法是在串口监视线程中设置串口通信事件掩码及重叠机制,允许程序在后台等待串口通信事件。通过waitcommevent检测特定的串行通信事件。而在pcomm中,可以采用中断处理的方式,为各种事件指定相应的中断处理函数,如接收到一定数目的字符,接收到结束字符,接收到中止信号以及发送缓冲区为空等;同时还可以采用线程控制的方式,直接采用库中的sio_read()和sio_write()函数读写串口。
pcomm..dll中的函数按功能分为6项:端口设置、数据发送与接收、串口状态检测、事件服务、文件传输、杂项。pcomm..dll中主要的函数介绍如下。
sio_open:打开端口;sio_close:关闭端口。
sio_ioctl:设置端口参数,如波特率等。
sio_read:从端口接收数据;sio_write向端口发送数据。
sio_iqueue:得到接收缓冲区中的数据长度。
sio_oqueue:得到发送缓冲区中的数据长度。
pcomm在串口通信中的功能十分强大,但基于篇幅的考虑,在此不便赘述,读者可参考相关书籍或pcomm自带的帮助文档。
四、串口通讯的错误及处理
由于外界干扰或电压波动等原因,串口通讯可能会出现错误,如接受缓冲区溢出,奇偶校验错误等。为了处理这些错误,在mscomm控件中就提供了一个oncomm事件,它可以捕获通信时发生的串口事件和错误信息,自动转入事件处理程序。在oncomm事件中,commevent属性是oncomm事件的指示,下面简单介绍几个重要的commevent属性值。
comeventbreak:表示收到一个中断信号;
comeventframe:表示硬件检测到一个数据帧错误;
comevenrxover:表示接收缓冲区溢出;
comeventtxfull:表示输出缓冲区已满;
comevreceive:表示接手到了rthreshold个字符;
comeveof:表示接受到了eof字符(ascii字符26)。
编程时用selectcase语句,根据不同的commevent属性值,去执行不同的处理程序。
除了以上所述的通讯错误外,在串口通信时,如果数据传输突然中断,对串口的读写操作可能会进入无限期的等待状态,为避免这种情况发生,必须设置串口读写操作的等待时间,等待超时后,串口的读写操作将被主动放弃,这样即使数据传输突然中断程序也不会被挂起或阻塞。可以根据具体要求规定串口读写操作的最长时间值,即串口读写必须在这段时间内完成,否则提示串口操作失败。
五、串口通讯实例
本实例是一个采集设备电流及功率的通讯程序,采集仪为横河wt230数字功率计,因为要采集的数据量不大,且工程结构简单,故采用mscomm控件的形式进行串口读写操作。
具体实现步骤如下:
(1)在窗体form上添加两个重要的控件:timer1和mscomm1;
(2)在程序的form_load事件过程中添加如下代码:
mport=1‘使用com1端口
mscomm1.setting=“9600,o,8,1”‘设置通信口参数,注意是奇校验,具体的校验方式要视具体的仪器而定
mscomm1.inputmode=cominputmodebinary‘设置接收模式为二进制形式,注意一般对于数据采集这类设备通信,都应该设置为二进制形式
mscomm1.portopen=true‘参数设置好后打开端口
mscomm1.handshaking=2-comrts‘设置为硬件流控制,可以有效避免数据丢失的情况发生
(3)程序开始后在一定情况设置timer1.enabled属性值为true激活timer1_time事件,可以在固定的时间间隔下执行timer1_timer过程中的代码程序,完成数据采集。在timer1_timer过程中添加如下代码:
mscomm1.output="communicate:wait1" chr(13) chr(10)
mscomm1.output="measure:normal:value?" chr(13) chr(10)
上述语句是将读取指令发送到串口输出缓冲区(注意每个命令字符串后都要加上回车和换行符chr(13) chr(10)),再由系统将其自动发送给通过rs232通信线与计算机端口连接的wt230数字功率计,功率计在接收到命令字符串后,经过自身的单片机处理,就自动地把它测到的电压、电流、功率数据以固定的格式和字符形式通过rs232通信线传回至计算机,计算机程序从输入缓冲区读取这些字符数据并利用vb字符处理函数(如val,instr)进行处理就得到了所要的数据,下面是具体的程序代码。
dimbytinput()asbyte‘注意要将bytinput定义为不定长数组
dimstrtemasstring
dimiasinteger
bytinput=mscomm1.input‘将输入缓冲区数据读入给字节型数组bytinput
fori=0toubound(bytinput)
strtem=strtem chr(bytinput(i))‘字节数组中的ascii码值转换成相应next的字符得到的strtem字符就形象的展示了电流、电压和功率值。对于wt230而言,它的数据结构是这样的,每个数据之间由逗号字符“,”隔开,每个数据以用科学计数法表示,且每个数据以字符“e”分为前半部分和后半部分,前半部分为具体的数据(整数形式),后半部分为此数据的指数,指数的底为10。
例如得到strtem的值为“23423e-2,00241e-3,05645e-2”这就表示电压值为234.23v,电流值为0.241a,功率为56.45w。
六、结论
串口通讯的硬件投资少,软件编程简单,在低速少量数据传输方面的应用极其广泛的应用。本文详细介绍了串口通讯的基本内容及其具体实现方式,读者可以根据具体情况进行选择。以上代码是实现串口通信的核心部分,经过笔者在多个数据采集系统开发中的应用,具有较强的实用价值。
参考文献:
1李朝青.pc机及单片机数据通信技术[m].北京:国防工业出版社,2002
2李长林.visualbasic串口通信技术与典型实例[m].北京:清华大学出版社,2006
3[美]microsoft公司著、北京希望电脑公司译.microsoftvisualbasic6.0控件参考手册[m],1999
4朱友芹.新编windowsapi参考大全[m].电子工业出版社,2000
vb编程范文篇2
visualbasic有着强大的数据库存取能力,不仅能够直接支持msaccess数据库,而且通过其内部安装的isam驱动程序使它能间接支持foxpro、dbase等外来数据库。本文不仅从vb数据库体系结构的角度探讨了vb对这些外来数据库的支持,还结合了一些实例具体阐述了使用数据库存取对象变量的方法实现这些外来数据库的新建、库结构修改、显示及其运行环境设置。
关键词
visualbasicaccess,外来数据库,数据库
正文
存取对象变量库结构作为一个功能较完备的windows软件开发平台,visualbasic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(dataaccessobjectvariable),直接调用odbc2.0api接口函数等三种访问数据库的方法。对其标准内置的msaccess数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、操作及其事务处理。在vb中,将非access数据库称为外来数据库。对于foxpro、dbase、paradox等外来数据库。虽然借助vb的datamanager能够对这些数据库进行new、open、design、delete等操作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非access格式数据库(以foxpro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补vb对这些外来数据库支持不足的可行性。
一、vb数据库的体系结构具体的vb的数据库结构。
vb数据库的核心结构是所谓的microsoftjet数据库引擎,jet引擎的作用就像是一块"面板",在其上可以插入多种isam(indexedsequentialaccessmethod,即索引顺序存取方法)数据驱动程序。jet引擎为access格式数据库提供了直接的内部(build-in)支持,这就是vb对access数据库具有丰富支持的真正原因。
vb专业版中提供了foxpro、dbase(或xbase)、paradox、btrieve等数据库的isam驱动程序,这就使得vb能支持这些数据库格式。另外,其他的许多兼容isam的驱动程序也可以通过从厂商的欧洲杯投注官网的售后服务得到。因而从理论上说,vb能支持所有兼容isam的数据库格式(前提是只需获得这些数据库的isam驱动接口程序)。
由上可见,msjet引擎实质上提供了:一个符合ansi标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在vb中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dbase、paradox本身的ddl(datadefinitionlanguage,即数据定义语言)和dml(datamanipulationlanguage,即数据操纵语言)是非结构化查询的,但它们仍然可以使用vb的sql语句和jet引擎来操纵。
从vb的程序代码的角度来看,odbc,isam驱动程序以及msaccess数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给vb应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对foxpro等数据库仍然可以使用众多的数据库存取对象变量,这就为非access数据库的访问提供了最重要的方法。
二、使用非access数据库时的参数设置及配置文件的参数读取如果在vb的程序中使用了数据库的操作,将应用程序生成exe文件或打包生成安装程序后,则必须提供一个配置(.ini)文件,在ini文件中可以对不同类型的数据库进行设置。如果找不到这个ini文件,将会导致不能访问数据库。通常情况下,ini文件的文件名和应用程序的名称相同,所以如果没有指明,vb的程序会在windows子目录中去找和应用程序同名的ini文件。可以使用vb中的setdataaccessoptions语句来设置ini文件。
setdataaccessoptions语句的用法如下:setdataaccessoptions1,inifilename其中inifilename参数指明的是ini文件的带路径的文件名。值得注意的是,当应用程序找不到这个ini文件时,或在调用opendatabase函数时对其connect参数值没有设定为vb规定的标准值,如对foxpro2.5格式设定为了"foxpro;"(应为"foxpro2.5;"),或者没有安装相应的isam驱动程序,则此时vb会显示一条错误信息"notfoundinstallableisam"。通常,ini文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。通常这种ini文件中有"[options]"、"[isam]"、"[installedisams]"、"[foxproisam]"、"[dbaseisam]"、"[paradoxisam]"等设置段,对于一个完整的应用程序则还应有一个属于应用程序自己的设置段如"[mydb]”。可在其中设置datatype、server、database、openonstartup、displaysql、querytimeout等较为重要的数据库参数,并以此限定应用程序一般的运行环境。windowsapi接口函数在kernel.exe动态链接库中提供了一个oswriteprivateprofilestring函数,此函数能按windows下配置文件(.ini)的书写格式写入信息。
在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如pagetimeout(页加锁超时时限)、maxbuffersize(缓冲区大小)、lockretry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。
设此应用程序的配置文件为mydb.ini,则具体过程如下:funtiongetinistring$(byvalfname$,byvalszitem$,byvalszdefault$)''''此自定义子函数实现ini文件内设置段内参数的读取dimtmpasstring,xasintegertmp=string(2048,32)x=osgetprivateprofilestring(fname$,szitem$,szdefault$,tmp,len(tmp),"mydb.ini")getinistring=mid$(tmp,1,x)endfunction以下这些函数的声明可写在模块文件内,且每个函数的声明必须在一行内declarefunctionosgetprivateprofilestring%lib"kernel"alias"getprivateprofilestring"(byvalappname$,byvalkeyname$,byvalkeydefault$,byvalreturnstring$,byvalnumbytesasinteger,byvalfilename$)declarefunctionoswriteprivateprofilestring%lib"kernel"alias"writeprivateprofilestring"(byvalappname$,byvalkeyname$,byvalkeydefault$,byvalfilename$)declarefunctionosgetwindowsdirectory%lib"kernel"alias"getwindowsdirectory"(byvala$,byvalb%)subform1_load()dimstasstringdimxasintegerdimtmpasstringtmp=string$(255,32)''''
ini文件内为各种数据库格式指明已安装的相应isam驱动程序x=oswriteprivateprofilestring("installableisams","paradox3.x","pdx110.dll","mydb.ini")x=oswriteprivateprofilestring("installableisams","dbaseiii","xbs110.dll","mydb.ini")x=oswriteprivateprofilestring("installableisams","dbaseiv","xbs110.dll","mydb.ini")x=oswriteprivateprofilestring("installableisams","foxpro2.0","xbs110.dll","mydb.ini")x=oswriteprivateprofilestring("installableisams","foxpro2.5","xbs110.dll","mydb.ini")x=oswriteprivateprofilestring("installableisams","btrieve","btrv110.dll","mydb.ini")x=oswriteprivateprofilestring("dbaseisam","deleted","on","mydb.ini")''''指明ini文件的位置x=osgetwindowsdirectory(tmp,255)st=mid$(tmp,1,x)setdataac
cessoption1,st "/mydb.ini"''''获得ini文件一些参数gwmaxgridrows=val(getinistring("mydb.ini","maxrows","250"))glquerytimeout=val(getinistring("mydb.ini","querytimeout","5"))gllogintimeout=val(getinistring("mydb.ini","logintimeout","20"))endsub
三、数据存取对象变量对外来数据库编程的方法及其实例在vb专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(dao)的方法最具有功能强大、灵活的特点。它能够在程序中存取odbc2.0的管理函数;可以控制多种记录集类型:dynaset,snapshot及table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如tabledefs,fields,indexes及querydefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。
由于vb中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非access数据库中也可以使用数据库存取对象变量的方法。因而对foxpro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。有一点需要注意的是,vb的标准版中仅能使用数据控件(datacontrol)对数据库中的记录进行访问,主要的数据库存取对象中也仅有database、dynaset对象可通过数据控件的属性提供,其它的重要对象如tabledef、field、index、querydef、snapshot、table等均不能在vb的标准版中生成,所以使用数据存取对象变量的方法只能用vb3.0以上的专业版。
(一)、非access数据库的新建及库结构的修改vb专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象:
database、tabledef、field、index,以及三个集合(collection):tabledefs、fields和indexes。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。对于非access数据库,大部分都是对应于一个目录,所以可以使用vb的mkdir语句先生成一个目录,亦即新建一个数据库。而每一个非access数据库文件可看作是此目录下的一个数据表(table),但实际上它们是互相独立的。
vb编程范文篇3
关键词汇:component-baseddevelopmentvirtualdatamanagementspread''''scalcengine构件开发虚拟数据管理计算引擎
前言
随着基于构件开发(component-baseddevelopment)技术的发展,供开发者使用的软件构件越来越多,单就vb中可使用的网格类控件也有许多种。网格类控件常用在数据库管理系统的开发中,用来直观地显示表或视图的二维关系,在对数据的操作上,有些控件也提供了很多便捷的方法。同样是完成这些显示和操作数据的功能,面对各式各样的控件,选择那种来达到目的,成了软件开发者必须考虑的问题。唯有选择了一个好的控件,才能提高开发效率,增强软件的功能,达到事半功倍的效果。下面,本人根据自己长期以来积累的实际经验,总结出以下几点网格控件的选用应考虑的方面:
第一,要考虑控件的实际功能。功能强、接口多的控件可以增强应用软件的质量,也可减少编程工作量,当然,这要结合应用需求来定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好几兆空间,增加了程序的冗余代码。另外,一些功能闲置,灵活性太强也可能导致最终用户不易掌握使用。
第二,控件的稳定性要强。作为应用程序的基石,不应选用那些控件本身容易出错,补丁(patch)太多的版本。
第三,控件的易用性要高。选用那些属性配置合理,事件触发机制明晰流畅,易于设计和使用,项目组中的程序员都容易接受掌握的控件。
以下简要介绍几种网格类控件的特点,以供选用。grid控件:grid控件可显示简单的二维表格,不用和数据库直接连接,具有滚动条、行头、列头等特性,运行时可用鼠标调整行列的宽度,可用于浏览数据,若想对数据进行编辑,需结合textbox控件,或采取其他变通方法。下面所示画面即为日本东京社会调查研究所开发的《要员管理系统》中硬件管理部分的画面。画面中的下部即为grid控件,定义其名称为grdhardcomp。使用时,要首先在下图所示的属性窗口中定义其行列数,控制条格式,字体大小,填充格式,鼠标模式等特性。然后,可以动态的划分其间距:grdhardcomp.colwidth(0)=grdhardcomp.width*1/6grdhardcomp.colwidth(1)=grdhardcomp.width*5/24grdhardcomp.colwidth(2)=grdhardcomp.width*1/6grdhardcomp.colwidth(3)=grdhardcomp.width*1/6grdhardcomp.colwidth(4)=grdhardcomp.width*3/24grdhardcomp.colwidth(5)=grdhardcomp.width*1/6grdhardcomp.colwidth(6)=grdhardcomp.width*1/6privatehards()asm_hard定义其标题:grdhardcomp.row=0''''grdhardcomp.col=0grdhardcomp.fixedalignment(grdhardcomp.col)=2grdhardcomp.text="构成番号"grdhardcomp.col=1grdhardcomp.fixedalignment(grdhardcomp.col)=2grdhardcomp.text="构成机器区分"①……在数据向grid中写入或取出时,为了便于大量的数据同时,简便地写入与修改,可以定义一个类型。如下:typem_hardnumberasstringordernumasstringmachkindasstringmachkindnameasstring……endtype(其中number等均为要输入的图示条目)privatehards()asm_hardhards(),此时就作为数据的传输变量,进行grid与textbox之间的数据传输。数据向类内写入:ifhardcomp.recordcount>0thenhardcomp.movefirstdountilhardcomp.eofredimpreservehards(h%)//h%为记数变量。hards(h%).ordernum=hardcomp![ordernum]//输入编号hards(h%).machkind=hardcomp![machkind]//种类hards(h%).machkindname=hardcomp![machkindname]//分类名hards(h%).machname=hardcomp![machname]//名称……loophardcomp.movefirst类内数据向grid内写入:grdhardcomp.row=h%1//记录数统计grdhardcomp.col=0grdhardcomp.text=""&hards(h%).ordernumgrdhardcomp.col=1grdhardcomp.text=""&hards(h%).machkindgrdhardcomp.col=2grdhardcomp.text=""&hards(h%).machkindnamegrdhardcomp.col=3grdhardcomp.text=""&hards(h%).machnamegrdhardcomp.col=4……grdhardcomp.text=""&hards(h%).hardlastdategrdhardcomp.rows=grdhardcomp.rows1//行数加1hardcomp.movenexth%=h%1当然,如果使数据真正写入数据库,还需进行数据库的读写操作。grid只是提供了一个预览的功能,便于数据的修改。
由以上grid的特点及其使用方法可以看出,在需要对数据库进行大量数据的操作时,为了减少对数据库的直接操作,提高数据库的安全性,使用grid控件,还是有很大方便的。grid是vb在早期版本中就带有的控件,使用简便,稳定性好,在早期的vb开发过程中,使用尤其广泛。但现在与其它控件比较起来功能有些不足。dbgrid控件:dbgrid是专用来操作数据库的网格控件,可以绑定到data控件,几乎不用写代码就可方便地对数据进行显示,增加、删除或修改记录,dbgrid具有onaddnew、beforedelete等事件,可在增加新记录或删除修改时对数据进行有效性检验,来实现事务处理功能。dbgrid也可以在设计时编辑网格格式,指定显示字段等,由于它提供了column、split、selbookmarks等对象,更增强了显示和操作数据的能力。
下面是笔者所参与开发的东京社会调查研究所的项目--《健康诊断系统》的一个实例。图中的data4控件把数据库和dbgrid直接连起来,dbgrid的题目,项目设置可以在属性窗口里直接做到。在使用时,要注意新数据是先更新数据库,然后才回写到dbgrid里。方法如下:sql="select*from表名"//sql语句setdata4.recordset=mydb2.openrecordset(ssql,dbopensnapshot)data4.refresh或:datmonthplan.recordsource="select*from表名where(((关键字)=''''"&key&"''''));如果想对dbgrid中的某个条目进行复制,方法如下:data4.recordset.addnewdata4.recordset![关键字]=key//关键字索引data4.recordset![记号]=dbgrid.columns(0).cellvalue(dbgrid.getbookmark(0))//第一列data4.recordset[番号]=dbgrid.columns(1).cellvalue(dbgrid.getbookmark(0))//第二列data4.recordset![氏名]=dbgrid.columns(2).cellvalue(dbgrid.getbookmark(0))//第三列data4.recordset.updatedata4.refresh//数据库更新dbgrid.refresh//dbgrid刷新如果动态的对dbgrid中的某个栏目进行增减,可以用如下方法:i=1//总显示列数记数data4.movefirstdountildata4.eofdbgrid1.columns(i).width=1600//定义宽度dbgrid1.columns(i).caption="年龄"//标题dbgrid1.columns(i).datafield="&实际数据域&"dbgrid1.columns(i).visible=true//可见性dbgrid1.columns(i).alignment=1//dbgrid控件列中的值的对齐方式data4.movenexti=i1ifi>8thenexitdo//列数最大为8loop由于具有良好的可靠性,灵活性和直观性,所以dbgrid控件现在被广泛使用。但不足之处在于dbgrid,和直接操作数据库,对数据库的正确性有一定的威胁。改进方法是,在修改数据库时,加入提示信息。
truedbgrid:dbgrid是apex软件公司为微软开发的,而apex的truedbgrid控件也具有较强的数据显示及处理功能,因与dbgrid同出一宗,所以两者有很多相同点。在基本功能上,dbgrid的增,减等操作方法可直接用于truedbgrid,在这里就不再赘述。但在dbgrid的基础上,truedbgrid可以直接嵌入listbox、image位图、单选框等控件(如图所示),使软件的界面更加美观,实用。
ssdbgrid控件:ssdbgrid来自sheridan软件系统公司(),与sheridan的其它控件一样,以漂亮的三维界面见长,ssdbgrid还可与其它数据库控件如ssdbdata、ssdbcombo等有机结合,为用户处理数据提供方便,它有几百个属性、方法等接口,为界面的润色提供了很大的选择余地。另外ssdbgrid还具有虚拟数据管理(virtualdatamanagement)技术,在内存中只存贮需显示在界面上的记录,这样在处理大量数据时不致耗费系统资源而影响运行速度。ssdbgrid的缺点只是在有些版本中输入汉字时会出现一些乱码,但显示汉字的效果很不错。
vb编程范文篇4
关键词:vb语言;计算机;教学管理
vb语言是visualbasic的简称,其功能十分强大,简单易学,与delphi、visualc 等计算机语言相比有着天然的优势。教师教导学生了解vb程序设计的基本原理和技巧,指导学生利用vb语言编写出一些简单的程序,对于学生思维能力和创新能力的提高具有十分重要的意义。
1vb编程的概念
vb编程是由微软公司在20世纪90年代开发的一种可视化的和面向对象的程序设计语言,计算机编程人员可以利用这种语言高效并且快速地开发出windows操作系统下的一些常用的应用软件。目前,vb程序设计已成为中职院校的一种十分常见的课程,是计算机教学中的一门基础课程。无论是否是计算机专业的学生,都需要对这门课程有基本的了解。教师通过vb程序设计课程的教学,使学生掌握这门课程的基本概念,同时鼓励学生积极参加全国计算机等级考试,取得计算机二级证书,从而在未来的就业中获得一定的优势。
2vb编程在计算机教学管理中的应用措施
2.1采用实例教学法激发学生的学习兴趣,引导学生自主学习
计算机课程是一门趣味十足的课程,一旦领略到计算机语言的魅力,就会深深爱上这门学科。只有当学生对其产生兴趣时,学生才会想要主动探索其中的奥秘,才会有可能将它学好并用于日常生活中。兴趣是学生最好的老师,vb编程的学习也是如此,一旦学生对vb编程的学习充满兴趣时,就会积极参与教师的课堂活动,认真聆听教师对于这门语言的讲解,思考教师所提出的问题,并积极回答教师提出的问题,这样整个课堂就会充满活力,学生可以在轻松欢乐的氛围里学习vb编程知识。因此,计算机教师应采取一定的措施来提高学生的学习兴趣。例如,教师可以采取一些简单的例子来支撑自己的理论,通过让学生观看,然后明白其原理,再自己进行模仿操作,从而渐渐明白这些概念的内涵,教师这时再进行归纳总结,有助于学生在轻松愉快的气氛中接受新知识。这种实例教学法具有很大的优势,它不是以教材为中心的,而是注重概念的理解,它不是按教材来安排课程,而是以举例为手段,引起学生的兴趣,锻炼学生的动手能力,在模仿这些具体实例中深刻掌握vb语言的理论知识。
2.2采用条件迁移法帮助学生发散思维
条件迁移法是目前教学中很常见的一种方法,它主要的运用方法是,首先提出一个简单的问题,让学生们来解答。然后,在这个简单问题的基础上添加或减少一定的条件,使这个问题的难度发生改变,从而引导学生进一步解答。在vb程序设计教学过程中,教师也可以将书本上的原有程序教给学生,在学生掌握的基础上,改变程序中的一些条件,在解题思路不变的情况下来提高学生对程序的分析能力,加深学生对知识的理解。例如,很多学生在学习for循环时会觉得十分简单,中职院校的vb程序设计书本内要求学生求出1到100之间所有数之和,并设计出这样的一个计算程序:首先,s=0,fori=1to100其次,s=s i,最后,nexti;print"s="。这段程序对学生而言,理解起来十分简单,但是为了让学生真正掌握这个理论,教师就可以采取条件迁移法,例如,教师可以把求1到100所有数之和变成求1到100的所有奇数和,或者求所有偶数和。这个编程和课本原程序相比,只有最后的问题发生了变化,对学生来讲难度就发生了很大的变化。学生要想适应这些变化解答出题目,就需要对for循环语句有比较深刻的理解。教师在让学生思考过后,就可以解答这个问题,将课本中的程序设计的控制变量的初始值改为2即可得出此题的编程,学生就会恍然大悟,从而对此记忆深刻。
2.3教师进行课程设计,提高学生的综合编程能力
学生在初步学习了vb语言基础之后,已基本掌握了vb语言的一些常用语句,能够正确无误地进行一些简单的编程,但是由于没有将所有知识都融合起来,学生不能系统运用自己所学的零散的知识,如果一个程序涉及课本中的多个原理和知识点,学生就会感到手忙脚乱,不知从何处下手。因此,教师就需要有效指导学生运用整体知识,其中最有效的一个办法就是进行一个简单的课程设计。但是,由于学生基础和能力存在差异,教师往往需要针对不同的学生来进行不同的课程设计,否则一些太简单的课程设计对于基础较好的学生而言就失去了意义,而太难的课程设计也会使学习能力较差的学生无所适从。因此,教师在制定课题时,应根据学生的具体情况,制定出几套不同的课程设计,然后根据学生的学习能力的不同,要求他们完成不同的课程设计,给不同的学生制定不同的目标,从而使每个学生都能尽自己最大的努力,达到课程设计应有的效果。
2.4运用多媒体技术来辅助教学,提高学生的学习效率
目前,多媒体技术已进入了教学领域的方方面面,教师早已不必采用“黑板 粉笔”的教学方法,完全可以利用先进的计算机技术和多媒体设备进行教学,给学生演示动态的编程过程,从而取得更好的教学效果。多媒体教学不仅能够节约在黑板上写字的时间,能够在有限的时间内增加教学的信息量,教授给学生一些课外知识,开阔学生的眼界,而且多媒体教学能够获得一种更加直观和动态的教学效果,将课本中难以理解的抽象理论变成动态演示过程,从而达到提高教学效率的效果。
3实例分析
如今,随着信息技术的发展,越来越多的教学活动选择在多媒体电脑室开展,这样一来不仅使教学活动变得更加生动灵活,而且使教学方法和教学内容更加多样化,从而更好提高课堂教学效果和质量。但是,学生非法操作、误操作电脑会给课堂教学和计算机机房的管理带来一定的难度。此时,计算机机房管理员就需要根据电脑室管理的实际情况,通过vb编程技术来实现对机房的统一配置,防止学生非法操作电脑,而且还可以根据教学的实际需求临时开启全部功能或部分功能,并且可以在短时间内恢复。
3.1用户要求
为了实现对教学过程的有效管理,机房管理员希望可以在单台主机上快速限制系统部分功能,并将系统统一发送到各机房的其他主机上,随后就可以顺利开启硬盘保护功能。同时,对于被禁用的功能如果需要临时启用,可以通过多媒体广播软件把恢复程序传输至机房各主机的硬盘上,并采用静默执行的方式。
3.2程序所具有的功能
(1)ms-dos命令模式禁用/启用;(2)管理员身份验证;(3)系统任务管理器禁用/启用;(4)系统注册表编辑器禁用/启用;(5)系统控制面板禁用/启用;(6)系统组策略编辑器禁用/启用;(7)修改系统网络设置禁止/允许;(8)inf文件安装禁止/允许。
3.3流程图
流程图如图1所示:
3.4方案实施及说明
3.4.1方案实施
在一台学生机上,计算机管理员可以先禁用学生机的硬盘保护系统,然后进入windows后运行该程序,以实现对全部或部分功能的禁用。并按照一定的要求把快速恢复程序restore.exe转移到c:\windows\system32目录下,重启计算机。借助学生机内部的分区网络对拷功能复制c分区内部的所有内容给机房的每一台学生机,从而实现对学生机硬盘系统的保护。
3.4.2实际效果
借助vb编程的系统管理学生的过程,有效减少了课堂上学生对系统的非法操作,避免了学生上课玩游戏、用u盘看电影的现象,大大提高了管理员的工作效率,提高了课堂的教学效果。
4结语
vb编程在计算机教学管理中的应用十分广泛,教师要充分掌握一定的教学方法,才能真正激发学生的学习兴趣,使学生在快乐中学习。
作者:王天佟 单位:喀什财贸学校
参考文献
[1]李勇.计算机在中学教学管理中的应用分析[j].黑龙江科技信息,2016(26):180.
vb编程范文篇5
1.1网络课程的基本涵义教育部现代远程教育资源建设委员会在《现代远程教育资源建设技术规范》(2000)中提出:网络课程就是通过网络表现的某门学科的教学内容及实施的教学活动的总和j。从这个定义看出,网络课程包括两个组成部分:即按一定的教学目标、教学策略组织起来的教学内容及网络教学支撑环境或网络教学平台。其中,教学内容是以提供教学资源为主,网络教学平台是以提供网络教学交流环境和学习工具为主,都是网络课程构建的重点和难点j。
1.2编程类网络课程特点
不同类型的课程本身具有不同的特点,这是开发网络课程时必须考虑的。通过研究计算机编程类课程,我们认为,编程类网络课程具有以下特点:①编程本身是一种技能,应该引导学生快速入门,掌握编程的基本过程;②上机实验操作很重要;③可以导入编程案例引导教学,不断让学生掌握从简单到复杂的案例;④需要随时介绍一些计算机程序编制的技巧;⑤有国家及省级等考试大纲和考题作为部分学习指引;⑥因为编程用到大量的英文单词,所以能够以英语单词作为关键词制作索引;⑦网上资源丰富、学习网站较多,可以向学生推荐j。
2编程类网络课程结构构建
网络课程的结构存在共性,其构建应该符合网络课程的自身特征,同时不同的网络课程的结构根据其特征又有所不同。由于参加网络学习的学生一般都是以自主学习为主,因此该网络课程的构建是以建构主义学习理论为指导,创设了以学生自主学习为主、以协作学习为辅的学习情境。在该网络课程的构建中,我们根据编程类的网络课程的特点,合理编排课程结构,为学生的学习提供了各种学习支持以及文本、视频、音频等多媒体学习资源以供学生学习与参考。在“在线测试与自动评判”模块的设计中,运用了自我反馈策略,对学生的学习情况进行评价并自动反馈评价结果。
该网络课程的结构构建包括:
2.1课程信息主要包括了课程简介、课程特色、课程沿革、教学大纲、实验大纲、考核大纲、教学计划、教学方法、师资队伍等几个方面的内容。
2.2学习导航
主要是引导学生怎么利用该网络课程j。
2.3初学入门
通过六个步骤帮助学生快速入门,掌握编程的基本过程,其目的是引导学生能够尽快地上机进行操作实践,这一点是非常重要的。
2.4课程学习
课程学习模块主要包括课程内容和课程资源两部分。网络课程的主要内容,按照章节排布、顺序进.行理论学习和实践,有较好的知识结构、导航结构。
课程资源分课件资源、音频资源、课程录像,课程资源可下载也可以网上点播。
2.5案例学习
案例学习根据难易程度分为简单案例学习和复杂案例学习。简单案例学部分是安排在各章节的学习过程中。例如:用一元二次方程求解、评委评分、排序等几个重要编程案例引导教学。复杂案例学习是在完成相关联的章节或整个课程学习之后,试图让学生编制应用程序的框架结构。例如:用专家系统外壳、麻将对牌游戏、超市收费系统等几个大中型程序的编制深入引导教学。
2.6学习支持
编程类网络课程的学习支持主要包括关键词汇-5j、参考资料、等级考试。
2.7实验操作
实验操作部分主要包括课程实验大纲、课程实验指导书、课程实验报告、课程实验成果、课程实验部分样本、资料,给出常用工具、材料、要求。
2.8在线测试与自动评判
练习和测试模块主要包括了在线练习测试和可以下载的测试试题以及对应的答案j。这个模块的功能是能实现程序的自动评判,也就是说,当学生在线编好了程序,点击提交的时候,系统能对程序做出判断。
2.9互动学习
互动学习主要是通过师生聊天室、电子邮件、答题集锦和bbs方式来实现师生的互动交流学习,从而解答学生的疑问,并提高了学生的学习参与度。
3编程类网络课程重点内容剖析
3.1初学入门通过
深入到在校学生的《程序设计(vb)》学习课堂,对学生的学习情况进行观察分析,发现学生在vb学习课程进行到一半时,大部分学生对vb程序设计的理念还不了解,在实验过程中,大部分学生只是机械地照抄教师的程序代码段,并不了解其意思。
因此,在vb学习开始时,引导学生快速地对vb的整体编程思想进行大概的了解和感知是非常必要的。在本研究中,为了让初学者能在较短的时间内,对vb编程界面、编程思想、实际的编程操作和控件有系统和大概的了解,为以后的vb学习打下铺垫,我们精心设计了快速入门的6个步骤来引领初学者入门。六步骤如下:①打开vb编程软件;②添加控件和调整属性;③反应代码编制;④逻辑程序设计;⑤明确理解vb的核心机制;⑥存盘和退出。
vb的编程环境是图形化的界面,首先要将其打开,才能进行其他操作;控件是vb编程的必要组成,添加控件是vb编程的基础;添加控件以后,要让控件实现程序的功能,就必须进行代码的编制以及逻辑程序的设计;当我们完成了程序设计,接下来就是对编程的成果进行存盘和退出了。这6个步骤,从界面的打开到简单程序的编写,以及存盘的整个流程设计,既简单又完整地体现了整个vb编程流程,学生就可以对vb编程有初步的认识,进而可以通过这6个步骤的反复操练和理解,了解vb编程的内涵,对以后的学习也就有了方向。将这6个第25卷第5期钟琼等.计算机编程类网络课程构建研究491步骤的设计用动画的形式体现出来,能够为学生起到真正的引导入门作用。
3.2案例学习模块
案例学习模块包括简单案例学习和复杂案例学习,主要是运用案例引导学生掌握编程的重要技术、技巧和规划能力。简单案例学习运用于各个章节的学习中,以促进学生对各个章节内容的掌握和提高。
复杂案例学习部分主要是在vb各个章节的学习课程结束后安排的综合案例分析,以加深学生对vb编程的整体把握,提高学生的编程应用能力。案例学习模块的设计包括:案例的选择、案例的分析、案例的常见问题。
3.2.1案例的选择案例选择主要包括案例内容和案例难易程度的选择。案例难易程度的选择一般遵从由易到难的原则。简单案例的选择必须和各个章节的内容相对应。比如在设计“分支判断结构”一章中的案例学习时,可以设计出租车计价器、一元二次方程的求解等。在设计“循环结构”的案例中,可以设计排序、求1到n的阶乘之和等案例。复杂案例的选择就要从整体上来把握,这种案例的内容须涉及到vb中的大部分内容以及常见控件的应用,是一个大综合,拟设计实现一个小应用或者一个小游戏,如设计麻将对牌游戏、超市收费系统等。
3.2.2案例的分析案例分析主要包括:界面设计、控件编程、逻辑结构设计、对象和事件分析。
界面设计。界面设计是对整个vb程序的界面设计,特别是对于复杂案例,界面的整体框架设计和布局尤为重要。界面的设计涉及到窗体属性的修改、控件的选择和添加,以及控件属性的修改和界面布局的设计。比如在“一元二次方程的求解”案例中,该案例主要涉及a、b、c三个参数的输入和x1、】【2的结果输出,以及计算的实现。输入的内容用textbox来呈现,输出的内容用label来呈现,计算用command按钮来实现。因此主要界面设计如图l所示。
逻辑结构。逻辑结构的设计也即程序的逻辑编程,通过分析程序的功能及逻辑结构,决定程序的逻辑结构编程。一元二次方程求解是典型的分支判断结构案例,其具体的逻辑结构为:当b2-4ac<0时,方程无实数根;当b_4ac=0时,方程有且只有两个相等的实数根;当b-4ac>0时,方程有两个不相等的实数根。
对象和事件分析。分析程序中的有关对象
件,比如说窗体事件、鼠标事件等等。在“一元二次方程求解”案例中主要涉及鼠标的click事件:单击“计算”按钮事件和单击“清除”按钮事件。前者实现计算操作,根据输入参数不同,输出不同的结果,方程无实数根时弹出msgbox对话框,提示“该方程无实数根”,当方程有实数根时,输出x1和)【2的值。
单击“清除”按钮,将所有输入和输出的值清空。
控件编程。控件编程是把控件和程序结合起来,通过编写相应的代码,实现控件的操作。在“一元二次方程求解”案例中,根据逻辑结构、对象事件分析,编写实现“计算”和“清除”的相应代码以实现相应的功能。
3.2.3案例常见问题案例常见问题部分,列举了本案例学习过程中学生可能会遇到的一些问题,以及这些问题的参考答案。根据调查了解,在“一元二次方程求解”案例的学习过程中,学生主要遇到的问题如下:①变量未定义;②xl、x2没有输出值,要将x1、】【2的值赋给相应的labe1.caption,才能有相应的输出值;③当a值为空或为0时,单击“计算”按钮会出错,需要在程序中的ifelse条件中加入“a<>0”。
3.3在线测试与自动评判
根据自我反馈的教学设计策略,该模块在学生学习完一个单元或整体内容时,分别设计了与之相应的单元测试题和综合测试题,对学生的学习效果进行及时的评价。并且通过相关网络课程设计技术的运用,当学生提交测试题时,实现对学生的测试结果进行自动的评判,并及时反馈给学生评判的结果。
对学生的学习效果进行及时的评价和反馈,有利于学生了解自己的学习情况、提高和改进。
在线测试与自动评判模块的主要结构建构如图2所示。
在线测试与自动评判模块的用户管理部分主要
分为学生用户和管理员用户。学生用户的权限部分包括:选题、测试、提交答案。管理员用户的权限主要包括:试题库管理和学生信息管理。
在线测试与自动评判子系统功能的整体设计包括:题库设计、选题设计、自动评判设计。
题库设计。根据题型不同,题库设计分为3个子库:选择题题库、填空题题库、程序设计题题库l8j。管理员可以通过试题库管理对题库进行增加、修改和删除等操作。
vb编程范文篇6
作的一般框架,通过实例描述了动态连接库的实现及其制做方法、编程步骤,这种方法具有
普遍的意义。
关键词vb动态连接库dllc程序
一、引言
visualbasic(以下简称vb)是一种可视化的面向对象的编程语言,以其编程简单、快捷
等特点,深受广大windows程序员的青睐。利用vb开发界面友好、操作方便的软件只需
很短的时间。但是vb运行速度较慢,对于庞大的科学计算问题,vb的这种慢速会使人难
以忍受。c语言是国际上非常流行的一种中级编程语言,以其灵活、高效等优点而获得广
泛应用,许多的应用程序都是用c语言在dos环境下编写而成。那么如何发挥vb和c这两
种语言的优势,用vb设计一种良好的forwindows界面来调用c语言程序,即实现vb调用c
语言程序呢?现有的文献只提到动态链接库(以下简称dll)可以将这两种语言连接起来,
但有讲动态链接库dll的制做及其编程方法。本文详细介绍了borlandc环境下制作动态链
接库以及vb调用fordos动态链接库的的方法、步骤,并通过实例描述vb调用c程序的全过
程。
二、用borlandc编写dll程序的方法
要想实现vb调用c程序,首先需要用borlandc编写动态连接库dll程序(假设dll程序
取名为example)。动态链接库包含四个文件:c语言源程序(.c)、模块定义文件
(.def)、原型函数文件(.h)和工程文件(.prj)。下面分别详细介绍一下这四种文件
的具体结构。
1、编写c语言源程序的框架:
c语言源程序(example.c),它包括三种函数:入口函数、输出函数和终止函数。其具体
结构如下:
/*************************************/
/*文件名:example.c*/
/*************************************/
#include
/***********入口函数***********/
intfarpascallibmain(handlehinstance,
wordwdataseg,
wordcbheapsize,
lpstrlpszcmdline)
{
if(cbheapsize!=0)
unlockdata(0);
return(1);
}
/***********输出函数***********/
intfarpascalexample(intparam1,...,charparamn)
{
....../*c语言应用程序*/
}
/***********终止函数***********/
intfarpascalwep(int/*systemexit*/)
{
return(1);
}
以上各组成部分参数的含义:windows.h头文件,它包含有数据类型的定义、api入口
点定义和其它有用的参数信息。pascal说明符定义该程序的传递参数和净化堆栈的协定
(注意:dll外部传送的指针必须是远指针far)。libmain带四个参数:
hinstance、wdataseg、cbheapsize和lpszcmdline。第一个参数hinstance是dll事例句
柄,wdataseg参数是数据段(ds)寄存器值,cbheapsize参数是在模块定义文件中定义
的堆的大小,libmain使用该值使本地堆初始化。lpszcmdline参数包括命令行信息,但
很少被dll使用。一般来说,这四个参数是制作dll通用的参数。
如果不想让dll数据被封住,那么必须调用unlockdata恢复正常的非锁状态,如果dll初始
化已经成功,dll则返回1,若不成功则返回0值,且dll退出系统。
dll的输出函数实现用户所要完成的任务,这部分是dll的核心。它与一般c语言程序不同
之处在于无scanf函数。所有的外部指针都是远指针far。画直线函数要用lineto函数。
dll包括一个终止函数,终止函数有时称为退出函数,它的名字必须是wep。且它可以被
包括在dll模块定义文件的exports段中。
2、模块定义文件(.def)的结构和各段的意义
模块定义文件的结构如下:
/*************************************/
/*文件名:example.def*/
/*************************************/
libraryexample/*dllname*/
description''''example.dll''''
exetypewindows
codepreloadmoveablediscardable
datapreloadmoveablesingle
heapsize1024
exports
example@1
wep@2
关键字library是把这个模块视为一个dll,库的名字example跟在其后,且必须与该库
的名字、def中的dll的文件名相一致。description语句采用一个字符串,其长度可达
128个字符,通常用它来保存模块描述的信息。exetypewindows语句每个windows应用程
序和dll都需要。data语句定义该库数据段的内存属性,关键字moveable允许内存管
理程序在必要时移动内存段,关键字single是dll必要,因为dll总是有一个单一数据段,
而不管访问它的应用程序的数量。heapsize语句用来定义一个dll局部堆的初始规模,
执行局部内存分配的dll必须在库启动时使该堆初始化,堆的大小被传送给dll的lientry
的程序。然后用该堆的大小调用locallnit使dll的局部堆初始化。
exeports语句定义将被用作来自应用程序或来自其它dll入口点的程序,windows利用
这个信息建立一个序数入口值,序数入口值是一个优化的值,允许动态连接机制更快块操
作且使用较少的内存。
一般来说,模块定义文件(.def)的结构除取动态库的名字不同外,其它结构都是固定
的。
3.建立原形函数文件(.h)
原形函数的功能是进一步声明调用函数的函数名和传递的参数,其形式为:
/*************************************/
/*文件名:example.h*/
/*************************************/
extern"c"int_exportfarpascalexample(intparam1,...,charparamn);
4.建立工程文件(.prj)
工程文件中包含有example.c、example.def两个文件后,然后编译连接生成动态链接
库即可。
以上是制作动态连接库的框架,现在通过一个实例介绍制作动态链接库的方法。如要
求程序完成功能为:打开一个数据文件读出前两个数据,将这两个数与所传递的两个参数
相加,返回它们的和。设该dll程序的名字为add。
第一步:在borlandc 环境下编辑.c文件、.def文件和.h文件,并建立.prj文件。如
(1)编写c语言源程序清单:
/*************************************/
/*文件名:add.c*/
/*************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include"c:\add.h"
/*入口函数*/
intfarpascallibmain(handlehinstance,
wordwdataseg,
wordcbheapsize,
lpstrlpszcmdline)
{
if(cbheapsize!=0)
unlockdata(0);
return1;
}
/*输出函数*/
intfarpascaladd(intx,inty,char*filein)
{inta,b;
fp=fopen(filein,"r");
if(fp==null){exit(0);}
inttemp1=0,temp2=0;
fscanf(fp,"%d",&a);
fscanf(fp,"%d",&b);
temp1=x a;
temp2=y b;
temp1=temp1 temp2;
fclose(fp);
return(temp1);
}
/*退出函数*/
intfarpascalwep(int/*systemexit*/)
{
return(1);
}
2)add.def文件的程序清单:
/*************************************/
/*文件名:add.h*/
/*************************************/
libraryadd
description''''add.dll''''
exetypewindows
codepreloadmoveablediscardable
datapreloadmoveablesingle
heapsize1024
exports
add@1
wep@2
(3)add.h程序清单:
/*************************************/
/*文件名:add.h*/
/*************************************/
extern"c"int_exportfarpascaladd(intx,inty,char*filein);
(4)建立工程文件:
在borlandc 环境下的project项中打开openprojectfile项并建立add.prj,在add
item中加入add.c文件和add.def文件即可建立工程文件。
第二步,在borlandc的options项的applation中选择windowsdll,再在compile中选择
buildall,这样就可生成动态链接库add.dll供vb调用。
三、vb3.0调用动态链接库dll方法
制作好dll之后,就可以用vb调用它,实现vb调用c程序。vb程序要使用dll中的函
数,首先必须要有特殊的声明,用declare声明语句在窗体级或模块级或全局模块的代码
声明段进行声明,将动态链接库中的函数声明到vb中,供vb程序调用。
语句格式为:declaresub过程名lib摽鈹黚_n[alias"别名]([byval参数as类型]),
或为declarefunction函数名lib摽鈹黚_衃alias"别名]([byval参数as类型])as
类型在声明中首先用declare关键字表示声明dll中的函数。在c语言中有的函数类型为
void,它表示不具有返回值,则必须用关键字sub将其声明成过程。有的函数具有返回
值,则必须用关键字function将其声明成函数,并且在声明语句的最后要用as关键字指明
函数返回值的类型。
例如上面的add.dll在vb中就可以声明为:
declarefunctionaddlib撫c:\add.dll敚―byvalxasinteger,byvalyasinteger,byvalfileinasstring)asinteger
通过此声明语句将函数add声明到vb中,便可直接调用。
四、结束语
以上详细介绍了borlandc环境下制作动态链接库以及vb调用fordos动态链接库的方
vb编程范文篇7
关键词:vb;程序设计;改革;实践
abstract:visualbasicprogrammingasapublicnon-professionalcomputer-basedlessons,theoryandpracticestrong,andteachingdifficult.thearticleonhowtoimprovethequalityofteachingandtrainingstudentsinanintegratedapplicationdevelopmentcapabilitiesandexplorereformsweremade.
keywords:vb;programming;reform;practice
1引言
visualbasic(下面简称vb)程序设计是我校非计算机专业学生的必修课,然而vb语言枯燥、难以理解,学生缺乏相应的知识背景,导致学生对这门课有恐惧心理,缺乏兴趣。这就要求我们教师在教学中分析、摸索出一些较为行之有效的教学方法,才有可能培养学生程序设计能力,掌握一门技能,激发学生对程序设计的兴趣。笔者在近几年的教学实践中进行了如下改革探索,取得了良好的教学效果。
2教学改革与实施
2.1对课本原有知识进行整合,激发学生的学习兴趣
大部分的教材总是先讲vb语言的基本语法,然后再讲vb中对象的使用。但在讲授时不宜将两者分开,要把vb面向对象的程序设计方法,事件驱动的编程机制贯穿于整个教学过程中。vb中的对象主要用于构建界面,而具体程序功能的实现则要编写代码行,因此任何一个完整的应用程序都不可能只用对象或只用语法。这两块内容可进行穿插讲解。这样就避免了让学生在毫无知识背景的情况下去理解抽象难懂的概念,挫伤他们编程的积极性。在教学过程中,我始终坚持以学生已有的知识程度为基础,打破原有的以课本知识的逻辑结构为顺序组织课堂教学的模式,先不讲基本概念,改用从简单的实例人手,通过让学生观看、模仿,在实际操作中去探究和领悟这些概念,并适时地加以归纳总结,让学生在轻松愉快的气氛中接受新知识。比如,在讲到循环结构中do——loop语句和for——next语句的用法时,我用do——loop语句的4种形式和for——next语句实现求解n!的过程,让学生去观察、领悟它们的异同。
2.2教学方法多样化
笔者在教学实践中,除了采用传统的教学方法如:提问法、小组讨论法外,主要采用以下教学方法:
1)错例分析法
学生对变量、类型、运算符、表达式这些基本概念和语言规则的掌握需要一个过程,对算法和数据结构的知识需要不断积累。学习过程中,能听懂老师授课的内容,但自己编制的程序往往错误百出。课堂上,我经常将容易出错的概念以反例形式展示给学生,让他们找错误,通过运行。比如错误使用逻辑运算符。
假设a、b和c是三个变量。如果已知a
不能写成:a
很多学生会错误延用数学上的概念,写成后一种形式。
例optionexplicit
privatesubcommand1_click()
dimaasinteger,basinteger,casinteger
a=-3:b=-2:c=-1
printa
printa
endsub
为什么a
通过诸如此类的反例教学,使学生豁然开朗,印象深刻。
2)零散实例和核心实例结合
零散实例教学法,对每个知识点的运用和理解是非常行之有效的,但对前后知识的贯穿缺乏说服力。笔者在教学改革实践中体会到,除经典的零散实例外,将一个规模较大的、典型的、有实用价值的、学生感兴趣的核心实例贯穿于教学全过程,对提高学生的编程能力非常帮助。所谓核心实例是指,实例从小到大、随章节的展开而逐步成长,呈现为逐步进化的多个版本。比如引入一个贯串全书的问题:设计一个“图书管理系统”。首先,用最基本的概念和最简单的结构,给出该系统的第一个(也是最简单的)版本,以后的每一次课,都对该系统提出新的功能和结构上的要求,并用本次课介绍的新概念和新方法对它进行功能上的扩充和结构上的改进。每次得到该系统的一个增强的新版本。为达到设计目标,学生随着教学的进程,可以积极投入到对实例系统的调试、改进的实践中,逐渐掌握了所学的基本知识,同时也提高了编程能力。
2.3重视实践教学,培养学生综合应用程序开发能力
vb是一门实践性很强的课程,如果只纸上谈兵,不上机练习,是不可能真正掌握vb程序开发的。实践教学主要注意抓住以下几点:
(1)模仿阶段,对课堂核心实例系统的调试、改进。核心实例的每次增强版是全面反映教学内容的,学生通过模仿、知识再现达到在实践中领悟知识,开拓编程思路。
(2)分层次阶段,在教学过程实施的开始,和核心实例同步,我就给出了几个类似核心实例的课程设计内容,供学生选择。对核心实例的调试比较成功的,可以同步实施自己所学的课程设计内容,达到培养学生分析问题和解决问题的能力。对掌握核心实例有困难的学生,针对教学内容重新布置实验,强化知识巩固。课程设计内容课后上机完成。
要掌握上面两个阶段的具体情况,教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,而发现学生常犯的共性错误,可在理论课上进行点评。
2.4培养学生使用标准编码,养成良好编程习惯
在程序设计过程中,使用标准编码可以避免一些不必要的错误。笔者在授课过程当中使用标准编码的实例,在讲解实例过程中对学生进行适当地引导,让学生养成一个良好的编程习惯。
程序书写规范是非常重要问题,不仅书写格式应该结构层次分明,而且程序里面应添加起码的注释。不按照标准书写程序会增加别人查看程序的难度,同时也不利于自己以后上机调试修改。强调学生避免使用visualbasic中的隐式操作,养成显式编码的习惯。比如永远使用optionexplicit,严格执行变量先定义后使用的原则。避免使用缺省属性,明确指出是在引用对象还是在引用对象属性。
3结束语
一门课程的教学是一个复杂的系统工程,笔者将以上一些改革和探索用在课堂教学和实践教学中,取得了一些效果,但教学有法,教无定法,只要教学得法。在教学实践中,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的创造性思维和综合应用程序开发能力。
参考文献
[1]王栋.visualbasic程序设计实用教程(第3版).北京:清华大学出版社2007
vb编程范文篇8
1.1优化模型计算工具的选取
本模型主要由三部分软件工具搭建而成,下面分别对各个工具进行描述:
1.1.1lingo是linearinteractiveandgeneraloptimizer的缩写,即“交互式的线性和通用优化求解器”,由美国lingo系统公司推出的,可以用于求解线性规划,也可以用于一些线性和非线性方程组的求解,功能十分强大,是求解优化模型的最佳选择。其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括0-1整数规划),方便灵活,而且执行速度非常快。1.1.2visualbasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,vb都是世界上使用人数最多的语言———不仅是盛赞vb的开发者还是抱怨vb的开发者的数量。它源自于basic编程语言。vb拥有图形用户界面(gui)和快速应用程序开发(rad)系统,可以轻易的使用dao、rdo、ado连接数据库,或者轻松的创建activex控件。程序员可以轻松的使用vb提供的组件快速建立一个应用程序。vb的中心思想就是要便于程序员使用,无论是新手或者专家。vb使用了可以简单建立应用程序的gui系统,但是又可以开发相当复杂的程序。1.1.3microsoftofficeaccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。软件开发人员和数据架构师可以使用microsoftaccess开发应用软件“,高级用户”可以使用它来构建软件应用程序。和其他办公应用程序一样,access支持visualbasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括dao(数据访问对象),activex数据对象,以及许多其他的activex组件。本优化配矿软件利用了三个软件的强大功能,将三款软件完美的结合在一起,实现了有效地将原始数据(原燃料品种、化学成分及价格)、目标函数、政策变量及约束条件输入软件中,进行求解。
1.2优化配矿软件制作
1.2.1数据计算原料录入的所有化学成分均是在外水和烧损前测定的数据,必须提前进行处理,才能保证数据预测更接近烧结矿的特性,软件后台就需要对外水与烧损的折算。也就是说混匀料的化学成分就是模拟烧完后的残存含量。通常excel的线性规划求解计算的过程属于正向推算,也就是说现输入配比然后再计算生成烧结矿的化学成分,这样的弊端就是需要尝试一些配比量,而非系统选择的最优结果。而此软件是根据化学成分的需要,反向推出配比量的优化值。所以,该系统计算出的数据更具有代表性。1.2.2软件之间的接口(1)vb与access的连接,vb负责录入数据,数据录入后存储在access中,通过脚本语言利用数据库游标指针调出需要使用的数据,具体实现代码为:dimrecoasnewadodb.recordsetdimconnasnewadodb.connectiondimbasdoubledimmasintegerconn.cursorlocation=aduseclientconn.open“provider=microsoft.jet.oledb.4.0;datasource=配料表最终.mdb;persistsecurityinfo=false”reco.open“select*fromuser1”,conn,1,1(2)vb与lingo的连接,lingo软件在该系统中主要作用是计算线性规划方程的工具,编程过程中需要将数据采集到lingo中进行计算,然后再将计算结果返回至vb中进行处理并在前台进行显示。(3)输出结果文本文件的建立当优化配矿软件所计算出来的配比结果满足使用者的使用条件时,需要生成一张配比表格,该表格下发至生产车间,车间便可以按照配比数据组织生产,此软件实现的方式为txt文本文件。
1.3软件的使用
优化配矿软件的使用上仅需将各个限制条件逐一输入,这些限制条件诸如除尘灰、返矿、石灰、燃料等的含量不能随意配加,有的矿粉的库存有限,配比量也要有所控制等因素,此外根据所需烧结矿的化学特性,将碱度、全铁、二氧化硅、氧化镁、氧化钙等含量都进行约束,在实际生产中这种约束条件都是在一定的范围,因此在软件中条件限制可以标定出上限和下限,当所有限定条件完成以后单击“求解”按钮,界面上即可显示出符合条件的配比结果以及优化后的成本也将计算出来,将计算的配比量进行命名后,单击“导出”按钮可以将配比结果的相关信息导出到配比表单。当然,如果输入的限制条件过于苛刻,所列矿粉无法满足要求系统将给予提示信息,并将错误结果以红色字体标注出来。除此之外,该系统还能够计算单一矿粉的单烧值,所谓矿粉的单烧值即单独以某一种矿石进行烧结生产时,在一定的碱度条件下,生产出的烧结矿含铁量的百分数称为单烧值。单烧值的大小,表示用这种矿石生产出来的烧结矿的品位高低,这样不仅能够在生产前了解单一矿粉的性能,同时也可以指导采购计划中对某一矿粉的性价比定位。由于该优化配矿模型包含的原料种类多,计算指标罗列齐全、约束比较完备,如果稍加修改就可以用于其他配料车间(如竖炉车间,原料车间等)但需要强调的是,此软件求解结果的可靠性还取决于原料的原始化学分析数据是否能够真实准确的反映原料的特性,只有以比较准确和具有代表性的原始数据求出的结果才更具有指导性和可信性,因此采样化验工作的严谨是支持该软件数据的前提。
2软件的应用
vb编程范文篇9
关键词:计算机;vb程序设计;教学方法
在传统教学模式中,教师在开展vb程序设计教学时主要围绕教材进行,因此教师往往只关注自己向学生讲述了哪些知识,而忽略了学生学到了哪些知识,进而使得教学与实际应用之间脱离,无法对学生学习潜力予以有效的挖掘,导致学生无法有效的掌握教师在课堂上所讲解的知识,这样就无法利用学习到的知识去解决实际操作时遇到的问题。另外,由于过于的强调教师在教学过程中的引导作用,而限制了学生的主观能动性以及创造性。vb程序设计这门课程存在着灵活性、理念性强以及知识点多等相关特征,同时在实际应用方面的要求也较高,为vb课程的教学带来了巨大的挑战。因此,怎样提高课堂教学效果与质量,改善vb程序设计课程中枯燥难懂的问题,不断探索新的教学方式,是广大计算机教学需要引起重视的问题。
1vb程序设计课程简介
vb程序设计这门课程主要是面向对象的一种可视化编程工具,属于事件驱动的编程机制,其是以quickbasic以及basic语言为基础而延伸出来的一种高级程序设计语言,能够借助系统所提供的可视化控件,结合设计要求方面的屏幕布局,在屏幕当中画出各类自己所需要的相关图形对象“部件”,同时设置相应的控件属性,以及对对象事件代码予以编写[1]。其主要涉及步骤可以分为:其一,建立一个标准exe项目文件;其二,结合用户实际需求来对用户界面予以设计;其三,编写事件响应代码;其四,对运行效果进行测试,存盘生产可执行文件。在这一过程中,编写事件代码有着点石成金的作用,尤为重要。
2提升计算机vb程序设计教学质量的有效策略
2.1采用教学互动模式,提高学生的主动参与意识。在实际教学的过程中,若教师一味的运用教师讲、学生听的教学方式,就容易让学生出现疲劳,并极易让学生养成遇到难题就等待教师讲解的过度依赖习惯。而通过对互动教学模式的有效应用,能够有效的激发学生的主动性[2]。例如在教学com-mandbutton控件对象的过程中,教师可以为学生设计这样的例子“往窗体上增添两个按钮,以达到窗口的最大与最小化。具体来讲就是将最小化按钮设置成缺省取消按钮,而最大化按钮则设置成缺省命令按钮”。在实际教学时,教师先向学生示范一遍具体的操作,然后由学生自己进行操作,进而让学生在思想上形成紧迫感,这样就能够将被动接受转化为主动掌握与理解。其次,教师在教学时,还应指导学生进行相互讨论与了解,以此来让学生对知识予以更为深入的理解,以及通过讨论来遇到的难题进行探究,并解决。[3]因此,采取这样的教学模式,能够转变教师在课堂当中的主体地位,让学生成为课堂的主人来对实际问题予以解决,教师也不再是一味的灌输,学生可以在学习的过程中体会到探索知识所带来的成就感,进而产生学习vb程序设计这门课程的浓厚兴趣,有利于教师教学质量以及学生学习效果的提升。[4]2.2注重实验环节教学,提高学生实践能力。vb程序设计是一门实践性与操作性兼具的课程,而针对此课程的教学,若学生能亲身参与实践,则势必比单纯的听课或仅是观看教师演示要来得更有实际意义[5]。对此,当教师完成对某一具体指示演示后,所需关注的重点便是要积极为学生创造实践条件,以帮助学生在实际运用过程中逐步掌握程序设计中相关的概念与理论。当然,鉴于此期间,学生必定会遭受一定的阻碍。对此,教师也因充分发挥自身的引导作用,若情况允许,则可基于个别问题对学生予以单独辅导,如此一来,方能在激发学生的学习兴趣同时逐步深化学生的问题解决能力。在vb程序设计教学中应用实验,能够让学生积极主动的参与到课堂教学中来,教师则需要在实验中向学生布置相应的作业让学生通过实际操作来完成。例如,在对循环控制语句for......next予以教学时,教师可以向学生布置这样的实例任务,即写一个求1至1000间全部整数和的程序,其代码为dimsumasinteger;dimkasinteger;sum=0;fork=1to100step1;sum=sum k;nextk;print“sum=”;并以此为基础来对原题予以改变,要求学生独立完成。其一,求1至1000内全部奇数和;其二,求1至1000内全部偶数和。这里所设计的两道题与原题目之间的差距并不大,只需简单的对循环控制变量k的初值或步长step予以适当的交换。其中,要想完成第一个问题,学生要将k的初始值设置成1,而步长则设置成2;第二个问题需将k的初始值变更成2,步长设置成2。通过这样的方式能够将课堂知识与实际内容予以有机的结合,让学生在完成教师所设计的作业时,除了要掌握本堂课的相关知识点之外,还需掌握该控件的实际运用,进而让学生能够深刻的体会到vb程序设计在实际生活中能够起到的作用,有利于他们进行更为深入的探讨。同时,在学生学习的过程中,教师还可以让学生结合自身需要,总结出实际生活中他们希望能够实现的相关功能与目标,并指导学生亲自动手去进行解决,以此来锻炼学生发现与解决问题的相关思维能力,增强学生的实践水平。
3结束语
综上所述,向学生教学vb程序设计属于一项系统的工程。除了要对教学方式予以转变之外,还需避免受到传统教学理念的限制,但无论如何变化,均不可脱离vb程序设计教学的目标与大纲。因此,计算机教学应对教学方式予以不断的创新,以符合现代化发展提出的新要求,并结合学生实际情况开展有针对性的教学,以此来提升学生对于vb程序设计的应用能力。
参考文献:
[1]张廷萍,周建丽,周翔.以计算思维能力培养为导向的vb程序设计实验教学探讨[j].信息与电脑:理论版,2016,(4):222-222.
[2]冯素琴,焦莉娟.基于计算思维的vb程序设计课程教学内容设计[j].高师理科学刊,2017,37(6):80-83.
[3]李丽丽.vb教学方法改革的探讨与体会[j].教育,2016,(11):00249-00249.
[4]孙毅,逯柳,张尔东.vb程序设计课程教学改革与探析[j].科学中国人,2016,(6):28-28
vb编程范文篇10
关键词局域网,作业管理,vb,winsock
1引言
在现代教育中,特别是职业教育的计算机学科的教学过程中,学生的实践操作能力是体现教学质量的重要方面,计算机专业课的考试和职业技能鉴定都包含实践操作考核部分。为攻固和强化学生的实践操作能力,在传授计算机理论知识的前提下,实践操作部分的教学往往采用教师实例演示和学生计算机操作实践相结合的方式,对学生作业的管理和检查是检验和巩固教学效果的重要手段。
2系统开发必要性分析
2.1学校多媒体机房使用和教学要求状况分析
目前中职学校计算机学科的教学中,多媒体机房的使用状况很难与教学要求相适应。平时实践作业的上交,教学过程中的摸底测试和期中、期末的考核的实施都较困难,分析原因有以下方面:
(1)计算机机房使用率高、负载量大。中职学校重视实践性教学,除了计算机、电子商务等专业开设了较多的计算机课程外,其他专业也全部开设计算机基础课程并要求通过操作工中级考证,班级、学生数多。机房每天六节课满负荷运转且同一机房承担多门课的教学任务。使机房的管理和维护带来困难,也给计算机课程教学的组识和管理增加了难度。
(2)计算机考核的准备和上交占用了较长的时间,为考核的组织增加了难度。
(3)flash动画制作、网页制作、图形图像处理等课程的作业允许多次的修改,有时需要多个课时的时间才能完成,常常在其他班级同学使用或管理员的维护时被删除。
2.2现有作业递交方式的特点
现在中职学校学生递交方式,时常采用ftp传送,网上邻居传送,qq文件传送和专用多媒体网络教室软件传送等方式。
(1)ftp传送:ftp采用用户名和密码登录的方式,每个学生拥护各自的账号,安全性好。教师需要预先为每个学生,不同科目设置存取路径和账号,工作量大,管理不便。
(2)网上邻居传送:采用网上邻居进行作业的上交简单易行,只需教师设置网络完全共享。但由于学生共用同一文件夹,并具有相同的可读写的访问权限,安全性差,学生容易抄袭他人作业,或将他人文件恶意删除。
(3)qq传送:腾讯公司的qq软件是已经成为计算机用户进行网络交流的必备工具,聊天、文件传送、网络硬盘等功能都为大家所喜爱。但其文件传送功能只能满足好友间较少量文件的传送,难以符合学生同时递交作业的要求,且qq软件须internet网的支持,给课堂教学的管理增加难度。
(4)专用的多媒体网络教室传送:现在各学校的多媒体网络教室,一般都装有网络教室软件,如优网科技的极域多媒体教室、凌波多媒体网络教室等等,都实现文件的提交和功能,凌波软件还提供了文件收取。但不支持已提交文件的浏览和再下载,在学生机所有驱动器都使用还原精灵还原保护的情况下,学生缺少作业临时存放的场所。同时,网络教室软件将回收的作业存放在以学生机计算机名命名的文件夹下,教师之间进行交接时须即时将对应内容移动保存,教师批改作业较不方便。因此,教师们时常使用它进行作业的,而很少使用它进行作业的回收。
3本系统欧洲杯买球平台的解决方案
根据教学实际的需要及吸收上述常用软件传送方式的优点,要求作业管理系统必须具备以下特征:
(1)不依赖广域网,而要求在局域网内使用。
(2)支持作业和作业提交功能外,增加支持学生对已上交作为的浏览、删除、下载功能,以便重复修改。
(3)支持网络内师生、生生间的聊天功能,和文件传送功能,以利于合作交流。
教师端和学生端功能分配如下:
学生端:使用用户名和密码登陆,可看到所有的网上邻居,可以相互聊天,在对方允许的前提下发送文件,可以把教师机作为局域网的网络硬盘,向教师机上交作业,可浏览已上交的作业,可重新下载修改,可删除已上交的作业。
教师端:验证学生端用户名和密码,设置是否允许上交作业,建立或选择上交作业的文件夹,分发作业等等。
4系统的关键技术与实现
4.1界面设计
漂亮的软件界面容易获得用户的喜爱,许多学生喜欢上网聊天,qq软件的优秀界面深受学生熟悉和喜爱,本系统吸收qq软件的优点,在界面设计上使用第三方控件verticalmenu实现类qq方式,保留qq所具有的聊天,文件传送功能,将网络硬盘转移到教师机上,实现与教师机之间的作业提交和下载。
4.2用户登录方式的选取
用户端使用用户名、学号,密码登录。教师端的数据库中包含上述内容,用户名和密码可由学生设置和修改,用户名成为登录后的人物头像名,学号为学生上交作业的子文件夹名。这样,学生既可以取自已喜爱的呢称作为用户名,又不影响教师对学生作业的管理,同时在学号文件夹下可能临时存放多个文件,通过vb对特定文件夹下文件名的读取,实现学生端对已上交作业的删除,下载,修改,上传。更重要的,通过登录验证,学生只能访问自己学号文件夹下的文件,可有效防止学生访问和修改他人的文件。
4.3网络功能的实现
整个系统采用vb编程,采用常用的c/s结构,运用vb的数据库功能和winsock控件进行网络编程,采用tcp协议即数据传输协议实现创建和维护与远程计算机的连接,使其彼此可以进行数据传输。利用tcp协议通讯必须分别建立客户应用程序和服务器应用程序,一个winsock对应一个“通信链路”,在对多台计算机进行通信时,就必须使用多个winsock,这时多个winsock可以使用控件数组,可以使用动态加载控件来实现:loadwinsock1(sockno 1)。
4.4本机及网络资源的访问
vb除了提供丰富的文件操作命令以外,还可能调用大量的api函数,实现对本机及网络资源的访问。如取得指定目录下文件的数量、大小、文件名,计算机磁盘的剩余空间,获取网上邻居的计算机名等等。
4.5文件内容的读取
在vb的winsock编程中,在建立“数据链路”后,可以调用senddata方法发送数据,调动getdata方法接收数据,发送和接收的数据可以是字符串,也可以是字节数据。在本系统中将文件以字节形式传送,通过copymemory等api函数实现数据转换。
5结论
本系统是在市级规划课题“计算机中级考证管理系统研究”的基础上研究开发的,课题中的“网络文件互传”软件曾获市第六届多媒体课件竞赛二等奖,系统良好的界面和功能定位受同事和学生的好评。通过本系统和研究和开发,我们认为拥有教学实践经验的计算机专职教师,开发简单实用的计算机教学辅助软件,对运用现代教育技术、强化教学管理、提高教学效果是大有裨益的。
参考文献
[1]崔彦锋等vb网络与远程控制编程实例教程[m]北京希望电子出版社2002-08-01
相关文章
计算机vb程序设计教学探讨 2022-06-13 09:39:08
vb编程在计算机教学管理的运用 2022-08-10 10:05:43
仿真软件vb控制三维对象实施 2022-07-19 05:36:20
vb定制软件研发与运用 2022-07-19 10:37:24
阐述vb串口编程技术要领 2022-02-11 03:42:00
用vb构建internet论文 2022-08-02 11:49:00