时间:2022-07-21 21:51:26
序论:在您撰写vb程序设计论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
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<c,要判断b的值是否在a与c之间,可以使用以下表达式:a<bAndb<c
不能写成:a<b<c。
很多学生会错误延用数学上的概念,写成后一种形式。
例OptionExplicit
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger
a=-3:b=-2:c=-1
Printa<bAndb<c’显示True
Printa<b<c’显示False
EndSub
为什么a<b<c会得False?因为,VB在计算这个表达式时,先计算“a<b”部分,得True;再计算“True<c”,并将True转换为一1,-1<-1?最终得False。
通过诸如此类的反例教学,使学生豁然开朗,印象深刻。
2)零散实例和核心实例结合
零散实例教学法,对每个知识点的运用和理解是非常行之有效的,但对前后知识的贯穿缺乏说服力。笔者在教学改革实践中体会到,除经典的零散实例外,将一个规模较大的、典型的、有实用价值的、学生感兴趣的核心实例贯穿于教学全过程,对提高学生的编程能力非常帮助。所谓核心实例是指,实例从小到大、随章节的展开而逐步成长,呈现为逐步进化的多个版本。比如引入一个贯串全书的问题:设计一个“图书管理系统”。首先,用最基本的概念和最简单的结构,给出该系统的第一个(也是最简单的)版本,以后的每一次课,都对该系统提出新的功能和结构上的要求,并用本次课介绍的新概念和新方法对它进行功能上的扩充和结构上的改进。每次得到该系统的一个增强的新版本。为达到设计目标,学生随着教学的进程,可以积极投入到对实例系统的调试、改进的实践中,逐渐掌握了所学的基本知识,同时也提高了编程能力。
2.3重视实践教学,培养学生综合应用程序开发能力
VB是一门实践性很强的课程,如果只纸上谈兵,不上机练习,是不可能真正掌握VB程序开发的。实践教学主要注意抓住以下几点:
(1)模仿阶段,对课堂核心实例系统的调试、改进。核心实例的每次增强版是全面反映教学内容的,学生通过模仿、知识再现达到在实践中领悟知识,开拓编程思路。
(2)分层次阶段,在教学过程实施的开始,和核心实例同步,我就给出了几个类似核心实例的课程设计内容,供学生选择。对核心实例的调试比较成功的,可以同步实施自己所学的课程设计内容,达到培养学生分析问题和解决问题的能力。对掌握核心实例有困难的学生,针对教学内容重新布置实验,强化知识巩固。课程设计内容课后上机完成。
要掌握上面两个阶段的具体情况,教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,而发现学生常犯的共性错误,可在理论课上进行点评。
2.4培养学生使用标准编码,养成良好编程习惯
在程序设计过程中,使用标准编码可以避免一些不必要的错误。笔者在授课过程当中使用标准编码的实例,在讲解实例过程中对学生进行适当地引导,让学生养成一个良好的编程习惯。
程序书写规范是非常重要问题,不仅书写格式应该结构层次分明,而且程序里面应添加起码的注释。不按照标准书写程序会增加别人查看程序的难度,同时也不利于自己以后上机调试修改。强调学生避免使用VisualBasic中的隐式操作,养成显式编码的习惯。比如永远使用OptionExplicit,严格执行变量先定义后使用的原则。避免使用缺省属性,明确指出是在引用对象还是在引用对象属性。
3结束语
一门课程的教学是一个复杂的系统工程,笔者将以上一些改革和探索用在课堂教学和实践教学中,取得了一些效果,但教学有法,教无定法,只要教学得法。在教学实践中,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的创造性思维和综合应用程序开发能力。
参考文献
[1]王栋.VisualBasic程序设计实用教程(第3版).北京:清华大学出版社2007
程序设计课程具有很强的实践性,在培养学生学会自己分析问题、使用计算机解决问题能力的同时提倡学生创新意识和创新能力的培养,主要采用的教学模式有项目教学法、案例分析法、任务驱动法等。
1.1《VB程序设计》课程中项目的设计
1.1.1章节项目
在整个教学过程当中,采用了“大项目、小案例、任务驱动不断”的教学模式,设计并选取与生活相联系的合理的能够调动学生学习积极性的项目。针对课程教学的最终目的,设计了一个比较完整的图书馆管理系统综合项目,但是这门课程知识点较多,要想完成这个综合项目,学生首先必须熟悉VB开发环境、掌握VB程序设计的基本概念和基础知识、各章节的知识点内容。为了配合整个课程最后综合项目的完成,在具体的教学中按照教学内容由易到难,针对教学中的重点和难点安排了13个章节项目,帮助学生更好地学习教材各章节中的知识点。项目一:由现实生活中的汉诺塔游戏、交换两个杯子中饮料的问题,引入一个利用VB程序解决两幅图片对换位置的具体案例,使学生熟悉VB集成开发环境以及各种窗口的使用、掌握常用控件对象的建立以及布局、利用VB开发简单应用程序的步骤、并初步引入程序设计思想,引导学生思考两数互换的问题,使学生通过观察、思考、总结得出两数互换的问题和两幅图片互换位置是一类问题。项目二:编写一程序,在屏幕上显示“欢迎来到VB世界!”,并输入自己的名字。使学生熟悉VB编程四部曲———界面设计、相关对象的属性设置、相关对象的代码编写、调试运行,尤其注意程序的调试过程。项目三:设计一个华氏温度与摄氏温度之间转换的程序。通过这个项目熟悉VB的数据类型及其运算,掌握VB的常用标准函数、变量以及常量的使用等语法知识点。项目四:利用输入函数输入一元二次方程的系数a、b、c,编写程序计算一元二次方程的两个实根或虚根,用输出语句输出结果。熟悉常用的输入输出控件、掌握Print方法、Inputbox()函数、Msgbox()函数和Msgbox过程的使用方法。项目五:设计一个账号和密码的输入检验程序。规范整理英文文章,即对输入的任意大小写的英文文章进行整理,规则是:所有句子开头应为大写字目(句子是以符号“?”、“.”、“!”作为结束符的),其他都是小写字母。使学生熟练掌握程序三大结构中的选择和循环结构。项目六:对一个班级的学生成绩进行输入统计,找出所有成绩中的最高分和最低分、全班成绩的平均分等。使学生掌握数组的使用。项目七:编写一个函数,在已知的字符串中找出最长的单词。假定已知字符串中只含有字符和空格,空格用来分隔不同的单词。通过该项目的学习使学生掌握过程程序的设计、实参、形参等基本概念。项目八:常用控件的使用。设计一个类似Win-dows记事本的应用程序,并完善其各项功能。通过该项目使学生掌握菜单、对话框和多重窗体程序设计。项目九:导入手机号码文件,编写一个手机选号程序,比如说选出手机尾号后四位相同的手机号码等。要求学生通过学习,掌握文件的相关操作,利用文件能够建立简单的应用程序。项目十:建立本班同学信息库,具体包括:学号、姓名、性别、出生日期、寝室电话、手机号码,并用数据控件及绑定控件实现对同学信息的浏览,并实现按姓名查询相关人员的基本信息。通过该项目掌握VB数据库的相关技术。项目十一:设计多文档应用程序,熟悉VB高级界面的设计。项目十二:用MMControl控件设计一个录音机,用API函数设计一个用户化的CD播放器。通过学习,使学生掌握VB多媒体程序设计。
1.1.2阶段项目
为了使整个学期的教学内容具有连贯性,糅合各章节零散的知识点,使教学实践具有可操作性,将整个学期的教学实践分成了三个阶段,每个阶段选用一个打破章节限制的阶段项目,使学生对所学知识内容有一个阶段性较完整的认识。这三个阶段依次是实践的开始阶段、实践的展开阶段、实践的结束阶段,分别对应阶段项目一、阶段项目二和阶段项目三。每个阶段中抓住关键教学环节,按照“大项目、小案例、任务驱动不断”的具体教学流程组织教学。阶段项目一:选用简单的项目,如蝴蝶飞舞、字幕滚动的项目。由于是初次接触计算机编程语言,所以对于非计算机专业的学生来说,这门课程的入门学习很关键,如果按照常规授课方法,依据书本上的章节内容安排依次讲授VB语言发展史、VB语言特点以及编程环境等内容的话,学生很难接受,往往是听得稀里糊涂,不知道学习VB究竟有什么实际作用,从而会产生畏难情绪,最终导致学生对VB知识学习失去兴趣和信心。为消除初学者的畏难情绪,第一阶段主要以激发学生的学习兴趣为主,让学生对VB有一个直观的认识,同时让学生在轻松的气氛中了解VB的编程环境和编程步骤,以及VB面向对象、事件驱动的编程机制。万事开头难,一旦学生对VB产生了兴趣,就有利于后续知识的学习。阶段项目二:难度稍微加大,选用计算器项目。通过本项目,一方面让学生理解控件数组的含义和设计使用方法,以及简单下拉菜单、常用数学函数的使用、过程函数的编写等,进一步加强学生对概念的理解。另一方面让学生注意可视化界面的设计,因为友好美观的人机交互界面,给人赏心悦目感觉的同时是软件的门面。阶段项目三:选用综合项目———学生信息管理系统。通过这个项目让学生真正了解掌握软件的开发过程。虽然这个项目比较难,但是有了前面知识的铺垫,会变得容易接受理解,也是对前面所学知识点的一次巩固和进一步更深入的理解,更是对前面知识的综合应用,让学生由浅入深、由易到难,逐步领会掌握编程的基本思想、基本方法和开发一个软件的完整步骤。三个阶段通过运用“大项目、小案例”,每个阶段让学生带着具体任务去学习,把枯燥的理论知识与生动形象的教学方式相结合,以清晰简明的表达方式深入浅出地向学生传授VB程序设计语言课程的知识,使学生在完成具体任务的实践过程中不断加深对面向对象程序设计思想和知识的理解。
1.2《VB程序设计》课程中的案例选取
有了已经准备好的各模块的项目,并展示给学生,学生有了兴趣后,就会想这些项目是怎么完成的,任务就落到各个模块项目里面具体的案例上了。由于VB程序设计授课内容多,授课时间紧张,按各知识模块划分选取项目后,在每个项目里面,按项目选取具体案例或是进行设计各项目的各功能模块,各功能模块实际就是一个个案例。在教学过程中应循序渐进,可以在原有案例的基础上逐步改变或增加一些条件,将应用进行引申,启发学生思维,让学生对知识点的理解更透彻,掌握各知识点之间的联系,提高学生发现问题、解决问题的能力,并在教学中兼顾学生生活经验与知识趣味性,达到事半功倍的教学效果。
1.3任务设计
围绕每一知识模块的教学内容、教学知识点,设计相关的项目,并在各个项目中采用了系列案例以及完成各功能模块的案例,为了让学生更加熟练、更好地掌握教学内容,在各知识模块的学习中设置学习情景,给学生留有感兴趣的任务,让学生去完成。同时根据各知识模块提出了单元任务,单元任务设置两个层次———基本任务和提高任务。由于学生自身水平有差异,对于基础好、学有余力的学生,要求他们不但要完成基本任务,还要完成提高任务;对于大多数学生,只要求他们完成基本任务。由于时间的限制,可以让学生在课余时间分析任务,在上机实践课以及课余时间去完成任务,最后做任务的总结。有了兴趣和任务的驱使,学生为了完成任务,就会利用各种方式和手段积极主动地去解决问题,他们会通过查阅相关书本、浏览网络资源、同学之间互相协作等方式解决问题,充分调动了学生的主观能动性,在完成任务的过程中学生分析问题、解决问题、实际开发应用程序的能力得到了锻炼,为学生知识的创新奠定良好的基础,同时知识面也更广、更大了。学生不会再觉得教学只是教师一个人的“独角戏”,而是教师和学生的“二人转”。在相互的配合以及友好和谐的师生关系中,教学顺利完成的同时学生个人的知识库也得到了构建。
2实施方法
关键词:VB实例教学激发性主动性
作为语言程序设计领域的前沿软件,VB的发展历史已经很久,相关的技术也比较成熟,由于其简单易学、功能强大、应用广泛,因此在很多职业院校都开设了这门课程,我校也在计算机信息与管理、计算机网络技术以及电子商务等相关专业开设了这门课程。正是由于社会办学力量的推动和“程序设计”职业的热衷,现在会VB的人越来越多了,但是我们也应该看到,很多人都局限在“会VB”,而不能灵活的运用,不能用VB完成相应的程序设计,更谈不上从事专业编程工作了。在这样的情况下,作为高职教师的我们,在教学中怎样才能够吸引同学们努力主动的学习好VB,这是我们值得探讨的问题。虽然我们学生的起点相对来说较低,但以后所从事的工作大多数也是以程序设计操作员为主的,因此笔者认为我们的主要教学目标,不仅是使学生熟悉VB的基本概念,而且还要能够熟练的掌握一些程序设计的相关技巧和方法,有一定的程序编写思维能力,并且在今后的教学中同学们能够积极主动的探索和学习。为了达到这个目的,笔者认为以下几个方面是我们在教学中值得开展的:
一、注重实例教学
对于一项操作性很强的工作,我们是不可以只讲理论的,正如当我们学习游泳的时候,如果教练只是告诉我们每个动作的名称但不告诉我们这些动作怎么完成,我们是不可能学会游泳的。那么我们在学习VB的过程中也必须结合大量的实例演示,让同学们真正体会到VB的可视化设计和它的实用性。
在最初接触这门课程的时候,我们必须先要详细的介绍各个控件,只有知道每个控件各自的作用以及使用方法以后我们才可以在VB中创造我们自己的程序。在控件介绍和程序设计中我们必须通过实例的演示来让学生在模仿中学会各个控件的使用和程序的编写。特别是在程序的编写方面,我们一定要有相关的实例来让学生在感性上得到认识。比如在介绍IF……ELSE选择控制语句的时候,如果我们只是讲解单纯的语句,学生听起来觉得比较枯燥,但笔者首先给同学们演示一个通过用户名和密码的登录界面,通过选择控制语句来确定我们在文本框中输入的条件是否为真做出判断,如果为真就登录到我们所需要的另一个界面,否则弹出一个提示信息框。在演示的过程中,同学们都表现出强烈的好奇心和学习的欲望,思维表现得非常活跃,因为他们觉得这些知识非常有用。在这个时候我们抓住这一特点,首先,讲解实现这一程序的基本思路,提出实现思路所需要解决的问题。其次,在程序中讲解新语句的使用方法,总结新语句的使用方法和注意事项。这样的教学使学生很快了解了程序设计的整个过程,并有豁然开朗的感觉,从而产生浓厚的学习兴趣。虽然这是一个简单的编程应用,整个创作过程只用到了简单的选择控制语句,但通过此例的学习学生学会了选择控制语句的使用以及如何设置选择控制语句,同时也激发了同学们学习程序设计的兴趣,从而创作出自己的程序。
目前市面上有很多关于VB的实例教材及各种参考书,但是都比较散而且内容也不是很详细,所以在讲解的时候笔者认为必须对实例进行慎重的选取和必要的修改,力求做到以下几点:
1、程序结构严谨化
笔者所收集的程序除了强调程序的可靠性以外,还要特别强调程序的结构性,即使是一个简单的实例,也需要做到程序结构的严谨化,使之符合大众的思维,但也要突出自己的特点。比如在讲FOR……NEXT等循环语句的时候,一般的都是利用从1累加到另一个固定的数值,来完成我们的循环讲解,这样的语句由于方法是完全一样的,所以最后的效果也没有什么吸引力可说。因此,笔者采用了另外一种方式,结合利用文本框输入的方式,即在两个文本框中可以输入任何两个数,使之从小的数值累加到另一个较大的数值,这样程序的效果也就更具结构严谨的魅力,同学们的感受也就会完全不同。
2、步骤详细化
因为同学们对新知识的接受,特别象程序设计这样的知识结构,还是需要一定的过程,因此为了让学生能够顺利的完成实例,从而在实践中提高自己的能力,笔者认为对每一个实例的操作步骤都要详细的板书出来,上机课或是在课余时间学生只要按照程序的操作步骤去做,就可以得到最终的效果,只有这样同学们才能掌握程序设计的基本思想和相关步骤。
3、方法常规化
在讲解的过程中,力求采用最简单、最容易的方法完成每一个实例,尽量采用常规化的语句,避开一些不容易理解的概念、方法。比如,在利用文件操作对数据录入以及把录入的所有数据输出时,我们可以避开利用Type语句定义自己的数据类型的使用,因为采用Type语句定义,有多少个字段,就会产生多少个相关的成员,在这种情况下同学们就很难想得到这个成员代表的是什么,它的作用是什么,这样就把程序复杂化了,其实我们完全可以采用简单的文本框来进行输入,然后用Input函数输出就轻松完成了。
二、注重培养学生的实际操作能力
还是以游泳为例,不管我们怎么看别人游泳,但自己却不下水实践,我们是永远都学不会游泳的,那么我们在学习VB语言程序设计的过程中也必须不断的练习、实践。
笔者曾担任了计算机网络技术两个班的该门课程的教学,为每周四学时,其中两学时是笔者的理论讲解课,两学时是上机实践操作课。由于学生的思想还不够成熟,自我控制能力相对来说还是比较差,因此自觉性还不够好,为了监督他们很好的学习、认真的实践,笔者每次课都留一次作业,第一次就是完全按照笔者的课堂实例上机操作,以加强对本节课课程内容的理解并熟练这些操作技巧,这项作业是必须要上交的,并作为平时成绩登记。因为这是这门课程中最基本的知识要点和教学要求,虽然学生不可能每个人都对这门课程有浓厚的兴趣,不可能以后都有可能去从事专业的程序设计工作,但是作为计算机专业毕业的学生,笔者希望他们不管以后从事什么样的职业,对于一些基本的程序设计思想以及常用的计算机软件操作,至少都能够体现出来。
在最后的综合实训、实践中,笔者结合同学们所学的知识并引进一些课外的知识实例来弥补课本上没有的相关内容。比如,我们利用VB做前台界面的设计,尽量用到所学过的所有控件进行布局、设置,把它们结合起来使用,而用小型的Access数据库做后台数据管理来做一个学生成绩管理系统,它具备一般的常用功能,即成绩的添加、查询、修改、删除,用户的管理等,虽然这个管理系统程序的设计比较简单,但通过这样一个小型的综合实例,就更加让同学们了解了VB语言程序设计的功能及特点。这是我们VB程序设计教学课程中不可缺少的一个重要环节,只有通过这样的一个综合实例,才能把同学们零散学到的知识全部的串联起来,让他们感觉到自己所学的知识终于有了一定的成果,他们自己也会感觉很有成就感,也会产生一种利用计算机解决实际问题的强烈愿望,在今后的学习中才能更加有信心和目标。
以上的两个方面是笔者认为的主要教学方法。采用实例教学的一个重要目的实际上就是为了使课堂生动,提高学生的积极性、主动性。虽
然是实例教学,有很多有趣的程序及相关的小动画,但是这样的有趣如果久了,也并不能完全抓住学生的心,因为这些过程进行的场所都是在课堂,课堂生活不可避免的具有一定的单调性,这只是一个方面。另一方面是,笔者要求学生在完成自由独立创作这一作业以后要相互交流经验,这种交流我们一般都是在自己班内部进行的,次数多了大家就会觉得似乎还需要加入一些更新的内容,希望与其他班的同学一起探讨学习。为了弥补课堂学习和班内交流的不足,笔者有时间就会将两个班的学生聚集在一起,首先每个班选几个优秀的作品演示给大家看,并向大家介绍创作的技巧和存在的问题,然后大家一起讨论。最后笔者会结合最近的学习内容对设计进行一个总的评说。通过这些活动既可以提高学生的学习兴趣,提高他们的专业技能。我们在教学中,实例的运用是提高教学效果的保障,在教学中,我们不防在讲解本次课的内容之前,先演示本次课需要用到的实例,这样既可以调动学生学习的积极性和主动性,也激发了他们的好奇性,这样也就抓住了同学们“人在教室,心也在教室”。
总之,教学有法,教无定法,只要教学得法。程序设计教学的主要目标是为了使同学们了解编程的基本思想,培养分析问题、解决问题的基本能力。围绕着这个目标,在保证同学们学习积极性的前提下,按照他们的认知规律组织教学,一切有效的教学方法都可以在我们的教学过程中加以运用,进而使综合素质得到整体提高,这是VB程序设计课程教学的最终目标。
参考文献
[1]刘炳文、杨明福、陈定中.全国计算机二级教程VB语言程序设计[M]高等教育出版社.20__.4
1.1工程施工放样题目模型已知某道路曲线第一切线上控制点ZD1(XZD1,YZD1)和JD1(XJD1,YJD1),该曲线设计半径R=1000m,缓和曲线长0l=100m,JD1里程为,转向角α。请按细则要求使用非程序型函数计算器计算道路曲线主点坐标ZH(XZH,YZH)、HY(XHY,YHY)、QZ(XQZ,YQZ)及第一缓和曲线和圆曲线上中桩点i1i2K、K的坐标(iX,iY),共计算5个点。然后,根据现场已知测站点O、定向点A、定向检核点B,使用全站仪进行第一缓和曲线和圆曲线上中桩点放样i1i2K、K点。控制点和待放样曲线之间关系如图1所示。上交成果:工程施工放样成果资料,其中包含曲线常数、曲线要素、主点里程及曲线中桩坐标的计算成果。
1.2工程施工放样数学模型
1.2.1曲线常数:(1)缓和曲线倾角:πβ180200=×Rl(2)圆曲线内移值:(3)切线外移量:23002240Rllm
1.2.2曲线要素:(1)切线长:(2)曲线长度:(3)外矢距:E=R+PR2()secα(4)切曲差:D=2TL
1.2.3主点里程:(1)ZH点里程:(2)HY点里程:(3)QZ点里程:(4)YH点里程:(5)HZ点里程:检核计算:
1.2.4独立坐标计算:(1)在坐标系x′o′y′中,缓和曲线ZH-HY段(i1K)独立坐标计算:(2)计算ZH-HY缓和曲线细部点:(3)计算ZH-HY缓和曲线HY点(直接将上式0lli代为0lli代为):(4)在坐标系x′o′y′中,圆曲线HY-YH段任意一点独立坐标计算:=+=+(1)siniiiiyPRCosxmRφφ1.2.5主点及若干曲线中桩点坐标:(1)(指ZH到JD的坐标方位角)(2)(右转用-,左转为+)(3)(右转用-,左转为+)(4)三个主点坐标如下:ZH点坐标:HZ点坐标:QZ点坐标:(5)曲线中桩点坐标按线路右转所得公式如下(注意若为线路左转则以下几个公式用iiy代替y):
2工程施工放样项目VisualBasic程序设计
2.1程序界面
2.1.1主程序界面。主程序界面设计如图2所示,通过主界面,可以输入所有的已知数据,并选择偏角的类型。图2主程序界面
2.1.2结果显示界面。计算结果通过一个文本框的形式,将所有需要的结果及一些关键的中间结果分栏显示,如图3所示:图3结果显示界面
2.2核心代码
2.2.1计算曲线常数和曲线要素:IfR<>0ThenJD=Ls*180/(2*R*PI)p=Ls^2/(24*R)-Ls^4/(2688*R^3)m=Ls/2-Ls^3/(240*R^2)T=(R+p)*Tan(PJ/2)+mL=PJ*R+LsE=(R+p)*1/Cos(PJ/2)-Rq=2*T-LElseMsgBox"必须输入曲线半径R!"Text12.SetFocusEndIf
2.2.2主点里程及独立坐标计算:k1=k1*1000+k11k2=k2*1000+k22k3=k3*1000+k33kZH=k1-TkkZH=kZH\1000kkkZH=kZH-kkZH*1000kkkZH=Format(kkkZH,“###.###”)Str1="ZH点里程:"&"K"&kkZH&"+"&kkkZHStr2="HY点里程:"&"K"&kkHY&"+"&kkkHYStr3="QZ点里程:"&"K"&kkQZ&"+"&kkkQZStr4="YH点里程:"&"K"&kkYH&"+"&kkkYHStr5="HZ点里程:"&"K"&kkHZ&"+"&kkkHZLi=k2-kZHLi1=k3-kZHX11=Li-(Li^5)/(40*R^2*Ls^2)Y11=(Li^3)/(6*R*Ls)X12=m+R*Sin((Li1-0.5*Ls)/R)Y12=p+R*(1-Cos((Li1-0.5*Ls)/R))Xhy1=m+R*Sin(JD*PI/180)Yhy1=p+R*(1-Cos(JD*PI/180))Ajd=((Li1-0.5*Ls)/R)*180/PI
2.2.3坐标计算:Xzh=X2+T*Cos(A)Yzh=Y2+T*Sin(A)Xhy=Xzh-Xhy1*Cos(A)+K*Yhy1*Sin(A)Yhy=Yzh-Xhy1*Sin(A)-K*Yhy1*Cos(A)Xqz=X2+E*Cos(Ajz)Yqz=Y2+E*Sin(Ajz)X111=Xzh-X11*Cos(A)+K*Y11*Sin(A)Y111=Yzh-X11*Sin(A)-K*Y11*Cos(A)X112=Xzh-X12*Cos(A)+K*Y12*Sin(A)Y112=Yzh-X12*Sin(A)-K*Y12*Cos(A)
2.2.4结果输出:OpenApp.Path&“\T1.txt”ForInputAs#2DoWhileNotEOF(2)'循环至文件尾。LineInput#2,TextLine'读入一行数据并将其赋予某变量。Form2.Text1.Text=Form2.Text1.Text&Chr(13)+Chr(10)&TextLineLoopClose#2Form2.Show
3结语
一、学情分析
学情分析是教学设计系统中“影响学习系统最终设计”的重要因素之一。在教学设计中,依据教学设计理论,认真研究学生的实际需要、能力水平和认知倾向,“为学习者设计教学”,可优化教学过程,更有效地达成教学目标,提高教学效率。VB的开课学期一般在大一第二学期,按照专业培养计划,计算机网络技术等专业在新生入学的第一学期就开设了《C语言程序设计》这门课。对于从未接触过语言类课程的大一新生来说,C语言的学习,颠覆了大部分学生的思维方式,学生普遍感到很吃力,有相当一部分同学开始对程序类课程感到害怕。
二、教学方法探讨
1.消除学生的畏难情绪
为了打消学生的畏难情绪,对于VB教学,应首先与学生谈VB,而不是教VB。首先,要让学生明白VB和C语言是完全不同的两种编程方式,不要因为害怕C语言,而害怕VB。教学中,通过演示一个简单的例子,向学生演示只需要两行代码便可制作出美观的界面和可爱的功能。比如:示例1:制作美观的界面,实现窗体上的文字自动或手动的向下移动。突现VB相对于C语言的简单易懂,引导学生一步步完成所需功能。最后,启发学生:如果想让文字上移,如何修改程序?如果想让文字左移或右移,如何修改程序?如果想让文字左右交替移动,又要如何修改程序?通过上述示例的讲解,使得学生对VB有一个全新的认识——直观、简单、易学、易用。其次,要让学生了解为什么学习VB,VB对于他们有多么重要。这门课的开设除了承上启下其他专业课程外,还有一个重要的作用就是为了让学生能够参加计算机二级考证,VB在二级考证中相对比较易学易用。再次,告诉学生,有了C语言的基础,代码的编写会更为容易。从而激发学生学习的信心。
2.提高学生的学习兴趣
在教学过程中应尽量使用简单易懂的语言和示例,提高学生的学习兴趣,帮助学生理解知识点。比如,在讲属性、方法和事件这三个很枯燥的概念时,可以通过生活中有趣的示例来进行解释。示例2:通过“蟑螂从女生脚上爬过”的事例,讲解属性、方法和事件的概念。蟑螂从女生脚上爬过时,女生的脸色变红,脸的颜色为红色就是属性;女生尖叫起来,女生跳起来,这是女生本身做出的动作就是方法;蟑螂爬过女生的脚,这是外部事物对女生做出的动作,就是事件。通过这种类型的示例,成功吸引了学生的注意力,也帮助学生理解了这几个难懂的概念。在讲属性、方法、事件的书写格式时,也可将这个示例写成VB伪代码的形式:属性的表示方法:女生.脸的颜色=红色方法的表示方法:女生.尖叫啊事件的表示方法:女生_蟑螂爬过至此,学生对VB程序一下就理解了。
3.实践中学习,项目中巩固
要想学好程序设计类的课程,大量的练习是必不可少的。因此,将所有知识点都融入到一个个的项目实例中。课堂上边演示边制作,课后布置一些举一反三的题目,让学生自己在课后完成。
参考文献:
[1]宁德琼.VB下学生选课系统的设计方法[J].曲靖师范学院学报,2005(11).
[2]邢国春.基于vb下的ADO控件对学生选课系统设计[J].师范学院学报,2004(3).
[3]李媛媛,傅申,李良彬.校园网上选课系统[J].计算机系统应用,2013,22.
[4]张燕,兰彬.浅谈数据库管理信息系统的结构设计[J].北京农学院学报,2007(6).
[5]康开锋.高职院校在线选课系统的设计与实现[D].重庆大学硕士学位论文,2012.
参考文献:
[1]唐小燕,吴斌,鲁大林.传统教学与案例教学在《VB程序设计》教学中的实施效果分析[J],教育信息化,2006年19期
[2]王四化,林蟒,邱伯文,成明.基于VB和Surfer不连续区域气象资料自动成图的实现[A],第27届中国气象学会年会城市气象,让生活更美好分会场论文集[C],2010年
[3]苟秉宸,余隋怀,王聪,初建杰.设计专业创新教学模式的优化与实践——基于TeamWorking的专业外语教学方法[A],2005年工业设计国际会议论文集[C],2005年
[4]罗妤.计算机软件技术基础实验教学改革探讨[J].职业,2009,20
[5]刘丽.信息化形式高校计算机语言课考试的改革[C].大学计算机基础课程报告论坛论文集,2006,4
[6]刘迎春.高职C程序设计实验改革初探[J].中国现代教育装备,2006,8
[7]彭鑫.VB程序设计课程实验教学的探索与实践[J].桂林师范高等专科学校学报,2009,6
参考文献:
[1]于鹏,李霞.中文版VisualBasic6.0程序设计项目教程[M].北京:清华大学出版社,2010.
[2]张凯,李妙妍,袁静.任务驱动教学法在VB语言程序设计课程教学中的应用初探[C].Proceedingsof2010ThirdInternationalConferenceonEducationTechnologyandTraining(Volume8),2010.
[3]段旭,潘舒,易德成.任务驱动教学法在VB教学中的应用与实践[J].科技信息,2010(30).
[4]苗玥.“任务驱动教学法”在“VisualBasic”课程中的应用[J].电脑知识与技术,2005(36).
关键词:VB,程序设计,过程调用,参数传递
1 前言
VB程序设计是采用面向对象的可视化操作界面,功能强大,应用广泛,而相对于其他面向对象的编程语言,如VC,Delphi等容易学习掌握。在程序设计中,为了缩短程序运行的时间,也为了方便、简化程序设计,就需要建立相应的过程,建立过程的目的之一就是减少重复代码,将公共代码放入过程中,并由其他事件过程调用它,调用过程有诸多技巧,经常根据程序编写的需要,按功能将程序分解成若干个相对独立的部分,然后对每个部分进行程序编写测试,这样就把每一个部分称之为过程。免费论文。
在全国VB等级考试中,要求学生掌握的过程主要有事件过程,Sub过程和Function过程。在过程调用中,Sub过程与Function过程相似,它们都是用来完成特定功能的独立程序代码,它们由一组符合VB语法的语句组成,但它们不同的是,Function过程可以返回一个值给调用程序。但有一点需要特别注意,那就是Sub过程与Function过程必须在事件过程或其他过程中有调用它们,否则过程代码将永远不会被执行。在过程的调用中,由于二者参数传递的机制相同,为便于描述,本文就以Sub过程(即子过程)为例,对过程的定义、调用及参数传递进行分析和说明。
2 VB过程的调用与分析
在调用过程时,主调过程的实参以一定的形式传递给被调过程的形参,完成实参与形参的配对结合,然后执行被调用的过程体即语句块。经被调过程处理后,并可得到处理的结果,但如果被调过程为Function过程时,可将所得结果返回给主调过程。VB中,参数的传递有传值和传址(引用)两种形式。免费论文。
2.1子过程的定义与调用
自定义子过程的格式:
[Public | Private] [ Static]Sub子过程名([形参表列] )
局部变量和常量定义
<语句块>
[Exit Sub]
[语句块]
End Sub
其中形参表列的每个参数的形式:[ByVal](变量名[()] [As类型,]……)
形参表列中的参数称为形参或哑元,只能是变量或数组名,不能是常量、函数、表达式等。在过程定义时,参数有传值和传址两种定义形式,带ByVal定义的参数为值传递,用于接收过程调用时实参传递过来的值,否则为地址(引用)传递,用于接收过程调用时实参传递过来的地址。
子过程的调用格式:
(1) Call过程名( [实参表列] )
(2) 过程名[实参表列]
子过程的调用是一条独立的调用语句,有上述(1)、(2)两种调用格式。其中:“实参表列”中的参数称为实参,实参的个数、数据类型都要与被调用过程的形参一一对应,实参可以是同类型的常量、变量、数组、表达式等。
2.2传值方式(ByVal)
VB中的传值方式,实参与形参在内存中占用不同的内存单元,当调用一个过程时,系统把实参的值复制给形参,当执行被调用的过程时,实参与形参并断开联系,过程的调用也将结束,形参的任何操作和变化都不会影响到实参。传值方式是“单向”的,形参的值不能返回给实参。在教学中,通过总结给出了如下按传值方式(ByVal)对过程调用的分析方法。
例1:编写两个数相加的过程,执行程序并输出结果。
Option Explicit
Public Sub Add(ByValx As Integer, ByVal y As Integer)
x =x + y : Print “x=” ;x
End Sub
Private Sub Command1_Click()
Dim a AsInteger , b As Integer
a = 20: b = 15: Call Add(a, b): Print “a=”; a;“b=”;b
End Sub
程序运行后得到的结果为:x=35a=20 b=15,通过该方法能简洁明了地得到正确结果,x的值由两个数相加所得的结果,而a,b两个数的值没有变化,分析参数传递过程的情况如图1所示,由于采用传值方式,实参和形参在内存中占用不同的内存单元,当调用过程Add时,系统把实参a, b的值复制一份给形参x和y,便断开实参与形参的联系,执行Add过程中的语句块后,形参x的值进行了变化即为两个数的和,但它的变化并不影响实参a和b,当返回到主调过程时,形参所占的内存被释放。
2.3传址方式(ByRef)
传址方式也称引用方式,是VB默认的参数传递方式,当调用一个过程时,系统将实参的地址传递给形参,实参与形参在内存中占用相同的存储单元,即过程接受的是实参变量的地址。因此在被调过程中对形参的任何操作都变成了对相应实参的操作,实参的值会随着形参的变化而改变,这种传递是“双向”的。下面来分析一下传址方式(ByRef)的一般情况,即形参与实参均为简单类型的变量。免费论文。
当形参是传址方式的简单类型变量,实参是同类型的简单变量时,系统采用传址方式实现虚实结合。下面采用传址方式,改编例1的程序,分析能否改变a,b的值。Add子过程修改如下,其主调过程与传值方式的主调过程相同。
Public Sub Add(ByRefx As Integer, ByRef y As Integer)
x =x + y : Print “x=” ;x
End Sub
执行程序,运行结果为:x=35 a=35 b=15。分析参数传递过程如图2所示,由于采用传址方式,实参和形参在内存中占用同一存储单元,当调用过程Add时,系统把实参a, b的地址分别传递给形参x和y,使得x与a是同一存储单元,y与b也是同一存储单元,在这种情况下可以把x与a看成是同一个变量,y与b也可看成是同一个变量,执行Add过程中的语句块后,形参x的值进行了改变,等同于实参a的值也进行了变化,调用结束后,返回主调过程,这样也就改变了a的值,由于y的值没有变化,所以b的值也就没有改变。