首页 > 文章中心 > vb程序设计论文

vb程序设计论文

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇vb程序设计论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

vb程序设计论文

vb程序设计论文范文第1篇

一、学情分析

学情分析是教学设计系统中“影响学习系统最终设计”的重要因素之一。在教学设计中,依据教学设计理论,认真研究学生的实际需要、能力水平和认知倾向,“为学习者设计教学”,可优化教学过程,更有效地达成教学目标,提高教学效率。vb的开课学期一般在大一第二学期,按照专业培养计划,计算机网络技术等专业在新生入学的第一学期就开设了《C语言程序设计》这门课。对于从未接触过语言类课程的大一新生来说,C语言的学习,颠覆了大部分学生的思维方式,学生普遍感到很吃力,有相当一部分同学开始对程序类课程感到害怕。

二、教学方法探讨

1.消除学生的畏难情绪

为了打消学生的畏难情绪,对于VB教学,应首先与学生谈VB,而不是教VB。首先,要让学生明白VB和C语言是完全不同的两种编程方式,不要因为害怕C语言,而害怕VB。教学中,通过演示一个简单的例子,向学生演示只需要两行代码便可制作出美观的界面和可爱的功能。比如:示例1:制作美观的界面,实现窗体上的文字自动或手动的向下移动。突现VB相对于C语言的简单易懂,引导学生一步步完成所需功能。最后,启发学生:如果想让文字上移,如何修改程序?如果想让文字左移或右移,如何修改程序?如果想让文字左右交替移动,又要如何修改程序?通过上述示例的讲解,使得学生对VB有一个全新的认识——直观、简单、易学、易用。其次,要让学生了解为什么学习VB,VB对于他们有多么重要。这门课的开设除了承上启下其他专业课程外,还有一个重要的作用就是为了让学生能够参加计算机二级考证,VB在二级考证中相对比较易学易用。再次,告诉学生,有了C语言的基础,代码的编写会更为容易。从而激发学生学习的信心。

2.提高学生的学习兴趣

在教学过程中应尽量使用简单易懂的语言和示例,提高学生的学习兴趣,帮助学生理解知识点。比如,在讲属性、方法和事件这三个很枯燥的概念时,可以通过生活中有趣的示例来进行解释。示例2:通过“蟑螂从女生脚上爬过”的事例,讲解属性、方法和事件的概念。蟑螂从女生脚上爬过时,女生的脸色变红,脸的颜色为红色就是属性;女生尖叫起来,女生跳起来,这是女生本身做出的动作就是方法;蟑螂爬过女生的脚,这是外部事物对女生做出的动作,就是事件。通过这种类型的示例,成功吸引了学生的注意力,也帮助学生理解了这几个难懂的概念。在讲属性、方法、事件的书写格式时,也可将这个示例写成VB伪代码的形式:属性的表示方法:女生.脸的颜色=红色方法的表示方法:女生.尖叫啊事件的表示方法:女生_蟑螂爬过至此,学生对VB程序一下就理解了。

3.实践中学习,项目中巩固

要想学好程序设计类的课程,大量的练习是必不可少的。因此,将所有知识点都融入到一个个的项目实例中。课堂上边演示边制作,课后布置一些举一反三的题目,让学生自己在课后完成。

vb程序设计论文范文第2篇

关键词:程序设计;教学方法;能力

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)31-0922-02

An Exploration of VB Program Design Teaching Methods

REN Hong-jian

(Nantong University, Nantong 226019, China)

Abstract: In teaching program design, finding new ways to solve the dryness and complexity of program design has always been a fascinating subject for many computer science educators. This article provides several ideas on the following aspects of teaching VB program design: how toimprove course quality, how to enhance the teaching effectiveness, how to nurture and strengthen students’ ability and creativity in analyzingand solving a design problem, etc.

Key words: program design; teaching methods; aptitude

1 引言

掌握和应用好计算机知识是当代大学生必须具备的基本条件,为此,国家教育部根据高等院校非计算机专业计算机培养目标提出了“计算机文化基础”、“计算机技术基础”、“计算机应用基础”三个层次的教育体系。VB属于第二层次范畴的计算机编程语言,已被列为公共必修课程。

