图书前言

写给教师

跟各位尊敬的老师一样,笔者从事了多年程序开发和教学工作,深知教学的艰辛,为教学方法费尽了心机,为教学效果伤透了脑筋,为学生的学习成绩摇头惋惜……所有这一切,从主观上说,与教师素质、教学方法、学生的学习态度有关;而在客观上,与教材的编排方式和内容组织有着重大的关联。编写本教程的目的,就是试图从客观的角度,为广大教师和学生带来一种突破性的教学设计,使教师的教学热情有更好的着力点,从而更顺利地完成既定的教学目标,让教师和学生的辛劳能得到应有的回报。

传统的VB(Visual Basic)程序设计教材往往追求知识点的全面传递,按照知识点的难易和叙述的方便程度来组织内容,而且所提供的课堂范例通常都是针对某一个或几个离散的知识点所设计的,其中趣味性和实用性强的范例不多,而综合性的实例更少。这种只造砖,不盖房的教学方式,本身就造就了学生的学习态度,使学生感觉就是为了考试过关和学分而学习,所以学习的兴趣不大,缺乏主观能动性,学过的东西也很少能对将来的就业和工作有帮助,因此,真正能够达到课程期望目标的学生少之又少。如果不仅会造砖,而且用造好的砖瓦亲手盖起漂亮的房子,那么,学生就不会轻易将它们丢弃,会长期拥有、使用和维护它们。这样,学到的东西就会真正成为他们自己的财富,而他们也将由此长期受益“使学生长期受益”是教育部计算机教学指导委员会2009年提出的教学要求和口号。. 

为了叙述方便和条理的清晰,传统的VB程序设计教材往往按内容的分类来组织章节,先讲一大堆VB的特点,再讲一大串菜单,然后是所有的数据类型、变量、表达式、内置函数……而等到具体应用这些知识时,学生觉得是很遥远的事情了,也已经遗忘得差不多了,更不用说怎样使用这些砖瓦来盖房子了,所以教学效果不能达到理想的境界。这种教材的编写方式,非常适用于已经具备程序设计基础的学生,而我们所面对的教学对象,绝大多数是第一次接触程序设计的学生,所以应该站在他们的角度考虑,为他们编写一本更适合他们的教学用书。

本教程以任务驱动的方式来引导出教学的内容,并且尽可能巧妙地将大纲规定的知识点融入各项任务中。其中所设计的任务都是针对日常生活和工作中确实需要解决的、面向任务的Visual Basic程序设计教程(公共基础版)前言有实际应用价值的问题的,让学生感觉到所面对的任务正是自己需要的,而学习的过程实际上就是在为自己做事的过程,并且学到的东西可以使自己“长期受益”。显然,为自己做事的积极性和能动性是毋庸置疑的,那么,教师顺利、圆满地完成教学目标也就可以期待了。

本教程不以知识点为主线,而以开发任务为引导,在具体应用的时候适时带出知识点。这样的编排,不但能解决前面提到的前学后忘的问题,而且更利于学生对知识更深刻的理解和更全面的掌握,同时也能促使学生当场消化吸收这些知识点,而不是背负着很多暂时不用的包袱到遥远的将来。许多学生之所以感到学习的负担沉重,是因为没有能够及时消化某些知识,而要背着它们继续接受新的包袱。如果每次吃下去的食物都能及时消化,那么他们不但不会感到负担,反而会促使他们产生饥饿感,产生更多新的求知欲望。这样的情形,不正是老师们最愿意看到的吗?

虽然本教程是以任务为驱动的,但是与实例教程有着很大的区别: 

① 实例教程不太注重知识点的系统性和全面性,而本教程将大纲要求的所有知识点全面融入各个任务中并进行系统阐述;

② 实例教程通常需要读者有一定的编程基础,而本教程则完全是零起点的;

③ 实例教程的读者对象是编程爱好者或初级程序员,而本教程的读者对象则是大学本科和专科学生。

本教程的叙述尽量采用通俗比喻来描述那些晦涩难懂的概念和术语,用学生熟悉的身边事物和已有的生活经验来帮助他们完成知识的迁移。这也是我们试图应用教育心理学的理念为本课程的教学做一点贡献。

