VB应用程序

2024-07-15

VB应用程序(精选12篇)

VB应用程序 篇1

Visual Basic (VB) 给用户提供了可视化编程环境, 因其简单易学、功能强大而得到了广泛的应用, 尤其是在ERP软件开发中利用率较高。VB提供了多种实现打印的方法, 下面逐一进行说明。

一、Print Form方法

它只需要一行代码, 即可打印当前窗口的可视区域。首先将要打印的内容在屏幕上显示出来, 然后执行窗体的Print Form, 窗体则自动将要打印的内容发送到Printer对象上, 其语法格式如下:[窗体.]Print Form。如果窗体中包括图形, 那么打印前应先置窗体的Auto Redraw属性为真。此方法优点是简单、易用并且功能强大, 但也存在内存消耗大、打印粗糙、速度慢等缺陷。

二、Printer对象

VB中Printer对象是一个独立于打印机设备的封装, 它可以代表不同的打印机, 初始时, Printer对象为系统缺省的打印机, 也可以使用下列语句:Set Printer=Printers (2) (其中2代表Printers集中的第二个打印机) 对打印机进行指定。

Printer对象具备例如:Color Mode、Copies、Duplex、Printquality等控制打印机特征的属性, 提供了Newpage、End Doc、Kill Doc等控制打印过程的方法, 以及大多数由窗体和图片框控件提供的图形属性和方法, 它还拥有Font的所有属性, 通过控制Printer对象的上述属性和方法即可完成打印操作。

利用Printer对象开发的打印程序主要靠其提供的New Page (打印新的一页, Current X、Current Y置为新页的左上角, 可完成多页功能。) 、End Doc (将打印任务加入打印机队列) 、Kill Doc (取消打印任务) 控制打印过程的。一般情况下, 打印程序完成多页打印时会多次执行New Page, 结束时执行一次End Doc将打印任务加入打印机队列。如果希望显示空白页, 则可在新的一页上只使用Printer.Print""打印空字符即可。如:

为了通过Printer对象实现文本和图形的打印, 获得最好的打印质量, 还需要对VB控制打印机的多种属性有更深入的理解, 例如打印机的坐标体系向屏幕坐标体系的转换、打印机字体尺寸的确定等。

VB为用户提供了Windows公用标准对话框Common Dialog控件:【打开】、【文件另存为】、【颜色】、【字体】、【打印】。利用公用标准对话框【打印】开发VB的打印程序, 将大大缩短程序的开发周期。应用程序中要使用公用对话框, 必须首先在工具箱中添加公用对话框控件。该动作通过激活【部件】对话框, 选中Microsoft Common Dialog Control6.0, 单击【确定】即可。然后再将公用控件添加到窗体上并设置相应属性, 该控件具有的属性有Color、Font、Print、Help等。这样就可利用Common Dialog控件来控制Printer的各种属性。如:

三、并口热敏打印机在商场款台中应用较广。通过以下语句可以控制并口热敏打印机进行打印

四、VB自带的报表功能

通过在工程中添加Data Report来生成并设置报表文件, 此方法适用于对数据库的报表。报表中分为五部分:报表标头 (Section4) 、页标头 (Section2) 、细节 (Section1) 、页注脚 (Section3) 、报表注脚 (Section5) 。可以其中分别添加报表控件, 然后通过属性指定内容, 或通过语句控制打印内容。

五、利用EXCEL进行打印

打印前需要把要打印的数据输出到EXCEL表格中, 然后通过VBA语法来进行打印操作。

六、利用WORD进行打印

打印前需要把要打印的数据输出到WORD文档中, 然后通过VBA语法来进行打印操作。

当然还有很多其他打印方式, 如第三方控件进行打印条形码、照片打印等, 本文仅介绍了VB中常用的打印方式, 读者可以编程时根据实际进行综合利用。

参考文献

[1]超维度工作室:Visual Basic.NET Win32API[M].北京:中国铁道出版社, 2003

[2] (美) 荷兹纳 (Steven Holzner) :Visual Basic6技术内幕[M].北京:机械工业出版社, 1999

[3]林永张乐强:Visual Basic6.0用户编程手册[M].北京:人民邮电出版社, 2002

[4]崔彦锋许小荣:VB网络与远程控制编程实例教程[M].北京:北京希望电子出版社, 2002

[5]王川阮兴平于平剑何建波:中文版Office2000VBA一册通[M].北京:人民邮电出版社, 2000

VB应用程序 篇2

点击桌面上的 Visual Basic 图标,在弹出的如图一的窗口中选择“创建标准 EXE”按钮,

图一

确定后的状态如图二

图二

这就是创建了一个新的“标准 EXE”文件了。

二、工作界面简介:

默认的 VB 工作界面由标题栏(1)、菜单栏(2)、工具栏(3)、工具箱面板(4)、程序设计区(5)、项目窗口(6)、属性窗口(7)、布局窗口(8)组成,至于它们具体有什么作用,我们将在以后的实例学习中接触,这里就不予以说明。

三、编写我的第一个应用程序:

<1>、应用程序要产生的效果:

创建的应用程序要有什么样的功能?这是开发每一个应用程序必须最先想到的。

我们的第一个应用程序非常简单,使用者只需点击程序上的一个按钮,程序界面上就会显现“跟我来学 VB 神童教程”字样。

<2>、开发思路:

根据应用程序要实现的功能,那么我们至少需要制作一个按钮、一个程序界面,为了让应用程序更规范,我们还需要创建一个用来显示“跟我来学 VB 神童教程”字样的容器。

<3>、具体制作过程:

1、创建一个新的“标准 EXE”文件,如第一步所做。

需要指出的是,这个以 Form1 为标题栏的程序界面就是我们需要的“程序界面”,也是用户首先看到的对象,所以尽可能将其做得美观一点。

当然,对应用界面的美化问题我们将在以后探讨,

2、根据开发思路,现在我们来制作按钮。

双击工具箱面板上的命令按钮(Command Button)图标,如图三:

图三

然后你会发现程序界面上多了一个命令按钮,如图四:

图四

用鼠标拖动新建的按钮到适当位置,如图五:

图五

再创建一个标签按钮,双击如图六的图标:

图六

完成后程序界面如图七:

图七

用鼠标拖动标签按钮到合适位置,如图八:

图八

将鼠标放在标签按钮左右边缘任意一处,当鼠标呈左右键头时横向拖动,把标签按钮拖长,最后的程序界面如图九:

图九

3、对按钮属性进行设置:

开发任何应用程序,在完成界面布局后,应该就每一个元素进行属性设置以达到自己的要求。

当然,也可以在元素布局的过程中进行属性设置。 首先点选箭头状的“选择”图标以便进行选择,如图十:

图十

选中程序界面上的命令按钮,然后找到属性面板,如图十一:

图十一

VB程序设计教学改革初探 篇3

关键词:VB;程序设计;教学改革

中图分类号:G642文献标识码:A文章编号:1009-3044(2007)15-30878-02

VB Programming Teaching Reform

CHEN Yun-ping

(The Department of Computer Science Huaihai Institute of Technology,Lianyungang 222000,China)

Abstract:VB program design is a theory and practice of combining the courses. From teaching guiding principles, the process of teaching practice and teaching methods aspects of the design process VB teaching reform will be discussed, and how specific the actual teaching.

Key words:VB;Program Design;Teaching Reform

在VB程序设计教学过程中,如何找到一条比较新颖、有效的解决VB程序设计教学本身枯燥、难懂的教学方式,一直是广大计算机教师不断探索的问题,也是教师们颇感兴趣的课题.本文结合自己几年来VB程序设计教学的实践和体会,并进行深刻的反思,重新对VB程序设计教学方法进行探讨。

VB程序设计教学要首先要以学生学习间接经验为主,但要注意间接经验和直接经验的结合。学生在教学过程中的主要认识目的不是探索新的真理,而是学习和继承已有的认识成果。对于一些成熟的常用算法只需学生会用即可,不必要求他们掌握里面的深奥技巧。反之,对于一些并不是很难然而需要学生理解的概念和技能,教师最好不要进行代替消化式的讲解,而要让学生自己去领悟,哪怕碰点钉子也未尝不可。

1 教学指导原则

(1)打破传统的以知识的逻辑结构体系为顺序组织课堂教学的方式,以现代学生学习方式及已有知识结构为基础,按照学生的认知规律,遵循先易后难、先具体后抽象的教学原则。

(2)可以采用分步法教学方法,指把程序设计的教学过程分成4步,教师举例,学生模仿,教师拓展讲解,然后学生独立编程。

