引论:我们为您整理了13篇vb程序设计论文范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。
篇1
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结束语
一门课程的教学是一个复杂的系统工程,笔者将以上一些改革和探索用在课堂教学和实践教学中,取得了一些效果,但教学有法,教无定法,只要教学得法。在教学实践中,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的创造性思维和综合应用程序开发能力。
参考文献
篇2
二、教学方法探讨
1.消除学生的畏难情绪
为了打消学生的畏难情绪,对于VB教学,应首先与学生谈VB,而不是教VB。首先,要让学生明白VB和C语言是完全不同的两种编程方式,不要因为害怕C语言,而害怕VB。教学中,通过演示一个简单的例子,向学生演示只需要两行代码便可制作出美观的界面和可爱的功能。比如:示例1:制作美观的界面,实现窗体上的文字自动或手动的向下移动。突现VB相对于C语言的简单易懂,引导学生一步步完成所需功能。最后,启发学生:如果想让文字上移,如何修改程序?如果想让文字左移或右移,如何修改程序?如果想让文字左右交替移动,又要如何修改程序?通过上述示例的讲解,使得学生对VB有一个全新的认识——直观、简单、易学、易用。其次,要让学生了解为什么学习VB,VB对于他们有多么重要。这门课的开设除了承上启下其他专业课程外,还有一个重要的作用就是为了让学生能够参加计算机二级考证,VB在二级考证中相对比较易学易用。再次,告诉学生,有了C语言的基础,代码的编写会更为容易。从而激发学生学习的信心。
2.提高学生的学习兴趣
在教学过程中应尽量使用简单易懂的语言和示例,提高学生的学习兴趣,帮助学生理解知识点。比如,在讲属性、方法和事件这三个很枯燥的概念时,可以通过生活中有趣的示例来进行解释。示例2:通过“蟑螂从女生脚上爬过”的事例,讲解属性、方法和事件的概念。蟑螂从女生脚上爬过时,女生的脸色变红,脸的颜色为红色就是属性;女生尖叫起来,女生跳起来,这是女生本身做出的动作就是方法;蟑螂爬过女生的脚,这是外部事物对女生做出的动作,就是事件。通过这种类型的示例,成功吸引了学生的注意力,也帮助学生理解了这几个难懂的概念。在讲属性、方法、事件的书写格式时,也可将这个示例写成VB伪代码的形式:属性的表示方法:女生.脸的颜色=红色方法的表示方法:女生.尖叫啊事件的表示方法:女生_蟑螂爬过至此,学生对VB程序一下就理解了。
3.实践中学习,项目中巩固
篇3
1、教学方法陈旧
教学方法陈旧会导致教学效果大打折扣,目前,很多计算机教学方面的老师还是用比较原始的教学方法来进行计算机教学,特别是习惯性的用过于专业的语言来讲授教学内容,且教学课程的设置并不符合学生们实际学习的需要,这就使得学生们在学习VB程序设计时不太感兴趣,也不能主动去复习、巩固。很多老师虽然非常重视实践操作,可是学生们在自己设计程序时只能根据老师所教的内容来进行编程却缺乏创造性思维,这对于培养极具创新意识的高素质人才来说是非常不利的。老师们在介绍VB程序设计时往往强调是面向对象的程序设计时没有将VB与其他的程序设计语言进行比较,这也使得学生们对VB程序设计课程的了解比较抽象。其实VB与其他的编程语言可以共同开发一些数据库以实现特定的用途。而这也是当前教学过程中比较缺乏的。
2、学生评价体系落后
除了以上的这些问题外还有一点是比较重要的,那就是学生的评价体系比较落后,很多学校着重考学生的基本知识,这就使学生容易陷入死记硬背的怪圈中而不能形成自己的思维能力。学校往往是简单的将学分作为评价学生的标准,因而促使学生们为了获得学分而进行学习或开展活动,这对于学生的发展是非常不利的。老师不能从考试和平时作业来简单的评价一个学生对于课程的掌握情况,这对于学生的评价是不完善的。很多老师还用相同的标准来对于不同专业的学生,这也是相当不合理的。
二、如何改善VB程序设计课程教学
为了解决当前VB程序设计课程教学中存在的问题,有关部门应该要保持对这门课程的客观评价并结合当前的实际情况来改善教学状况。只有与时俱进用新的教育理念和教学方法才能培养出未来需要的高素质人才。
1、培养学生学习兴趣
学生是学习的主体,所以在改善教学状况时首先就应该要培养学生的学习兴趣。老师应该让学生们了解这门课程的应用并将一些比较实用且非常有趣的东西介绍给学生们,这就可以增强学生们的学习兴趣并真正的喜欢上VB程序设计这们课程。老师们可以让学生们了解到一些游戏例如俄罗斯方块就是根据VB程序设计开发出来的进而引导学生学习如何进行VB程序设计的学习。学生们甚至可以自己根据程序开发的思想设计出自己想要的简单程序。老师们还可以给学生们介绍一些比较有用的课外书籍借以启发学生们的创造性思维。学生们在日常生活中也应该注意有意识的培养自己这方面的兴趣。很多同学对软件开发比较感兴趣,这就可以将所学与所用结合起来,在兴趣的驱使下有意识的学习程序设计往往能够取得更好的效果。
2、改变教学方法
除了要培养学生们的学习兴趣外还应该要改变教学方法。只有教学方法改变了才能提高学习效果并保障学生能够真正吸收VB程序设计的思想学会运用这门技术。对于很多学生来说可视化设计便利了他们的学习,所以老师要将VB程序设计的一些特点以合适的形式介绍给同学们,这就减少了他们的理解障碍。老师在教学过程中要将理论教学和具体操作结合起来,不仅要让学生们知道VB程序设计的思想还要让他们了解如何通过具体的操作来实现程序设计。当然,老师们往往发挥着非常大的作用,老师们应该尽可能的将具体的教学内容贯彻到学生们的实际操作中。学生们既要充分的利用各种教学资源还要有创新意识大胆的提出新思想。以师范类非计算机专业的VB程序设计课程教学为例,师范类学生往往对VB程序设计课程不重视,所以老师们往往通过案例教学法等方式来增强教学效果。一些老师根据师范类学生逻辑思维不强等特点加强对学生的思维锻炼,这就取得了比较好的效果。所以,老师们根据学生群体的不同改变教学方法是非常必要的。
3、完善学生评价体系
篇4
一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点诸如效率低、保密性差等。另外,时间一长,将产生大量的文件和数据,这对于查找、更新和维护产品都带来了不少的困难。仓储信息管理系统能够极大地提高商品库存的管理效率,也是企业库存管理科学化、正规化的重要条件。仓储信息管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,仓储信息管理系统能够为用户提供充足的信息和快捷的查询手段。
1系统功能分析、设计
系统的总体任务是实现企业仓储信息管理的系统化和自动化,帮助管理人员更好更高效的完成企业的仓储信息管理工作。本系统分为用户登录、商品管理、库存管理三大大模块。仓储信息管理系统的系统模块图如图1所示[1,2]。
1.1商品管理模块
对商品信息进行录入、查询、修改和删除。商品信息主要有商品编号、商品名、型号、生产厂家、厂址和生产日期等,还可以在备注栏中进一步说明该商品的其他信息。
1.2仓库管理模块
对商品进行入库、出库管理;对库存情况进行统计和管理,及时了解商品的存货量,结合入库出库信息,准确的判断该商品的销售状况,不至于出现断货、或者严重压货的现象。其中商品的基本信息包括货物编号、货物名、型号、单价、货物数量、总价、入库时间和相关备注。
2数据库设计
数据库主要包含库存和商品信息2个数据表。
1)库存数据表包括货物编号、货物名称、货物型号、货物数量、货物单价、货物总价、入库/出库时间和备注等字段。如表1所示。
2)商品信息数据表包括编号、商品名、货物型号、货物生产厂家、货物生产厂址、日期和备注等字段。如表2所示。
3开发环境
仓储信息管理系统是用VB+Access数据库实现。VB是一种可视化的、采用事件驱动机制的编程工具,与其它程序设计语言相比有易学易用的特点[3];Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库[4]。
4结束语
系统操作界面简单大方,用户使用方便。系统开发采用了模块化程序设计的方法,本着实用性的原则,对各种实际情况进行了考虑。系统为企业管理商品管理提供了一个简单、方便和高效的操作平台,实现企业仓储信息管理的系统化和自动化,帮助管理人员更好更高效的完成企业的仓储信息管理工作。
【参考文献】
[1]宫平.基于VB工程财务管理系统问题的探究[J].现代商业,2014(06).
篇5
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.
篇6
研究背景
计算机程序设计语言一直是学生反映比较难的一门课程。长期以来,很多高校使用VB语言作为“高级语言程序设计”课程的教学内容,笔者所在学校原来也是如此。在VB语言的教学过程中,笔者发现了一些问题,突出表现为以下两点:①学生反映学习编程比较难,而且历年考试成绩也不理想;②学生觉得学习这门课程用处不大。这就导致很多学生对这门课程没兴趣,上课纯粹为了应付考试,甚至产生厌学情绪。[1]笔者仔细分析了上述问题,认为问题产生的原因主要有以下三个:①学生基础较差,且逻辑思维能力不强。②VB语言要结合数据库编程,才能展现它的强大功能。而大多数学校只开一学期课程,学时太短,学生仅能机械地学习语法,没有时间学习实际应用部分的内容,从而觉得VB语言没有用。③学语法时,教师没有给学生呈现对其专业学习有帮助的例子,所以他们没有一个直观的感受。
笔者经过详细的论证,决定采用Excel VBA替代VB教学。VBA有着其他语言或开发工具所不具备的独特优点:①VBA可以通过操作Excel操作数据库,这样就可以开发出很多实用的程序,使学生对编程有了直观的体验,提高了他们的学习兴趣。[2]②VBA是易学、上手较快的编程语言,且属于VB语言的子集。即使是非计算机专业人员,也可以用它编写出需要的件,极大地降低了学生学习的难度。③可以高效、快速地编制出Windows环境下功能强大、图形界面丰富的应用软件系统。用Excel VBA替代VB的教学改革在笔者所在学院已经进行了两年,并取得了较好的教学效果。学生学习兴趣明显加强,对编程的应用能力也得到了较大的提高。
目前仍存在的问题
“高级语言程序设计”课程改革虽然已经取得了一定的成效,但还存在以下几个问题。
1.缺乏完善的题库
由于笔者用Excel VBA替代了VB进行教学,学生在上机练习的过程中,有很多题目不再是传统的编程题。例如,在教学过程中,笔者把Excel作为数据库使用,让学生通过编程操作Excel,使他们能轻松理解数据库的基本概念和知识。但由于没有建立统一的题库,每位教师上课时例题都有所不相同,对知识点的要求也有细微的差别,所以给期末考试命题带来了困难,未能实现教学标准化。
2.困难解答不及时,教学实时化不够
“高级语言程序设计”课程是一门对实践要求较高的课程。学生上机编程时,一个语法错误或隐含的逻辑错误都将导致程序运行失败,甚至系统崩溃。这时,如果遇到的问题不能及时得到解决,学生则容易产生厌学情绪。但在课堂中,教师要同时面对几十个学生,要想及时解答每个学生的问题是不可能的,教学实时化不够。
3.教学考核、评价体系不完善
考试的目的不仅是为了检查学生的学习成绩,还要及时发现他们哪些知识点掌握不足,并针对特定问题进行指导。目前,笔者所在学校的改革使学生对“高级语言程序设计”这门课程的整体学习成效有了较大提高,但学校的教学考核、评价体系不够完善,教师对单个学生的学习状况掌握还不够精细。
“学、练、考”一体的VBA教学平台构思
针对以上问题,笔者提出开发一个集“学、练、考”于一体的VBA教学平台来实现教学的标准化、实时化、精细化,其具体步骤如下。
(1)开发一个统一的题库来实现教学的标准化。按照教学大纲的要求,笔者把每一章的知识点按选择题、判断题、程序填空题、编程题四类题型编制成试题库。这样,不论哪位教师上课,学生掌握的知识点都是固定的,保障了教学质量的稳定。
(2)单元测验后,软件会自动统计出每题的出错率,教师很容易就可以知道学生哪些知识点掌握得不够好,以便下节课进行重点讲授,从而实现教学的实时化。
(3)系统对每位学生的每次登录练习都有记录(包括自测成绩、错题编号等),这样教师可以很容易掌握每位学生的学习情况,并针对学习落后的学生进行定点辅导,以达到教学精细化的目的。
开发方案概述
1.关于自动阅卷问题
笔者采用Excel VBA进行教学,由于Excel自带了VBA开发环境,所以生成的题目只需要一个Excel文件即可保存。在该文件中,工作表一保存判断题,工作表二保存选择题,工作表三保存程序填空题,工作表四保存编程题。对于客观题(前三种题型),程序只需要按题号与题库答案进行对比就可以阅卷。对于编程题的自动阅卷,笔者这样设计:在题库中,每道编程题的结果都要求保存在题目文件的工作表四中;阅卷时,程序自动打开每位学生的试卷文件(一个Excel文件),采用Excel VBA的过程调用(call)命令执行过程(学生抽到的题目号),再把结果(保存在工作表四中的数据)跟题库中的结果进行比较,最后得出成绩。对于有语法错误不能运行的程序,系统将杀死进程,再对学生的源代码进行关键字对比,给出步骤分。[3]
2.系统结构
考虑到出题效率,笔者采用了C/S系统结构,开发工具使用Visual Studio 2010,数据库使用SQL Server2008,系统结构如下图所示。
教师登录系统后,可以出卷,安排任课班级的考试,查阅任课班级学生的考试成绩,以及查阅学生的练习情况。学生登录后,可以进行单元练习,自我测试,查看题目答案以及知识点描述等。
3.数据库设计
数据库主要由学生信息表(如下页表1)、试卷信息表(如下页表2)和学生成绩表(如表3)三个表组成。
结束语
构建“学、练、考”一体的VBA教学平台,能有效解决“高级语言程序设计”课程教学中存在的问题,加强教师和学生的信息交流,方便教师及时掌握学生的学习动态,较好地实现了教学的标准化、实时化、精细化,该平台还可以作为一种通用教学平台应用到其他课程的教学中,具有普遍的应用价值。
参考文献:
[1]孙淑霞.地方高校大学计算机基础课程改革的探索与实践[J].中国大学教学,2014(4).
篇7
从心理学的角度分析,兴趣有直接兴趣和间接兴趣之分,前者主要是感性层面的,属于外在动机,而后者是理性层面的,属于内在动机,是驱动学生学习的最根本、最重要、最稳定的因素。我们的教学不能止步于仅仅激发学生的直接兴趣,更重要的是要激发学生的间接兴趣。让学生在学习过程中“尝到甜头”,获得成功的体验则是一种很好的激发学生间接兴趣的方法。在程序设计教学中的第一节课,我们可以先展示一些自己编写的或是以前学生编写的有趣的程序,吸引学生,告诉他们学习了VB程序设计后,大家都能编写出这些小程序,先从感性层面激发他们学习的兴趣。然后选择其中一个相对简单的实例,让学生看一下界面、代码及运行效果,然后让学生跟着我们操作一步步实现这个程序(主要是把事前发给学生的代码让学生复制到对应的地方),让他们初步体验VB程序设计的过程,并且获得成功的体验,从而在理性层面上激发他们学习程序设计的兴趣。在后面的教学中,我们还可以让学生在学习过程中有一定的自,允许产生“自己的任务主题”等方法来影响学生学习的内在因素,培养学生学习的兴趣,激发学生学习动机。
二、选择从简单实例入手,调动学生学习的积极性
Vb程序设计是一门应用性很强的课程,它既有理论又有实践。而从初中生的认知规律来看,只有把理论引入到具体的简单的实例中去,让学生通过模仿,在实际操作中探究和领悟,才能让学生轻松愉快的接受新的知识,调动他们学习程序设计的积极性。
例如,书本第三节中设计了一个“猜币”程序,它首先有随机函数int(2*rnd)产生0或是1,并且根据产生的0或是1显示相应的图片和文字,然后根据输入的数据(0或1)和随机函数产生的数据对比,如果一样就显示“猜对了”,否则显示“猜错了”。
对于首次接触条件语句的学生来说,如果让他们通过这个实例理解条件语句的运用,那么学生看到如此复杂的程序设计思路,就会打击他们的学习积极性。所以针对这个实例,我们可以把它分解成两个小的程序来完成,减轻学生在理解上的难度。首先,我们让学生完成一个简单的条件语句程序,让学生判断如果text1的text值大于或等于60,label2的caption属性值为“恭喜你,及格了”,否则label2的caption属性值为“很遗憾,没有及格”。根据这个最简单的程序,让学生能初步理解条件判断语句的运用。
然后,把根据随机函数产生数据来显示相应的图片和文字作为另一个程序。在这个程序中只要判断随机数如果是1, image1控件的picture属性值导入正面图片,label1的caption属性值为“正面”,否则image1控件的picture属性值导入背面图片,label1的caption属性值为“背面”。第一个程序是根据text1的输入值来判断显示,第二个是根据随机函数产生的值来判断显示,两个程序的思维方法和解决的方法类似,可以让学生自己尝试着完成。
当这两个程序学生都能理解后,让学生进一步探索判断输入的值与随机的值如果相同就显示“猜对了”,否则显示“猜错了”,这样学生很容易就能想到只要对第一个程序稍加改动将判断的条件改成随机函数产生的值就可以完成了。这样通过简单的实例教学,再加上学生的进一步探索就能完成稍微复杂的程序,让学生在一步步的完成过程中得到越来越多的成就感,既能有效地调动学生的学习积极性,还同时培养了学生的探索能力。
三、培养学生互助合作的精神,促进学生自主探究学习
在程序设计教学过程中,学生的两极分化会比必修中的学习更加明显,有的学生会对程序设计很感兴趣,很乐意编程,而有的学生可能会很讨厌,分析其原因之一很可能是一部分学生在学习过程中获得的成功体验少,久而久之会失去学习的动力,因此在教学过程中要注重培养学生的互助合作精神。我们可以根据学生对知识的掌握情况来划分若干个组,教学时,任务按照难易程度分开发给他们,每个学生必须有必须完成的基本任务,还有可选择的附加任务,对小组的评分标准是每个组的基本任务必须要完成,否则要扣分,附加任务看完成人数的多少额外附加一定的分值,这样能力好的学生在做好基本任务后就会帮助其他学生,好的学生之间会相互讨论附加的任务,在相互的帮助和讨论中,他们还可能会发现问题并主动地去探讨一些还没学到的问题。这样不仅能逐渐培养起学生的互助合作精神,而且由于组间存在竞争激发了学生的学习热情,促进他们主动去探究和学习。只有这样才能让更多的学生喜欢我们的课堂,喜欢我们这门课。
程序设计课既是枯燥的又是有趣的,我们只有在教学过程中根据学生的实际情况,结合学生的认知特点积极地进行教学实践和探索,以学生学习活动为中心,精心设计课堂,进行大胆的教学创新实践。
参考文献:
\[1\]吕品.关于程序设计教学──论中小学计算机课程设计之二.人民教育出版社初中信息技术网站论文.
篇8
一、程序设计课教学面临的问题
在程序设计课教学中,多数教师采用的是传统的教学模式,即:以编程语言的语法教学为主线,教师只是告诉学生那种语言有些什么命令,语言的各种语法,学生只是被动地接受,大量的新专业名词使学生难以掌握,在具体的编程及上机操作时,往往出现无从下手、错误百出、不会调试等情况,还有些学生照着书上能做,脱离书本什么也不会。长期以往,会使学生认为程序设计课程十分深奥、那样的可望而不可及,最终会导致学生对课程产生厌倦的思想,即使学习完课程,学生的程序设计思路非常狭窄,解决实际问题的能力较差,不利于学生学习兴趣的培养以及学生思维能力、创新能力、独立分析问题和解决问题的能力的提高。
二、“项目教学法”的实践与探索
“项目教学法”是以一个较完整的软件开发案例为中心,整个学期的教学都围绕这个案例的设计进行讲解,通过对案例的讲解,将程序设计中需要学习的各个知识点融入到案例中,这样就将理论和实践完全结合起来,加深了学生对知识点的理解和培养了学习的学习兴趣,并引导学生自行对案例进行完善和修改,使学生程序设计能力得到提高。具体实施方案如下:
(一)软件开发案例的选择。要准备好一个具有实际应用功能,适合学生掌握的软件开发案例,案例不能选择太大太复杂的设计,并且案例中涉及的内容要是学生比较熟悉的,软件功能不能过于复杂,但必须覆盖课程中所有的知识点,在讲解时选用有代表性的功能模块。可选用学生成绩管理系统、学生选课管理系统、酒店管理系统等MIS系统。
(二)以项目开发形式制定教学计划和教学进度。在制定课程教学进度的时候要结合项目来进行,教学计划和教学进度的设计应按软件设计过程的顺序来进行,在课程中可讲解有关软件工程方面的相关知识。
(三)精心准备教案。根据已经制订的教学计划和教学进度,将课程中的各知识点较完整地总结归纳,做成电子教案。在讲解软件设计的时候,涉及到某知识点的时候,便可打开该知识点的电子教案进行演示讲解,便于学生理解掌握知识点。
(四)鼓励学生变换代码。学生在许多情况下只会模仿老师讲解的程序完成,并没有真正理解程序代码的应用,不知道为什么要这样写,在讲解过程中,应该鼓励学生使用其他代码来完成某些功能,促进学生对程序的理解,提高学生的创新能力。
(五)作业的设计。在知识点讲授完后,应设计一个与讲的例子难度相当的作业,让学生思考独立完成作业,学生完成作业后会有一种成就感和强烈的继续学的愿望。教师可以通过学生的设计,给他们正确的引导。 转贴于
(六)课程教学后期让学生参与项目开发。在课程的基本知识点讲授完,学生也掌握比较透彻后,可让学生参与到项目开发中,将项目中一些功能分成多个模块,以实验的形式分配给学生,让学生也可以在课余的时间进行开发。
(七)改变考核方式。考核方式应该灵活多样,要甩掉“学为所考”的思想包袱。程序设计课程本身是理论学习与动手操作于一体的课程,不能一味地追求理论知识,而忽视动手操作能力,因此,应对学生的评价贯穿到整个学期的课程学习中。考核应该由平时作业、实验设计作业、期末考试等几项组成,平时考核可分阶段进行,要让学生注重学习的过程,而不是考试的结果。
(八)课程实训。在课程的知识点全部讲授完成后,安排2-4周的实训,让学生分组自由选题来进行项目的开发,学生在开发时应分组进行,让学生分组进行开发可以发发扬团队合作精神,便于优势互补,有助于学生以后走上工作岗位,适应开发工作。在实训中,应以学生的设计意见为主,充分发挥学生的能力,教师只给予相应的建议。
三、实施过程
这里以设计管理系统的登陆窗体为例,介绍“项目教学法”中一个模块教学的具体实施过程。登陆窗体的功能是输入正确的用户名和密码通过身份验证,进入主窗体。登陆窗体涉及到的知识点如下:1.窗体(Form)、标签(Label)、文本框(TextBox)、命令按钮(Command)等控件的常用属性的设置。2.窗体、标签、文本框、命令按钮的常用方法。3.变量与数据类型。4.IF语句及一些常用的函数的使用。
四、总结
系统登陆窗体的设计分下面几个阶段进行:第一阶段,对登陆窗体的设计和各控件的属性进行讲解。第二阶段,引入新知识点。针对新知识点在本例中的应用对的各个新知识点进行详细的讲解。第三阶段,上机练习。1.让学生模仿教师的设计过程做一遍,输入程序代码,加深印象。2.鼓励学生提出问题,用新的方法来完成程序代码,同时提出加强程序代码功能的方案,让学生来完成,使学生加强对新知识点的理解和运用。例如,能不能在输入密码时限定输入密码次数。3.布置作业,布置与知识点相关的作业,让学生通过查资料自己完成作业,对作业进行批改。第四阶段,对程序提出新的方案,如用户名和密码的存储采用数据库,密码的加密等,为以后的知识讲授做准备,同时给学生留下印象,在讲到这些知识点的时候再来改进程序。
“项目教学法”被应用到程序设计类课程的教学中,使教学与生产结合起来,学以致用,注重培养学生动手操作能力,学生普遍反映采用了“项目教学法”的教学模式后开发能力提升很快,专业知识得以巩固,相关知识点的运用印象特别深刻,在比较真实的工作环境下,既学到了知识,又学会了分析问题、解决问题的方法。在《VB程序设计》课程应用“项目教学法”的教学模式的教学过程,也发现了一些问题,虽然运作难度较传统教学模式较大,但值得进一步的实践和探索。
篇9
本系统的目标是:通过相关软件、硬件的设计,实现由主机(上位机)通过单片机(下位机)通讯实现对石蜡车间现场石蜡成型机工作状态的监控。即利用主机的监控软件与单片机进行通信,以实现对石蜡成型机的监控功能。本系统应具备如下功能:
(1) 界面设计清晰,功能齐全,实时准确的显示石蜡成型机所有参数及状态
(2) 上位机与下位机能进行可靠、实时的通信。
(3) 查询历史记录功能
1软硬件的选取及上下位机间通信协议的定义
基于上述目标与功能,要实现本系统,首先要解决以下几个问题:
1.1 上位机与单片机之间通信方式的选取
串行通信使用一条数据线,将数据一位一位地依次传输,处理的数据电压只有一个准位,因此不容易漏失数据。串行通信端口(RS-232)是每部计算机上的必要配备,它不仅实用简单,而且价格便宜。。因此本系统采用RS-232串行通信方式用于上、下位机间的通信。
1.2 监控软件开发平台的选取
VisualBasic(VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。所以,本系统采用VB作为监控软件平台。
1.3 单片机型号以及芯片的选取
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位具有精简指令集的、超低功耗的混合信号处理器(Mixed SignalProcessor)。由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。本系统采用MSP430单片机。
1.4 上位机与单片机之间的通信协议
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。本系统采用Modbus通讯协议进行通讯,采用16位CRC校验以保证数据传输的准确性。
篇10
0 前言
在信息技术日益普及的环境下,地图广泛服务于城市公众,成为数字城市的基础部分。随着计算机技术的进步,地图应用也越来越广泛。从政府部门到一般企业,再到单独的个人,都离不开地图。现在网络上有很多地图,但地图应用范围单一,大部分面向大众,针对某一行业或特定作用的地图不是很多。也有一些专业功能的地图,但大都价格昂贵。这些制约了地图信息的更广阔的发展。
VisualBasic是微软公司推出的一种可视化的高级程序开发语言,它支持面向对象技术,特别需求者可以再VB平台上开发自己的需求;但大多缺少图形信息。GIS主要是确定空间点的三维信息的一种技术,在GIS领域中,有很多地图开发工具。本文选用VB作用开发平台,调用MapObjects2.0作为开发所用的ActiveX控件。
1 VB与MapObjects技术
1.1 Visual Basic
Visual Basic(VB)是微软公司开发的一种面向对象的开发编程语言。VB因为它的简单、界面可视化、数据库丰富而成为大多数软件开发者首选的开发工具。BASIC 编程语言是VB的前身。VB拥有图形用户界面 ( GUI )和 快速应用程序开发 ( RAD )系统,能够很容易地连接数据库或创建ActiveX 控件。程序员快速、完整地使用VB提供的控件建立一个日常实用程序 。
1.2 MapObjects技术
MapObjects是一套制图软件集,过MapObjects开发人员可以灵活地建立适合用户的地图接口。在小内存空间中,程序员能用多种标准程序环境去开发应用程序,能联合MapObjects与别的软件实现地图与用户信息的联系。它具有如下特点:
(1)MapObjects功能强大,通过MapObjects可完成:显示一张多图层地图(道路、河流、边界)、地图浏览、图形元素生成(如点,线,圆,多边形)、说明注记等等基本地图操作功能。
(2)MapObjects是过程用户。它是为程序设计者服务的。程序设计者可利用MapObjects设计应用程序,并把这些应用程序提供给终极需求者。
(3)MapObjects还有一个特性,地图既可以是程序中的主要元素,也可是附属品。所以,MapObjects非常适合vertical应用软件。比如, 你的软件可能主要是商用数据库,当查询时可在表单上高亮度显示与查询内容相关的地图。
另外,MapObjects支持Shape文件、图像文件、数据表或通过ESRI的专用数据库引擎连接的专用数据表。在基于MapObjects编写的应用程序中,通过ODBC(开放数据库连接)驱动程序,可以访问外部的数据表,它们可以是多种格式的,如Access、SQL Server、Oracle 等。
2 利用MapObjects实现地图开发
MapObjects是一套制图软件集,过MapObjects开发人员可以灵活地建立适合用户的地图接口。在小内存空间中,程序员能用多种标准程序环境去开发应用程序,能联合MapObjects与别的软件实现地图与用户信息的联系。MapObjects是美国ESRi开发,是比较流行的组件式GIS开发软件。MapObjects是一组地图软件的组件(ActiveX控件),使用它可以在普通编程语言(如VB)上实现主要的地理信息系统(其中主要是电子地图功能)功能。通过MapObjects可以灵活地建立适合用户的信息系统。
2.1 系统结构设计
根据系统结构设计的几个原则,即系统的代码要统一,设计规范要标准,传递语言要尽可能一致;系统应具有较好的开放性和结构的可变性,采用模块化结构,提高各模块的独立性,尽可能减少模块间的数据偶合;系统抵御外界干扰的能力及受外界干扰时的恢复能力;在满足系统需求的前提下,尽可能减小系统的开销,我们做了如下设计(如图1)。
2.2 系统开发与集成
本系统地图采用南京交通职业技术学院地图,通过软件学生可以在课程学习中通过该软件来核实自己的实际作业成果,查询学院的一些基础地理信息(如图2)。
3 结束语
一般来讲,自主设计空间数据的数据结构和数据库,利用VB等高级编程语言开发开发地图应用软件,要求具备雄厚的科研力量和巨额的开发费用;引进国外的先进的地图软件(如ARC/INFO),结合自己的需求进行开发,比较简便易行;面向对象的可视开发环境给大家提供了一种开发周期短,成本低,可以脱离大型商业GIS软件平立运行的机会,今后可以为不同的人群提供服务。
课题来源:南京交通职业技术学院青年基金课题
参考文献
[1] 刘轩明.基于卫星图片的数字地图开发与应用[D].哈尔滨工业大学硕士论文,2009.
[2] 刘剑.关于开发地形图成图软件的看法[C].《大地测量与地球动力学进展》论文集,2004.
篇11
一)主要内容
基于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)
篇12
程序设计能力是计算机专业学生必备的一项基本技能。程序设计能力培养不仅包含技能培养,还包含学生分析问题、解决问题以及创新能力的培养。为此,各高校从大一开始就开设了高级语言程序设计课程以及后续一系列课程,以提高学生的程序设计能力。然而,即使各高校设置了丰富的程序设计能力培养课程,学生的程序设计水平也没有得到大幅度提高。
当前软件企业招不到合适的人才,计算机专业学生找不到工作,这种局面的形成归因于学生的程序设计能力并未达到软件企业预期的要求。调查表明,企业新招聘员工中只有15%直接来自高校毕业生,而85%来自社会招聘,因为社会招聘人员动手能力强,入职后能很快适应工作岗位。程序设计能力层次见表1,从表1可以看出,要胜任企业软件开发工作,至少需要100000行代码量;对于本科毕业生,至少需要有10000行代码量,而目前计算机专业大多数学生本科4年的代码量均在1000行,有的甚至更低。
1)程序设计类课程依然重教学,轻实践。理论教学依然是程序设计类课程的重点,理论学时多,实践学时少。教师花费大量时间进行语法、数据结构概念、算法理论讲解,因此也使得有针对性的实践太少,基于相关知识和理论的案例教学不足,学生很难将所学知识点和理论用于解决实际问题。
2)实践环节枯燥,学生无法提高学习积极性。
在传统程序设计实践教学中,教师布置3~6道作业题,学生当堂完成,然后将代码以及运行结果截图打包上传到服务器,教师一一评阅。教师给出的习题往往直接针对课堂教学的知识点,无任何实际背景或故事情节,实验枯燥乏味,学生学习积极性无法提高。
3)学生多,教师少,教师无法逐个解答学生的问题。
在大学不断扩招的情形下,师生比进一步扩大。实践教学过程中,教师无法一一发现和解答每个学生的问题。学生将作业代码和运行结果截图通过FTP上传至服务器,教师查看运行结果,由于学生多,教师无法逐个查看和运行学生代码,疲于应付,因而导致实践效果差。
4)实践能力评价方法单一。
目前的课程考核多采用笔试,学生的实践能力只能通过平时作业和实验进行主观性评价,难以激发学生自主训练实践能力的激情。在这样的教学模式下,久而久之学生就失去了编程兴趣,同时也降低了后续程序设计类课程的学习积极性,以致形成恶性循环,学生代码阅读量、代码编写量均得不到保证,程序设计能力自然无法提高。
为了提专业提供论文写作、写作论文的服务,欢迎光临dylw.net高学生的程序设计能力,文献[1]提出一种贯穿在系列课程中的程序设计能力培养方法,强调在一系列课程中持续不断地进行系统化训练,采用面向专业应用的分类教学,贯彻落实案例驱动、强化实训等教学方法。文献[2]初步将ACM模式应用到程序设计类课程实践教学中,使学生的编程能力和解题思维能力得到有效训练,教学效果显著提高。文献[3]也提出采用ACM竞赛形式的程序设计能力层次化培养模式。这些方法都是提高学生程序设计能力的有益尝试。
2 立体化程序设计能力培养模式
针对目前程序设计能力培养方面依然存在的一些突出问题,我们借鉴国内外一流大学的经验,与学校、学院教学部门配合,探索并建立立体化程序设计能力培养方法。立体化程序设计能力培养方法如图1所示。
1)培养方法和过程。
在立体化程序设计能力培养方法中,教学活动仍然分为理论知识讲授与编程实践,但理论课不再以单纯介绍语法知识为主,而是以具体的程序案例分析为主,让学生从案例中掌握语法。在实践教学环节中,教师设计若干有趣的问题,学生在解决问题过程中学会相关的语法知识与编程技巧。学生编写的程序代码全部通过安徽大学程序自动评判系统进行评判,学生只需在规定时间内完成,不再局限在实践课堂内完成,令学生有了足够多的思考和动手编程时间。对于学生在编程过程中出现的各种问题,教师和ACM/ICPC队员及时进行在线细致辅导。在每次作业结束后,系统公布所有学生的解题代码,以供所有学生在线查看和评价。获得优秀评价的代码将在系统上公布,以便学生有机会进一步学习优秀代码,增加代码阅读量。
2)立体化程序设计能力培养特点。
(1)以高级语言程序设计课程为依托。高级语言程序设计课程是学生接触的第一门程序设计类课程,其教学与实践对培养学生的编程兴趣和能力起着至关重要的作用,可以帮助学生树立自信心并步入程序设计的殿堂。
(2)课堂教学以案例为中心。程序设计=算法+数据结构。在高级语言程序设计课程的教学过程中,我们摒弃单纯讲授语法的课堂教学方法,改之以程序案例为中心。在课程早期,案例以语法知识为主,逐步增加基本数据结构和算法。整个教学过程以案例分析为中心进行语法教学,让学生在潜移默化中学习到基本的数据结构和算法。
(3)实践教学以问题求解为中心。在实践环节,教师通过设置有趣的故事和实际的问题,帮助学生在求解问题过程中掌握课堂上所学的语法知识、基本数据结构和算法。
(4)实践环节从课内延伸至课外。实践环节要求学生完成指定的编程题目。与传统实践环节不同,通过在线程序自动评判平台,学生所有的编程作业只需在教师规定的时间段内提交,学生既可以在实践课上完成,又可以利用课外时间完成课堂内没有完成的作业。将实践课延伸到课外的优点表现在:①学生有足够的时间思考分析问题并最终通过编程解决问题;②实践题目数量适当增加,学生的代码量随之增加 ,充分的课外实专业提供论文写作、写作论文的服务,欢迎光临dylw.net践可以进一步巩固学生的理论知识基础。
(5)经验丰富的ACM/ICPC队员参与程序设计实践环节辅导。ACM/ICPC队员经过长期的编程实践,积累了丰富的编程经验,代码能力强,因此我们利用ACM/ICPC集训队的优势资源,实行“传帮带”机制,对于每个学生编程过程中出现的问题及时给予解答,有效提高学生的编程积极性。集训队学生优秀的编程水平对于低年级学生也是一种激励,可以进一步激发其编程热情,增加其向更高编程水平迈进的动力。
(6)学生作业采用自动化评判模式。学生提交的作业通过服务器自动评判给出程序的运行结果。自动评判模式对于编译错误,会直接给出编译出错位置和出错类型,方便学生自查;对于运行错误,包括结果错误和运行超时,则需要学生重新审查程序代码。服务器自动评判能够有效减轻教师批改作业压力,还可以大大提高实践教学效果。此外,服务器上保留了每个学生的做题细节,包括以往的代码、做题的数量、错误类型等信息,可以进一步增强学生做题的成就感和积极性。值得一提的是该自动评判平台不仅支持高级语言程序设计,还支持C++、Java、VB和Pascal语言,因而吸引了省内一些初中、高中学生进入该平台进行程序设计能力实践。
(7)优秀代码展示有助于增加学生代码阅读量。学生代码量包括代码编写量和代码阅读量。代码阅读量是提高编程能力的一种重要途径,然而在实际教学过程中常常被忽视,通过教师评阅、学生互评等方式,可以筛选出优秀代码并加以展示。优秀代码主要指具有巧妙的算法、运行时间短、内存占用空间少、代码格式规整、符合标准编程风格的程序代码。展示优秀代码可以让学生有机会看到彼此对于同一道题目的多种解决方案,有效促进学生之间的交流,积极提高学生的代码阅读量。这种相互的交流还可以进一步激发学生的创新灵感,在提高学生编程能力的同时也提高创新能力。
与传统专业提供论文写作、写作论文的服务,欢迎光临dylw.net程序设计能力培养主要依靠“教师一学生”这种二维扁平的实践教学模式不同,立体化程序设计能力培养方法以案例教学为中心进行教学,以问题驱动为中心进行编程实践,采用机器自动评判和学生互评相结合的方式进行学生编程实践效果评价,在教师—ACM队员—学生之间建立一个跨越时间和空间的三维立体互动教学网络。这种教学方法将课内实践延伸至课外,将实验室实践延伸到实验室外,对学生的程序设计能力进行主客观相结合的综合评价与即时反馈。
3 实施成效
通过一系列的研究与设计,我们构建了立体化的程序设计能力培养模式,在安徽大学自主研发的自动评判系统基础上增加了高级语言程序设计实践模块。自2008年以来,学生通过该自动评判平台进行程序设计实践呈逐年增多趋势,多名学生参加了ACM/ICPC程序设计竞赛以及省级程序设计竞赛,获得各类奖励10余项,其中亚洲区邀请赛金奖2项、省级竞赛一等奖4项。实施该培养方法后,学生进行自主程序设计训练的积极性明显提高,目前在校生中程序代码量已经达到10000行的有200人左右,部分毕业学生直接进入腾讯、百度等企业工作,用人单位也对毕业生的编程能力普遍表示满意。安徽大学计算机专业学生2008—2012年提交代码量如图2所示。
该培养方法不仅提高了学生的程序设计能力,而且培养了学生的创新精神和可持续发展能力,还吸引了许多非计算机专业学生学习程序设计技术。近年来,陆续有电子学院、自动化学院、数学学院、化学化工学院、资源与环境工程学院和物理学院的学生参与到程序设计实践中,并且取得了不错的学习效果。例如,安徽专业提供论文写作、写作论文的服务,欢迎光临dylw.net大学物理学院一名学生经过该平台实践后,积极参与ACM/ICPC程序设计竞赛,获得2010年ACM/ICPC亚洲区竞赛铜奖并于2012年成功考取复旦大学计算机专业研究生。
4 结语
强调师生互动、实践反馈、学生互动足立体化程序设计能力培养方法的关键,而利用案例教学与趣味实践是重要途径。实践证明,立体化程序设计能力培养方法在提高学生编程水平和算法能力方面具有较大优势,取得了显著成效。今后我们将进一步注重教师与学生互动,探索更多的师生之间、学生之间互动手段,不断提高学生编程素养和创新水平。
篇13
传统示波器是电子工业、科学研究和教学实验领域中一种必备的仪器,并且都在这些领域中占有重要的地位。在高速发展的现代科技技术下,对传统测控仪器提出了新的技术要求,主要包括智能化、自动化、多样化等等[1]。传统仪器跟其他传统测控仪器一样,越来越不能满足这些新技术的要求,与此同时,新仪器的开发对开发商与用户都带来了更大的挑战。基于上述原因,新型的测控仪器设备的出现是当务之急,虚拟仪器这个概念变得不再陌生。
虚拟仪器的开发基于强大的计算机软件和硬件,把传感器技术,自动化控制技术等有效的融合在一起[2]。软件设计平台的灵活性,依据用户不同的特殊需求创建出人机友好操作界面,实现并取代各类特殊、昂贵的测试仪器的功能。
实现用户友好操作界面的软件操作平台有很多,例如,Labview软件,MATLAB软件,Visual Basic软件,JAVA软件等,本文将对实现虚拟示波器用户操作界面的开发性软件进行比较。
2.虚拟仪器的发展
2.1 国外发展状况
近年来,世界各国的虚拟仪器公司开发了不少的虚拟仪器开发软件,方便了开发商利用这些开发软件组建自己的虚拟仪器或测试系统,并编制测试软件,最具影响力的是NI公司的Labview和Labwindows/CVi开发软件,美国HP公司的HP-VEE和HPTIG平台软件,美国Tektronix公司的Ez-Test和Tek-TNS软件以及HEM Data公司的Snap-Master平台软件等都是国际上公认的优秀虚拟仪器开发平台[3]。从1988年陆续有虚拟仪器产品面市,当时有五家制造商推出30种产品。此后,虚拟仪器产品每年成倍增加,到1994年底,虚拟仪器制造厂已达95家共生产1000多种虚拟仪器产品,销售额达2.93亿美元,占整个仪器销售额73亿的40%。美国是虚拟仪器的诞生地,也是全球最大的虚拟仪器制造国,生产虚拟仪器的主要厂家有HP公司目前生产100多种型号的虚拟仪器,Tektroflix公司目前生产约80多种型号的虚拟仪器。
2.2 国内发展状况
国内虚拟仪器的开发和研究起步相对比较晚,清华大学,重庆大学,西安交大以及东方震动和噪声技术研究等高校和公司对虚拟仪器的产品和设计平台以及NI产品做了大量的研究工作,所研究和开发的结果在某些方面都得到了很好的应用,比较突出的是重庆大学测试中心所研究的虚拟仪器,目前,部分院校的实验室也引入了虚拟仪器系统,包括上海复旦大学,上海交通大学,华中科技大学等[4]。于此,又开发了一批新的虚拟仪器系统用于教学和科研,其中华中科技大学机械学院所开发出的Inventor可重构虚拟实验台、深圳蓝津信息技术有限公司开发出的DRVI快速可重组虚拟仪器平台等影响力比较大,中国农业大学的研究人员利用虚拟仪器开发平台开发了用于精密播种机性能检测的实验室自动化系统。山东大学医学院基于虚拟仪器技术研究了胸双极立体心电图及其三维可视。
2.3 未来的发展趋势
虚拟仪器正在持续且迅速地发展,它即将取代测量技术在传统领域的各类仪器,使仪器的功能和技术性能方面具有了灵活性和经济性,因而更适应当代科学技术迅速发展和科学研究所提出的更高更新的测量需求[5]。并且随着计算机技术、仪器技术和网络通信技术的不断完善,虚拟仪器技术也会在向网络化方向发展,即基于网络的虚拟仪器。网络技术和虚拟仪器技术相结合,产生了基于网络的虚拟仪器,使用的网络化虚拟仪器,可以在任何地点,任何时间获取测试的数据,因此图像化编辑平台的发展将带动和完善虚拟仪器的发展。国内专家预测未来的几年内我国将有50%的仪器为虚拟仪器,国内将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测。
3.几种虚拟示波器常用开发环境的特点
3.1 基于Labview的虚拟示波器
Labview是一种基于图形编程语言的可视化优秀开发平台,它与传统编程语言最大的区别是使用图形语言,以框图的形式编写程序[6]。它与VisualC++、visual basic、LabWindows/CVI等编程语言不同,是使用图形化程序设计语言G,而不是基于文本语言的程序代码,用方框图代替了传统的程序代码,一个Labview程序主要包括前面板、框图程序、图标/接线端口3部分[7]。为用户提供一个便捷、轻松的设计环境,利用它设计者可以像搭积木一样,轻松组建一个测量系统或数据采集系统,并可以任意构建仪器面板,而无须进行任何繁琐的计算机程序代码的编程,从而可以大大简化程序的设计。
在设计虚拟示波器时,程序包括数据采集,波形显示,信号处理,波形存储和回放几个模块。因而硬件部分的主要功能就是采集外部的信号,可以是PCI、USB、DAQ等数据采集装置,然后是信号调理,目的就是完成信号缓冲、放大、滤波等功能[8],Labview开发平台自带的函数具有强大的信号处理功能,充分发挥Labview的优势所在。在它的前面板上可以非常直观地显示出旋钮,开关,波形等示波器应有的界面设置,参数设置,可以根据开发者的想法自行定义,具有很强的灵活性[9],真正的操控系统的是后面板,建立功能模块,元器件的连接,按键功能的实现等等,模块化的实现使虚拟示波器的功能更加完善。
3.2 基于MATLAB的虚拟示波器
MATLAB是Matrix和Labortaty前三个字母的缩写,意思是“距阵实验室”[10]。是一套功能十分强大的计算机辅助和设计教学软件,MATLAB具有以下的主要功能:数值计算功能,符号计算功能,图形处理功能及可视化功能,可视化建模及动态仿真功能。
基于MATLAB平台设计的虚拟示波器可以充分发挥它的数据分析功能,不仅方便了实验研究,也可以为控制系统的设计与优化提供了有效的途径[11]。基于MATLAB的虚拟示波器硬件系统主要是完成数据采集系统的设计,主要有MCU、数字I/O、A/D、数据通信接口,以及电源部分组成。而对计算机串口以及数据输入的控制,由MATLAB软件的仪器控制工具箱中的函数来完成。通过调用MATLAB的数据采集,画图程序来完善虚拟示波器的功能。MATLAB是很好的数据分析处理软件,而将其与Labview相结合编程可以极大的提高系统的数据采集、分析、故障诊断的能力,具有很强的技术提升空间。
3.3 基于Visual Basic的虚拟示波器
Visual Basic简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。在界面设计、文件处理、多媒体应用、数据访问等方面提供了有力的帮助,具有易懂、易学的优点。对于虚拟示波器开发而言,VB在数据处理和图形显示方面不如Labview。在使用VB开发工业测量与控制系统应用软件时,需要对待测量信号进行实时采集、显示、以及实时处理等VB并不擅长。对此类应用程序的开发,最为理想的解决方案是将VB的图形用户界面开发及其他方面的优势和LabVIEW在数据采集、显示与处理方面的优势结合起来[12],互相取长补短,从而开发出功能更加强大的测控软件系统。
MATLAB与VB的结合主要有两种方式。其一是在VB中引入MATRIXVB,使得VB可以调用MATLAB函数。其二是将在MATLAB中编写的文件编译成VB可以调用的DLL文件。通过混合编程,利用VB和MATRIXVB,快速、简洁地生成虚拟仪器[13]。
3.4 基于JAVA的虚拟示波器
JAVA是由Sun Microsystems公司推出的JAVA程序设计语言和平台的总称。面向对象的一次编译随处运行的高级语言,提供了强大的网络支持,用Java实现的HotJava浏览器跨平台、动感的Web、Internet计算的功能。推动了Web的迅速发展,常用的浏览器均支持Java applet[14]。基于JAVA开发网络化的虚拟测控系统具有强大的网络和跨平台的优势。
基于JAVA的网络化虚拟示波器,利用socket和多线程技术实现,使用双缓存技术解决了波形显示时的闪烁问题,由系统启动用户界面线程,同时启动不断侦听对客户连接请求的线程。如果侦听到客户的连接请求,就开辟一个新的线程来处理其连接请求。与此同时还要查询数据是否已经传送完毕,一旦完成便要通知用户界面线程更新界面。
除了上述的几种开发平台外,还有C++ Bulider,Visual ,VC等都可以是结合多种软件的虚拟仪器开发平台,另外国内也有一些虚拟仪器开发系统,如吉林大学自主研发的图形化虚拟仪器开发平台LabScene,重庆大学研制的虚拟仪器开发系统VMIDS等等[15]。并在相应领域取得了一定的成果。
4.结束语
在各领域的应用中,虚拟仪器正在取代着传统仪器,它的优势也是显而易见的,它的出现是仪器界的一次革命,具体表现为:智能化程度高,处理能力强;复用性强,系统费用低;可操作性强等等。对于虚拟仪器的设计而言,软件设计是核心,对于每一种虚拟仪器的开发平台都有它自己的特色与缺陷,MATLAB是一款数字处理与图形化处理的强大软件,在设计虚拟示波器时可以发挥它强大的数据处理功能,对于Visual Basic而言,它的缺陷是存在的,但它是一款作为结合型开发软件的好处;利用JAVA的开发的虚拟仪器是现在乃至未来的重要开发平台,它是仪器朝着网络化的发展,就目前而言,Labview是虚拟示波器开发软件的首选,它的图型化编程语言使用户和开发者都能比较容易理解。在实际应用中,我们不仅仅局限于单种软件开发工具,可以将它们结合起来使用,取长补短,各抒其长,会使所开发的虚拟仪器得到更全面的设计。再者在实施方案前,对开发平台进行分析探讨、比较,最终选择适合的虚拟平台,对之后的工作会带来更多的便利。
参考文献
[1]王波.虚拟示波器系统设计与实现[D].苏州大学硕士学位论文,2006.
[2]王维喜.基于声卡的多功能虚拟示波器和虚拟函数发生器设计[D].青岛大学学位论文,2009.
[3]李艳.基于Labview虚拟仪器的设计和应用[D].南京理工大学学位论文,2006.
[4]丁鹏.基于USB数据采集的虚拟仪器的研究和设计[D].西安电子科技大学学位论文,2010.
[5]王美刚.基于声卡的虚拟仪器[D].太原理工大学硕士学位论文,2006.
[6]姜碧琼.基于Labview的虚拟示波器的设计[D].西北农林科技大学学位论文,2008.
[7]朱红林,刘武.基于Labview的虚拟示波器的设计[J].电子工程师.2006.32(11):17-19.
[8]曾秀云.基于虚拟仪器的信号采集与控制系统开发[D].电子科技大学.2010.
[9]朱治国,郑建荣,刘小平等.虚拟仪器及常用开发软件[J].现代仪器,2004,1:28-31.
[10]薛德庆,姚世锋,刘锐,蔡继军.MATLAB在虚拟仪器中的编程应用研究[J].传感器与仪器仪表,2006,22(5-1):157-159.
[11]罗彬,曾岳南,张雪群.基于MATLAB的虚拟示波器设计[J].仪器仪表用户,2006.13(4):107-110.
[12]宋波,陈一民.关于虚拟仪器开发工具的比较与选取[J].国外电子测量技术,2006,25(8):1-5.