本教程每章都有知识点归纳,便于教师总结和学生复习;每章都有进阶练习,提供给层次较高或学习进度较快的学生更多的选择,同时也为准备二级考试的学生提供例题精选;每章附有特别设计的课外作业,帮助学生更全面地掌握相关概念、术语和知识点;本教程还附带提供包括教师授课使用的演示文稿、习题解答和教学范例源代码等内容的课程教学网站。

本教程的设计可以说是颠覆性的,编排方式貌似不系统,因此在使用本教程进行教学的时候,老师们会发现有些章节标题似乎是上下文不配套的,知识点的介绍会被嵌入到设计与实现过程之中,有点不符合文法的层次规范,但的确又是承上启下的。为了教学效果,请不要拘泥于表现形式,教学效果才是我们追求的最终目标。说句实话,本教程的编写难度实在太大了,所以请老师们多多给予谅解。当然更多的是期待老师们为本教程提出更多有价值的修改建议,让我们共同来为本课程的建设出一份力。对于被采纳的建议者,我们将提供“在线作业与实验系统”的使用权。

写给学生

各位亲爱的同学,很高兴我们能共同来学习“Visual Basic程序设计”课程。

程序设计是一门实践性很强的学科,仅靠记概念、背原理是远远不够的。通常学生在上课时基本都能够听懂,可到了自己动手编程的时候,就会觉得无从下手。要解决这个问题没有捷径可走,只有增加实践的时间和次数,熟能生巧,经历多了,就会慢慢理解程序设计的思想,用过的方法多了,遇到问题才有解决的思路。

刚开始可能会感觉程序设计很难、很痛苦,可是当我们第1次编写出了一个小程序,就会觉得无比欣喜,回头看看其实也并不是那么难。解决了一个过去不能解决的问题,就是一种自我实现,就会有成就感,就会发觉自己原来这么有潜力。反过来这种感觉会更加激发学习的热情,驱使自己去解决更多的难题,实现更多实用的任务,同时这些成果还可以作为提高自己工作效率的工具,岂不两全其美?这个过程也正是一条造就高手之路。所以学习程序设计一定要有信心、耐心和恒心,要实践,实践,再实践。

什么是学习的负担?不是所学的内容太多,而是学了之后没有消化却要接着再学。如果胃胀得鼓鼓的再去吃下一顿,当然会吃不下;反之,如果消化得很好,不仅食物变成了营养,而且肚子还会很快饥饿,那么,下一顿就会吃得更香。因此,对于我们学过的知识要尽快地将它们完全消化,这样才能轻装上阵,去接受更多的知识。

许多同学会问,学习程序设计有什么用呢?

大家知道,现在是信息时代,目前多数政府部门、企事业单位都配备了大量的计算机,但是应用水平却很低。过去是理念落后,重硬件,轻软件,现在理念跟上了,可是对口的软件却远远没能跟上。因为软件专业人员不可能精通所有部门的业务流程,开发出来的软件往往跟用户的实际需求有较大的差距。解决这个问题的最好办法,就是专业人员自己来开发软件,这样才能最好地缩小这个差距。这是学习程序设计的主要理由之一。如果你能通过自己开发的软件来改善工作环境,让同事们都能应用你的软件来提高工作效率,你的老板一定会对你另眼相看。

另一个主要理由是,跨学科或交叉学科会给我们带来更多的机会。大家都很明白,想要在你所学习的专业领域出成果、拔尖并不是一件容易的事情,能有成就的人毕竟是凤毛麟角。如果我们能将自己的专业与计算机技术结合起来,搞一些跨学科的研究,那我们成功的几率就会大大提高。

现在许多大学生都有自己的个人网站,不仅能够发表自己的个性思想和作品,将自己的爱好付诸实现,也可以宣传和推广自己。本书所介绍的Visual Basic就是一种网站开发主流脚本语言的基础语言,学好了它,就能够设计出很酷的动态网页,就可以实现复杂的后台服务程序的开发。也就是说,本语言不仅仅可以进行桌面应用软件的制作,还能够实现Web应用程序的开发。换句话说,学好了Visual Basic,不仅应对了现在,而且为将来做好了准备。一石二鸟,何乐而不为呢?