(3)通过提出问题的引导,启发和诱导学生独立思考、积极思维,充分调动学生学习的自觉性和积极性,使学生融会贯通地掌握所学知识,提高分析问题和解决问题的能力。在教学过程中,注意通过教师讲解的例题基础上逐渐改变和增加条件的方法来提高同学理解和综合编程能力。

(4)教学应该在理论与实际的结合过程中传授和学习基本知识,从而引导学生运用所掌握的知识去分析问题和解决问题,在动手实践中达到培养学生手脑并用能力的目的。科学研究的结果表明,如果学生在学习书本知识的同时注意做到密切联系实际,则易于获得关于客观对象的比较完整的认识。

2 教学实践过程

(1)教师在教学过程中开发VB程序设计开发价值与实用性,讲解该门课程的学习意义,激发学生学习兴趣。在教学过程中,由浅人深、由简及繁、循序渐进进行讲解。例如讲解数组,先复习基本的数据类型,再提出一个有关数组的问题,让学生认识到数组的用途及与数据类型的区别,然后通过实例讲数组的定义。重点讲解一维数组的输入及输出的应用,结合例题,讲透讲通。理解了一维数组,学生在学习二维及多维数组时就比较容易掌握了,从而培养学生的学习兴趣和求知欲。

(2)引导学生采用适合的学习方法,通过上机实践可以培养学生的操作能力和灵活运用所学知识进行VB程序设计的能力。不仅要通过计算机等级考试,更重要的是培养学生具有相关领域中的计算机应用开发能力,以及利用计算机分析问题、解决问题的意识。平时的学习注重上机实践,在期末设计难度适当的综合性练习题,使所学知识融会贯通,

(3)教会学生使用联机帮助,并且熟练的从互联网上下载资料,擅用网络加强学习。在学习过程中经常遇到老师没有讲过、书上无讲解的知识点。应利用在计算机网络上电子图书馆MSDN Library,从中得到帮助,获得问题答案。从Internet上查询VB的相关资料,下载有关学习课件,好的程序,交互问答,通过学习,变知识为己用。这样既独立解决了问题,增强成就感,有拓宽学生的自学空间,是学生积极主动地解决所遇到的各种问题。

(4)精选课件,优化教学内容,采用现代化的多媒体教学手段,利用大屏幕投影教学,对于可视化的程序设计语言VB,图、文、声、像并存,利于学生学习,多媒题引人教学环节,可节省大量的板书和做图时间,有提高教师讲课效率,加大课堂知识传输量。通过课件与VB集成环境的切换,提供快速查阅,老师的教学与演示内容的一致,保证学生“耳到”并且“眼到”,而且通过上机的演示教学还可以作到“手到”。

(5)讲授内容要理论联系实践,增加实例教学,更多对理论知识进行验证。要求学生多阅读程序及用大脑代替电脑运行程序,真正掌握VB程序设计的方法,风格,把VB应用于实际中。课堂上老师可以用少量的时间讲授理论知识,更多的让学生进行时间练习,提出问题,分析问题,解决问题,进行设计,调试、运行、得出结果。学生理解反馈,自己设计程序。我国古代教育家孔子指出:“不愤不启,不悱不发”。学生的学习是个认识过程,要实现认识过程中由感性认识上升为理性认识、由理论到实践的飞跃,必须有学生自己的积极主动的思维活动。

(6)分散讲解与集中训练相结合把大问题分解成若干个小问题、把集中的知识难点分散到不同的环节中去讲是我们为了搞好平时的教学而经常采用的方法,这种方法在便于学生理解、接受新知识点的同时也带来了学生对知识的整体结构认识不清、不能融会贯通地灵活运用所学知识等弊端。比如在试卷中经常会看到这样的现象:有的学生对试卷前半部分的填空题、选择题等小题尚能应付自如,一旦碰到试卷后半部分的论述题、综合题等大题则往往不知所措。在VB程序设计教学中为了避免类似现象的出现,建议采用布置大作业的方法。具体做法是:将学生分成若干个小组,每组布置一道具有实际应用背景的大题,由组员分工独立完成,最后大家一起联合调试通过。这样做既提高了学生的学习兴趣,又培养了学生综合运用所学知识协同解决实际问题的能力。

(7)提高上机动手实践部分占VB程序设计课的比例。学生上机实践的机会越多对所学知识的掌握就越牢固,设计和调试程序的能力就越强;

3 教学方式方法

VB程序设计语言,是一种面向对象的程序设计语言。VB的教学可分为界面设计和程序代码设计两大部分。围绕这两大环节,打破教材原有以知识的逻辑结构体系为顺序组织课堂教学的方式,以教授程序设计的基本方法为主线,从具体实例入手,介绍解决问题的方法,最后引出概念和结论,取得了良好的教学效果。

3.1界面设计教学

VB中的对象主要是系统设计好的对象,包括窗体、控件、菜单、打印机、剪贴板和数据库等。常用控件有命令按钮、标签、文本框、单选按钮等,特别要熟练掌握。如设计了如下图所示的界面。

(a)在当前窗体内添加3个标签、3个文本框和2个命令按钮;

(b)按照如下表格设计各对象的属性:

(c)“学号”、“姓名”及“总分”三标签上下左对齐,三个文本框大小一致、上下左对齐,同行的两个标签、文本框左右中间对齐。

在界面设计操作过程中,学生们通过自己的实际操作,很自然地就掌握了如何在界面内添加对象,如何改变对象的位置,以及如何设置对象的属性值。这些操作和以前学过的文字处理软件操作风格极为相似,这为以后代码设计学习打下了一个良好的基础。通过有针对性的练习,学生对属性的设置应该不会有太大的问题。

3.2程序代码设计教学

培养学生的面向对象程序设计的思维是VB程序设计教学中最重要的教学目的之一,它体现了一个学生的综合应用能力。针对客观实际进行教学。编程更多的反映在逻辑思维能力和抽象思维能力,跟WORD等计算机应用软件操作不同,编程教学更像是学习数学逻辑思维等知识,上机只是调试验证,程序二数据结构+算法。在理论课堂上讲解,更有利于学生理解掌握。编程教学中应淡化语句教学,注重对算法的教学。语言只是工具,算法才是程序设计的灵魂。算法就是指解决问题的方法和思路。培养学生解决问题的能力更重要。在教学中可以,第1步是由简单到复杂拓展式地精讲例题,详细分析其算法,逐一列出解题步骤,给出完整程序;第2步是让学生阅读程序,写出程序执行结果。第3步是让学生做程序填充题和程序改错题;第4步是出一些类似例题的编程问题,让学生模仿完成;第5步让学生独立编写简单的程序。第6步让学生编写实际应用的程序。比如学生信息管理系统、计算器等。

4 结束语

21世纪高校教师培养的大学生,应着眼于社会发展的实际需求,人才市场的实际需求。在计算机教学实践中探索出一套现实教育与未来教育的最佳接轨,是靠我们的教师不懈地创新。研究适合高校计算机程序设计教学方法,适时进行计算机程序设计教学改革,计算机程序设计类课程的教学才能适应现代信息化人才培养的需要。

参考文献:

[1]宁常鑫,孙达辰.高职VB教学改革的探索[J].内蒙古科技与经济,2004 (5):96-97.

[2]林海平,纪定峰.计算机VB课程教学改革的实践与探索[J].徐州建筑职业技术学院学报,2002,(2):37-39.

[3]牛又奇,Visual Basic程序设计教程[M].苏州大学出版社,2003.

[4]曹青,邱李华,郭志强.Visual Basic程序设计教程[M].北京:机械工业出版社,2001.

VB程序打包方法探讨 篇4

1 简单小程序

平常在使用VB制作一些简单的小程序或小游戏时,如果没有特殊要求,一般只要生成EXE文件直接使用就可以,没有将其打包的必要。因为打包以后,使用比较麻烦(需要安装),文件也变大,占用空间也多,反正本人是很讨厌这种程序的。如果非要进行打包的话,可以使用类似Setup的这种安装程序来撑一下门面,它的主要原理就是将指定文件复制到硬盘的某个位置,用起来还是比较方便的。但是应该注意的一点就是不能有数据库文件,因为数据库文件是需要数据引擎来支持的。使用者的电脑上没有安装VB,这种打包的程序就没法使用了。因此建议,如果数据不是特别多特别复杂的话,还是采用Txt格式来存储数据吧。

2 包含数据库程序

稍微复杂些的程序都会用到数据库的,一般都会利用VB自带的Package&Deployment来进行打包的。Package&Deployment可以方便地生成setup.exe文件,还可以把数据库引擎、使用的各类文件及数据文件一起打包添加进去,使用较方便,应用最广。但其有两个最主要的缺点:

