vb程序设计教学探讨(共9篇)
vb程序设计教学探讨 篇1
VB程序设计教学方法探讨
来源:中国论文下载中心 [ 09-06-29 08:44:00 ] 作者:朱倩 编辑:studa090420
[摘 要]本文就中职学校VB课程的教学方法,以及如何提高学生程序开发能力进行了探讨,结合实例教学方法在程序设计教学过程中的一些具体运用,并对在程序设计过程中如何培养学生的逻辑思维能力和抽象思维能力给予了适当的关注。
[关键词]教学方法 程序设计 对象 能力
Visual Basic 是一门面向对象的可视化编程语言,它的应用非常广泛,可以开发科学计算、数据库管理、客户/服务器模式、Internet/Intranet等多个领域的应用程序,它简单易学、功能强大、应用广泛,是一门实用性很强的课程。
程序设计课程的设置,是培养中职生职业技能的一个重要手段之一。但是对于学生们来说,程序设计的思维方式和概念都是全新的,学生接受起来比较困难,在教学中如何紧紧围绕Visual Basic应用程序开发的界面设计、属性设置和代码编写三个环节,由简及繁、由浅入深、循序渐进地开展教学,每个教师都在摸索着以寻求一个最佳方案。通过几年来的VB教学实践,我谈一谈自己在教学中使用的方法。
(一)努力培养学生兴趣
俗话说:兴趣是最好的老师。在程序设计教学中要利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。为了激发学生的兴趣,在VB程序设计中的第1堂课,先不讲理论知识,而是演示一些有趣的实例如动画效果蝴蝶飞舞、移动字幕等、计算器,记事本等小实用程序,给学生一个视觉冲击,吸引他们,并告诉他们学习了VB程序设计后,大家都能够编出这些小程序,来充分调动学生的学习积极性,迎合了学生渴望成功的心理特点。
(二)立足具体实例,渗透基本概念
刚接触程序设计的中职学生,对程序设计充满了好奇,如果教材把对象、事件、控件等一大堆的概念放在前面讲,一下子引入大量抽象的名词、概念,就会打击学生的学习兴趣。因此要想让学生领会这些抽象的概念,教学中应以一个个鲜活的具体实例为切入点,在每个例子中适时、适量渗透一些相关的概念和知识,让学生在做中学,在学中做,使学生在完成任务的过程中,逐渐地、很自然地去体会控件、对象、事件的概念。为了让学生灵活掌握每个控件的用法,教学中要安排足够的课时把这些控件的用法渗透到一个个程序实例中,由浅入深逐渐介绍,让学生在编写程序的过程中总结控件的用法。
(三)分解难点,逐个掌握
在VB程序设计的三大环节中,重点难点是编写代码。代码不要一次性给出,而是通过逐步实现各个功能,再组合程序(若程序较复杂,还应给出流程图),实现加强功能,这样学生才能真正理解结构化程序设计的特点,并且把难点进行了分解。最好在编写程序代码的过程中设想好一些以往学生常见的、典型的错误,以便通过调试工具进行找错并修改,可以让学生加深对知识点的掌握,以后也不会再犯同样的错误。
(四)注意因材施教,发挥学生特长
由于中职学生基础和能力的差异,在进行教学时,应根据学生的具体情况制定不同的目标,提出不同的要求,充分调动每个学生的学习积极性,这样才能达到应有的效果。一学到程序设计,学生的两极分化就会特别严重。有些学生对程序设计特别感兴趣,喜欢编程,有时会编出让教师都惊讶的程序,而有些学生则是根本不愿意学习,这时就要在整体教学中注意兼顾个别学生。例如教材中的习题可以分为必做题和选做题,可以发挥优秀学生的内在潜力,同时也可以调动中等学生的学习积极性。在教学的过程中,学生个体的差异性不可避免,如果每个学生的问题都要教师来解决的话,不仅课堂时间不允许,而且顾此失彼,还会影响课堂秩序。教师可以让成绩好的学生去辅导后进生,不仅可以减轻教师负担,同时也加强了学生之间的编程思想的交流。这既遵循了信息技术学科强调的团结合作的精神,又解决了现实问题。
(五)养成动态思维习惯
为了培养学生的逻辑思维能力和抽象思维能力,在程序设计教学中可以有意识的在以下几个方面给予关注:①对于一些比较简单的程序要求同学们直接写出结果;②对于有循环或判断结构的程序,要求学生根据条件一步步向前走,把循环过程写下来;③故意给出一些错误的程序,给学生设计一些陷阱,让学生自己去发现;④让学生把书本中程序编写错了的地方改正过来。
(六)通过课程设计,培养学生的程序开发能力
通过学习,学生大致掌握了VB的一些基本知识,但对知识的理解只停留在表面上,缺乏系统的运用,对小型应用程序系统的开发步骤和调试都还不熟悉。因此,如果我们能开设12周的课程设计让学生在教师的指导下根据自己的实际能力选择一个课题进行设计,这样对学生的知识运用能力的培养大有裨益的。例如可以要求学生模仿设计windows附件中的计算器或写字板;对于部分数据库基础掌握得较好的同学,要求他们编写网上学生成绩查询系统或图书馆管理系统,这些课题都比较贴近学生的实际,学生也很有兴趣,因此他们在设计时较为投入,也能认真地查阅资料,分析步骤,进行控件的选取、属性的设置和事件的编写、调试。这样可以大大提高学生的程序开发能力。
VB语言所涉及的内容多,知识面宽,在短短的课堂教学中,要让学生完全掌握是不可能的,所以学生课外自学也是一个重要的环节。另外,教师还应重视自己创新能力和将专业知识应用到社会实践中的能力的培养,利用VB结合实际开发一些小型的应用程序系统,使自己更好地掌握它,只有这样,教师在教学中才能更好地进行目标任务的选编、设计和组织,探索出更适应学生的教学方法,取得更好的教学效果。
参考文献:
[1]全国中等专业学校计算机应用基础课程组.Visual Basic 程序设计[M].北京:高等教育出版社,1999.[2]何克抗.建构主义──革新传统教学的理论基础[J].学科教育,1998,(3-5).[3]李秉德.教学论[M].北京:人民教育出版社,1993.
vb程序设计教学探讨 篇2
1 教学思想的转变
从教学的本义讲是包括“教”和“学”两个方面的,是师生共同劳动的过程。但长期以来,旧的教学思想占了主导地位,总是过分强调教师的“教”这一方面,忽视学生的“学”,甚至不去研究学生是怎么学的。教学成了“一言堂”、“满堂灌”,学生处于被动地位。其实,教只是外因,而学才是内因,我们的“教”是要为学生的“学”创造良好的外部条件。学习是学生的事情,是他们独立自主的活动,主动认识的过程。在科技高速发展的今天,计算机编程语言更是在快速变化的。对于学生来说掌握一门语言只是暂时的,而且也不可能把这些语言完全学到手老师只能“领进门”。因此,程序设计语言教学的重点,应该是使学生自己掌握学习语言的方法和训练自己逻辑思维能力。只有这样,学生才能够有应变能力,才能够有自我发展能力,才能够真正具备编程能力,才有长远的后劲。这是计算机技能教学的重点和根本所在。
2 培养学生可持续发展的能力
2.1 培养良好的学习习惯——可持续发展的基本条件
计算机程序具有可读性,可理解性,可修改性和可维护性。程序格式是程序成功的重要因素。在用计算机语言写程序时,一行写一条语句,对一些难理解的语句或程序段做功能性说明,关键的变量做适当的注释,程序的开头加上序言性说明,顺序执行的语句或程序段左对齐,有递进关系或包含关系的语句或程序段适当的缩进,开成一个层次分明的层次体系,定义变量时采用“见名知义”的原则等等。
2.2 培养自主学习能力———可持续发展能力的重要基础
在计算机技术飞速发展的今天,通过熟练某一门编程语言就可以做好工作,基本上不可能。学生只有具备了自主学习计算机编程语言的能力才能算是真正掌握了计算机语言。“授人以鱼,不如授人以渔。”学校教育的目的不仅仅是传授知识,更重要的是教会学生如何学习。没有自主学习能力,则不会存在可持续发展能力。因而教学更应该培养学生自主学习能力。
2.2.1 巧用帮助文档
VB.NET程序设计语言均提供了功能强大的帮助文档,一个优秀的程序设计人员,只需要通过帮助文档的学习就可以精通该门语言。因而在示范教学中要详尽展示帮助文档的应用。将帮助文档的检索与阅读过程的示范贯穿于案例分析,并将阅读帮助文档与引导性练习相结合,充分调动学生自主学习的积极性,并使自我思考自我探索能力得到锻炼与提高。
2.2.2 充分利用Internet
无论怎样优秀的编程员总有可能遇到解决不了的问题,也可能在帮助文档上找不到相关的内容,那么此时internet就显得尤为重要了。可以到internet上查找已经有了的资料,还可以利用专业的BBS等获得大量的在线帮助,通常的问题都可以得到解决。
2.3 培养团队协作能力———可持续发展的重要条件
VB.NET程序设计教学的最终目标是学生毕业后能够从事软件开发工作,而在工作中无论从事哪方面的编程工作,通常都不可能是独立完成某项工作,而是根据软件的生存周期来划分不同的开发阶段,不同的功能模块,不同的人完成不同的任务。因而培养学生良好的团队协作精神是保障学生可持续发展的重要条件。在VB.NET程序设计教学过程中教师有意识的将学生分组完成一定难度的项目,使学生在开发项目中增强与合作伙伴的协作能力。
2.4 采用先进的教学方法
2.4.1 充分利用校园网平台
在校园网平台上建成VB.NET程序设计课程的教学网站,将大量的教学资源放在教学网站上,打破课堂教学在时间和空间上的局限,教师和学生通过网络随时随地开展多种形式的网络教学。并开发与课程教学配套的“网上教学课件”、“网上作业系统”、“网上实验系统”和“网上考试系统”等应用软件,帮助师生在网上开展教学活动,取得了较好的教学效果。
2.4.2 加强实践性教学环节
实践性教学是培养应用型人才必不可少的教学环节,是计算机程序设计语言类课程理论教学的有效补充,在整个程序设计语言课程教学过程中占有相当重要的地位。实践性教学环节应包括课程实践环节和集中实践环节两部分。课程实践性教学对于VB NET程序设计课程来说显得尤为重要,因为只有通过上机实践才能掌握程序的编写,以及在实践中得到编程的经验。为了加强学生综合开发系统的能力,在该门课程的教学任务完成之后,再进行课程设计之类集中的实践性教学,使学生的知识能够得到充分的运用,学生之间的团队合作能力也得到很好的提高。
2.4.3 采用目标任务驱动法,建立起以学生为中心的教学模式,激发学生的学习兴趣
在刚开始VB.NET程序设计教学的时候,分析演示一些优秀的MIS系统,小游戏等利用VB.NET程序设计的项目,并提供一些优秀的项目供学生欣赏及模仿练习,这样在一开始就能激发学生的学习兴趣并充分的调动学生的学习积极性,在不知不觉中让学生明白了VB.NET教学的目的,并适时的布置学生从第一堂课开始就考虑自己独立完成一个项目,随着教学的深入,学生所做的项目逐步完善,当教学过程结束时,学生所做的项目也开发完毕。此时学生所做系统一般都不太完善,只有一个大概的框架,且没有充分调试成功,那么在课程的教学完成后,通常集中两周左右的时间留给学生去完善自己开发出来的系统。在这段时间里学生可以各种途径包括去图书馆查找资料,查找帮助文档,利用internet,请求老师,同学的帮助等等来完成自己的系统开发。经过这段时间的强化学习,学生的自主能力得到很大的提高,也积累了一部分实践开发经验,为日后走上工作岗位打下了良好的基础。
3 面向对象的概念应该贯穿始终
面向对象程序设计是目前程序设计的主流,也是程序设计在思维和方法上的一次巨大进步。
它最大的优点就是开发效率高,代码重复利用率高,为软件开发提供了一种新的方法。作为VB6.0的后续版本,VB.NET更加稳定,而且完全面向对象,它通过抽象思维的方式,把日常生活中常见的问题简化成人们易于理解的模型,然后再在这些模型之间建立关系,从而最终形成一个完整的系统。它通常考虑的是“做什么”的问题,而不是“怎么做”的问题。它着重于建立能够模拟需要解决的现实世界问题的对象。
4 加强与相关学科的联系
与VB.NET编程关系最为密切的课程有《软件工程》,在进行VB.NET程序设计开发时应该充分利用好《软件工程》的知识。把软件生存周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的难度;在软件生存周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结束之前都从技术和管理两个角度进行严格的审查测试,调试成功后才开始下一阶段的工作,这就使软件开发全过程以一种有条不紊的方式进行,保证了软件的质量,提高了软件的可维护性。总之,采用软件工程方法论可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。
5 结束语
教学方法探讨的目的是为了提高教学效果。课堂教学是一门艺术,教学方法探讨永无止境,只要符合教学内容,利于激活学生的思维,引起师生之间的共鸣,授课时就可以不拘一格,采用灵活多变的教学方法,提高教学效果和质量。使学生在学习VB.NET程序设计时不但学到VB.NET程序设计的知识,同时也学会软件项目开发的方法,具备初步的软件项目开发能力,在合作开发的过程中提高团队协作能力,为今后的就业打下良好的基础。
参考文献
[1]李文光.基于创新能力培养的教学设计理论与试验探索[J].中国电化教育,2002.
[2]何克抗.建构主义的教学模式、教学方法与教学设计》[M].北京:北京师范大学出版社,1997.
[3]谭浩强.C程序设计[M].北京:清华大学出版社,2005.
[4]严蔚敏,吴伟民.数据结构[M].北京:清华大学出生社,2007.
[5]郑人杰.软件工程[M].北京:清华大学出版社,1997.
VB程序设计教学方法探讨 篇3
[关键词]教学方法 程序设计 对象 能力
Visual Basic 是一门面向对象的可视化编程语言,它的应用非常广泛,可以开发科学计算、数据库管理、客户/服务器模式、Internet/Intranet等多个领域的应用程序,它简单易学、功能强大、应用广泛,是一门实用性很强的课程。
程序设计课程的设置,是培养中职生职业技能的一个重要手段之一。但是对于学生们来说,程序设计的思维方式和概念都是全新的,学生接受起来比较困难,在教学中如何紧紧围绕Visual Basic应用程序开发的界面设计、属性设置和代码编写三个环节,由简及繁、由浅入深、循序渐进地开展教学,每个教师都在摸索着以寻求一个最佳方案。通过几年来的VB教学实践,我谈一谈自己在教学中使用的方法。
(一)努力培养学生兴趣
俗话说:兴趣是最好的老师。在程序设计教学中要利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。为了激发学生的兴趣,在VB程序设计中的第1堂课,先不讲理论知识,而是演示一些有趣的实例如动画效果蝴蝶飞舞、移动字幕等、计算器,记事本等小实用程序,给学生一个视觉冲击,吸引他们,并告诉他们学习了VB程序设计后,大家都能够编出这些小程序,来充分调动学生的学习积极性,迎合了学生渴望成功的心理特点。
(二)立足具体实例,渗透基本概念
刚接触程序设计的中职学生,对程序设计充满了好奇,如果教材把对象、事件、控件等一大堆的概念放在前面讲,一下子引入大量抽象的名词、概念,就会打击学生的学习兴趣。因此要想让学生领会这些抽象的概念,教学中应以一个个鲜活的具体实例为切入点,在每个例子中适时、适量渗透一些相关的概念和知识,让学生在做中学,在学中做,使学生在完成任务的过程中,逐渐地、很自然地去体会控件、对象、事件的概念。为了让学生灵活掌握每个控件的用法,教学中要安排足够的课时把这些控件的用法渗透到一个个程序实例中,由浅入深逐渐介绍,让学生在编写程序的过程中总结控件的用法。
(三)分解难点,逐个掌握
在VB程序设计的三大环节中,重点难点是编写代码。代码不要一次性给出,而是通过逐步实现各个功能,再组合程序(若程序较复杂,还应给出流程图),实现加强功能,这样学生才能真正理解结构化程序设计的特点,并且把难点进行了分解。最好在编写程序代码的过程中设想好一些以往学生常见的、典型的错误,以便通过调试工具进行找错并修改,可以让学生加深对知识点的掌握,以后也不会再犯同样的错误。
(四)注意因材施教,发挥学生特长
由于中职学生基础和能力的差异,在进行教学时,应根据学生的具体情况制定不同的目标,提出不同的要求,充分调动每个学生的学习积极性,这样才能达到应有的效果。一学到程序设计,学生的两极分化就会特别严重。有些学生对程序设计特别感兴趣,喜欢编程,有时会编出让教师都惊讶的程序,而有些学生则是根本不愿意学习,这时就要在整体教学中注意兼顾个别学生。例如教材中的习题可以分为必做题和选做题,可以发挥优秀学生的内在潜力,同时也可以调动中等学生的学习积极性。在教学的过程中,学生个体的差异性不可避免,如果每个学生的问题都要教师来解决的话,不仅课堂时间不允许,而且顾此失彼,还会影响课堂秩序。教师可以让成绩好的学生去辅导后进生,不仅可以减轻教师负担,同时也加强了学生之间的编程思想的交流。这既遵循了信息技术学科强调的团结合作的精神,又解决了现实问题。
(五)养成动态思维习惯
为了培养学生的逻辑思维能力和抽象思维能力,在程序设计教学中可以有意识的在以下几个方面给予关注:①对于一些比较简单的程序要求同学们直接写出结果;②对于有循环或判断结构的程序,要求学生根据条件一步步向前走,把循环过程写下来;③故意给出一些错误的程序,给学生设计一些陷阱,让学生自己去发现;④让学生把书本中程序编写错了的地方改正过来。
(六)通过课程设计,培养学生的程序开发能力
通过学习,学生大致掌握了VB的一些基本知识,但对知识的理解只停留在表面上,缺乏系统的运用,对小型应用程序系统的开发步骤和调试都还不熟悉。因此,如果我们能开设12周的课程设计让学生在教师的指导下根据自己的实际能力选择一个课题进行设计,这样对学生的知识运用能力的培养大有裨益的。例如可以要求学生模仿设计windows附件中的计算器或写字板;对于部分数据库基础掌握得较好的同学,要求他们编写网上学生成绩查询系统或图书馆管理系统,这些课题都比较贴近学生的实际,学生也很有兴趣,因此他们在设计时较为投入,也能认真地查阅资料,分析步骤,进行控件的选取、属性的设置和事件的编写、调试。这样可以大大提高学生的程序开发能力。
VB语言所涉及的内容多,知识面宽,在短短的课堂教学中,要让学生完全掌握是不可能的,所以学生课外自学也是一个重要的环节。另外,教师还应重视自己创新能力和将专业知识应用到社会实践中的能力的培养,利用VB结合实际开发一些小型的应用程序系统,使自己更好地掌握它,只有这样,教师在教学中才能更好地进行目标任务的选编、设计和组织,探索出更适应学生的教学方法,取得更好的教学效果。
参考文献:
[1]全国中等专业学校计算机应用基础课程组.Visual Basic 程序设计[M].北京:高等教育出版社,1999.
[2]何克抗.建构主义──革新传统教学的理论基础[J].学科教育,1998,(3-5).
用VB编写抽奖程序教学设计 篇4
新建一个标准的exe工程。在form1窗体中放置一个定时器(timer1)、两个文本框(label1,label2)、两个命令按钮(command1,command2)和包含7个元素的控件数组(label3(0)—label3(6))。
二、属性设置
label3控件数组中的所有元素皆采用相同设置。
三、代码编写
本程序的实现原理是:当用户单击“开始”按钮时,打开定时器,利用定时器控件同时产生两个随机数sj1、sj2,sj1的范围是1~32,sj2的范围是0~49。当sj1=24的时侯,用sj2与前面产生的中奖号码作比较,若与前面的中奖相同,则退出本过程;若与前面的中奖号码不同,则将此随机数作为中奖号码。当产生了7个中奖号码时,关闭定时器控件,停止产生随机数。
本程序用到的函数简介:
(1)randomize:初始化随机数的种子数。
(2)int():返回一个非整形数字取整后的整数。
(3)rnd:产生一个0~1之间的随机数(大于等于0,但小于1)。
(4)qbcolor():返回参数(0~15)对应的颜色。
(5)val:将一个字符形变量转化为一个数值型变量。
(6)format:格式化一个表达式。
以下是程序的完整代码:
dim sy as integer
′命令按钮1的单击事件
private sub command1_click()
′清除label3控件数组的内容
for i=0 to 6
label3(i).caption=′′
next
timer1.enabled=true′打开定时器
command1.enabled=false′使开始按钮失效
sy=-1′索引值初始化为-1
end sub
′命令按钮2的单击事件
private sub command2_click()
unload me ′卸载本窗体
end sub
′定时器1的定时事件
private sub timer1_timer()
dim sj1,sj2,ys as integer
randomize′初始化随机数
sj1=int(rnd*32)+1
sj2=int(rnd*50)
label1.caption=sj1′设置标签1的内容
ys=int(rnd*6)+9
label1.forecolor=qbcolor(ys)
if sj2=24 then′如果sj2等于24
sy=sy+1′索引值加1
for a=o to sy
if sj1=val(label3(a).caption) then
sy=sy - 1
exit sub
end if
next
label3(sy).caption=format(sj1, ′00′)
label3(sy).forecolor=qbcolor(ys)
end if
if sy=6 then′如果索引值等于6
timer1.enabled=false ′关闭定时器
command1.enabled=true ′使命令按钮有效(即可重新开始抽奖)
end if
end sub
单击工具栏上的“启动”按钮,启动抽奖程序。单击“开始”按钮,label1控件将用五彩缤纷的颜色快速显示1~32之间的数字,并在label3控件数组中产生一组7个数字的中奖号码。再次单击“开始”按钮,程序将自动清除label3控件数组中的内容,并重新产生一组7个数字的中奖号码(与前面的不相同)。
vb程序设计教学探讨 篇5
摘 要 VB程序设计是许多高等院校计算机基础课程中指定的一种编程学习语言,在VB程序设计教学过程中,如何不断提高教学质量和培养学生的学习能力,一直是广大计算机教师感兴趣的课题。结合VB程序语言教学经历,介绍启发式教学在VB程序设计教学中的一些应用,包括一些教学案例和方法手段等,在激发学生学习兴趣、培养学生独立思考和提高动手能力等方面取得良好效果。
关键词 启发式教学;VB程序设计;计算机基础课程
中图分类号:G642.3 文献标识码:B
文章编号:1671-489X(2017)14-0096-02
Application of Heuristic Teaching in VB Programming Teaching//
HE Wen
Abstract VB programming is a kind of programming language spe-
cified in the computer basic course of many colleges and universities.How to improve the teaching quality and cultivate students’ learning
ability in VB programming teaching is always a subject of great in-terest to computer teachers.This paper introduces some applications of heuristic teaching in the VB programming teaching,including some teaching cases and methods.It has achieved good results in
stimulating students’ interest in learning,cultivating students’ inde-pendent thinking and improving their practical ability.Key words heuristic teaching; VB programming; computer basic course
前言
VB(Visual Basic)程序?O计语言是可视化、面向对象的编程语言,由于语法简洁、功能强大,已成为各高校讲授程序设计语言的必选课程[1]。但是,由于VB语言抽象、知识点多,加之学生多数为第一次接触面向对象的计算机编程语言,因此要取得较好的教学效果,并非一件易事。笔者在教学实践中,改进教学方法,采用启发式教学方式,引导、启发学生进行独立思考,培养其思维能力与独立解决问题的能力,调动了学生的学习积极性,收到良好的教学效果。在知识传授过程中激发学生兴趣
在讲授VB程序设计教程时,难免会碰到学生觉得枯燥乏味或是兴趣索然的情况。此时,教师就要根据VB程序设计语言的具体特点,将知识讲解得通俗易懂,引起学生兴趣。所以教授VB程序设计的首要任务,就是启发学生的学习兴趣;学生厌学,教师的启发便无从谈起[2]。
如在教学控制结构程序语句的时候,可以首先向学生介绍几种不同的控制结构,包括顺序结构、选择结构和循环结构。接着给学生演示一些由这些程序控制语句编写的趣味程序,如“简单计算器”“图片自动连续显示”“猜数字游戏”等,让学生感受VB程序语言的魅力。通过趣味程序的演示,可以启发学生的好奇心,让学生的思维活跃起来,进一步想去学习制作这些程序。此时教师引导学生进行思考:如何才能实现这些程序?如何才能有效控制程序语句的执行?教师将程序控制语句的用法说明后,由学生进行设计,再在课堂上演示实现,使原本枯燥无味的程序代码变得简单有趣,从而促进学生对知识的理解。启发式教学,培养学生的逻辑思维能力
教师应该从教学方式方法入手,增强课堂的趣味性,让知识的传授更加形象直观。采用启发式教学,可以让学生在教师的启发下,循序渐进地掌握知识。比如在讲授计时器控件的时候,为了让学生更直观地了解这个控件的使用,可以首先演示一个简单的动画程序――“移动的字幕”。启动程序,学生看到一幅在窗体上循环移动的字幕,此时学生的兴趣油然而生,想了解该程序的编写方法,教师才循序渐进地分析讲解这个程序:首先在窗体上添加一个标签控件Label1和一个计时器控件Timer1,如图1所示;然后讲解计时器控件的工作机理(每隔一定的时间间隔触发一次Timer事件)和窗体上控件的位置属性;接着提出问题:如何才能让这个标签在窗体上动起来?此时学生可以想到在计时器控件的Timer事件中设置语句“Label1.Left=Label1.Left+X”,即可让标签每隔一定的时间间隔向右移动X长度的距离,设置较短的时间间隔即可使字幕产生滚动的效果。那么,当标签移动出窗体后又如何将它移回窗体的左边界呢?此时,教师再引导学生使用选择结构程序语句控制标签控件的位置移动,在代码中设置相应的语句即可。
通过上述程序的讲解,可以使学生对计时器控件的工作机理有较为深刻的认识,同时通过引导,一步一步分析解决问题,使程序语句的理解更加轻松有趣,从而提高学生的逻辑思维能力。在教学中启发学生进行独立思考,积极创新
在教学中如果循规蹈矩,按照一成不变的算法思路讲解程序,不仅不利于学生创新能力的培养,甚至可能使学生学得不够灵活,程序题目一旦发生变化就不会做了;在教学过程中应鼓励学生独立思考,积极创新。如在讲解循环结构算法的时候,要求学生编写一道题目:求1~1000之内的全部“同构数”。教师首先给出“同构数”的概念,即一个数出现在其平方数的右端,则称此数为同构数;接着举例介绍,引导学生进行独立思考。根据在前面章节学习的VB运算符与表达式的使用方法,可以表示出一个n位同构数的构成条件为:x=x^2 Mod(10^n)。而方法不止一种,教师也可从字符串操作函数的使用上启发学生,让学生写出第二种能表达n位同构数的条件:x=right(x^2,n)。这样可以用两种方法写出求同构数的程序,如图2和图3所示。
通过诸如上述程序的编写,提高了学生的创新能力,同时也使学生的编程水平得到提高。教师应在课堂多引导学生,让学生独立思考问题,不循规蹈矩,这样才能逐步提高学生的编程水平。提高学生的自学能力与独立解决问题的能力
自学能力对于一个高等学校的学生来说是非常重要的,不会自学的学生无法将该门课程学好、学精。教师在课堂上除了要教会学生书本上的知识,还要教会学生如何自学,如何独立解决问题。比如对于VB这门课程来说,学生光靠课堂40分钟听讲是远远不够的,要学好这门课程,还需要在课后进行及时的复习和适量的上机练习。因此,学生如何提高自己的自学能力,如何找到适合自己的自学方法,如何提高独立解?Q问题的能力,成为广大教育工作者研究的热点问题。
近年来兴起的MOOC与SPOC课程是对传统教学模式的一种革新,教学团队建设VB程序设计的MOOC课程,将知识点碎片化、精炼化,并将课程置于网络,以供学生学习。基于在线开放的特点,学生可随时随地在课后观看教学视频,可将在课堂上没有理解到位的知识点再次学习,加深巩固,为学生自学提供了便利的条件。建设在线作业管理与测评系统,使教师可以在教学过程中方便地发布作业、批改作业、在线答疑等,使教师可以及时了解学生对知识点的掌握情况,与学生进行交流,实时考评。通过这些先进的教学平台,学生可以更快更轻松地进行自学,及时解决在学习过程中遇到的问题,从而提高自己的自学能力与解决问题的能力。
在教学过程中设计出一些综合实验,要求学生独立完成,根据学生的完成情况进行打分,纳入期末总评。综合性实验不仅可以反映出学生对教学章节各知识点的掌握情况,还可以反映出学生综合运用知识解决问题的能力。在学生完成实验后,教师对其作品进行评价,同时学生之间互评;对评价高的作品,安排学生在下次课堂进行讲解,将其设计思路与实现方法与其他学生进行分享。这样,学生之间可以借鉴彼此的宝贵经验,互相学习、共同进步。学生的学习积极性和独立解决问题的能力也将同时得到提高。
参考文献
vb程序设计教学探讨 篇6
(1)采用这种教学法,摆脱了以往单纯以实例教学为主出现的不足。学生不再对程序开发感到陌生,他们能将所学的知识结合起来,产生更多的想法和新念头,为以后的学习和就业铺垫新路。
(2)采用这种教学法,使教学以现实目标为中心,具体、生动,学生目标明确,能够充分发挥学生的能动作用,充分调动学生的学习热情,使学生在开发程序的过程中掌握基本知识与技能,并培养了学生的自主学习能力。
(3)在整个的开发过程阶段,学生除了通过自主探索的方式完成任务外,还可通过协作学习的方式对某些问题进行交流、讨论、沟通,从而开阔学生的思路,提高学生的综合实践素质和敢于创新、团结合作的精神。
(4)学生在学习途中遇到困难时,可通过查找书本、网上资料等解决问题,使学生学习的内容更多、更深,知识面更广,提高自学能力。
运用程序开发与实例结合教学法需要注意的几个问题
选好例题系统整个教学过程实质上是由若干个子程序串联而成的,所有的教学活动都围绕系统展开。因此,系统的设计、编排非常关键,直接影响教学效果。系统选择时要注意两个问题:
(1)选择的系统要让学生在生活中对其了解、熟悉,激发学生的学习兴趣。
(2)由于学生是技校生,系统的选择不能太难、太大,要兼顾基础性和研究性,让不同层次的学生均学有所获,让有创新思维的学生有可开拓的空间。
教师必须进行角色转换在教学实施过程中,已经形成了“以系统为中心点、教师为主导、学生为主体”的基本特征,因此教师必须进行角色转换。角色转换要从讲授、灌输转变为组织、引导,从讲台上讲解转变为走到学生中间与学生交流、讨论。教师在整个课堂教学中是组织者和实施者,教师的主导性主要体现在学生学习的方向、内容、过程、结果和质量上,起引导、规范、评价和纠正的作用。教师要充分了解学生,在学生学习遇到困难时,教师应该为学生搭起桥梁;在学生学习不够主动时,给学生提出问题,引导学生去探究;在学生完成基本任务后,调动学生的创作欲望,进一步完善任务创作;在任务完成后及时做好评价工作。
参考文献:
[1]林陈雷,郭安源,葛晓东.Visual Basic教育信息化系统开发实例导航[M].北京:人民邮电出版社,2003.
探讨VB程序设计课程的教学方法 篇7
1 教学方法
1.1 实例教学,激发学生兴趣
兴趣是学习的“原动力”,兴趣是学习的“催化剂”。它能变无效为有效,化低效为高效。反之,如果没有了兴趣,学好VB就成了天方夜谭。由此可见兴趣的重要性。浓厚的兴趣可以培养学生的求知欲,激发学生强大的学习动力。
教学中,引入鲜活的实例,以实例讲解与演示的方法来提高学生的学习兴趣。VB的入门教学非常重要,第一节课上,笔者演示了用VB开发的简单记事本程序、商品销售管理系统等,以直观的印象告诉学生用VB可以设计与实现菜单、工具栏、访问数据库等,让学生了解到VB究竟能做什么,并且鼓励学生:“学完VB以后,你完全可以自己编写出这样的应用程序”,从而增强了学生对这门课程的喜爱。实例采用由简单到复杂,循序渐进的讲解方法,并且实例多为很贴近实际生活的例子。例如:在讲授定时器控件时,以红绿灯功能的实现具体讲解定时器控件的用法;在讲授数组的用法时,以体育彩票机选功能的实现来讲解如何使用数组。教学时使用这样的实例,学生不会感到乏味,从而激发学生的学习兴趣。
1.2 问题驱动,启发学生思维
问题驱动是指由教师创设合理的学习情境,巧设问题,营造适合学生心理体验的氛围,将学生自主学习和探究过程置于一个特定的情境中。在众多教学模式中,问题驱动教学已成为目前研究的热点。
老师利用情境、对话等学习环境,充分发挥学生的主动性和积极性,引导学生从体验中学习,通过交流,发现问题,解决问题,反思学习。另外,学习的过程也是一个不断发现和解决问题的过程。因此,问题驱动下的探索成了这一教学模式的鲜明特色。以问题制造困惑,在问题的驱动下激发思考,引发学生探究的欲望和兴趣,以目标导引解决困惑。
例如:在讲授随机函数的用法时,按照书上的说法,产生区间[m,n]内的一个随机整数表达式为Int(Rnd*(n-m+1))+m。设立这样的问题:如何产生一个两位数的随机整数?并留给学生充分的思考时间。在学生思考的同时,适时给出提示:把两位数的最小值及最大值分别替换成表达式中的m和n,就可以产生一个两位数的随机整数,其表达式为Int(Rnd*90)+10。乘胜追击,既然会产生一个两位数的随机整数,那么如何产生一个n位数的随机整数?同样,在学生思考时,循循善诱,引导学生考虑n位数的最小值与最大值与n的关系,让学生找出其中规律,最小值为10n-1,最大值为10n-1,代入表达式得到Int(Rnd*((10n-1)-10n-1+1))+10n-1,即为问题的解。这种方法使学生在动态的问题中去不断寻求解决问题的方法和策略。驱动学生积极主动地去参与学习的全过程,培养学生提出问题、分析问题、解决问题的能力,从而促进学生的全面发展,发展和挖掘学生的各种潜力,激发学生思考。
1.3 多媒体演示,增强直观认知
随着社会的向前发展,传统的“黑板+粉笔”的教学手段已不能满足需求,多媒体辅助教学日益体现其重要性。利用多媒体进行辅助教学,往往可以达到事半功倍的效果。与传统的教学手段相比,它的优点是:节约了板书时间,加大了信息量,开阔了知识面,增强了直观性,并能挖掘出课本文字达不到的动态效果,使难以理解的抽象理论形象化、生动化,达到提高教学效率、增强学生学习兴趣的目的。
VB课程理论性强,如果仅使用传统的教学手段,只会使学生听起来更加枯燥乏味,久而久之就会失去学习该门课程的兴趣。笔者在授课过程中,充分利用多媒体资源,边讲解边操作演示,更加直观生动地加深学生的印象,也起到了很好的效果。例如:在讲解常用控件用法时,利用多媒体现场演示VB软件中这些常用控件的属性设置方法、代码编写规则、代码调试方法;在讲授条件、循环语句的用法时,利用多媒体演示了很多的实例,帮助学生理解和掌握。多媒体演示时,尽量将控件的字体、代码的字体调整到最大,以使后排的学生也能看清投影内容。
利用多媒体进行辅助教学,使学生在接受理论知识的过程中还能体会到现代信息技术的魅力,达到了传统教学无法实现的教学效果,更加便于学生学习和接受。
1.4 师生互动,提高课堂效率
叶澜教授说过:“课堂教学的本质应当被视为师生、生生互动的过程。”师生互动可以变单一、接受的学习方式为多样化的学习方式,且高度重视学生的主动参与,亲自研究,动手操作,强调师生间的交流与合作。
现在,强调教师不要一讲到底,因为满堂灌的讲授式教学不仅效率较低,且收效甚微。在教学活动中师生之间已不是传统意义上的“教与学”的关系,而是一种互动、协作的关系,教师是教学活动的引导者、管理者和调控者,学生是学习的真正主体,他们参与整个活动,与教师构成互动、互助、互学的态势,驱动整个学习活动。
近几年的该课程的教学过程中,笔者十分重视师生间的互动。例如:在用多媒体演示并讲解完If语句的实例后,笔者会出一至两道编程题,要求学生用If语句实现规定的功能。先让学生在下面思考一定的时间,然后请同学上讲台来利用多媒体实现该程序。该同学从设计界面、修改属性、代码编写直至调试运行的每一步操作,台下的同学都一目了然。台上与台下的同学都进行着思索,哪里有问题了,台下的同学会立即给予指正。当学生运行该程序得到了正确的结果,一种自豪感由然而生,从而激发学生的学习兴趣。此外,笔者还经常激励学生,使学生在一种和谐、宽和、放松的精神状态下学习,并且积极参与到课堂中来。收到了较好的效果。
1.5 注重实践,提高动手能力
VB学得好不好,通过上机实践就能检验出来。由于VB很强的技术性、实践性,加强实践性教学环节非常必要。
笔者的做法是在理论课上就把上机任务布置下去,让学生带着任务去理解、消化书上的例题,然后再模仿例子来编出程序。要求学生每人准备一本上机作业本,事先把界面、代码的设计写在作业本上。每次上机前,严格检查每一位学生的上机作业本。学生在上机前已经有了一个思考的过程,上机来验证设计、代码编写是否正确,这样做大大提高了效率。鼓励学生在上机过程中相互讨论去解决问题,如果确实遇到难以理解的情况,笔者也仅是进行引导,并非将代码告诉学生,以此来培养和提高学生综合运用知识分析和解决问题的能力,独立思考及创新能力。
1.6 分层次教学,发挥学生特长
学生的水平有所不同,教学中应根据学生的个体差异,做到有的放矢,充分调动每位学生的积极性。程序设计类课程两极分化现象很明显,有些学生喜欢编程,而有些学生一提到编程就头疼。如何顺应不同学生的学习需要,发展他们的实践能力和创新精神,这时就需要在整体教学过程中做到统筹兼顾。
笔者的在教学过程中,特别是实践教学中采用这样的方式:上机编程题中既包含每位同学都要完成的基础题,又包含附加题。附加题基本是历年计算机二级VB的考题,这样做既是为了兼顾普通学生,同时也是为了充分发挥优秀学生的内在潜力,使他们提前得到锻炼的机会,也是为了让这些学生能够顺利通过二级考试的需要。此外,还要求优秀学生与学得不大好的学生之间结成对子,以促进班级的整体提高,发挥学生特长。
2 结束语
总之,在VB程序设计课程的教学过程中,只有不断进行教学方法的改进才能取得好的教学效果,激发学生的学习兴趣,提高学生的编程能力。以上是笔者在实际教学过程中的一些具体做法。实践证明,采用上述教学方法,教学效果有了显著提高。
摘要:VB语言具有很强的理论性与实践性,如何教好该门课程成为摆在广大计算机教师面前的一道难题。该文结合近几年来VB的教学经验,对VB程序设计课程的教学方法做了有益的探讨。
关键词:VB,程序设计,教学方法
参考文献
[1]杨潞霞.VB程序设计教学的改革与实践[J].计算机教育,2007(8):24-26.
[2]马建霞.VB程序设计教学方法初探[J].信息科技,2008(12):192-193.
[3]燕丽.VB程序设计教学方法探析[J].计算机教育,2007(12):1704-1705.
[4]王瑞凤,成桂兰.Visual Basic教学设计改革与探索[J].咸宁学院学报,2007,27(4):166-167.
[5]黄丽,孙敏燕.程序设计课程的教学方法改革[J].信息科技,2008(14):186-187.
vb程序设计教学探讨 篇8
关键词:程序设计;Visual Basic;高职院校;计算机
【中图分类号】 G642 【文献标识码】 A 【文章编号】1671-8437(2012)02-0014-02
随着计算机技术和通信技术的飞速发展,计算机应用日益普及,以计算机技术、微电子技术和通信技术为特征的现代信息技术,已在社会各个领域产生与应用。高职院校开设计算机程序设计课,一方面拓宽了大学生知识结构,另一方面强化了学生的逻辑思维和数学思维。传统的计算机程序设计体系同急剧发展的计算机技术已不相适应,计算机程序设计教学体系应进行相应的改革,VB的教学也不例外。
1、高职计算机VB教学的特点
VB具有易学、功能强、见效快、采用事件驱动等特点,其教学可分为基础理论教学和程序界面设计教学两大部分,教学中应该采用“任务驱动”或“项目驱动”的方式进行,在任务或项目的完善完成过程中学习VB程序设计知识,避免单一枯燥的知识讲解,使学习变得有目的性和针对性,提高教学质量。
2、加强高职校计算机VB教学的措施
2.1分层制定教学目标
学生作为课堂教学的主要教学对象,其发展水平差异是客观存在的,在学习过程中,存在着差异,包括计算机知识水平差异、思维发展差异等。教师在教学中应根据学生所表现出来的差异进行分层,设计不同层次的学生模型,分层制定教学目标和教学内容,依据教学大纲设置不同层次的学生在教学活动中要达到不同的学习目标并依此安排不同的学习内容,激发学生努力探索而实现认知水平的重新架构。首先,要设置不同的教学目标,即把计算机程序设计课分为两个层次,一个基础层次,一个提高层次。基础层次要求学生掌握VB的基础知识和基本技能,能对软件进行进一步自学和知识的迁移;提高层次要求学生在达到基础层次的教学目标后,能综合运用所学知识和技能,解决实际问题。其次,根据不同的教学目标设计不同的教学内容。基础层次的教学内容是基本掌握VB的基本技能和应用,能独立编写小程序;提高层次的教学内容是熟练掌握VB的基本技能和应用并能用VB完成一个项目的策划与设计。
2.2教学内容的创新
2.2.1注重理论联系实际
VB是一种可视化编程语言,提供了丰富的控件,而面向对象、以事件驱动程序的特点,使得代码可以重用,把復杂的计算机语言、专业化的技术变成轻松自如的模块化应用。基于VB语言的编程特点,教师在课堂上应通过对企业应用项目的VB程序设计案例引出对象、控件等,激发了学生浓厚的学习兴趣,使枯燥无味的学习变得简单、有趣,从而达到理想的教学效果。
2.2.2注重实训
系统的理论学习能让学生掌握VB的程序设计的机制和原理,对VB知识体系的运用的训练则表现在实验实训上,实验实训能帮助学生加深对系统知识的理解,有助于学生正确运用所学知识。在课程教学开始或前期可以安排一个企业级或时下比较流行的项目开发,在章节的教学后根据教学内容加入功能,以此来锻炼学生的综合运用能力、强化理论知识,并适量安排一个或几个小项目,使实训活动跟着理论一起走。
2.3 教学方法的创新
2.3.1 发挥计算机多媒体的优势
在感觉受到关注、对学习充满兴趣、自己主导或参与、得到反馈;有成就感、有挑战性等情况下,学生的学习效果会更好。计算机多媒体技术的使用使得上述情况变得容易。在讲解VB程序设计时,可以把当前国际前沿的软件开发技术通过图片,视频,声音等多媒体形式概要地介绍给学生,给程序员蒙上了神秘、传奇的色彩。然后再用VB开发的应用程序示例如动画、游戏、各种有趣的软件给学生欣赏,激发学生的学习兴趣,让学生自主的参与到VB的学习中来。
2.3.2 实现分组学习,加强教学互动
学习活动并不是一个人孤立学习的过程,在教学和实训活动中,可以把学生分成几个小组,每个小组里都包括接受能力不一样的学生,小组内学生可以相互学习,共同完成项目。遇到不能解决的问题时,及时提出,相互讨论,共同解决;另一方面,教师可以对共性的问题集中讲解,有目的的答疑。这样,既加强了学生之间的学习交流,又增进了师生之间交流,达到提高教学效果的目的。
2.3.3 强化现场演示
VB是可视化的编程语言,它继承了面向过程的编程思想,但同时在交互式操作上有了革命性的改进。这使得对VB纯语法的使用率大大降低。使用多媒体教学,老师可以根据我们预定的工程项目,通过演示的方式逐步展开,对实际窗口的创建,代码的编写,算法的实现等现场操作,使学生能够看到具体操作的效果,更容易激发学生的学习兴趣,有助于学生掌握教学内容。
2.4 创新考核方法
根据高职院校“轻理论,重实践”的教学特点以及VB控件多、属性多、事件多等特点,对VB课程的考试应以注重学生主体在整个教学项目活动中是否主动参与、主动探究,是否实现了主体发展,是否有利于学习能力、实践能力、探索能力提高为出发点,采用项目考核、机试、笔试相结合的方式综合评价。
2.4.1 布置课后作业
在作业和试验环节同时进行的时候,根据教学内容和目标要求,可以在课程教学的初期布置几个大的项目作业,供学生以小组的形式选择。比如:要求学生设计一个学生成绩管理信息系统,随着讲课内容的深入,让学生逐渐加入功能,逐步完善,期末时根据完成的情况给出成绩,并按一定比例记入学生总成绩,激发学生的兴趣、积极性和竞争意识,使学生带着任务学习本课程。
2.4.2采用上机考核
采取一人一机的方式,老师给出考题,学生在规定的时间完成的形式来估学生成绩。这种考核方式本身就是对学生实践水平的一次检验,既考出了学生的实际应用能力,又体现了计算机课考试的现代性。
2.4.3上交自制作品
教师可以在教学过程中鼓励学生自己选择完成开发一个小软件或小课件以考核学生的综合运用能力。学生自己构思、设计,老师或同学之间互相交流解决问题,把主动权交给学生,鼓励学生创新。
vb程序设计教学探讨 篇9
用VB编写标准CGI程序(上)
利用通用网关接口(CGI),Web服务器可以执行一些外部程序,并将这些外部程序所产生的输出结果和Web服务器所管理的静态文本、图像和声音融合在一起传给相应的Web浏览器。当客户机的浏览器向Web服务器请求一个HTML文件时,服务器在收到请求后就去寻找这个文件并将找到的文件传送给客户机。而当客户机的请求是一个CGI程序时,Web服务器将激活客户机所请求的CGI程序并把程序的执行结果传给客户机。
标准的CGI程序是通过环境变量和标准输入输出来与Web服务器交换信息的。任何一个被系统激活的进程都拥有标准输入和输出这两个文件句柄,CGI程序的进程也不例外。不过,当CGI程序被Web服务器激活以后,它的标准输入STDIN被连接到Web服务器的标准输出STDOUT上,而CGI程序的标准输出STDOUT则被连到服务器的标准输入STDIN上。因此,CGI程序从标准输入读取信息(也就是从Web服务器的标准输出读信息),而它向标准输出写信息(也就是向Web服务器的标准输入写信息)。
Web服务器一般将客户机传送来的信息放在它的标准输出和相关环境变量中,而CGI程序则从环境变量和它的标准输入(也就是Web服务器的标准输出)获取所需的信息,程序的最终输出结果则被写向它的标准输出STDOUT(也就是Web服务器的标准输入)。Web服务器将从它的标准输入STDIN(也就是CGI程序的标准输出)获取CGI程序的输出结果并将它传送给客户机。客户机、Web服务器和CGI程序之间的信息交流如下图所示。显然,Web服务器就像是客户机和CGI程序间的中介。
Web服务器、CGI程序间的这种标准框架在Unix系统下和微软Windows环境中的字符方式下可以工作得非常好,因为此时系统产生的所有进程都可以存取标准输入和标准输出。但对于微软Windows图形方式下的程序就不行了,因为它们无法存取标准输入和标准输出。为了解决这一问题,微软在Win32系统中创建了另一类型的标准输入和标准输出,程序可以通过调用Win32 API函数来存取标准输入和标准输出,不过,这就意味着使用这类标准输入和标准输出的CGI程序都必须是32位的。
微软Windows环境下的其它一些Web服务器(例如Website)则使用另外一种特殊的技术(即利用INI文件)来实现Web服务器和CGI程序间的数据交流。采用这种被称为“Win-CGI”规范编写的CGI程序通常只能在部分Web服务器上运行。一般地,支持Win-CGI的Web服务器将客户端的输入以及有关的状态信息写入到一个INI文件中,而CGI程序则从该INI文件中获取相关信息,这类程序的执行效率没有标准CGI程序高。
在进行CGI编程时,只要使CGI程序从标准输入和环境变量中获取客户机提供的信息,并将要传送给客户机的输出结果写入标准输出,剩下的信息传递工作将由Web服务器自动完成。CGI只是规定了一个标准的接口规范,只要遵守这个标准规范,程序开发人员就可以利用各种编程工具(如Perl、C、FORTRAN、Visual Basic等)进行CGI编程了。考虑到Visual Basic的强大的数据库处理能力、客户机/服务器模式的编程能力以及字符串处理能力,所以本文主要向大家介绍如何使用VB编写标准的CGI程序。
一、输入输出的处理
一个CGI程序被激活以后,它首先要做的事情就是确定系统平台、Web服务器和客户端浏览器的状态信息以及客户端用户的输入数据。此外,它还必须能够将相关信息传送给客户端,否则它将一事无成。这些操作都是通过存取环境变量和标准输入输出来完成的。用VB编写的CGI程序通过调用函数Environ( )来获取相关环境变量的值。存取标准输入输出就要在程序中使用Win32API函数GetStdHandle( )、ReadFile( )和WriteFile( ),在使用这些函数时首先必须在程序中声明它们,写声明语句时可以借助于VB提供的API文本查看器。
以下的CGI程序说明了在VB-CGI程序中如何处理环境变量和标准输入输出。该CGI程序非常简单,可将标准输入中的信息不经任何处理就返回给客户端,它可被任何表单用POST方法激活:
Declare Function GetStdHandle Lib “kernel32” (ByVal nStdHandle As Long) As Long
Declare Function ReadFile Lib “kernel32” (ByVal hFile As Long, lpBuffer As Any,
ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long,lpOverlapped As Any) As Long
Declare Function WriteFile Lib “kernel32” (ByVal hFile As Long, ByVal lpBuffer As String,ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long,lpOverlapped As Any) As Long
Public Const STD_INPUT_HANDLE = -10&
Public Const STD_OUTPUT_HANDLE = -11&
Public Const FILE_BEGIN = 0&
Public hStdIn As Long 注释: 标准输入文件句柄
Public hStdOut As Long 注释: 标准输出文件句柄
Sub Main
Dim CGI_ContentLength As String,CGI_QueryString As String
Dim lContentLength As Long 注释: 标准输入中的字符串的长度
Dim sBuff As String 注释: 用于存储标准输入中的字符串
Dim lBytesRead As Long 注释: 实际读入的字符个数
Dim rc As Long
Dim sFormData As String
注释:调用系统函数生成标准输入输出文件句柄
hStdIn = GetStdHandle(STD_INPUT_HANDLE)
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)
注释:获取环境变量CONTENT_LENGTH的值,并将它转换为整型
CGI_ContentLength = Environ(“CONTENT_LENGTH”)
lContentLength = Val(CGI_ContentLength)
sBuff = String(lContentLength, Chr$(0))
注释:从标准输入中读数据
rc = ReadFile(hStdIn, ByVal sBuff, lContentLength, lBytesRead, ByVal 0&)
sFormData = Left$(sBuff, lBytesRead)
OutPut “Content-type: text/html” &vbCrLf
OutPut “”
OutPut “表单传送数据的方法POST ”
OutPut “
表单传送数据的方法POST
”
OutPut “
本CGI 程序使用Visual Basic编制! ”
OutPut “
POST方法传送的数据: ”
OutPut “
” & sBuff
OutPut “”
End Sub
Sub OutPut(s As String) 注释: 定义一个向标准输出写信息的函数
Dim lBytesWritten As Long
s = s & vbCrLf
WriteFile hStdOut, s, Len(s), lBytesWritten, ByVal 0&
End Sub
一般地,用VB编译生成的CGI程序不能正确处理中文信息,
这主要表现在CGI程序向STDOUT输出的中文在Web页面上无法正确显示,可通过在该中文字符串后跟着输出一些空格来解决这个问题。当使用HTML标识符
、
对Web页面进行排版时,浏览器在显示该Web页面时会吃掉多余的空格而只保留一个。在这种情况下,这些空格对Web页面的外观基本上没有什么影响。如果使用HTML标识符
、
对Web页面进行排版,则由于空格不能被浏览器吃掉,所以Web页面的外观将会受到较大的影响。不过,这时可用HTML的表格、
来代替
对Web页面进行排版。
注意:整个CGI程序的主体必须放在MAIN()函数中。
二、URL译码与解码
由于Web服务器和浏览器不能正确处理一些特殊的字符,Web服务器和浏览器之间可能会因此而产生某种程度的误会,所以在数据被传送之前,浏览器都要对表单内客户输入的数据中的特殊字符进行URL译码。
例如,Web系统用“=”分解表单各元素的NAME和VALUE属性,用“&”分解不同表单元素的输入数据。如果在表单的输入数据中包含这些特殊的字符,并且表单的数据在传送给Web服务器前不作任何处理,则Web服务器将无法知道哪一个“=”、“&”是用户输入的,哪一个是浏览器加上的。在由表单属性ACTION定义的URL中,也可能会出现一些特殊的字符,当在CGI程序的名称和路径信息(Path Information)中出现“=”、“&”和“?”时,都会影响数据的正确传送。
URL译码(URL Encoding)就是将Web服务器所不能正确处理的特殊字符转换成它的十六进制数的形式,比如将“%”转换成“%25”、“=”转换成“%3D”等等。这些特殊的字符通常被称作Web系统的保留字符。在Web系统上无论是用GET方法还是用POST方法传送的数据都要进行URL译码。CGI程序要想处理表单传送来的数据,还必须对浏览器URL译码过的数据进行解码。因此,理解URL译码对于我们进行CGI编程是非常重要的。URL译码一般包括以下步骤:
1、浏览器将所传送的数据根据表单所包含的元素分解成“NAME=VALUE”形式,NAME和VALUE分别是表单元素的属性。其中,VALUE属性中存储客户机在表单中输入的数据:如果客户机没有输入数据,则VALUE存储的是表单定义的缺省值;如果缺省值也没有定义,则VALUE值为空。
2、代表表单中各元素的各个“NAME=VALUE”对被浏览器用“&”连接起来。
3、VALUE属性中存放的数据若含有空格,则被转换成“+”。
4、URL和输入数据中所包含的Web系统的保留字符必须被译码成其十六进制数形式。
5、被译码后的字符被表示成一个“%”和它们的十六进制数形式(即%HH)。
CGI程序从环境变量“QUERY_STRING”或标准输入中读入的数据是经过浏览器URL译码过的,故在使用这些数据以前还必须对它们进行URL解码。解码的目的是将数据还原成客户端用户在Web页面上输入时的形式。本文已经介绍了URL译码过程,URL解码过程与它正好相反,它一般包括以下步骤:
1、从浏览器用GET或POST方法所传送来的数据中找出代表各个表单元素所储存数据的“NAME=VALUE”对。
2、VALUE属性中所存放的数据若含有“+”,则被转换成空格。
3、将VALUE属性中所存放的数据的十六进制数“%HH”转换成相应的字符。
Web系统将汉字当成特殊的字符,对它也要进行URL译码。对于一个特殊的单字节字符(比如“/”),浏览器通常将它译码成十六进制数的形式(比如%2F),“%”表示它后面跟的是两位十六进制数。当VB程序对其进行处理时调用Chr$函数就可以将其恢复为原貌。而一个汉字则被浏览器译码成四位十六进制数(比如%D5%C5)。如果CGI程序还像以前那样分别调用Chr(D5)和Chr(C5),则由于D5、C5都不是正常的单字节十六进制数码,故Chr函数返回空,汉字将无法正确还原。正确的做法应该是将有关汉字的四位十六进制数一起传给函数Chr(如Chr(D5C5)),此时汉字才能被正确还原。
因此,可以让CGI程序对四位连续的十六进制数一起进行译码,以便使汉字能够被正确还原。但在这种情况下,当客户端用户输入了两个连续的Web系统保留字符时,CGI程序又可能把它们当成汉字来处理。这时可以让CGI程序在需要对四位连续的十六进制数进行译码时首先检查前面两位是否为Web系统的保留字符,如果是则仍然按照单字节的字符处理。不过如果客户端用户在表单内填写了很多汉字,则CGI程序的负担将会大大加重。事实上,在大多数情况下,客户端用户很少会使用两个连续的Web系统的保留字符,所以可以只让CGI程序对最容易出现的情形如“://”(当客户端用户在表单中输入某一URL时会出现这种情况)进行检查,本文下节提供的函数UrlDecode( )可以实现对汉字和Web系统保留字符的URL解码。
【vb程序设计教学探讨】推荐阅读:
vb程序设计教学初探12-06
VB程序设计课程任务驱动教学方法研究10-13
提高VB程序设计教学质量方法浅析5则范文07-30
vb程序设计答案10-21
VB程序设计教法06-06
程序设计基础VB09-04
VB语言程序设计09-18
vb程序语言设计总结01-30
VB程序设计案例论文04-01
VB.NET程序设计论文09-29