程序设计语言类课程的指导思想是:使学生通过学习既掌握高级编程语言的知识、编程技术和基本算法,又掌握程序设计的思想和方法,更具备利用计算机求解实际问题的能力,能灵活运用高级语言进行程序设计。其重点是培养学生掌握程序设计的思想和方法,难点是作为程序设计的入门课程,应当如何引导学生突破传统的思维方式,培养程序设计的新思想。本文结合教学实践与理论思考,谈谈在教学上的一些经验和体会。

2 VB教学中存在的问题

第一,课堂教学模式单一。目前,Visual Basic 课程的教学模式主要是使用多媒体教室,教师采用Powerpoint课件加实例演示的教学模式,该模式比以前的“粉笔”+“黑板”教学模式有了很大的提高,加大了课堂的信息量,更直观形象了。但如果仅采用这样单一的教学模式,学生的学习过程还是以教师为中心,课件的信息量很大,授课速度又快,学生的自主学习和协作学习的积极性仍然没有得到充分调用;第二,上机实验过程中,学生是自主学习,忽视教师的引导作用。首先,在上机实验中,教师布置上机的任务后,学生自行练习,教师就忙于解答学生提出的问题,而不引导全局。在这种放任学生自主练习的状况下,整个上机实验过程节奏松散,而实验任务对大部分同学来说台阶过高,于是学生感到很茫然,便很快就丧失了学习兴趣,甚至厌恶上机。其次,上机人数又多,学生遇到的问题往往得不到教师的及时解决,于是挫折感增加,产生厌烦心理。

3 教学方法的探索

3.1 实例教学,培养学生的学习兴趣

程序设计是一种构造性的技术,对于学生来说,程序设计的思维方式和概念都是全新的,学生接受起来很困难,因此必须研究程序设计的教学方法。教学的过程是师生交往、共同发展的互动过程。在程序设计教学中要从学生的兴趣入手,利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。俗话说:教无定法,学无定法。打破课本原有以知识的逻辑结构体系为顺序组织课堂教学的方式,以学生的已有知识为基础,按照学生的认知规律,遵循先易后难、先具体后抽象的原则,通过观看、模仿、理解、总结、提高五个阶段进行教学。让学生成为学习的主人。

兴趣是最好的老师,兴趣决定了教学效果的好坏。让学生明确学习目的很重要,而教师还要在教学过程中去提高学生的学习兴趣,使学生对学习本身或过程有兴趣,而不是在外界剌激下只关心学习的结果,这直接影响到学生对这门课程的学习效果。教学中仅仅单纯地传递教材内容是不够的,在第一堂课中,教师应从学生的兴趣入手,利用其对事物的好奇心,选择一些有趣的、有实际意义的程序,从一开始便激发学生的学习兴趣。

3.2 创设问题情境,激发学生学习的主动性

在教学过程中提出问题,集中学生的注意力,促进学生主动思考、主动探索,可以使学生在学习的过程中成为主体。实际上,问题是最好的老师,是学生学习的引导者,没有问题便没有深入,老师要引导学生在解决问题中学习,即提出问题,留给学生时间思考、讨论、解决问题,从而更深入地展开学习。实践证明,这种教学方法充分调动了学生学习的积极性和主动性。

例如,在讲数组的概念时,老师先设置问题编程计算10个数的和。根据以前所学,学生会想到需要定义10个变量用于存放这10个数。再进一步要求计算50个数的和。这时候如果再定义50个变量,则会非常麻烦,学生此刻开始思考该如何合理地声明变量。再深人一步求100个数的和。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够很容易记住数组的性质,还能够知道在什么情况下使用数组,事半功倍。

3.3 举一反三,培养学生的创新思维

编程教学的根本目的是要使学生能够独立地编写程序,而这正是编程教学中最大的难点。在实际教学中,笔者采用以下几步措施来逐渐使学生能够独立编一些简单的程序:第一步精讲例题,详细分析其算法,逐一列出解题步骤,给出完整程序;第二步精心挑选很多程序题,让学生阅读程序,写出程序执行结果,这一步十分关键,读懂理解人家的程序是以后自行独立编程的前提;第三步是让学生做程序填充题和程序改错题,即给出相应程序,把其中一些关键地方留空,让学生填充,或在程序中提供一些错误语句,要求学生修改正确;第四步出一些类似例题的编程问题,让学生模仿完成;第五步让学生独立编写简单的程序。例如,为了让学生独立解决求s=1-1/2+1/3-1/4+...+1/99-1/100的程序,首先详细分析了求s=1+2+3+...+99+100 的编程,程序如下:

Dim i As Integer

Dim sum As Integer

sum=0

For i=1 to 100 step 1

sum=sum+i

Next i

Print "sum="; sum

然后,将上题中“For i=1 to 100 step 1”这一语句略作改动:①For i=1 to 100 step 2;②For i=0 to 100 step 2;其余不变,让学生阅读程序并分析。程序①实际上是求100 以内奇数之和,程序②实际上是求100 以内偶数之和。再将上题中sum=sum+i 这一语句改成sum=sum+1/i,其余不变,那又如何呢?学生很容易得出程序实际上是求s=1+1/2+1/3+...+1/100,进一步引导学生,这个程序有什么问题?答案是由于求和结果不可能是整数,故语句Dim sum As Integer 应该改成Dim sum As Single。再引导学生思考,要求s=1-2+3-4+...+99-100的编程,上题中循环体sum=sum+I 应该怎样改动? 结合相关数学知识,学生很自然得到正确结sum=sum+i*(-1)^(i+1)。有了上述的层层铺垫,相信学生是能够独立完成s=1-1/2+1/3-1/4+...+1/99-1/100 的程序代码设计的。

能独立编程后,还应善于总结。有些编程题,表面上看起来好象不一样,它们实质上可以用一道通用的程序来实现,只要改变其中的一条语句就可以了。如:

例1:编程求任意三个数中的最小数。

例2:编程求任意三个数中的最大数。

例3:编程求任意三个数中的中间数。

例4:编程将任意三个数从大到小输出。

例5:编程将任意三个数从小到大输出。

这五个编程题,虽然不一样,但只要会编写其中的一道题程序,其它题目只要在这道题程序的墓础上,修改最后的PRINT语句就可以了。

4 根据课程特点,做好归纳小结

程序设计的教学,一般都是从局部分散地讲,如果不归纳总结,学生则难以形成完整、清晰的框架,因此,教学中要及时归纳、做好小结。归纳可以是一个控件多方面(如事件、属性设置等)的归纳,也可以是对一种结构的归纳(如分支结构的归纳)。总结可以是一课的总结,也可以是几课的总结。归纳总结的形式也可以多种多样,可以使用文字概括,也可以使用图示总结,重难点要着重强调。这种归纳总结,一方面有利于学生理解知识、融会贯通,顺利实现知识迁移,另一方面对于提高学生的学习效率也有很大的帮助。

总之,教学方法在程序设计教学中举足轻重,它制约着程序设计教学的效率。虽然教无定法,但万变不离其宗,绝不能离开程序设计的教学内容和教学目标、脱离学生的知识背景和认知规律。采取符合学生认知规律的、科学的教学方法,必然会提高教学效率,取得事半功倍的效果。

5 不断培养学生的自学能力

在教学中笔者还注意不断培养学生的自学能力。自学能力在大学生能力层次当中属于最重要最基本的,首先,有了自学能力就可以通过课外阅读,学到课本里没有的东西,知识丰富了,眼界也开阔了,对于活跃学生的思想,提高科学思维能力大有好处:它可以使学生打破老师和课堂的限制,在学习上获取更大的自由。其次,学生在学校里生活毕竟是短暂的,现在提倡终身教育,将来不论他们从事哪种工作,都需要在工作中不断提高文化科学水平,这种提高主要靠自学,即自已阅读有关书籍和报刊,运用已掌握的知识,去认知新知识,自觉发现问题,再归纳概念,作出判断,进而解决问题。再次,针对计算机的飞速发展、日新月异的特点,自学能力的成长和提高,显得更为重要。

在不断的教改实践中,笔者始终坚持一个指导思想,即充分相信学生的学习潜力,减少学生对教师和教材的依赖性,激发学生的学习兴趣,提高学生学习的主动性,培养学生的好奇心,从而发展学生的分析能力,观察能力和独创能力,使学生真正成为课堂的主体。

参考文献:

[1] 牛又奇,孙建国.新编Visual Basic 程序设计教程[M].苏州:苏州大学出版社,2002.

[2] 沈国珍.《VB 程序设计》课堂教学的探索与实践[J].福建电脑,2007(4).

vb程序设计论文范文第3篇

[论文摘要]针对目前学校在程序设计类课程教学中普遍存在的一些现象,分析教学过程中存在的问题,并以《VB程序设计》课程的教学为例,结合教学实践,提出相应的改进方法,经实践证明,有效地提高了教学质量。

程序设计类课程是计算机专业和其他相关专业学生必修课程之一,对学生锻炼抽象思维、增强对后续课程的理解能力有着不可或缺的作用。现在无论是计算机专业还是非计算机专业,大部分都开设了《VB程序设计》的课程。本课程的目的与任务是使学生通过本课程的学习,掌握使用VB开发Windows应用程序的一般方法和特点,理解Windows应用程序的基本概念、主要功能和Windows应用程序开发的基本思想,能够根据实际需要自行开发简单的Windows应用程序,并为今后进一步使用其他面向对象的可视化开发工具开发Windows应用程序打下良好的基础。但在教学中,会出现这种现象学生可以很快完成和例题相似的题目,但对一些稍微复杂些的程序设计,根本不知道怎么样进行设计。怎样才能调动学生学习的积极性和提高程序设计的能力?本文讨论了在VB程序设计课程中使用一种基于软件开发、整体实现的“项目教学法”的一些实践与探索。

一、程序设计课教学面临的问题

在程序设计课教学中,多数教师采用的是传统的教学模式,即:以编程语言的语法教学为主线,教师只是告诉学生那种语言有些什么命令,语言的各种语法,学生只是被动地接受,大量的新专业名词使学生难以掌握,在具体的编程及上机操作时,往往出现无从下手、错误百出、不会调试等情况,还有些学生照着书上能做,脱离书本什么也不会。长期以往,会使学生认为程序设计课程十分深奥、那样的可望而不可及,最终会导致学生对课程产生厌倦的思想,即使学习完课程,学生的程序设计思路非常狭窄,解决实际问题的能力较差,不利于学生学习兴趣的培养以及学生思维能力、创新能力、独立分析问题和解决问题的能力的提高。

二、“项目教学法”的实践与探索

“项目教学法”是以一个较完整的软件开发案例为中心,整个学期的教学都围绕这个案例的设计进行讲解,通过对案例的讲解,将程序设计中需要学习的各个知识点融入到案例中,这样就将理论和实践完全结合起来,加深了学生对知识点的理解和培养了学习的学习兴趣,并引导学生自行对案例进行完善和修改,使学生程序设计能力得到提高。具体实施方案如下:

(一)软件开发案例的选择。要准备好一个具有实际应用功能,适合学生掌握的软件开发案例,案例不能选择太大太复杂的设计,并且案例中涉及的内容要是学生比较熟悉的,软件功能不能过于复杂,但必须覆盖课程中所有的知识点,在讲解时选用有代表性的功能模块。可选用学生成绩管理系统、学生选课管理系统、酒店管理系统等MIS系统。

(二)以项目开发形式制定教学计划和教学进度。在制定课程教学进度的时候要结合项目来进行,教学计划和教学进度的设计应按软件设计过程的顺序来进行,在课程中可讲解有关软件工程方面的相关知识。

(三)精心准备教案。根据已经制订的教学计划和教学进度,将课程中的各知识点较完整地总结归纳,做成电子教案。在讲解软件设计的时候,涉及到某知识点的时候,便可打开该知识点的电子教案进行演示讲解,便于学生理解掌握知识点。

(四)鼓励学生变换代码。学生在许多情况下只会模仿老师讲解的程序完成,并没有真正理解程序代码的应用,不知道为什么要这样写,在讲解过程中,应该鼓励学生使用其他代码来完成某些功能,促进学生对程序的理解,提高学生的创新能力。

(五)作业的设计。在知识点讲授完后,应设计一个与讲的例子难度相当的作业,让学生思考独立完成作业,学生完成作业后会有一种成就感和强烈的继续学的愿望。教师可以通过学生的设计,给他们正确的引导。 转贴于