(1)从安装文件的外观一眼就能看出是使用VB编写并用自带程序打包的,而且文件被分成4部分如图1所示,看着不爽,传送也不方便。

(2)不能打包文件夹,如果程序过于复杂,就需要根据文件的不同性质或应用分别存放到不同的文件夹内,此时就需要在安装完以后再把相关的文件夹再复制到安装目录中,又麻烦又令人生厌。为此推荐一款经过检验的方便有效的打包工具程序Inno Setup。

3 大型数据库、包含文件夹程序

复杂程序设计的时候,一般都会包括大量的数据库文件,而且由于复杂会把不同的文件归类,以方便程序的构建管理。因此在打包过程中,就需要照顾到文件的压缩、数据引擎的安装、文件夹的添加等一系列的问题。利用Inno Setup可以很容易地实现一般的打包功能,但Inno Setup与其他Setup软件一样,不能自动安装数据库引擎。为此经过反复试验,可以利用VB自带的Package&Deployment预先进行打包,生成数据库引擎,再利用Inno Setup,将数据引擎和文件夹再次打包。但要注意的是在最后编译脚本之前,要在[Files]字段下,加上可以让Inno Setup认识的安装数据引擎的引导语句如图2所示:

Source:"C:Documents and Settingsliqiang桌面20120522wnjs8源文件包Supportdao350.DLL";DestDir:"{sys}";CopyMode:alwaysskipifsameorolder;Flags:restartreplace regserver

(其中的“C:Documents and Settingsliqiang桌面20120522wnjs8源文件包”是指由VB自带的Package&Deployment所打的安装包的位置)。

利用Inno Setup打包以后,会形成一个Setup.exe的安装文件,而且也可以方便地更换图标,给人以眼前一亮的感觉,如图3所示。

上述几种方法是最常用的方法,各有其优缺点,在使用过程中需要灵活掌握运用,依据其特点,发挥其特长。

摘要:程序的打包是程序编写的最后一步,打包的方法有很多种,要区别对待,对于功能较为强大的程序进行打包的困难主要是数据库引擎的安装以及文件夹的打包。

VB应用程序 篇5

UDP 协议是一种无连接协议,两台计算机之间的数据传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。

由于UDP 协议不需要显式的连接,就需要在两个Winsock控件中间发送数据,关键需要完成以下的三步:

1.将RemoteHost属性设置为另一台计算机的名称。

2.将RemotePort属性设置为第二个控件的LocalPort属性。

3.调用Bind方法,指定使用的LocalPort。

因为两台计算机的地位可以看成“对等的”,这种应用程序也被称为点对点的应用程序。

下面将创建一个聊天应用程序,两个人可以通过它进行实时的交谈。请按照以下步骤制作:

1.创建一个新的 Standard EXE 工程。将缺省的窗体的名称修改为frmPeerA,将窗体的标题修改为“Peer A”。

2.在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerA。在“属性”页上,单击“协议”并将协议修改为 UDPProtocol。

3.在窗体中添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。

4.为窗体添加如下的代码。

Private Sub Form_Load

′控件的名字为udpPeerA

With udpPeerA

′重点:必须将 RemoteHost 的值修改为对方计算机的名字。

RemoteHost= ″PeerB″

RemotePort = 1001 ′连接的端口号。

Bind 1002 ′绑定到本地的端口。

End With

frmPeerB.Show′显示第二个窗体。

End Sub

Private Sub txtSend_Change()

′在键入文本时,立即将其发送出去。

udpPeerA.SendData txtSend.Text

End Sub

Private Sub udpPeerA_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

udpPeerA.GetData strData

txtOutput.Text = strData

End Sub

要创建第二个 UDP 伙伴,请按照以下步骤执行:

1.在工程中添加一个标准窗体,将窗体的名字修改为 frmPeerB,将窗体的标题修改为“Peer B”,

2.在窗体中放入一个 Winsock 控件,并将其命名为 udpPeerB。

3.在“属性”页上,单击“协议”并将协议修改为“UDPProtocol”。

4.在窗体上添加两个 TextBox 控件。将第一个命名为 txtSend,第二个命名为 txtOutput。

5.在窗体中添加如下代码

Private Sub Form_Load()

′控件的名字为 udpPeerB。

With udpPeerB

′重点:必须将RemoteHost的值改为对方计算机的名字。

RemoteHost= ″PeerA″

RemotePort = 1002 ′要连接的端口。

Bind 1001 ′绑定到本地的端口上。

End With

End Sub

Private Sub txtSend_Change()

′在键入后立即发送文本。

udpPeerB.SendData txtSend.Text

End Sub

Private Sub udpPeerB_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

udpPeerB.GetData strData

txtOutput.Text = strData

End Sub

运行工程,然后在两个窗体的txtSend TextBox中分别键入一些文本。键入的文字将出现在另一个窗体的 txtOutput TextBox中。

这样,一个十分简单的实时聊天工具就做好了。

(广东 刘亮)

VB程序设计在网络安全中的应用 篇6

关键词:VB程序设计;网络安全;数据加密;代理

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21592-02

Programming of Visual Basic Apply in the Network

ZENG Yuan-mei

(School of Dongguan University of Science and Technology Yecurity)

Abstract:Computer network transmit information relate to the government、military affairs、economy、culture and education and so on, in this information has many sensitivity information including the nation secret, so hacker and many of sorts virus attack this information. Besides of the design bug of the computer network, a large number of is the security leak and malfeasance use of the computer language.So, in this paper,firstly discussed the log password,then expatiated network data encrypt,finally analysis the implement of the Agent. It has deeply signification in theory and extensive value in applications.

Key words:programming of visual basic; network security; data encrypt; Agent

1 引言

Visual Basic (简称VB) 程序设计语言是创建于Windows 95 开发环境下具有图形用户界面应用程序的迅速简单的程序语言系统,使用它可以完成各种软件设计,因此自1991 年問世以来,就深受Windows开发者的喜爱,得到了迅速推广,是目前应用最广泛的程序设计语言之一。

计算机网络变得日益重要, 事实上已经成为政府、军队、商业领域不可缺少的部分。随着技术的发展, 网络的规模更加庞大, 结构更加复杂, 支持的用户更多,提供更多的服务, 同时也对如何保证网络的正常运行、网络硬件及信息的安全、充分发挥各种网络设备的性能等方面提出了更高的要求。

2 登录口令的设置和处理

密码术是把可懂的文本变成不可懂的形式,以及通过其逆过程把不可懂的文本还原成原来文本的方法和技术。把可懂的文本变换成不可懂的形式的过程,称为加密,其逆过程,即把不可懂的文本还原成可懂的文本的过程,称为脱密或解密。原来的可懂文本称为明文,而变换为不可懂形式的文本称为密文。完成加密解密的算法称为密码体制。

一种密码算法,可以实现两种类型的保密:理论保密和实际保密。理论保密基于这样的原则: 敌手所能获得的或接收到的信息总不足以推导出一个密文的唯一解。也就是说, 不管利用何种分析方法,对于可能的值, 则始终存在着某种程度的不确定性。实际上, 这是不可能达到的, 如果敌手能够获得足够数量的明文和与其相对应的密文, 那么, 是可以唯一地达到其密钥的。实际上保密是建立在这样的一种假设上, 即可以获得足够的信息来破译密码, 并且这一工作可以通过求解一个给定的密码分析问题所需的工作量(即工作因子) 来衡量。这类的保密可以这样来实现: 设计一种密码算法,使得即使在分析者具有特定的算法知识, 并已获得大量的密文/对应的明文或者获得明文/对应的密文的情况下, 要求解报文或密钥, 在计算上是不可行的。

从密钥方式来分, 密码体制有两类: 传统密码和公开密钥密码。传统密码是指加密密钥与解密密钥相同的密码。公开密钥密码则是指加密密钥与解密密钥不相同, 其中加密密钥是公开的密码。

开发JDS时, 采用的是传统密码方法,将明文的ASCII 码作一些调整而得到密文的ASCII码, 这样就能实现对明文的加密。具体做法如下:

(1)对明文的第一个字符进行移位, 移位数为所有明文的ASCII 码的和;

(2)对明文的以后各位进行移位, 移位数为前一位明文的ASCII 码加上所有明文的ASCII 码的和;

(3)如果移位后的ASCII 码超出范围[33 ,126] , 则通过取余运算变换到上述范围;

(4)将密文以ASCII 码链的方式存储在数据库中。

