内容简介暂无内容简介
序言/前言译者序可以毫不夸张地说,visualbasic是近年来发展最快的一种
计算机语言,其简洁与实用性已受到了众多计算机用户和程序员的欢迎。随着计算机的发展,visualbasic的功能也越来越强大,尤其是visualbasic6,其功能已超出了我们的想像,但掌握与使用该语言的难度同时也增大了。因此,许多
编程爱好者和程序员迫切需要一本既有指导性又具有实用性的参考书。翻译完本书后,我们发现终于找到了一本优秀
教材,即由prenticehall公司出版,并由资深计算机教材作者harveym.deitel、paulj.deitel和temr.nieto所著的《visualbasic6大学
教程》。本书既是一本教科书,也是一本工具书。从讲解
控制结构、函数过程等基本概念开始,到图形用户界面、面向对象编程等流行的课题,再到多媒体、
网络、internet等
最新的发展与应用,本书全面深入地介绍了visualbasic6的概念、
技术与发展前景。书中的独特之处在于其精心编写的性能提示、常见编程错误、
软件工程视点、检测与
调试提示、编程技巧等部分的内容。贯穿于本书的这些内容显然是作者实际应用visualbasic6的工作成果与经验的总结,是真正来自于实践的技术指导,同时也是本书的画龙点睛之处,读者一定会从中受益匪浅。这些技巧与本书的完整内容结合起来,堪称是一部visualbasic6宝典。本书的第1章~第8章、第16章~第21章由于伟翻译,第9章~第16章由王刚翻译,附录部分由杨永毅和乔陶鹏翻译,参加本书翻译工作的还有张芳、闻燕松,在此向他们表示感谢。由于译者水平有限,书中难免出现疏漏之处,敬请读者提出宝贵意见。前言欢迎来到visualbasic6以及令人激动的internet和www(worldwideweb)编程世界!本书是由一位长者和两个年轻人撰写的。这位长者已经有近40年的编程和教学经验,两位年轻人也分别有15年的编程经验,并有着丰富的教学与写作经历。长者经验丰富,年轻人则精力充沛;长者追求清晰,年轻人则注重性能;长者喜欢优雅与美观,年轻人则喜欢快速得到结果。他们的合作使本书的
信息更全面、内容更有趣。为什么编写这本书harveym.deitel在大学里教授了20多年的编程入门课程,强调开发清晰易懂、结构良好的程序。这些课程主要教授编程的基本原理,强调有效地使用控制结构、原始数据类型、数组、函数以及程序的开发过程。本书严格遵循deitel的教学方式来展现这些主题。我们的经验是让学生如同学习pascal或
c语言等入门课程那样,在前几章介绍原始数据类型、控制结构、过程和数组的知识。但这里却有一个明显的区别:学生们更有兴趣学习一流的语言(visualbasic6)和前沿编程技术(事件驱动和面向对象)。当他们离开大学以后,马上就能在实际工作中使用这种语言。学生们很快就会发现,可以利用visualbasic6完成很多任务,所以他们非常愿意在这门功课上下功夫。我们的目标很清楚:编写好一本教科书,作为大学编程课程的入门教材,适用于具有很少或没有任何编程经验的学生;并且根据传统的、高层次的c和c++课程以及专业人士的需要,提供理论与实践方面进一步和严格的训练。为了实现这些目标,我们力求使本书易于理解,书中将详细讲授控制结构原理、事件驱动编程、面向对象编程和visualbasic6语言。本书是“chowto
program”、“c++howtoprogram”和“
javahowtoprogram”的同系列著作,成千上万的学生和专业人员利用这些教材掌握了c、c++和java语言。本书(
英文版)出版后已广泛应用于学校教学和公司培训中。我们信任visualbasic6。通过microsoft的概念化,visualbasic6的创建者以一种最广为人知的语言——basic为
基础,并赋予这个语言方便地建立用于microsoftwindows(世界上最广泛使用的平台)应用程序的能力,从而提供了开发各种企业系统所需的多任务和高性能。这门语言不仅适合实现基于internet和www的应用程序,并且具有人们需要的许多特性,如字符串、图形、图形用户界面、错误处理、多媒体(音频、图像、动画和视频)、文件处理、
数据库处理、基于internet的客户/服务器网络、www浏览、利用
vbscript的www文档增强功能以及预打包组件。visualbasic还是可扩展的,以便于软件供应商开发各种不同的应用程序。这些特性正是企业和组织为适应今天信息处理的需要所寻求的。visualbasic6可以使程序员更好地发挥他们的创造力。他们将通过实践和探索,快速地生成运行良好的应用程序,其中的收获会大大超出学习c、pascal以及非可视化basic版本等编程语言的入门课程。如今发生的internet/www“爆炸”是空前的。人们希望彼此沟通,人们需要相互
通信。自从文明社会产生以来人们一直在努力着,但是计算机通信基本上限制在数字、字母和特殊字符的传递上。下一个“冲击波”肯定是多媒体,人们希望传递图片,而且是有色彩的;希望传递声音和音频部件;希望传递彩色动画,并且在某些方面要求必须是三维的、活动的图像。现在的二维电视机将由三维电视机所取代,从而使普通房间变成了环绕剧场;使得起居室变成了小型体育馆;使得公司的办公室可以为分布各地的同事召开电视会议,就像坐在同一张会议桌旁。这些可能性是极其诱人的,而visualbasic6在使它们变成现实的过程中起着关键的作用。可以预见,internet将最终取代电话系统,它还将取代收音机和电视。我们可以想像,internet将利用
电子新闻媒体来取代报纸。或许有一天,本书将出现在博物馆的展台上,旁边是收音机、电视机、报纸以及一个标注:“古代文明的早期媒体”。教学方法本书包含了取自许多领域的大量范例、练习和工程实例,为学生提供了一个解决现实问题的机会。我们避免使用生涩的术语,并使语法说明适合于实例教学。每一个示例代码都经过了仔细检查。本书由三位教学工作者所编著,他们花费了大量的时间在世界各地的教室里教授最新的应用课题。本书着重强调教学方法。活动代码教学法本书含有许多活动代码的例子。这是我们教授与编写程序方法的重点,同时也是visualbasic6多媒体教室(本书附带的cd-rom
光盘)关注的焦点。几乎每一个新的概念都通过一个完整的、工作在visualbasic6的程序而展现出来,紧接着是一个或多个显示程序输出的窗口。我们称这种教学方式为活动代码方法,即利用语言来教授语言。阅读这些程序很像在计算机上输入并运行它们。www访问本书的所有代码都在prenticehall的网站:http://www.prenhall.com/deitel和deitel&associates公司的网站:http://www.deitel.com中提供。当读者阅读代码文本时,请下载代码并运行程序;也可以试着改变代码,看看会产生什么结果。当遇到各种错误时,请查看visualbasic6编译器的“解释”说明。编写程序是学习编程的最好方法(读者必须考虑到这样一个事实:代码是有版权的。当读者学习visualbasic6时可以自由地使用它们,但如果没有作者和prenticehall的明确许可,不能出版任何代码部分)。教学目标每一章都是从叙述教学目标开始的,它告诉学生本章将要学到什么内容,同时也提供了一个自我检查的机会,看看阅读完某些章节后,是否达到了这些教学目标。这样可以增强学生的自信心。178个例程(带有程序输出)中的7806行代码利用完整有效的程序来展现visualbasic6的特征,这是教学与编程的关键,我们称其为“活动代码”方法。在给出的每一个程序之后,将提供运行该程序时所产生的输出窗口,这样可以使学生确认程序按照题目要求运行。阅读本书就像在计算机上输入和运行这些程序一样。书中不仅有几行代码的小程序,也包含数百行代码的基本例程。当学习程序时,最好从以下网站下载所有代码:http://www.deitel.comhttp://www.prenhall.com/deitel558个图示包括丰富的图表说明和程序输出。例如,控制结构的讨论中就给出了精心绘制的流程图。注意:我们不想把流程图作为程序开发的工具,只是用它简要说明visualbasic6的控制结构是如何操作的。412个编程提示编程提示帮助学生注意程序开发的某些重要方面。我们利用如下一些特别说明强调了数百个提示,它们是:编程技巧、常见编程错误、外观与感觉视点、检测与调试提示、性能提示以及软件工程视点。这些提示与实践代表了我们多年的编程与教学经验中最有价值的内容。曾经有一位主修
数学的学生告诉我们,她感到这种方法就像数学教程中强调公理、定理和推论一样,提供了创建有效软件的基础。78个编程技巧当讲授入门课程时,我们强调一些良好的编程技术,它们使编写的程序更清晰、更易于理解,并且更易于调试和维护。155个常见编程错误学习语言时经常会出现一些错误。让学生注意这些“常见编程错误”,可以帮助他们避免相同的错误,也可以减少指导教师的工作量。14个外观与感觉视点我们提供了外观与感觉视点来强调windows图形用户界面的常见情况。帮助学生
设计自己的应用程序,使其看起来或感觉上类似于典型的windows程序。39个性能提示以我们的经验,在最初的编程课程上教会学生书写清晰、易于理解的程序是最重要的。但学生们往往希望编写运行最快、占用内存最少、需要的击键次数最少或其他流行的程序。学生们非常关心操作性能,他们希望知道怎样来补充和调试程序,所以我们包含了额外的性能提示。15个可移植性提示这些提示帮助学生编写出可移植的代码,也就是可以在不同平台上运行的代码。这些提示强调了一些问题,它们可能影响visualbasic6程序在具有不同硬件
设备的windows系统中的运行。76个软件工程视点事件驱动编程和面向对象编程要求我们重新考虑创建软件系统的方式。visualbasic6对操作良好的软件工程是有效的。软件工程视点强调影响软件系统、尤其是较大的系统构成的设计与结构方面的问题。这里所学的知识将有益于学习高级课程以及针对大而复杂的实际系统的工作。40个检测与调试提示最初设计这部分提示时,我们希望利用它来正确地告诉人们如何检测和调试visualbasic6程序。事实上,这些提示描述了visualbasic6中可以减少错误的某些方面,因此也简化了visualbasic6程序的检测与调试过程。小结每章最后带有附加的教学方法,提供了本章完整的项目符号形式的小结。平均每章有38个小结项,帮助学生复习本章内容并加强理解关键概念。406个自测练习和答案附加的自测练习和答案用于自学。使学生有机会利用这些题目建立信心,并为以后的学习做好准备。应该尽量完成这些自测练习并检查练习结果。819个练习每章最后均提供了大量的练习,包括复习术语与概念的题目,编写visualbasic6语句,编写小段的visualbasic6过程和模块;编写完整的visualbasic6过程、类、应用程序;编写主要的项目工程;等等。这些练习的范围广泛,允许指导教师根据学生的需要调整课程。也可以将这些练习作为家庭作业、小测验和考
试题目。其他的学习资源在以下的网站上可以找到其他的学习资源,包括错误源、faq、习
题库、课程大纲和其他资源:http://www.deitel.comhttp://www.prenhall.com/deitel全书总览第1章——计算机的概念:讨论了什么是计算机,它是如何工作的以及如何对其进行编程。介绍了结构化编程的概念,并解释了为什么这一技术引起了编程方式上的革命。本章还简单介绍了从机器语言到
汇编语言再到高级语言的编程语言发展历史,并讨论了visualbasic6编程语言的起源。第2章——集成开发环境:介绍了用于创建windows程序的visualbasic6集成开发环境(ide)。ide是一个图形化的环境,包含一个用于编写visualbasic6代码的编辑器、一个编译器和一个调试器。讨论了工具箱、属性(properties)窗口、工程(project)窗口、窗体窗口、工具栏和菜单。本章使学生熟悉ide,同时介绍了可视化编程的概念,即只编写少量的代码,有时甚至不用编写任何代码就可以创建程序。第3章——visualbasic编程入门:简单地介绍了如何编写visualbasic6程序,详细讨论了事件驱动编程、条件判断、算术运算以及运算符优先级。学习完这章后,学生们将理解如何编写简单而又完整的visualbasic6程序。第4章——控制结构(一):主要讲解程序的开发过程。本章讨论如何描述问题(例如需求文档),并从中开发有效的visualbasic6程序,还
分析了执行伪代码的中间步骤。本章介绍了一些基本数据类型和用于条件判断(if/then和if/then/else)以及循环(while、dowhile和dountil)的控制结构;利用简单的流程图显示控制结构的控制流程;考察了计数器控制循环和标志控制循环。练习4.16到练习4.19非常好,它们具有相似的结构,完成这4个问题对了解程序开发过程很有帮助。爱好数学的学生会热衷于加密解密练习以及确定在一个5位数里有几位是7。第5章——控制结构(二):继续讨论visualbasic6的顺序、选择(selectcase)和循环(for/next、do/loopwhile和do/loopuntil)控制结构。本章也利用简单的流程图显示控制结构的控制流程。第4章和第5章讨论的内容构成了一般大学里关于结构化编程课题的主要部分。第5章详细考察和比较了计数器控制循环和标志控制循环,帮助读者建立良好的编程习惯,为以后处理更艰巨的编程任务做好准备。本章也介绍了逻辑运算符and(逻辑与)、or(逻辑或)和not(逻辑非),以及常量和visualbasic6数据类型。本章有一个包括数学和图形应用程序的
习题集。爱好数学的读者将喜欢使用无穷序列计算正弦三角函数、毕达哥拉斯三元组和摩根定律。我们的学生特别喜欢练习5.16、练习5.17和练习5.21中打印三角形和菱形的挑战,这些问题真正地帮助学生学会编写嵌套的循环结构,这是入门课程里的一个复杂问题。第6章——子过程与函数过程:本章更深入地了解过程,进一步探讨过程的概念,并且包含一个“调用自己”的过程(即递归过程)。本章讲解了visualbasic6的过程、程序员定义的过程和递归过程。其中讨论的技术是生成结构良好的程序的基础,对于开发实际应用程序和软件的程序员尤其如此。这里介绍的将复杂问题分割成更简单问题的“分而治之”策略是相当有效的方法。学生们喜欢处理随机数和模拟程序,喜欢利用控制结构的掷骰子游戏(这是本书中最成功的教学实例)。本章全面详细地介绍了递归概念,在本书后面还有一部分介绍递归,最好是逐步地学习这一内容。本章的练习含有几个古典的递归问题(如汉诺塔)。将来读者可以重新考察这个问题,并利用图形、动画和声音使它“活动”起来。本章还有许多数学和图形化的例子,学生们特别喜欢练习6.19到练习6.21中的“计算机辅助教学”的开发。第7章——数组:探讨了对数列和列表中的数据的处理。讨论了同一类型的相关数据项形成的
数据结构,展现了一维数组和二维数组的各种例子。众所周知,开发结构化程序时,合适的数据结构与有效的控制结构同等重要。本章的例子考察了各种通常的数组操作,例如输出直方图、排序数组、向过程传递数组以及综合数据分析(简单的统计学)领域的介绍。本章的特点是讨论了基本的排序与查找技术,并展现了二分查找对于线性查找的改进。最后的32个练习包含许多有趣并且具有挑战性的问题,诸如改进的排序技术、航空订票系统的设计、龟图(在logo语言中很著名)的介绍以及骑士旅行与八皇后问题,并且介绍了广泛应用于人工智能领域的试探法编程技术。这些练习包含一系列递归问题,其中有选择排序、线性查找、二分查找和快速排序。第8章——字符串、日期和时间:针对字、句子、字符、字符数组、日期和时间的处理。每一个例子都提供了活动代码,从而动态地演示了visualbasic6函数,并且显示了输出窗口,这样读者可以看到字符串与字符操作的精确效果。学生们将会喜欢洗牌与发牌的范例(他们会加强这一练习)。本章的主要特点是收集了大量的具有挑战性的字符串操作练习,其中有5行打油诗、文本分析、字处理、以各种格式打印日期、支票保护、写出支票金额的大写、morse码、洗牌与发牌、简单加密、刽子手游戏、加密程序以及公制与英制度量转换。学生们将热衷于开发自己的拼写检查器和填字谜游戏生成器。高级课题第9章——图形:开始展现visualbasic6的多媒体特性。我们认为第9章到第21章是本书的高级课题部分。讲授过c和c++入门课程的老师们会发现visualbasic6提供了探索新领域的机会。这是“令人愉快的素材”,本章讨论了描绘图形形状(直线、圆等)、颜色处理、图像和打印;并利用活动代码、漂亮的屏幕输出、详细的表格和画线技术说明了各种图形功能。本章的练习可以使学生绘制各种几何图形、处理图像以及创建一个刽子手游戏的图形化版本。第10章——基本图形用户界面:介绍创建具有用户友好的图形界面(gui)的应用程序。gui开发是个庞大的话题,所以我们分成两章来讨论。这些内容的深度使读者可以创建“工业级别”的gui。通过程序和表格,本章说明了gui设计的原理,并介绍了listbox、textbox、combobox、maskededit控件、滚动条、幻灯片、菜单、弹出菜单和ms
gbox等概念。一些练习使学生可以利用各种控件来格式化输出,创建gui并排序字符串以便于查找。本章的练习含有一个有趣的龟兔赛跑模拟程序。在“建立自己的计算机”部分里解释了机器语言编程,然后是一个计算机模拟程序的设计和实现,它允许读者编写和运行机器语言程序。这一特性对希望了解计算机是如何工作的读者特别有用。我们的学生喜欢这个内容,并因此得到了技能提高。第11章——高级图形用户界面:继续详细讨论visualbasic6gui的功能。其中的例子使得读者可以进入更高级的gui控件的操作,包括richtextbox、updown、imagelist、imagecombo和flatscrollbar。本章讨论了单文档界面(sdi)和多文档界面(mdi),最后讨论了机器代码编译。其中的练习鼓励读者利用本章展现的高级部件开发更有效的gui。第12章——鼠标和键盘:讨论处理鼠标与键盘事件。这里讨论的主题有拖放、改变鼠标指针的形状、识别按下的鼠标按键、拦截击键事件(来自键盘的)以及区分按下了哪个键。本章提供了几个很好的例子,包括允许用户在棋盘上移动棋子的拖放实例。第13章——错误处理与调试:基于创建具有健壮性及较强容错能力的“面向任务”或“面向业务”的应用程序,本章是最重要的章节之一。程序以及其他操作经常会出错,并且当今计算机的执行速度是如此之快(每秒上亿次的操作)。因此,如果程序中有错误,则肯定会发生,而且执行速度相当快。程序员在使用部件时经常会问:“如何要求部件为我工作?”或者“部件返回什么值以说明它已按我的要求执行了任务?”但是程序员也应该考虑到“当我调用的部件执行困难的任务时会发生什么?当出现问题时部件如何指示?”在visualbasic6中,当部件(比如过程)遇到困难或麻烦时会“引发错误”,我们应对部件的环境进行编程以处理和解决这些错误。为了使用visualbasic6部件,不仅要了解运行良好时部件的特性,也要了解出现问题时部件引发什么错误。本章讨论了出错处理问题。当某事件出错时,onerror块执行程序代码,此程序可能正确地运行也可能引发错误。与onerror块相关的是一些处理程序,它们处理引发的错误,并尽量恢复原有秩序,保证系统正常运行而不是“崩溃”。即使不能完全恢复,也可以执行一些操作使系统继续运行,不过可能降低了性能水平——这种做法称为“
故障弱化”。本章也介绍了visualbasic6调试器。讨论了debug菜单和调试工具栏命令(用于控制调试进程)、locals窗口(用于显示局部变量值)、watch窗口(用于浏览局部和模块变量)以及callstack窗口(用于浏览调用的所有过程列表,以到达所选的行)。第14章——顺序文件处理:处理直接来自文件的数据流输入与输出,对于开发商业化应用程序的程序员是相当重要的。本章介绍了从位到字节、字段、记录和文件的数据分层体系,接着介绍visualbasic6对文件和数据流的处理。我们展示了程序如何向磁盘这样的辅助存储设备传递数据以及如何从这些设备里取出数据。利用一些演示如何打开和关闭文件、如何顺序地存储或读取文件数据的程序讨论了顺序存取文件。本章使用了visualbasic6的filesystem对象模型,该模型允许方便地操作文件、目录和驱动器;同时也讨论了用于图形化操作文件、目录和驱动器的控件。第15章——记录和随机存取文件:基于如何为随机存取顺序地创建文件、如何向一个随机存取文件读写数据、如何从一个随机存储的文件中顺序地读出数据这样的程序,本章讨论了随机存取文件。最后的随机存取程序把许多文件存取技术(顺序的和随机的)结合到一个完整的事务处理程序中。本章还介绍了用户自定义类型(udt)——等价于visualbasic6的记录,解释了这些记录如何输入或从辅助设备输出。一些学生告诉我们,学完关于文件处理的这些内容后,他们能够编写立即应用于公司的文件处理程序。本章练习要求学生实现各种创建和处理随机存取文件的程序。第16章—面向对象编程:开始了类模块的讨论。本章提供了一个教授数据抽象的机会,主要考虑类和对象的基础知识与术语。什么是对象?什么是对象的类?对象的内部是什么?如何创建对象?如何删除对象?对象之间如何通信?为什么类(打包软件的自然机制)是可重用的部件?本章讨论了实现抽象类作为visualbasic6的类、访问类成员、利用private实例变量进行信息隐藏、从实现中分离接口、使用访问方法和组件方法以及初始化对象;并讨论了综合问题—创建类的过程,这些类引用对象作为其成员;还讲解了动态内存分配、接口继承和指派等内容;比较了继承(“isa”关系)与合成(“hasa”关系)。本章的特点是几个范例学习,其中有一个较长的例子实现了点、圆和圆柱体的类继承。另一个例子实现了雇员、老板、佣金工人、计件工人和计时工人的类继承。本章解释了多态性。一般在面向对象语言里,当许多子类通过继承与一个公有超类相连时,每一个子类对象可以作为超类对象进行处理,这使得程序员能够以独立于子类对象特定类型的方式编写程序。新的对象类型可由相同的程序处理,于是使系统更容易扩展。多态使得程序省去复杂的selectcase逻辑而倾向于简单的“直线”逻辑。例如,可视游戏的屏幕管理器可以简单地向绘制的对象列表中的每一个对象发送一个“绘制”(draw)消息,每一对象都知道如何绘制自己。也可以向程序加入一种新类型的对象而不必修改此程序,当然要求这个新对象也知道如何绘制自己。这种编程方式特别适合于实现当今流行的gui。visualbasic6不支持传统的实现继承(不同于java和c++),但允许通过接口继承的多态。本章介绍了接口——必须由实现该接口的类来定义的方法集,接口可以通过层次为类提供一些基本的方法,本章的特点之一是其多态实例的学习。本章练习要求讨论几个概念和方法,利用接口修改这章的雇员类,并且利用多态化编程继续这些练习。这些练习也要求学生比较由继承和合成创建的新类,扩展本章讨论的继承层次,为四边形、梯形、平行四边形、长方形和正方形创建继承层次,并且创建一个汽车层次。另外一些练习要求学生为复数、有理数、时间、日期、三连棋游戏、存款账户和整数集开发类。第17章——activex:介绍microsoft强大的分布式计算技术,即activex。讨论了activex的基础知识——microsoft组件对象模型(com)、microsoft的分布式组件对象模型(dcom)和对象链接与嵌入(ole)。在前面的章节里,学生们熟悉了使用activex来创建gui以及执行其他的任务。本章详细演示了如何创建activex控件,并讨论了可利用visualbasic6创建的activex控件类型,同时介绍了activex控件生存期里的关键事件。两个关键的范例创建了一个labelscrollbar控件和数字clock控件,labelscrollbar控件结合了label控件和scrollbar控件,clock控件利用一个timer控件显示了控件上的时间。为了快速创建简单控件及复杂控件的基础,我们介绍了activex控件接口向导(activexcontrolinterfacewizard),它提供了使用activex控件接口向导的分步示例来辅助创建相同的labelscrollbar控件。本章还讨论了一个包含属性列表的特殊窗口:属性页窗口。许多activex控件提供属性页,以方便开发者设置属性组。我们演示了如何利用属性页向导(propertypagewizard)为labelscrollbar控件创建属性页。本章演示了visualbasic6程序如何通过一个称为自动机制的过程控制microsoftword。在一个例子中我们创建了一个word文档,但没有显式地打开word。在另一个例子中,我们使用word的拼写检查器来查看是否存在错误的拼写。这些练习也要求读者创建几个控件,并加强labelscrollbar控件和clock控件。第18章——数据库管理:讨论如何利用visualbasic6访问关系型数据库。visualbasic6提供了许多与数据库有关的控件用于显示和操作数据库数据。这里主要考虑microsoftadodata控件和microsoftdatagrid控件。本章的例子使用visualbasic6提供的biblio.mdb样本数据库。为了访问biblio.mdb数据库,我们详细介绍了结构化查询语言(sql)。本章还讨论了hierarchicalflexgrid控件、datalist控件和datacombo控件。为了快速设计和实现数据驱动的visualbasic6应用程序,本章介绍了数据环境设计器(dataenvironmentdesigner)。第19章——网络、internet和www:处理可以在
计算机网络上通信的程序。什么是客户?什么是服务器?客户怎样要求服务器执行其服务?服务器如何向客户返回结果?什么是url(统一资源定位器)?程序如何装入www网页?如何利用visualbasic6开发协作的应用程序?本章介绍了如何实现客户/服务器网络的visualbasic6程序;演示了如何编写程序“在网上漫游”;并讨论了操作url,利用url链接在服务器中读取文件,利用流接口建立简单的客户和服务器,客户/服务器与流接口的交互,以及无连接的客户/服务器与数据的交互。本章最后讨论了用于加强www文档的vbscript。vbscript是visualbasic6的一个子集。本章有一些很好的例子,其中包括了对服务器例子的修改建议。第20章—多媒体:图像、动画和音频:涉及visualbasic6使计算机“活动”起来的功能。在最初的编程课程里利用这些功能编写应用程序是非常吸引人的,想像一下访问巨大的图形、图像、音频和视频库,并能用其形成创造性的应用程序。现在超过半数新售出的计算机具有多媒体配置,再过几年,配有多媒体的计算机就像现在使用软盘的计算机一样普遍。当学生们访问巨大的图像、绘图、音频、图片、视频、动画这样的公共库时,不知会给出什么样的学期
论文和课堂演示。在学校里,“纸”是字符集,是手写或打印的。未来的几年“纸”将会变成多媒体的“奢侈品”,我们可以将“纸”活动起来。多媒体使你的科学实验室更加吸引人;文本教科书变成了“活动”的,不光是浏览某些静态的图片,你将看到其具有彩色、动画、音频、视频及其他效果。多媒体将调节学习过程,人们会学得更多、更深入并且更有经验。本章讨论了图像和图像操作、音频及动画。本章的特点是一个使用microsoftagent控件的例子,它允许用户从如下三个人物中选择一个:merlin、genie和robby机器人。这些人物能说话、会活动。本章另一个关键的例子是多媒体mci控件,可以用来创建cd播放器和avi播放器。我们演示了从internet接收音频和视频流的realaudio控件。也演示了用于从特定的url中滚动一个图像的marquee控件。本章结束时讨论了activemovie控件,它使应用程序以多种格式(如mpeg、avi、wav等)播放视频及音频。阅读完本章后,读者一定会迫切地希望尝试这些技术,因此我们选择了许多练习来满足读者的需要,这些练习也可以作为工程实践:多媒体练习模拟时钟(analogclock)
动态定制新闻信笺
在线商品分类(on-lineproductcatalog)艺术家(artist)
(dynamicnewsletter)
老虎机(one-armedbandit)自动提款机(
automatedtellermachine)
赛马(horserace)
物理演示:
动力学(physicsdemo:kinetics)背景声音(backgroundaudio)
图像闪烁器(image
flasher)
反应时间检测器(reactiontimeprecision日历/备忘录文件(calendar/ticklerfile)
图像缩放(imagezooming)
tester)关注图像(callingattentiontoanimage)
卡拉ok(karaoke)
讲故事的人(storyteller)数字闹钟(digitalclock)
五行打油诗(limericks)
文本闪烁器(textflasher)音频/图形万花筒(audio/graphicalkaleidoscope)
模拟程序(simpletronsimulator)
汉诺塔(towersofhanoi)解决这些问题可能需要大量的时间,有些需要几个小时,有些可以作为大的学期工程。我们经常看到在大学计算机课程表里的多媒体选修课,这些都是进行练习的好机会。读者可以与同学竞赛,找出这些问题的最好答案。第21章——数据结构、集合和
词典:是特别有价值的大学二年级、三年级课程。本章讨论了用于创建和操作动态数据结构的技术,数据结构包括链表、堆栈、队列(等待队列)和树。这一章开始了自引用类和动态内存分配的讨论,讲解了如何创建和操作各种数据结构,对于每一种数据结构展示了活动代码并显示简单的输出。本章还讨论了collection对象,可以动态地增大和缩小类似于数组的一个对象,以及用于存储关键字/值对的dictionary对象。当使用参考
资料进行工作时,遇到的一个问题可能是不容易观察数据结构以及节点是如何连在一起的。所以我们给出了一些图示,说明连接以及创建的顺序。二叉树例子对于学习自引用和动态数据结构是很有帮助的,这个例子创建了一个二叉树,加入了删除重复值的处理,引入了前序遍历、中序遍历和后序遍历。学生们特别喜欢看到中序遍历以排序的顺序打印出节点。本章的练习包括超市模拟、利用队列递归地搜索链表和从前向后打印链表、二叉树删除、层次遍历、打印树、在一个链表中插入/删除,以及分析二叉树的查找、排序和实现索引类的操作。附录a——运算符优先级表:列出了visualbasic6的每一个运算符以及它们的相关优先级。每一行列出一个运算符及其全称。附录b——ansi字符集:列出ansi字符集的字符以及代码值。ascii是ansi的一个子集。附录c——internet和www上的visualbasic资源:展现了abbeydeitel所能找到的最好的web资源,非常有利于读者进入“visualbasic的世界”。这里列出了许多visualbasic资源,如资讯、杂志和
生产关键visualbasic产品的公司。以下是访问abbey推荐的url时列出的资源摘要:add-ins
examplesanddemosactivexcontrols
faqsbook
sgamescarlandgarysvisualbasichomepage
insidevisualbasiccom
jobscomp.lang.basic.visualnewsgroups
linkscoustomcontrols
mailinglistsdeveloper.com
microsoftcomhomepagedcom
microsoftdevelopernetwork(msdn)com+
microsoft.public.vbnewsgroupsconferences
microsoftscriptingteechnologiesvbscriptsitedirectx
microsofttransactionserverdiscussiongroups
microsoftvbawebsitedocumentation
microsoftvisualbasichomepagedownloads
msdnvisualbasicpagenews
traininginformationnewsgroups
tutorialson-linehelp
usergroupsproductinformation
vbareapublications
vbhelperreferences
vbprosamples
vbxtrasshareware
visualbasicdeveloperspesourcecentresourcecode
visualbasicexplorersupport
visualbasicfaqstechnicalarticles
visualbasicgameprogrammingtheexpertsexchange
visualbasicon-linemagazinethirdpartytools
visualbasictipsandtrickstipsandtricks附录d——数值系统:讨论二进制、十进制、八进制和十六进制数值系统。这些
材料对于计算机科学和工程的入门课程是很有价值的。这个附录使用了与主课程相同的教学方法,其特点是本章的33个练习,其中19个是有答案的自测练习。visualbasic6多媒体教室我们为本书制作了一套人机交互的、基于cd-rom的软件版本,称为visualbasic6多媒体教室(viaualbasic6multimediacyberclassroom),其中包含一个入门介绍,纵览了该多媒体教室的特点。在多媒体教室里,visualbasic6的代码例程真正地“活动”起来。每一个程序都有可执行部分,如果在浏览时希望运行一个程序,只需点击加亮的灯泡图标,立即就会看到或听到(对基于音频的多媒体程序)程序的输出。如果要修改一个程序并希望看到或听到改变后的效果,只要点击软盘图标,源代码就会从光盘中存入读者机器的目录里,然后可以编辑程序、重新编译程序并运行新版本。点击“扬声器”图标,nieto或pauldeitel将讲解程序并与读者一起浏览和分析代码。多媒体教室包含一系列交互式的自测练习,可以加强读者对相关内容的理解,并且提供了一部分练习的解答。请注意,我们没有对所有练习都提供完整的答案,这是因为本书是一本大学教材,教师可以使用这些练习作为家庭作业或
考试题目。visualbasic6多媒体教室也提供了许多辅导内容,包括扩展的超级链接。多媒体教室可以记住读者最近访问的内容(历史列表),并允许读者在历史列表中前后移动。数千项索引是文中出现项目处的超级链接。利用这个完整的文本搜索特性,可以输入一个术语,多媒体教室将在整个文本里查找该术语。目录列表项也是超级链接,点击一章的名字会立即到达相应的内容中。contents菜单提供了对当前章节的小结、所有其他章节、所有附录和索引的直接访问。许多人喜欢浏览我们的编程提示——常见编程错误、编程技巧、外观与感觉视点、性能提示、可移植性提示、软件工程视点和检测与调试提示。利用每页底部的图标可以访问它们。使用多媒体教室的学生和专业人士告诉我们,他们喜欢这种交互性。由于提供了扩展的超级链接和其他导航特性,多媒体教室的确是有效的参考工具。老师们在给我们的来信中提到,学生们喜欢使用多媒体教室,他们掌握了比书本上更多的知识。