(六)课程教学后期让学生参与项目开发。在课程的基本知识点讲授完,学生也掌握比较透彻后,可让学生参与到项目开发中,将项目中一些功能分成多个模块,以实验的形式分配给学生,让学生也可以在课余的时间进行开发。

(七)改变考核方式。考核方式应该灵活多样,要甩掉“学为所考”的思想包袱。程序设计课程本身是理论学习与动手操作于一体的课程,不能一味地追求理论知识,而忽视动手操作能力,因此,应对学生的评价贯穿到整个学期的课程学习中。考核应该由平时作业、实验设计作业、期末考试等几项组成,平时考核可分阶段进行,要让学生注重学习的过程,而不是考试的结果。

(八)课程实训。在课程的知识点全部讲授完成后,安排2-4周的实训,让学生分组自由选题来进行项目的开发,学生在开发时应分组进行,让学生分组进行开发可以发发扬团队合作精神,便于优势互补,有助于学生以后走上工作岗位,适应开发工作。在实训中,应以学生的设计意见为主,充分发挥学生的能力,教师只给予相应的建议。

三、实施过程

这里以设计管理系统的登陆窗体为例,介绍“项目教学法”中一个模块教学的具体实施过程。登陆窗体的功能是输入正确的用户名和密码通过身份验证,进入主窗体。登陆窗体涉及到的知识点如下:1.窗体(Form)、标签(Label)、文本框(TextBox)、命令按钮(Command)等控件的常用属性的设置。2.窗体、标签、文本框、命令按钮的常用方法。3.变量与数据类型。4.IF语句及一些常用的函数的使用。

四、总结

系统登陆窗体的设计分下面几个阶段进行:第一阶段,对登陆窗体的设计和各控件的属性进行讲解。第二阶段,引入新知识点。针对新知识点在本例中的应用对的各个新知识点进行详细的讲解。第三阶段,上机练习。1.让学生模仿教师的设计过程做一遍,输入程序代码,加深印象。2.鼓励学生提出问题,用新的方法来完成程序代码,同时提出加强程序代码功能的方案,让学生来完成,使学生加强对新知识点的理解和运用。例如,能不能在输入密码时限定输入密码次数。3.布置作业,布置与知识点相关的作业,让学生通过查资料自己完成作业,对作业进行批改。第四阶段,对程序提出新的方案,如用户名和密码的存储采用数据库,密码的加密等,为以后的知识讲授做准备,同时给学生留下印象,在讲到这些知识点的时候再来改进程序。

“项目教学法”被应用到程序设计类课程的教学中,使教学与生产结合起来,学以致用,注重培养学生动手操作能力,学生普遍反映采用了“项目教学法”的教学模式后开发能力提升很快,专业知识得以巩固,相关知识点的运用印象特别深刻,在比较真实的工作环境下,既学到了知识,又学会了分析问题、解决问题的方法。在《VB程序设计》课程应用“项目教学法”的教学模式的教学过程,也发现了一些问题,虽然运作难度较传统教学模式较大,但值得进一步的实践和探索。

参考文献:

vb程序设计论文范文第4篇

关键词:SolidWorks;VisualBasic;圆锥齿轮;实体造型

一、设计的主要内容及技术指标和技术路线

一)主要内容

基于Solidworks软件使用VB高级语言程序,对常用件齿轮进行参数化设计,实现给定参数的圆锥齿轮的自动化生成系统。

二)技术指标

1、设计参数要符合实际生产要求;

2、生成图形要符合国家标准规定;

3、技术路线

对基于Solidworks圆锥齿轮参数化设计的研究,准备从以下几个方面着手:

(1)系统界面模块

该模块的作用是采集直齿圆锥齿轮实体造型所需的具体参数。

(2)三维CAD软件接口模块

该模块提供在OLE Automation层上所有与三维CAD软件SolidWorks通讯的函数。CAD软件的API函数以类的形式封装起来,在直齿圆锥齿轮造型时,通过这些函数驱动CAD软件生成直齿圆锥实体。

(3)结构计算模块

根据界面模块的用户输入的参数,计算直齿圆锥齿轮的结构参数。

(4)齿形计算模块

该模块是整个系统的核心,可以完成直齿圆锥齿轮齿形计算。通过计算得到特定截面的齿廓参数,为齿形生成模块准备所需的数据。