例如, 假设明文为“njhgdx”, 则通过这种算法变为: “{tkaT [”。这种对明文加密的方法的特点是对不同的明文各位移位数是不同的, 从而给解密增加难度。

上述过程用VB6. 0 实现如下(假设明文的最大长度为8):

Public Function passHide (myPassWord As String) As String ′口令加密函数

Dim I As Integer

Dim tempPass1 (8) As Integer ′明文的各位字符的ASCII 码

Dim tempPass2 (8) As String ′密文的各位字符

Dim tempAsc As Integer ′临时ASCII 码

Dim temPass As String ′密文

Dim allLength As Integer ′各位明文的ASCII 码总和

temPass = ″″: allLength = 0

For I = 0 To Len (Trim (myPassWord) ) - 1

tempPass1 ( I) = Asc (Mid ( Trim (myPassWord) , I + 1 , 1) ) ′将明文转换为ASCII 码

allLength = allLength + tempPass1 ( I)

Next I

For I = 0 To Len (Trim (myPassWord) ) - 1

If I > 0 Then

tempPass1 ( I) = tempPass1 ( I) + tempPass1 ( I - 1) + allLength

Else

tempPass1 ( I) = tempPass1 ( I) + allLength

End If

tempAsc = tempPass1 ( I) Mod 126

If tempAsc < 33 Then

tempAsc = tempAsc + 33

End If

tempPass 2 ( I) = Chr (tempAsc) ′將密文的ASCII 码对126 取余, 并转化为字符形式

Next I

For I = 0 To Len (Trim (myPassWord) ) - 1

temPass = temPass + tempPass2 ( I)

Next I

passHide = temPass

End Function

当然,上述口令加密的方式只是一种较为粗糙的方法,但对一般的系统而言,则不失为一种有效的数据加密方法,即使能从数据库中获得密文, 也知道加密算法, 却不能轻易获得明文,从而达到在一定程度上对口令的保护。

在JDS 中没有解密算法,在进行口令认证时,只要将输入的口令通过加密算法变成密文的形式,再对照数据库中存储的密文是否与该密文一致即可。

3 网络数据加密解密

在VB.NET可利用CroptoStream流中DESCryptoServiceProvider类的CreateEncryptor进行力加密,CreateDecryptor解密,然后通过MemoryStream流完成数据转换。

加密函数是通过CryptoStream流将末加密文本,通过CreateEncrypto方法加密到MemoryStream流中,再转换输出加密后的数据,代码如下:

Public Function EncryptData(ByVal Value Its String,

ByVal desKey() As Byte, ByVal desIV() As Byte)

Dim ms As New MemoryStream()

Dim byt() As Byte

Dim bin(4096) As Byte'这是加密的中间存储器

Dim rdlen As Long = 8'这是写的字节的总数。

Dim len As Integer'这是被次写的字节的数量。

Dim des As New DESCryptoServiceProvider()

Dim cs As New CryptoStream(ms, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write)

byt=Encoding. UTF 8.GetBytes(Value)

cs. Write(byt,0, byt.Length)

cs.FlushFinalBlock()

cs.Close()

Return Convert.ToBase64String(ms.ToArray})

End Function

解密函数是通过CryptoStream流将加密数据,通过CreateDecryptor方法解密到MemoryStream流中,再转换输出解密后的数据,代码如下:

PublicFunction deEncryptData(ByValValueAs

String, ByVal desKey() As Byte, ByVal desIV() As Byte)

Dim ms As New MemoryStream()

Dim byt() As Byte

Dim bin(4096) As Byte

Dim rdlen As Long=8

Dim len As Integer

Dim des As New DESCryptoServiceProvider()

Dim cs As New CryptoStream(ms, des.CreateDecayptor(desKey, desIV), CryptoStreamMode.Write)

byt=Convert.FromBase64String(Value)

cs. Write(byt,0, byt.Length)

cs.FlushFinalBlock()

cs.Close()

Return Encoding.UTF8.GetString(ms.ToArray())

End Function

4 代理(Agent) 的实现

代理端程序在被管理设备上运行, 其主要功能是:

(1)访问MIB 数据库, 显示设备的状态信息;

(2)在管理器读取时将状态信息送到管理器端口;

(3)响应管理器命令, 修改某些对象的值;

(4)发送陷入报文。

代理程序启动时生成代理实例Agent1, 加载SMI和MIB 库及TRAPS 库, 实现程序如下:

Private Agent1 As New Agent

Private Sub LoadMibs ()

Agent1?M ib?Load " smi?mib" //代理装载SM I 库

Agent1?Mib?Load "mib_ ii?m ib" //代理装载M IB 库

Agent1?Mib?Load " trap?mib" //代理装载TRA PS库

Dim MibList As New DartSt rings

MibL ist?Add " smi?mib"

MibL ist?Add "mib_ ii?mib"

MibL ist?Add " t raps?mib"

Agent?Mib?CompileM ibList

End Sub

库文件装载成功后, 代理从MIB中获取并显示被管理对象必要的信息, 程序如下:

Private Sub SetMibsAndLabels ()

Set vsysDescr = A gent1?M ib?Variables (" sysDescr" )

vsysDescr?value = sysDescr?Text

//从M IB 中获取sysDescr 值

Set vsysObject ID = Agent1?Mib?Variables (" sysObject ID" )

vsysObject ID?value = sysObject ID?Text

//从M IB 中获取sysO bject ID 值

Set vsysUpTime = Agent1?Mib?Variables (" sysUpTime" )

vsysUpTime?value = GetTickCount - gTickCountRef

//计算出sysUpTime 值

Set vtcpOutSegs = A gent1?Mib?Variables (" tcpOutSegs" )

vtcpOutSegs?1value = tcpOutSegs?Text

//从M IB 中获取tcpO utSegs 值

End Sub

在代理端與管理器之间的互动中, 代理端主要是被动地响应管理器的命令, 各种复杂的工作都由管理器来完成。代理只是在收到管理器端的命令之后, 才通过Agent来完成修改操作。

代理对M IB 数据库的访问功能编码如下:

SetvsysUpTime = A ent1?Mib?Variables (" sysUpTime" )

vsysUpTime?value = GetTickCount-gTickCountRef

If (Agent1?Message?Type= snmpSet1) Or

(Agent1?Message?Type= snmpSet2) Then SetReq= T rue

If (Agent1?Message?Type= snmpGetNext1)Or

(Agent1?Message?Type = snmpGetNext2) Then i= 1

Agent1?Message?Type = snmpResponse1

5 总结

随着WWW技术越来越成熟,Java、CGI、Active X之类的网络新技术给用户带来了五彩缤纷的和便利的界面,同时也给“黑客”提供了攻击的新手段。这些新技术往往是通过一种新语言或者某种语言的扩展来实现的。因此,了解VB程序设计在网络安全中的应用,对设计完善的网络软件及防止网络攻击尤为重要。

参考文献:

[1]雷军程,柳小文, 许鞍铭.用vb实现Microsoft CryptoAPI加密[J].邵阳学院学报(自然科学版),2005,(01)

[2]常晓荣,王磊. 使用CSP开发通用的加密功能[J].西安文理学院学报(自然科学版),2005,(02).

[3]姚世军.陈楚香.用CryptoAPI生成密钥的方法[J].河南教育学院学报(自然科学版),2003,(04).

[4]朱从旭,陈志刚.用VB实现文件混沌加密[J].电脑编程技巧与维护,2004,(09).

[5]章程军,冯壁华.保密存取光学图象的一种重要方法[J].激光杂志,1996,(05).

[6]张军,张庆来,杜勇,张文化.EFS加密数据恢复[J].甘肃科技,2004,(10).

[7]孙护.直线法加密高程的应用限制和精度[J].测绘通报,1997,(04).

[8]马景艳.用软件工程的方法实现加密演示系统[J].科学管理研究,2004,(S1).

[9]石文昌.电子邮件系统R-MAIL的安全机制设计[J].广西科学院学报,1997,(02).

[10]周德生,陈彪.单片机加密的硬件技术方法[J].黑龙江大学自然科学学报,1997,(03).

VB中控件数组及其应用 篇7

在开发Visual Basic 6.0的应用程序时, 往往要使用一些类型相同、功能相似的控件。如果对每一个控件都单独处理, 不免多做一些麻烦而重复的工作, 而且也会消耗更多的资源。这时可以将这种同一类型的控件定义成一个控件数组。例如, 可以将一组命令按钮定义成一个控件数组, 也可以将一组文本框定义成一个控件数组。控件数组为处理功能相近的控件提供了极大方便。

1 控件数组基本概念

控件数组是由一组相同类型的控件组成, 这些控件共用一个控件名称 (Name属性) , 具有相似的属性设置, 共享同样的事件过程。控件数组中各个控件相当于普通数组中的各个元素, 同一控件数组中各个控件的Index属性相当于普通数组中的下标。例如, 由一个包含3个单选按钮的控制数组Option1, 它的3个元素就是Option1 (0) 、Option1 (1) 、Option1 (2) 。

一个控件数组至少应有一个元素 (控件) , 元素数目可在系统资源和内存允许的范围内增加, 可用到的最大索引值为32 767。同一控件数组中的不同控件可以有自己的属性值设置。在建立控件数组时, 每个元素 (控件) 被自动赋予一个唯一的索引号 (Index属性, 相当于普通数组的下标) , 索引号从0开始, 通过索引号引用控件数组中的某个控件, 即控件数组名 (索引号) 。

使用控件数组的好处是: (1) 便于控件管理, 它们共用一个名称, 通过Index进行区分; (2) 运行期间可以添加控件, 使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少; (3) 控件数组中的不同控件共享相同的事件过程, 因为控件数组的事件可以共享, 如果要使多个同类型控件在一个事件中执行相同或类似的代码, 使用控件数组比单独创建多个控件更方便, 代码也更容易维护。

2 控件数组建立方法

控件数组中的每一个元素都是控件, 其定义方式与普通数组不同。可以在设计阶段创建控件数组, 也可以在运行期间动态创建控件数组。

2.1 在设计阶段创建控件数组

设计阶段可以通过以下两种方法创建控件数组:

(1) 复制现有控件, 将其粘贴到所在容器中。绘制或选择要作为控件数组的第1个控件, 执行“编辑|复制”命令, 选中容器, 再执行“编辑|粘贴”命令, 系统会给出一个对话框, 询问是否建立控件数组, 单击“是”按钮即可。绘制或选择的第1个控件的Index属性值为0, 新粘贴控件的Index属性值为1, 每个新数组元素的Index属性值与其添加到控件数组中的次序相同。用这种方法添加控件时, 大多数可视属性, 如高度、宽度和颜色等, 将从数组中的第1个控件复制到新控件中。

(2) 将窗体上已有类型相同的多个控件的Name属性设置为同一值。先选定一个控件作为数组的第1个元素, 并将其Name属性值设置成数组名 (或使用其原有的Name属性值) , 将其它同类型控件的Name属性值改成同一个名称。这时, 系统同样会询问是否建立控件数组, 选择“是”按钮将控件添加到控件数组中, 这样操作后, 控件数组中控件的Index属性值分别变成了0、1、2、…… (即控件数组元素的索引) 。用这种方法建立的控件数组元素仅仅具有相同的Name属性和控件类型, 其它属性与最初绘制控件时的值相同。

2.2 在运行期间创建控件数组

在运行时, 使用Load语句向现有控件数组中添加控件。通常设计时在窗体上创建一个Index属性为0的控件, 然后在运行时使用Load语句添加控件, Load语句格式如下:

Load控件数组名 (索引号)

例如, 假设已经在设计时建立了一个控件Option1 (0) , 在运行时可以用以下语句向控件数组中添加一个新的控件:

Load Option1 (1)

使用Load语句添加的控件数组元素, 其大多数属性值将由数组中具有最小下标的现有元素复制, 而且新添加的控件是不可见的, 必须编写代码将其Visible属性值设置为True, 通常还要调整其位置 (比如Top或Left属性的值) , 才可以在界面上显示出来。例如:

Option1 (1) .Visible=True

Option1 (1) .Top=500

Option1 (1) .Left=1000'Top或Left的值视情况而定

使用Unload语句可以删除在运行期间创建的控件数组元素, Unload语句的格式如下:

Unload控件数组名 (索引号)

例如, 要删除上面创建的Option1 (1) 控件, 可以使用语句:

Unload Option1 (1)

3 控件数组应用示例

通过以下几个示例, 介绍控件数组的应用。

例1:设置文字颜色。

在窗体上建立一个标签Label1和一个框架Frame1, 在框架Frame1中创建一个控件数组Option1 (0) ~Option1 (3) , 单击这4个单选按钮, 分别将标签Label1的文字颜色设置为“黑色”、“红色”、“蓝色”和“黄色”。

设计界面、运行界面分别如图1和如图2所示。

为实现题目功能的要求, 编写控件数组Option1的Click事件过程如下:

控件数组Option1包含4个单选按钮, 无论单击哪个单选按钮, 都将执行相同的事件过程。系统会将被单击的单选按钮的Index属性值传递给事件过程, 由事件过程根据不同的Index值执行不同的操作。

例2:使用控件数组创建电影胶片特效。

向窗体上添加一个Image控件Image1, 通过设置其Picture属性添加一幅图片, 调整好大小, 然后用复制、粘贴的方法创建一个控件数组Image1 (0) ~Image1 (3) 。添加一个Timer控件Timer1, 设置Timer1控件的Interval属性值为20。

设计界面、运行界面分别如图3和图4所示。

在窗体的Load事件过程中编写代码, 调整窗体的宽度和各图像框的初始位置, 使得运行初始时, 窗体宽度正好可以显示3幅水平并排的图片Image1 (0) -Image1 (2) , 使第4幅图片Image1 (3) 在窗体左侧的不可见区域, 其右侧与窗体左边界对齐。Load事件过程的代码如下:

通过定时器控制每隔20ms将各图像框向右移动20缇, 如果图像框的左侧已经大于窗体的内部宽度, 说明图像框已经移出窗体, 则将相应的图像框移回窗体左侧不可见区域, 使其右侧与窗体左边对齐。Timer1控件的Timer事件过程如下:

运行时, 各图片沿窗体左侧逐渐向右侧移动, 产生电影胶片的效果。

例3:控件的添加和删除。

在窗体上绘制一个复选框Check1, 将其Index属性值设置为0, 使其成为控件数组的第一个元素。再在窗体上添加3个命令按钮Command1、Command2和Command3, 分别实现添加控件、删除控件和关闭窗体的功能。

设n表示添加的控件数 (本例假设其最大值为3) , n应作为窗体级变量进行声明:

4 结语

控件数组提供了一种方便的控件组合方法, 这种组合控件的方法, 既可方便地对同类型控件进行管理, 又可使这些控件共享事件过程代码, 不仅代码编写高效, 而且代码也容易维护。

摘要:控件数组是一种方便组合同类型控件的方法, 这些控件具有共同的名称, 共享同一事件过程代码, 根据不同的Index属性值执行不同的处理程序段。在介绍控件数组基本概念及其建立方法的基础上, 着重研究了VB中控件数组的应用。控件数组不仅利于管理同类型控件, 而且可以优化程序代码。

关键词:Visual Basic,控件数组,Index属性值,共享事件代码

参考文献

[1]求是科技.Visual Basic 6.0程序设计与开发技术大全[M].北京:人民邮电出版社, 2004.

[2]王建忠.Visual Basic程序设计[M].北京:科学出版社, 2013.

用Arduino控制VB程序 篇8

关键词:Arduino开发平台,Visual Basic语言,MSComm控件

Arduino是一款便捷灵活、 方便上手的开源电子原型平台, 包含硬件 ( 各种型号的Arduino板) 和软件 (Arduin IDE) 。 Arduino硬件都非常便宜, 购买也非常方便, 适合低成本的学习。 Arduino通过各种各样的传感器来感知环境, 通过控制灯光、 马达和其他的装置来反馈、 影响环境。 在Ar duino IDE中, 通过Arduino语言编写程序, 并将编译后的二进制文件烧录进微控制器, 实现传感器和执行器的协同工作。 利用Visual Basic程序与Arduino的交互, 可以开发出有趣的小程序。 此时, Visual Basic程序扮演着执行器、 控制器等角色。

下面以游戏摇杆操控VB窗体中图像实现自由移动为例, 介绍如何实现VB和Arduino协同工作, 为开发VB和Arduin交互程序抛砖引玉。

1 连接游戏摇杆和Arduino板

图1 为游戏摇杆和Arduino板连接实物图, 各针脚对应连接如表1 所示。 摇杆由Arduino板的5V输出电压供电, 原始状态下S-X, S-Y读出电压约2.5V。 当沿板上X和Y箭头方向按下, 读出电压值随之增加, 最大到5V; 当沿X和Y箭头反方向按下, 读出电压值随之减少, 最小为0V。 Arduino板上的A0 和A1 为模拟量输入脚, 读取时0~5V电压值已被转换为数值0~1023。

2 安装Arduino驱动程序

将连接Arduino的USB口插入到计算机后, Windows会提示 “发现新硬件”。 Arduino板本身将作为计算机的一个串口设备, 由于计算机中没有相应的驱动程序, 会显示安装失败。进入Windows设备管理器, 在端口 (COM和LPT) 下找到带黄色感叹号的USB Device, 通过手动指定驱动程序文件夹位置来安装驱动程序 (具体参考网上教程) 。 对于Windows 7 以上操作系统可通过在线搜索安装驱动程序。 安装好驱动程序后, Arduino板在设备管理器中显示如图2 所示, 在笔者计算机中Arduino作为串口6 设备。

3 配置Arduino IDE

到https://www.arduino.cc/en/Main/Software下载最新的Ar duino开发环境IDE。 运行Arduino IDE: (1) 进入工具菜单选择开发板型号, 基础版选择 “Arduino/Genuino Uno”; (2) 选择Arduino所在的串行端口号 (参考设备管理器提示) , 这里选择 “COM6”, 如图3 所示。

4 编写Arduino程序

根据当前连接的感应器和执行器协同工作需要, 为Arduino编写相应的程序。 Arduino程序主要的功能: 设置连接外接设备针脚模式和参数, 读取外接设备数据, 控制外接设备等。Arduino编程语言是建立在C语言基础上的, 有C语言基础的能很快上手。 图4 是进入Arduino IDE后默认建立的程序框架。

Arduino语言以setup函数作程序开头, loop函数作程序框架主体。 setup函数用来初始化变量、 管脚模式, 调用库函数等, 只运行一次。 loop函数在setup函数运行后, 被周而复始地循环执行。 图5 是为摇杆编写的代码。

Serial.begin (9600) : 将串口通信速率设置为9600bps。 通信的两端要保持相同的传输速率。 Arduino将通过USB与计算机连接的接口定义为Serial对象。

Serial.flush () : 等待串口数据传输完成, 并将缓冲区清空。

analog Read函数的功能为读取指定模拟针脚的值, A0、A1 是模拟针脚0 和1 的别名。 模拟针脚上的电压值 (0~5V) 经模/数转换后变为一个整数值 (0~1023) 。 Serial.print函数的功能为将数据以字符串方式输出到串口。 Serial.println函数在输出时数据的同时在后面增加回车符 (ASCII 13) 和换行符 (ASCII 10) 。 delay函数为让程序等待多少毫秒, 然后往下执行。

由于loop函数是被循环执行的, 因此整个程序的功能为首先设置端口传输速率为9600 位/秒, 然后每隔0.1 秒读取模拟针脚0 和1 上的数值, 并将这二个数值用分号分隔, 再连接回车换行符, 最后输出到串口。 当然程序还可以更完善或更精炼。

单击工具栏上第一个按钮 (如图6 所示) 对程序进行验证 (编译) 。 在程序通过验证后, 单击工具栏上的第二个按钮 (如图7 所示) , 将程序重新编译并上传给Arduino板。 Arduin在有程序上传后, 首先进行初始化, 然后按上传程序指令重新开始工作。

为了验证程序是否有效, 单击工具菜单中 “串口监视器”, 打开监视窗口。 如图8 所示, 监视窗口中不断收到Ar duino发送过来的数据。 按动游戏摇杆, 数据会变化, 如图所示。

5 编写VB程序

运行VB6, 新建一个工程文件。 在工程中添加MSComm控件, 如图10 所示。 MSComm是一个串行通信控件, 它提供了一系列标准通信命令的接口, 允许建立串口连接。 MSComm采用事件驱动通信, 当有字符到达或发生了改变, On Comm事件就被触发。

在窗体中添加两个Command Button控件, 一个Image控件, 一个MSComm控件。 工程属性、 窗体属性和窗体内各控件属性设置如表2 所示, 窗体界面设计如图11 所示。

MSComm控件的Comm Port属性值要设置为6, 也就是Arduino板所在的串口号。 RThreshold的属性值设置为1, 也就每当接收到一个字符时就触发MSComm控件的On Comm事件。 因为Arduino的数据传输速率已设置为9600bps, 所以Settings属性值无需修改 (默认值为: 9600, n, 8, 1) 。

在窗体代码窗口输入以下代码:

运行工程, 单击窗体中“开始”按钮。VB6立即窗口显示如图12所示。

虽然设置RThreshold为1, 即每接收到一个字符时触发On Comm事件, 但读取时缓冲区内容可能已经有好几个字符了。因此, 需要根据回车换行符进行重组。窗体代码修改如下:

CStart_Click和CStop_Click过程代码保持不变。运行工程, 单击窗体上“开始”按钮。此时立即窗口显示如图13所示。

在MSCom_On Comm事件处理过程中, 每接收到一组正确的数据时, On Coming过程就被调用一次。然后将On Coming过程修改为如下:

运行工程, 单击窗体上“开始”按钮。上下、左右按下摇杆, 窗体中的小乌龟图片将上下、左右移动, 按力越大移动速度也越快。在摇杆初始状态下, 读出数据约为513~516, 而程序中411~611间的数据不作移动处理, 因此在摇杆初始状态下图片不会自己移动。Split函数按分隔符字符串 (参数二) 拆分输入字符串 (参数一) , 并以一个从零开始的一维数组形式返回所有子字符串。

6 结语

VB适合初学者学习, 利用VB + Arduino可以充分挖掘Arduino周边设备的功能, 编写出有趣的小程序, 并且在学习VB编程过程中学习工程学知识。 由于篇幅关系, 这里仅以一个小小的例子演示如何利用VB + Arduino编程实现协同工作。当然, 可以将MSCom控件和On Comm事件处理过程 (含数据整理代码) 封装为一个控件, 将来使用时只要在工程中添加这个控件, 设置基本属性即可。 在学习VB + Arduino编程过程中, 阅读和模仿Arduino程序也能为将来C语言打下良好的基础。

参考文献

浅谈VB程序教学方法 篇9

作为教学人员都深深明白, 培养学生的学习兴趣, 调动学生的学习积极性, 才能让学生主动并且愿意去学, 去探索。填鸭式的教学方法是很难让学生产生兴趣的, 反而会使学生产生厌倦情绪, 更不宜在教学中使用。程序设计是利用编写代码实现一定的效果, 而效果的实现也可以使学生觉得特别有成就感, 在教学中应利用这种成就感激发学生的学习积极性, 进而刺激学生不断去理解和深化所学知识。

在教学上, 宜采用以实例作为知识的载体, 追踪学生的兴趣和问题, 由实例去操纵学生自己主动发现、分析和处理问题。注意通过一系列问题的引导, 来激发学生的学习主动性和加深对一些概念的理解。有一些概念之间的差别和程序的设计步骤如果只通过教师讲述, 学生在字面上可以接受, 照葫芦画瓢, 但在理解深度上往往难以达到令人满意的效果, 如果能设计出一系列问题, 让同学们在实践和解决问题的过程中自己去体验, 情况将完全是另一个样子。因此必须培养学生根据需求要求构造算法的能力以及代码语句的熟练使用。

程序教学中语句的使用是相当重要的, 也是最枯燥难学的, 学生往往不喜欢这方面的学习, 但编程过程中又离不开语句, 这些内容讲解的时候不能仅仅照本宣科, 书上说什么就讲什么, 要根据题目要求引导学生去充实代码, 完善程序, 这样既能帮助学生理解掌握本节所学知识, 也可以对前面所学的知识进行巩固, 避免学生学了后面忘了前面。比如在学习messageboxbutton的“是”和“否”的选项时, 课本上介绍语法为Message Box Buttons.Yes No, 然后给出例题要求提示框的标题为“提示”, 提示内容为“欢迎光临”, 两个按钮是“是”和“否”, 最后给出运行结果而没有给出代码, 这时候就要求学生根据题目要求去完善代码直至得出运行结果来。这样学生就要思考如何给messagebox添加两个按钮, 这里还要牵扯将按钮名字作为一个变量去声明以及变量类型的声明, 这都要联系以前的知识。

在教学中不但可以出题让学生去思考, 也可以让学生自己想出题目或是在已知题目的基础上去更深层的提出问题, 这样不但可以使程序更加完善, 还可以让学生自己去发现问题、解决问题, 更有利于知识的掌握和理解。比如在学习Check Box控件时有个例题“兴趣爱好调查”:要求根据已有兴趣选择, 单击“查看”按钮时可看到提示“你选择了╳╳”, 根据这个要求编写的代码有个弊端, 如果什么也没选也会提示“你选择了”, 学生提出是否可以通过添加代码改为当不选择时提示“你没有选择兴趣”。这时候教师一定要鼓励学生去“找茬”, 因为这样可以促进学生去拓展学习内容, 更有利于学习。调动学生的学习积极性还可以鼓励学生举一反三, 许多学生做完课本要求的实例后, 会在题目要求被满足的基础上提出新的想法, 希望通过更深层次的设计实现更多的功能, 这个时候首先要对学生的想法提出表扬和肯定, 组织学生一起讨论实现该效果的可能性以及方法, 让大家分组将几种方法进行讨论, 最后将提出的几种可能实现的方案进行具体的代码编写, 最后共同找出最合理的方法, 教师对代码进行完善并将所涉及到的理论知识点进行讲解, 加深学生的理解。通过这种方式可以更进一步地激励学生动脑, 不但可以将书本上的知识牢牢掌握, 对于相关的深层的知识同样印象深刻, 并且这样可以更大程度地调动学生的积极性, 增强学生的成就感。

诸如此类的方法可以使学生增加学习编程的兴趣, 学生在初学程序代码时会觉得毫无头绪, 一团乱, 经过一段时间的学习他会感到原来编程也不是只有枯燥, 当他通过自己的努力去解决一个问题哪怕是极简单的一个问题的时候, 他也会觉得他学有所值, 学有所成, 成就感会促使他更深地去摸索相关知识, 为以后的学习打下坚实的基础和良好的开端, 也为学生在程序设计方面的学习提供更加充分的信心, 激励他们不断进步。

VB数据库及其应用探析 篇10

1 VB数据库分类

VB中的数据库, 基于强大的功能, 在社会的诸多领域均有所应用, 并具有较大的社会应用价值。对于VB中的数据库而言, 其具有三大功能:一是数据库管理;二是提供新的数据环境设计器;三是引入ADO。所以, 数据库应用技术成为现代科学技术发展的重要内容, 也是完善计算机技术的重要基础。

(1) 本地数据库。在具体使用的格式方面, VB与Microsoft Access是相同的。也就是说, 基于Jet直接实现数据库的一系列操作, 如创建。对此, VB数据库在很大程度上具有突出的优点, 无论是实现的灵活性, 还是操作上的速度, 都具有突出的明显性, 这也是本地数据库广泛应用的重要原因。

(2) ISAM数据库。当前, ISAM数据库发展迅速, 而Dbase等都是其中的主流数据库。在VB中, 上述的格式的数据库均可以进行有效地创建及操作。并且, 可以实现对Excel和文本文件数据库的访问, 这点非常的重要。

(3) ODBC数据库。对于这类数据库而言, 其包括C/S数据库。其中, Sybase、Oracle就是典型的例子。并且, 只要数据库遵守ODBS标准, VB都是可以支持使用的。如下图1所示, 是VB数据库应用程序的组成要素。

2 VB中数据库的创建途径

VB中创建数据库的方法途径是多样化的, 选择何种途径应针对实际情况而定。那么, 具体如下图2所示, 是VB中数据库的创建途径。

从图2我们可以知道, VB中数据库的创建途径 (方法) 有4种。对于这四种主要创建途径, 其具体内容详见如下表1。

3 VB访问数据库的原则

当前, VB访问数据库的方法是多种多样的, 其中最为常见的有两种:一是数据控件法;二是API。那么具体而言, 详见下图3。

从图3可知, VB访问数据库的方法主要有两种。但是, VB访问数据库应遵循相关的原则。对此, 笔者就VB访问数据库的原则, 作如下阐述:

(1) 安全原则。在开放的互联网时代, 实现VB访问数据库的安全性, 应强化相关安全措施的落实, 这是VB访问数据库的需求。如, 广域网比局域网的危险性大, 所以基于局域网络可以直接对数据控件进行利用。所以, 针对安全的实际需要, 应认真落实相关的安全构建, 以做到更加便捷的实现。

(2) 实现的简便性原则。在实际中, 如果实现所要花费的人力、物力过大, 且实现起来比较复杂。那么, 由此设计出来的应用程序, 其在维护等方面也肯定比较困难。如, 相比于RDO, RDC实现起来更加简易。

(3) 代码的重用性。在通常情况下, 代码是可以重用的, 这有效解决因代码频繁修改, 而造成实现的困难。例如, ODBC数据库就可在多种数据库类型下使用, 没必要对代码进行多次修改。当然, 运行效率的高低, 也同样非常之重要。如, 相比于RDO, 其运行效率就低于ADO。这说明:方法的选择, 应灵活多变。

参考文献

[1]王存来, 余冬梅.VB开发大型数据库应用系统[J].计算机工程与应用, 2009 (07) .

浅谈VB程序设计的教与学 篇11

【关键词】VB程序设计 学习方法 教学方法

中图分类号:G4 文献标识码:A DOI:10.3969/j.issn.1672-0407.2016.12.057

教与学是相辅相成的,只有在教学过程中多与学生沟通,不断总结归纳,找出适合学生的教学方法,才能够激发学生的学习热情,进而提高学生的学习效率,这是一篇VB程序设计课程之教与学,让我们来看看吧。

一、VB程序设计课程简介

Visual basic 6.0课程简单易学、功能强大、效果直接,因此成为各个高校计算机类课程的基础课程,也是全国计算机等级考试的考试语言之一,这也使这门课程得到了广泛的应用。老师如何教好这门课程、学生如何学好这门课程,就成为了所有计算机类的教师面临的问题,也是我们大家所要探讨的一个话题。本人根据自己十多年的工作经验,在学生学习过程中发现的一些问题、总结的一些经验、学习方法等问题在本文中提出来,以便大家进行交流、学习。

Visual basic 6.0是面向对象的可视化编程工具,并且是事件驱动的编程机制,它是在BASIC语言和Quick BASIC语言的基础上发展起来的高级程序设计语言,可以利用系统提供的大量可视化控件,按设计要求的屏幕布局,在屏幕上画出各种自己需要的图形对象“部件”,并对这控件设置相应的属性,再编写对象的事件代码。设计步骤大致可以分成以下几点:首先,新建一个标准EXE项目文件。其次,根据用户需求设计用户界面。再次,编写事件所需要响应代码。最后,测试运行效果,存盘,生成可执行文件。其中编写事件代码是起画龙点睛的作用,也是比较重要的地方,学习编程也就是学习如何编写代码。

二、每一位编程人员应养成良好的编程习惯

这样为以后学习其他的编程打下一个比较好的基础,也是形成一个良好的编程习惯。优秀的编程习惯总结如下:1.应该给所有的对象,方法、变量命名的时候,尽量用简单易懂、有意义、有含义的名字。2.应该学会给自己的程序写详细的注释,即给自己以后修改程序留下方便,也给其他人员更好的理解方式。3.应该在编程的过程中随时进行调试,及时修改、及时运行,有错必改。4.在调整控件的一些属性时,尽量在属性窗口进行设置,减少代码的输入。比如大小,位置,颜色等。5.学生在写程序时,同一功能模块的程序最好一气呵成,断开写的话,会打断编程思路。6.遇到比较复杂的程序或界面设计,我们最好先在纸上画出思路,把整体构思想好,用流程图表示出来,对于编程程序有良好的辅助作用。7.定义数据类型时,最好是使用一些固定的数据类型,尽量不要使用variant类型的变量。8.在功能够用的时候,尽量使用较小的控件及较少的代码。

三、老师在上课的过程中,应该注意的几个方面

1.如何激发学生兴趣,增强求知欲。有兴趣才能有动力,学生自身的兴趣可以直接的影响到学习的效果和学习的求知欲望。我们要在最开始的时候就要培养学生对VB的浓厚兴趣入手,在课堂中不断引入一些简单、有趣、容易上手、容易实现的实例,或者一些有实际意义的、有动画效果的实例,让学生在生动的实例中体会到编程的乐趣,使简单无谓的程序设计课不再枯燥乏味,真正做到学中有乐,这样获取的知识才能记忆深刻。

2.尊重认知规律,由易到难,循序渐进。现在各高校使用程序设计教材基本是使用了现实基本概念,在是实例的方式编程的教程,这是复合了教学所需要的教学体系,但是对于我们的学生来说,不符合人的认知规律,所以老师在上课的过程中,就应该了解人基本的认知规律,先把容易理解的实例拿出来给学生讲,更容易让学生接受。在VB程序设计教程中,我们应该先介绍VB的一些基本的控件、属性等。让学生对VB产生了兴趣,在把一些抽象难懂的概念如对象、事件、方法等搬出来,学生不仅容易理解,还可以结合前面所学的内容,对这些枯燥的知识更容易理解和接受,容易对这门课程增加信心。所以老师可以将讲授次序稍作调整,先引入较简单的实例,让学生跟着老师一起做,然后在此基础上加入较复杂的内容,这样学生的学习过程就是一个逐步深入的“螺旋式”上升的过程。做完后再总结归纳出这些概念的涵义,这样比一开始就讲出晦涩难懂的概念要有效得多。

3.使用任务驱动方式引导教学,培养学生自主学习的能力。任何课程的学习不能只是被动的接受知识,要在老师的引导下逐渐产生兴趣,进而化被动学习为主动学习,所以在教学的过程中,可以通过实例教学法,一个实例就是一个任务,要完成这个任务需要哪些基本知识,涉及到哪些基本概念,然后学生带着疑问去理解消化概念,然后找出解决问题的办法。老师应该不断的给学生布置一些难度各异的程序,学生每编完一个,就有一点小小的成就感,就会激励他们去学习新的东西。这样学生的自主学习的能力就得到发挥。俗话说,“授人以鱼不如授人以渔”,讲的就是这个道理。

4.在教学中抓住重点,做好归纳小结。通过多年的教学实践,我发现不是所有的知识点都要讲到,开始教学时可以选择最基本最重要的内容,而且要讲的尽量简单,使得学生能够容易理解,通过做一些基础的题目使学生迅速掌握程序设计的基本步骤,对程序开发有一个感性的认识,其他暂时还用不上的内容可以一带而过,这样可以避免花大量时间在目前用不着的内容上,集中精力在重点内容上,提高学习效率。要引导学生尽快获得全书的整体印象,对于其他细节内容则可以在进一步的学习中慢慢消化。定期做好归纳总结,每学完一个章节,都要回过头来看看本章的重点部分在哪里,各章节之间的有什么联系,因为知识是相通的,不是孤立的。各章节之间一定是层层相接,循序渐进的,只有做好归纳小结才能进步和提高。

5.开展程序设计竞赛活动,调动学生学习热情。开办程序设计小组也是提高大家学习兴趣的一种方式,可以组织一部分编程能力强的同学参与一些小型程序的开发,这样既可以培养编程高手,又可以与社会实践相结合,使得学生能够学有所用,使他们尽快适应社会需求。鼓励学生参加VB等级考试,进一步深化,补充教学内容。定期开展程序设计大赛,让感兴趣的同学挑战一下自己的编程能力,挖掘自身的潜力,进而可以发现一些编程精英。

总之,教与学是相辅相成的,只有在教学过程中多与学生沟通,不断总结归纳,找出适合学生的教学方法,激发学生的学习热情,进而提高学生的学习效率,培养出具有现代信息素质的综合性人才。

参考文献

[1]吴长海,陈达.Visual basic程序设计教程.湖北科学技术出版社,2007年1月第一版.

VB处理运行时错误方法的应用 篇12

VB能够帮助用户找到编译和语法错误,并且提供了调试工具供查找和排除错误。但有些错误只在运行时发生,且不能百分之百地预防。如果在集成环境下运行,系统会提示错误信息,可单击“调试”按钮查询错误。如果是可执行文件独立运行,显示错误信息后程序将非法终止。

如何不让用户看到这类错误信息;或者提供给用户有关错误的说明,并给出改正错误的方法;或者让应用程序自行更正错误等,这些都只有通过编写错误处理程序来完成。

1 错误处理程序

错误处理程序是应用程序捕获和响应错误的代码。对于可能出现的任何错误,都要添加错误处理程序。错误处理程序包括三步:

1)当错误发生时,使用OnError语句将应用程序跳转到标记错误处理程序开始的标号处;