有一个学生,毕业时应聘一家一流幼儿园的教师,一个岗位的竞争者有30多个。在面试时,她着重谈了自己在计算机方面的能力,设想了为幼儿园创立网站,不仅能树名声、做宣传、发布信息,还可以与家长交流、沟通、互动,更能够为小朋友们提供一个在线的多媒体游戏和学习环境。猜结果怎么样?当然是她脱颖而出啦!

这样的例子不止一个。如果在毕业时,能拿着自己的作品的光盘去应聘,能附上自己的网站地址去投档,相信成功率一定会大大提高。

如果将来想深造、读博士或留学搞研究,都需要自己设计程序来辅助项目的实现,要是不懂程序设计,就很难出成果,至少会延缓成果的出炉时间。所以,为了自己的将来,为了社会的进步,努力学好程序设计吧!

本书的特殊格式与符号

符号表达

凡描述函数、事件、方法等重要概念时,采用以下符号和格式表达:  XX函数--函数详解……

程序源码

所有程序源代码都加上了灰色底纹,并且为大多数语句加了注释。例如:  Me.Left=(Screen.Width-Me.Width)/2       '窗体水平居中

技巧提示

对于有些大纲之外的操作技巧,使用下列格式表达:  技巧:   为了避免冲突,变量命名最好采用匈牙利命名法……

数字表达

本书提及数字的时候,有时用汉字,有时又用阿拉伯数字,两者的区别在哪里呢?当数字符号是为了表示数量或次序的时候,就采用阿拉伯数字来描述;而当数字字符只是作为一个冠词成分的时候,就使用汉字来表达。例如,“添加一个文本框”,它的含义是“添加文本框,而不是别的对象”,而“添加1个文本框”,要强调的则是“1个文本框,而不是2个”. 

本书的配套资源

配套网站http://vb.softbeam.cn或http://oc.hznu.edu.cn/works/vb/,提供了本书的授课课件、范例源码、图片、图标和指针等资源的下载,还为采用本书授课的教师提供了课后习题答案。

特别鸣谢

本书的编写得到了原教育部高等学校文科计算机基础教学指导委员会副主任、全国高校计算机基础教育研究会副会长、浙江大学张森教授的积极鼓励和悉心指导,在此表示诚挚的感谢。还要特别感谢清华大学出版社计算机与信息分社的高级策划编辑袁勤勇的积极鼓励、大力支持和出谋划策,才促使笔者下决心来编写这样一本教材。本书的编写也离不开广大教师同行们的支持,书中共享的许多习题与解答,都是他们多年的心血的结晶,在此一并表示感谢。

诚心征求建议与批评

笔者才疏学浅,虽竭尽全力,也不敢保证书中没有差错。尤其是一本用另类思路编写的教材,或许会遭到部分前辈们的批评甚至是反对,但那一定是为了我们共同的教育事业,一定是为了更好地实现教学目标而为的。所以在此诚心诚意地拜托广大前辈和同行们给本书多提宝贵意见和批评,相信在下一版中大家一定会看到改进和提高。征求意见邮箱sentry@tom.com. 

本书教学安排建议

按照每周4课时,共17周的教学时间,建议课时安排如下。章  节主 要 内 容建议课时第1章 程序设计概述VB程序设计基础,开发环境,编程步骤等 1第2章 Visual Basic程序设计入门简易加法计算器,界面设计,代码编写,选择结构,对话框,位置与焦点,变量与表达式,输出方法等13第3章 计算器四则运算计算器,循环结构,累加与阶乘,三角函数与对数,键盘操作,迭代算法,简单排序算法等12第4章 记事本记事本,菜单,文件读写,通用对话框,系统剪贴板,查找替换,选择法排序,自定义函数,参数传递等12第5章 图片浏览器与画板图片浏览器,文件系统控件,图形控件及属性,手绘小画板,绘图语句,颜色,动态数组与传递,二分查找等8第6章 多功能桌面时钟日期表达式与函数,定时器控件,数字时钟,秒表,定时器,多维数组,矩阵转置和运算等6第7章 壁球游戏自由弹球,形状控件,壁球游戏,运动控制等4第8章 通讯录*数据库,DBMS, ADO, SQL, Connection对象,Recordset对象,Fields集合,遍历记录集,通讯录,报表等8第9章 VB编程要点总结控件使用总结,程序设计结构总结,过程与函数总结,变量使用总结,Visual Basic 6.0的特点总结等4合计课时68