(5)结构实体生成模块

该模块应用三维CAD软件Solidworks的基本特征,如拉伸(Extrude)、旋转(Revolve)和圆周阵列(Circular Pattern)等操作,按照结构类型计算模块输出的参数,生成圆锥齿轮的结构实体部分。该操作的结果类似生成直齿圆锥齿轮的毛坯。

(6)齿形生成模块

该模块应用三维CAD软件Solidworks的基本特征,如放样切割(Template Knifing)、圆周阵列(Circular Pattern) 、拉伸(Extrude)和旋转(Revolve)等操作,按照结构类型计算模块输出的参数,生成直齿圆锥齿轮的结构实体部分。然后利用圆周阵列可画出全部齿形。

2 圆锥齿轮实体造型系统

参数化三维实体造型设计是以变量几何和生成历程树为基础,以尺寸驱动为特征的一种三维建模方法。其基本过程是:首先利用草图功能勾画零件基本形状,然后根据设计要求标注必要的尺寸,最后修改尺寸值,驱动模型变化以生成需要的零件模型。参数化三维实体建模的目的是,通过修改尺寸而快速生成新的三维实体模型。

圆锥齿轮的轮齿有直齿和曲齿两种类型。直齿圆锥齿轮易于制造,适用于低速、轻载传动的场合,而曲齿圆锥齿轮传动平稳,承载能力强,常用于高速、重载的场合,但其设计和制造较为复杂。本论文只讨论直齿圆锥齿轮。

(3)齿形计算模块

渐开线齿廓的数学模型。我们在直角坐标系下,用渐开线的直角坐标方程式,计算渐开线轮廓上各点坐标值,然后在用样条曲线绘出齿轮的一个齿廓。

(4)结构实体生成模块

该模块应用Solidworks的拉伸、旋转和圆周阵列等操作命令,按照结构类型计算模块输出的参数,生成直齿圆锥齿轮的结构实体部分。该操作的结果类似生成直齿圆锥齿轮的毛坯。

1)齿轮各基本尺寸计算

如图4所示,以点1为坐标原点,轴线为一坐标轴建立直角坐标系,依次求出2、3、4、5、6、7的坐标,由1—2—3—4—5—1的连线构成直齿圆锥齿轮的二维结构,再用旋转轮廓线的方法既可生成圆锥齿轮的实体。

2)圆锥齿轮的实体建模

再用旋转轮廓线的方法生成圆锥齿轮的实体

3)结构实体生成模块

2.2 系统运行窗体的创建和应用

1) 窗体的建立

2)程序的连接

用VB编程进行的二次开发,要将VB和SolidWorks连接来,编写VB代码前,创建SolidWorks和VB对象,启动运行SolidWorks。这样就可以在VB的环境下利用SolidWorks对象及其下级对象的属性和方法,完成用VB语言在环境中草图和三维模型图的绘制。下面给出VB语言在SolidWorks环境中绘制圆锥齿轮三维图的部分子程序代码:

2.3 程序的调试及运行

1)运行程序过程

在SolidWorks中,单击[工具]/[宏]/[运行],选择*.swp出现程序运行界面。通过在VB窗口中填写圆锥齿轮参数后,单击‘生成’按钮,发现错误代码91(对象变量或with块变量未设置)。

经过调试发现系统默认的part语句类型出现错误,原因是程序中的part为完全定义造成运行错误,经过重新定义Part As object ‘对象型变量’,重新逐句调试,更改变量类型,最终解决了问题。

2)运行结果

3 结束语

(1)系统完成了圆锥齿轮实体的变量化自动生成。

(2)建立了VB界面窗口连接Solidworks应用程序,进入Solidworks设计环境;从设计窗口中直接输入参数,可直接运行参数化造型设计程序,得到所需的三维圆锥齿轮实体。

参考文献

[1]王隆太,戴过洪.机械CAD /CAM技术[M].北京:机械工业出版社,2005.

[2]王文彬,.用VB实现SolidWorks对零件的参数化设计[J].机械报,2003,30(6)

[3]曹岩.solidworks机械设计实例精解[M].机械工业出版社,2006.

vb程序设计论文范文第5篇