2)编写错误处理程序,对可能预见的错误作出响应。通常使用Error对象中的Number属性值分类进行处理;

3)退出错误处理程序,可使用Resume语句设置返回的位置。

1.1 设置错误捕获

使用OnError语句指定错误处理程序,当发生错误时激活错误捕获过程,并将控制权交给错误处理程序。只要包含错误捕获的过程是活动的,错误捕获始终起作用,也就是说,直到该过程执行ExitSub、Exit函数或EndSub、End语句时,错误捕获才停止。OnError语句的特例OnError Goto 0则可以关闭某一错误捕获。

要设置一个跳转到错误处理程序的错误捕获,可用“OnError Goto标号”语句。

OnError语句用于启动错误处理程序并指定该程序在过程中的位置,也可用来禁止错误处理程序,语法有三种形式:

OnError Goto Line启动错误处理程序,该错误处理程序从Line参数指定的标号开始。如果发生运行时错误,控制权就会跳转到标号处,并激活错误处理程序。指定的标号必须与OnError在同一过程,否则会发生编译错误;

OnError Resume Next当发生运行时错误,控制权转到紧接着发生错误的语句之后的语句,并在此继续执行。这个语句不顾运行时错误,继续执行程序。因些可以将错误处理程序放置在错误发生的地方,而不必将控制转移到过程的其它位置。在调用另一个过程时,OnError Resume Next语句成为非活动的,如果希望在程序中进行联机错误处理,就要在每一个调用的程序中执行OnError Resume Next语句;

OnError Goto 0禁止当前过程中任何错误处理程序,停止在当前过程处理错误。即使过程包含编号为0的行,也不把行0指定为处理错误代码的起点。如果没有OnError Goto 0语句,在退出过程时,错误处理程序会自动关闭。

1.2 编写错误处理程序

编写错误处理程序的首先是添加行标号,它标志着错误处理程序的开始。行标号后必须加冒号。通常把错误处理代码放置在过程最后,在紧靠行标号前方处加上Exit Sub语句。这样,如果没有出现错误,就不会执行错误代码处理。

错误处理代码通常以Case或If…Then…Else语句的形式出现。指明可能会发生什么错误并对每种错误提供操作方法。为了处理所有意想不到的错误,应使用Else或Case Else语句处理其它情况。

错误处理程序通常依靠Err对象的Number属性值来确定错误的原因。在任何错误发生之前,或在调用可能会导致错误发生的过程之前,错误处理程序应该先测试或存储Err对中象中相关的属性值。Err对象常用属性如表1所示。

处理错误之后使用Clear方法来清除Err对象。

1.3 退出错误处理程序

退出错误处理程序通常使用Resume语句,它首先清除Err对象的错误号,然后将控制权交给其它语句,Resume语句有以下语法形式:

Resume 0重新执行出错语句,改正了错误后,可用它重复操作。