【关键词】VB编程;汽车衡软件;VB应用

1.引言

Visual Basic(简称VB)是Win-

dows环境下简单、易学、高效的编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人员采用的开发工具。VB提供了良好的界面设计能力,提供了强大的数据库访问功能和微机串口通信功能。完全能够满足汽车衡管理系统的数据采集、处理和存储要求。下面以SCS微机汽车衡称重软件为例,叙述VB软件对系统中几个重要功能程序的设计。

2.管理软件功能需求

SCS微机汽车衡称重系统主要通过计算机串口连接汽车衡称重仪表,处理仪表所获取的汽车重量信息,达到管理汽车称重数据的目的。系统软件要求达到的功能主要有:

(1)设置管理权限,达到操作人员分级登录操作。

(2)记录、贮存并打印每一次称重结果。包括车号、货物名称、运货单位、驾驶员、毛皮重、净重、进出厂过磅时间、司磅员等内容。

(3)查询打印功能。可按车号、时间范围、司磅员、货物种类、驾驶员等或任意组合查询过去称重记录,并可打印输出。

(4)统计打印功能。可对称重结果自动进行统计,并打印各种报表,如月报、年报、分类报表等。

(5)数据维护功能。包括记录限制修改和删除,数据备份和导出。

在这个系统软件中,重点是编写数据采集的串口通信模块和数据库操作访问功能程序。用Visual Basic编程语言来编制这些程序,也就要充分理解串口通信和数据库访问相关的控件特点和应用技术。

3.数据采集程序模块的设计

3.1 选择MSComm控件实现串口通信

用VB开发串口通信程序常用两种方法,一种是利用WINDOWS的通信API函数实现,另一种是采用VB内集成的MSComm通信控件实现。在实例中选用MSComm控件实现串口通信的编程,该控件具有丰富的与串口通信密切相关的属性和事件,提供了对串口的各种操作。在通信过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此用其实现微机串口的数据通信相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通信。

3.2 仪表参数及其数据通信协议

以微机管理系统连接汽车衡XK3

190-A9称重显示器为例。该仪表可连接8个350Ω或12个700Ω的高精度称重传感器,用于测量汽车重量数据。仪表测量准确度为Ⅲ级(N=3000)按显示分度值设置不同,测量范围最大值100吨。该仪表具有RS-232/RS422(选配)串行通讯接口,能与微机进行串口数据通信,实时传送检测数据。

该仪表串口数据通信协议是:数据传输速率为600/1200/2400/9600bps

(可选),数据格式(10位):1位开始位,8位数据位(ASCⅡ编码),1位停止位,无奇偶校验位。通讯方式有连续方式和指令方式两种,这里只列举连续通讯方式中的格式。

所传送的数据为仪表显示的当前称量(毛重或净重)。每帧数据由10组数据组成。格式如表1。

3.3 部分参数的技术说明

(1)为满足各种仪表参数和计算机不同运行环境的需要,把串口通信的一些参数用数据库的表进行存放,程序通过读取表数据来进行通信环境参数的设置。这样做用户可以修改数据表的数据来改变运行参数,以满足实际需要。

(2)为了提高接收数据的读取速度,实现实时监测功能,设置MSComm1的属性RThreshold=4,接收缓冲区收到四个字节产生OnComm事件;InputLen=1,每次读取一个字节。设置接收数据模式采用二进制形式,即InputMode=comInputModeBinary。设置InBufferSize=50(设置接收缓冲区为50字节),OutBufferSize=2(设置发送缓冲区为2字节)。

(3)定义一个Byte类型数组变量来存放重量数据值。注意用Input属性读取数据时,还要看仪表输出数据位格式的编码方式。压缩的BCD码存入Byte类型变量,VB系统只按十进制数处理,这要通过一个简单算法换算,解压BCD码才能还原成十进制表示数值。本例ASCⅡ编码直接赋值给数组Byte类型变量。

3.4 源程序代码

系统数据库db1.mdb建立一个名为“串口”的表,字段分别为串口、波特率、校验、停止位、数据位、流控制,记录串口运行参数设置信息。在窗体中添加名为MSComm1的MSComm控件,名为Label7显示重量数据的标签控件,名为Text3、Text4存贮毛重、皮重的文本框控件等。

串口初始化模块:

Private Sub Form_Load()

mPort = rec(“串口”)‘赋值串口端口号,本例为COM1

MSComm1.Settings = rec(“波特率”) & ",n,8,1" ‘无奇偶校验,8位数据位,1位停止位

MSComm1.InputLen = 1

MSComm1.RThreshold = 4

If MSComm1.PortOpen = False Then ‘判断串口端口是否打开

MSComm1.PortOpen = True ‘打开端口

Else

MsgBox “串行端口号已被占用,请选择其它端口!”, vbCritical + vbOKOnly, “系统信息”

Exit Sub

数据读取、转换及显示模块:

Private Sub MSComm1_OnComm()

Dim buf() As Byte

‘定义一个数据变量

If mEvent = 2 Then ‘判断接收缓冲区内字符数达到Rthreshold指定的值

buf = MSComm1.Input

‘读取一个字节

If buf(0) = 2 Then

‘判断是否为开02(XON) 开始

c2 = buf(1)

‘以下读取各位重量数据分别赋值

c3 = buf(2)

c4 = buf(3)

c5 = buf(4)

c6 = buf(5)

c7 = buf(6)

c8 = buf(7)

以下为对各位字节数据进行转换和组合显示

shuju = Chr(c2) + Chr(c3) + Chr(c4) + Chr(c5) + Chr(c6) + Chr(c7) + Chr(c8) Label7.Caption = shuju ‘赋值显示

If Option1.Value=True Then

‘Option1为毛重选项。判断是否Option1被选中

Text3.Text = Val(Label7.Caption) ‘赋值给毛重文本控件

End If

If Option2.Value = True Then ‘Option21为皮重选项。判断是否Option2被选中

Text4.Text = Val(Label7.Caption) ‘赋值给皮重文本控件

End If

Label10.Caption= “数据稳定!"

Else

Label10.Caption = “连接正常,但数据不稳定...!"

MSComm1.PortOpen = False ‘重新关闭和开启串口端口一次

MSComm1.PortOpen = True

End If

End If

End Sub

4.数据库程序模块设计

4.1 数据库表结构设计

本例以Microsoft Access数据库进行称重数据的管理,建立db1.mdb数据库。汽车衡完成一个称重过程一般是某车号汽车称毛重,再过皮重(或者称重顺序反调)得出净重后,数据存入数据表,打印报表。在实际称重中称毛重和过皮重的过程并不连续,有时要连续称几台汽车的毛重或皮重,因此必须建立一个用于存贮称重暂存数据的表。在db1.mdb数据库中建立报头、帐户、本地表、称重、单位设置、历史皮重、串口、物质类别等数据表。“本地表”用于存贮历史称重数据,“称重”表存贮称重暂存数据,本例重点介绍“本地表”和“称重”两个关键表的结构设计,如表2,表3所示。

4.2 数据库编程

SCS微机汽车衡称重软件建立了“系统登录”、“称重管理”、“报表管理”等多个窗体,都涉及到对db1.mdb数据库的编程,主要应用了Visual Basic对Access数据库操作的编程语言。如:

dim conn as new adodb.connection

dim rs as new adodb.recordset

连接数据库

with conn

If .Stateadstateclosed Then .Close

.ConnectionString = “pro

-vider=Microsoft.Jet.OLEDB.4.0;

Data Source=” & App.path & “\数据库名.mdb;Mode=ReadWrite;Persist Security Info=False”

.Open

End With

查询记录

if rs.stateadstateclosed then rs.close

rs.open “select * from 表名”,conn,adopenkeyset,adlockreadonly

set mshflexgrid1.datasource

=rs

rs.close

新增记录

conn.execute “insert into 表名(...) values(...)”

修改记录

conn.execute “update 表名 set ... where ...”

删除记录

conn.execute “delete from 表名 where...”等等,鉴于论文篇幅的限制本例数据库编程源代码略。

参考文献

[1]刘乐善,欧阳明星,等.微型计算机接口技术及应用[M].武汉:华中理工大学出版社,2001.

[2]龚沛曾,等.Visual Basic程序设计教程[M].北京:高等教育出版社,1998.

[3]XK3190—A9称重显示器使用说明书.上