Resume Next执行紧接着出错语句后的那条语句。通常用于错误发生在包含错误处理程序的过程之外,用来执行调用出错语句之后的那条语句。

Resume Line执行由Line指定的那条语句,Line必须与错误处理程序在同一过程中。

Resume和Resume Next的处理过程如图1所示。一般来说,如果错误处理程序能修正错误,可以使用Resume,在错误处理程序不能修正错误时使用ResumeNext。

1.4 错误处理顺序

当错误发生在没有错误处理的过程内部,或发生在活动的错误处理程序内部时,VB6将返回到调用该过程的上一层寻找错误处理程序,如果找到则执行,找不到继续向调用列表的上一层查找错误处理程序,如果在整个调用列表中都没有遇到错误处理程序,将显示默认的错误信息并终止程序。

如果查找到一个激活的错误处理程序,就执行该错误处理程序,其过程就好象错误是发生在有错误处理程序的过程内一样,如果在错误处理程序中执行Resume语句,就再次执行引起错误的调用过程。

1.5 自动生成错误

如果错误处理程序的错误范围没有包括实际产生的错误,特别是如果错误处理程序中执行Resume语句时,在具有错误处理程序的过程内就会产生意想不到的错误。这时,过程可能会无止境地执行下去。为了防止出现这种情况,可以在程序内的Case Else语句中使用Err对象的Raise方法。这种方法能在错误处理程序内再生成一个错误,从而迫使VB6通过调用列表搜索能够处理该程序的处理程序。

2 结束语

如何处理VB运行时错误,很长时间都是应用程序开发者困惑的问题。本文以VB6的语法为例,提出了设置错误捕获、编写错误处理程序、退出错误处理程序等方法,对VB程序的开发者具有很好的参考价值。

参考文献

[1]张万颖.SQLServer语言在VB6.0数据库程序开发中的应用[J].电脑知识与技术.2009,5(8).

[2]刘新瑞.VisualBasi程序设计教程[M].北京:电子工业出版社,2003.

[3]Harvey M.Deitel.Visual Basic.NET程序设计专家指南[M].北京:机械工业出版社,2002.

上一篇:中小企业的战略管理下一篇:新的历史起点