Delphi程序设计大学教程
作者 : 刘艺 罗兵 周安栋
出版日期 : 2005-06-27
ISBN : 7-111-16421-0
定价 : 30.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 319
开本 : 16开
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书特点
●面向Delphi初学者的程序设计入门和实践读物
●汇集一线教师教学经验的大学计算机程序设计课程教材
●结合国内计算机教学改革成果与世界一流课程体系CC2004同步的计算机教材
●参照美国ACM和IEEE/CS颁布的Computing Curricula 2004最新课程体系规 范编写。
●本书为教师备有电子教案,需要者请到登录机工新阅读网站或博艺论坛http://www.liu-yi.net下载。与本书配套的习题解答与课程设计即将出版,有助于读者更好地掌握本书的内容。

图书特色

图书前言

欢迎进入Delphi的世界学习计算机程序设计课程。这将是一次美妙和激动人心的探索,可能会为你今后从事充满挑战和令人兴奋的职业奠定软件编程的基础。众所周知,计算机在我们的日常生活中扮演了一个重要的角色,而且在未来仍将继续扮演这一重要角色。
  计算机科学是一个充满挑战和发展机遇的年轻学科,而计算机程序设计则是这门学科的重要基础。随着计算机在各行各业的广泛应用,很多非计算机专业也把计算机程序设计列为公共基础课之一。
  既然是作为基础课的教材,那么本书所假定的读者就是不具有程序设计经验,也没有面向对象技术概念和Windows程序设计知识的人。即使是一个对计算机一无所知的人,也能通过学习本书而获取所有有关的基本知识,学习程序设计。如果读者是一位很有经验的程序员,已经用过其他程序设计语言,并掌握了一定的开发技能,也能在本书中发现很多有用的信息。

本书与程序设计课程
  计算机程序设计既是一门概念复杂、知识面广的理论课,也是一门面向实战、需要动手的实践课。几乎所有的编程初学者都梦想着有朝一日能在计算机上驰骋,让一行行程序在自己敲击键盘的手下源源不断地流出,真正成为驾驭计算机的主人。然而,学完程序设计课程后,实际开始编写程序时,却往往会觉得难以下手、无所适从。尽管自己刻苦学习,高分通过考试,但并不能体会到所学的知识给实际编程带来的便利和优势。
  为什么会这样 一方面是因为我们的学生在学习时没有掌握程序设计的一般过程,没有深入了解通用程序设计语言的本质规律;另一方面是我们的教学体制僵化、教材陈旧,教学思想和内容跟不上时代的发展,与软件开发实际情况脱节。
  计算机程序设计语言是一种实现对计算机进行操作和控制的人造语言,与人类的自然语言有一定差距。程序设计语言仅仅是程序设计的手段和途径而并不是程序设计的全部。因此,掌握程序设计语言并不意味着就精通程序设计,就能写出优秀的程序。实际上,程序设计所涉及的领域、知识和技能要远远超出我们的想象。因此本教材对于程序设计课程在一些方面有着自己独特的理解。

程序设计首先是一个过程
  程序设计过程通常分为问题建模、算法设计、编写代码和编译调试4个阶段。不同阶段的任务是相对独立的,不能混为一谈。即使是一个比较简单的程序,我们也应该养成先分析,再下手,最后调试的习惯,严格遵循程序设计过程。因为在缺乏对问题深入、全面分析的情况下,就匆匆动手编写程序,将会增加失败的风险,带来后期修改、维护的麻烦。因此,要学习程序设计,不但不能回避程序设计过程,更要从软件开发过程和软件生命周期的高度来了解和掌握程序设计过程,从一开始就要养成遵从程序设计准则的良好习惯。有别于其他程序设计教材,本书强调程序设计过程和软件开发过程的重要性,为读者介绍了有关软件建模与测试的基本原理和技术。特别考虑到现代软件开发依赖于集体合作和项目管理,是汇集了很多程序设计过程的更大的过程。因此,除了在书中增加有关软件过程实施和管理的介绍外,还把如何撰写规范的程序代码作为重要一节,使得读者在学习程序设计之初就了解程序设计的规范,注重编写程序的规范性、正确性和可靠性,对于培养将来参与大型软件开发所需要的分工合作团队成员十分重要。

程序设计还是一种解决问题的方法和能力
  程序设计课程的目标是学习用计算机解决问题的思考方法,培养编程应用能力,而不是仅仅学会某个程序设计语言的语法规则。很多学生能弄清楚循环、if-else结构以及算术表达式,但很难把一个编程问题分解成结构良好的程序。这暴露了程序设计教学中偏重语法细节,忽略总体思想方法和整体过程实现的问题。
  尽管程序设计理论的发展为解决问题提供了很多有效方法,但对于初学者而言,学习的捷径应该是抓住最核心的思想方法,即结构化方法和面向对象方法。为实现这个目的,我们既把结构化算法分析和设计作为教材重点,也把面向对象分析和设计作为重点。对于前者,我们以顺序结构、选择结构和循环结构这三种基本结构为基础,讲解常用的结构化算法;对于后者,我们则围绕面向对象的抽象性、继承性、多态性和封装性这4个本质特点阐述面向对象程序设计的基本方法。通过强调基本概念、基本方法、基本应用,为初学者奠定扎实的程序设计基础,树立良好的编程思想。通过大量的实例分析和范例程序设计过程演示,我们力图给初学者建立完整印象,培养其从整体上思考问题和解决问题的编程能力。

程序设计最终是对程序设计语言的应用
  程序设计和程序设计语言存在着有趣的辩证关系。程序设计可以用不同的程序设计语言来实现,但是不同的程序设计语言又决定着能使用怎样的程序设计思想方法和技术技巧,制约着程序设计的实现能力和效率。本书使用Delphi作为学习程序设计的语言,并不是因为Delphi有强大的可视化编程功能,而是因为Delphi不但继承了Pascal语言完美的结构化风格,而且还具有面向对象语言的真正优势。更可喜的是,Delphi还在继续发展,不断吸取现代编程语言的精华。这一切使得Delphi具备现代通用程序设计语言的主流特征,特别适合教学使用。因此学习Delphi语言,掌握Delphi程序设计方法是本课程的另一个重要任务。
  本书虽然以Delphi语言为背景介绍程序设计语言的相关知识,但是重点强调的是一些通用的思想方法,而放弃了Delphi的一些奇技淫巧。读者应该注意到,不同的程序设计语言其语法和风格可能迥异,但无论哪一种语言,都是以数据(类型)、操作(运算)、控制(逻辑流程)为基本内容。更进一步讲,学习一门程序设计语言,应该超越语言的具体表述格式,不拘泥于繁芜的语法现象,而是站在抽象的高度,掌握程序设计的基本概念,深入了解程序设计语言的本质规律。这样将会为深入学习其他程序设计语言带来便利。

本书的结构
  本书是为计算机程序设计课程编写的。该课程是理工类大学的公共基础课,它通过讲授一门具体的计算机语言,来帮助学生掌握程序设计的基础知识和基本应用。同时,对于未接触过计算机科学的学生,本书还涉及和介绍了与程序设计相关的计算机科学知识。程序设计基础、算法与结构化程序设计、面向对象程序设计、Windows程序设计这4个部分组成了本书的核心,并涉及计算机基础、数据和控制、程序设计理论、软件工程知识等4大知识领域,汇集20个相关知识点。虽然在本书中讨论的内容有一定的理论性,但这些理论都是用实际程序问题表达的,这是为了帮助读者建立完整的程序设计知识体系结构。
  本书的组织结构如图1所示,其中有些知识点是通过各章节迭代,从而循序渐进,不断深入的。
  本书共有11章,各章的主要内容如下:
  * 第1章 绪论 介绍程序设计的基本概念,并初步认识Delphi。重点帮助读者搞清计算机程序、程序设计和程序设计语言等基本概念。
  * 第2章 程序设计基础 以数据和数据处理作为程序设计的基础,通过了解变量、常量和数据类型开始探索Delphi程序设计语言。通过建立第一个Delphi程序介绍Delphi语言要素,说明如何撰写规范的程序代码。
  * 第3章 运算与流程控制 介绍Delphi运算符和表达式。讲解表达式语法、各种算术、逻辑和其他运算符。通过介绍实现顺序、选择、循环结构的常用Delphi语句,帮助读者完整地理解如何控制程序的逻辑流程。
  * 第4章 过程与函数 讲解Delphi过程和函数的声明与实现,介绍参数类型与传递方式。最后讨论过程和函数的使用。
  * 第5章 算法与数据结构 介绍算法和数据结构的概念及常用算法。通过集合、数组、链表、栈、队列等数据结构,讨论算法的应用及算法的Delphi程序实现。
  * 第6章 程序结构与结构化设计 剖析Delphi程序的基本结构,介绍结构化程序设计方法。引入单元概念并且展示如何从较简单的程序块构造复杂的结构化程序。最后通过一个结构化设计的应用实例,演示结构化程序设计的完整实现过程。
  * 第7章 面向对象与对象模型 介绍面向对象的概念和对象建模的方法,讲解对象模型中的核心部分:类及类的成员,使读者学会如何用Delphi语言声明和实现一个类以及如何使用方法和属性。
  * 第8章 面向对象程序设计 围绕面向对象的抽象性、继承性、多态性和封装性这4个特点讲解面向对象程序设计的基本方法。重点讲授如何使用对象和对象接口,如何在程序设计中使用继承、合成和多态等面向对象技术。
  * 第9章 开发过程与程序调试 介绍软件的开发过程及过程的实施管理,从软件质量的高度讨论程序的调试与测试,重点讲述Delphi程序的调试方法和程序中的异常处理。
  * 第10章 设计Windows应用程序 讲解Windows应用程序的一般设计方法,包括如何创建窗体、设计界面、使用控件、处理事件等。读者可以学到Delphi在可视化快速开发Windows应用程序方面的强大功能。
  * 第11章 设计数据库应用程序  读者将学习如何用Delphi创建关系数据库应用程序,同时还介绍一些数据库理论基础。除了学会使用Delphi功能强大的数据库组件,本章还通过实例重点讲解和演示了ADO和SQL数据库编程。
  尽管本书包含以上内容,但实际的教学进度和授课内容可以灵活确定,因为这要取决于课堂教学的安排或读者的实际技能及对所讨论问题的熟悉程度。教学课时数建议安排在20~60课时之间。其中标记*的章节仅供有能力的学生选学。

本书的读者对象
  * 没有任何程序设计基础的学生。选用本书作为程序设计基础教材,读者可以掌握Delphi程序设计语言,同时为深入学习其他计算机课程奠定基础。显然Delphi无论是在结构化还是面向对象,或者是可视化Windows编程方面都能胜任教学的需要,从而为学习程序设计提供更全面的知识结构体系。
  * 因工作或科研需要希望迅速掌握一门程序设计语言以完成不太复杂的编程任务的非专业编程人员。
  * 非计算机专业的编程爱好者,改行从事程序员工作,有一些实际的经验,但没有系统学习过相关专业知识。可以通过本书重温程序设计知识,补习相关概念和理论。
  * 有一定经验的程序员,已经学习过其他编程语言并在软件开发中掌握了一定的开发技能,但没有使用过Delphi语言或对Delphi语言一知半解。可以利用本书系统学习Delphi程序设计,发现Delphi与其所熟悉语言的不同点,并由此掌握Delphi语言。

本书的特色
  本书的一些特色不仅使得本书与众不同,同时也特别有助于入门者的学习。

概念和知识面
  贯穿本书,我们始终强调概念要比数学模型更重要,我们认为对概念的理解必然左右对模型的理解。同时,我们还特别注意开阔读者的知识面,使读者能够站在现代软件开发和软件工程这个比较开阔的层面上了解程序设计,而不是局限于繁琐的程序设计语言规则。

代码编写能力
  初学Delphi程序设计的人,大多数会被Delphi强大的可视化编程功能所吸引。的确,快速应用开发(RAD)的思想正在改变程序设计的方法,而可视化程序设计实际上已经重造了开发者的工作平台。以前编写程序是通过基于字符的编辑器键入一条条语句的方法,现在我们可以交互式地在窗体上点击和拖放组件,并使用短小精悍的代码段连接它们。过去,即使是开发很小的Windows应用程序,也需要很多细心而且繁杂的基础工作,先写出非常长的源代码文件,然后才可编译和测试其结果。Delphi改变了这种模式。它首先创建一个Windows应用程序的初始框架代码,即缺省的用户界面,而无须写任何程序。程序员的创造力被用于真正的程序设计任务,而不是浪费在窗体的几个组件上。
  可是,千万不要被容易的、可视化的、基于组件的程序设计所迷惑,把程序设计变成了点击和拖放组件,然后在窗体上重新排列组件的工作。如果是这样学习程序设计,我们培养的是拖拉现成组件的“拖拉员”而不是创造代码的程序员。真正的程序设计需要很多知识、技能和创造力。为此,我们的教材不采用大多数Delphi程序设计教材那种以可视化程序设计为重点的编写模式。为避免过早地引入可视化组件的使用,分散学习程序设计语言基础知识的注意力,我们在本书第10章“设计Windows应用程序”之前尽量以控制台程序为示例讲解程序设计方法,重在学习程序设计语言的本质,培养代码的编写能力。

图文并茂
  本书有大量精心设计的插图,这些插图可以帮助读者增进对文字的理解。

示例程序
  本书尽可能地运用示例程序来表述概念和模型,同时尽量提供完整的示例程序和程序设计过程。本书所有示例程序和习题中的程序都已在Windows环境下Delphi 7中编译运行通过,建议读者在学习时选择Delphi 7。

小结和习题
  每一章的结尾都包括“本章小结”和“本章习题”。“本章小结”简明概括该章中所有关键内容和知识点,是复习时的参考。“本章习题”包括三部分内容:复习题、测试题和练习题。
  * 复习题:测试该章中所有的要点和概念,帮助学生复习巩固重点内容。
  * 测试题:通过选择题客观地测试学生对所学知识的理解和掌握程度。
  * 练习题:通过课后练习题,检查学生能否运用掌握的概念和知识独立思考,解决问题。
  本书为教师准备了电子教案。另外,本书的部分源代码可以从http://www.liu-yi.net以及http://www.hzbook.com获得。

CC 2004课程体系
  从1990年开始,美国电气和电子工程师协会计算机社团(Computer Society of the Institute for Electrical and Electronic Engineers,简称IEEE-CS)和计算机学会(Association for Computing Machinery,简称ACM)就着手开发新的本科生计算机课程体系。1991年联合推出了Computing Curricula 1991(简称CC 1991),当时仅限于Computer Science(计算机科学)和Computer Engineering(计算机工程)两个专业的课程。1998年秋季开始,IEEE-CS和ACM联合投入新的力量更新该课程体系,并在2001年开发出Computing Curricula 2001(简称CC 2001),并将该计算机课程体系扩大到Computer Science(计算机科学)、Computer Engineering(计算机工程)、Software Engineering(软件工程)、Information Systems(信息系统)等多个专业。在CC 2001的实施中,专家们发现,计算机课程所涉及的学科专业和教学范围正在不断扩大,而且在内容和教学方面的变化也日新月异。IEEE-CS和ACM意识到10年一次的Computing Curricula修订已经难以满足要求,于是联合国际信息处理联合会(International Federation for Information Processing,简称IFIP)、英国计算机协会(British Computer Society,简称BCS)等更多的组织开发了Computing Curricula 2004(简称CC 2004),使之成为开放的、可扩充的、适合多专业的、整合了计算机教学相关原则体系观点的课程体系指南。其结构参见图2。
  为了进一步反映当代计算机科学技术的发展水平,与国际主流计算机教育思想接轨。通过多年来对IEEE-CS和ACM的Computing Curricula课程体系的跟踪研究,我们在本教材的编写中,借鉴了CC 2004课程体系的最新研究成果,同时吸取了国外同类教材的优秀经验,目的是进一步推动教材和课程改革,培养有竞争力的人才。

致谢
  本书是作者在多年科研和教学基础上编写的,主要参考了作者已发表的文章和著作以及教学中积累的资料。书中还参阅了其他中外文教材、资料,由于无法在此一一列举,现谨对这些教材和资料的作者表示衷心的感谢。
  参与本教材编写工作的人员还有网通吉林市分公司的孙滔,太原师范学院计算机中心的刘星,海军工程大学的段立、李启元、杜军、吴苗、曹旭峰,南京航空航天大学无人驾驶飞机研究所的吴英,以及杨德刚、郭巍、刘藩、吴永逸、洪蕾等。
  一本书的出版离不开许多人的支持,尤其是这本书。为此感谢我们的家人和朋友。我们在忍受写作之苦的同时,牺牲了与他们共享天伦之乐的宝贵时光。
  由于作者水平有限,本书中难免有疏漏和不妥之处,恳请各位专家、同仁和读者不吝赐教,并在此表示特别感谢!http://www.liu-yi.net


2005年2月17日于南京

作者简介

刘艺 罗兵 周安栋:刘艺: 海军工程大学信息与电气学院副教授,美国Borland公司授予的Delphi产品专家,计算机技术作家。著有《Delphi面向对象编程思想》、《Delphi 6企业级解决方案及应用剖析》、《Delphi第三方控件使用大全》等10多部计算机专著,与他人合著《计算机英语》、《信息安全学》等大学教材,后者被评为教育部向全国推荐的研究生教材。主持过多个在军内获奖的科研项目。[URL=http://www.liu-yi.net]作者网站[/URL]

图书目录

第1章  绪论 1
1.1  程序与程序设计 1
1.1.1  程序与计算机 1
1.1.2  算法与数据结构 3
1.1.3  程序设计过程 6
1.2  程序设计语言 7
1.2.1  发展历史 8
1.2.2  语言的类型 8
1.2.3  高级语言的分类 9
1.3  Delphi语言介绍 9
1.3.1  Delphi是什么 9
1.3.2  Delphi的发展历史 11
1.3.3  Delphi程序的编写、编译和运行 11
1.4  本章小结 16
1.5  本章习题 17
第2章  程序设计基础 19
2.1  数据和数据处理 19
2.1.1  计算机的结构 19
2.1.2  数据的表示 20
2.1.3  数据的处理 22
2.2  数据类型 22
2.2.1  常量和变量 23
2.2.2  简单数据类型 24
2.2.3  复杂数据类型 28
2.2.4  类型关系* 32
2.3  程序 34
2.3.1  一个简单的Delphi程序 34
2.3.2  Delphi语言要素 37
2.3.3  撰写规范的程序代码 40
2.4  本章小结 43
2.5  本章习题 45
第3章  运算与流程控制 49
3.1  表达式 49
3.2  运算符 49
3.2.1  赋值运算符 49
3.2.2  逻辑运算符 50
3.2.3  算术运算符 50
3.2.4  位运算符 51
3.2.5  增减运算符 51
3.3  运算符的优先级 52
3.4  流程控制 53
3.4.1  顺序结构 53
3.4.2  选择结构 54
3.4.3  循环结构 60
3.5  本章小结 66
3.6  本章习题 67
第4章  过程与函数 71
4.1  过程与函数的编写 71
4.1.1  过程 71
4.1.2  函数 72
4.1.3  指示字* 73
4.1.4  程序型类型* 75
4.2  参数 78
4.2.1  参数类型 79
4.2.2  无类型参数* 81
4.2.3  缺省参数 82
4.3  过程与函数的使用 82
4.3.1  调用过程和函数 82
4.3.2  过程与函数的重载 83
4.4  本章小结 85
4.5  本章习题 86
第5章  算法与数据结构 89
5.1  算法 89
5.1.1  算法的描述 90
5.1.2  常用算法 94
5.1.3  算法复杂性分析* 98
5.2  集合 100
5.2.1  关系运算 101
5.2.2  增删元素 101
5.2.3  交集运算 101
5.3  数组 101
5.3.1  静态数组 101
5.3.2  动态数组 103
5.3.3  排序 104
5.3.4  查找 106
5.3.5  数组参数 108
5.4  抽象数据类型* 110
5.4.1  数据类型的层次结构 110
5.4.2  链表 112
5.4.3  栈 115
5.4.4  队列 118
5.5  本章小结 118
5.6  本章习题 120
第6章  程序结构与结构化设计 123
6.1  Delphi程序结构分析 123
6.1.1  Program—主程序 123
6.1.2  Unit—单元 125
6.1.3  单元的引用 127
6.1.4  标识符的作用范围 129
6.2  结构化程序设计基础 129
6.2.1  结构化设计的特征 130
6.2.2  构造结构化程序的规则 131
6.2.3  结构化程序设计方法 131
6.3  结构化设计应用举例 132
6.3.1  问题及分析 132
6.3.2  结构化设计 132
6.3.3  范例程序的实现 134
6.4  本章小结 146
6.5  本章习题 147
第7章  面向对象与对象模型 151
7.1  面向对象的概念 151
7.1.1  面向对象的基本原理 151
7.1.2  建立面向对象的思维 152
7.1.3  UML和对象建模 154
7.2  类 157
7.2.1  类的概念 157
7.2.2  类成员 158
7.2.3  类成员的可见性 159
7.3  方法和属性 160
7.3.1  什么是方法 160
7.3.2  方法的绑定 162
7.3.3  属性 164
7.4  本章小结 166
7.5  本章习题 167
第8章  面向对象程序设计 171
8.1  对象 171
8.1.1  理解对象 171
8.1.2  使用对象 172
8.1.3  对象之间的关系 179
8.2  继承 183
8.2.1  使用继承 184
8.2.2  继承与合成 191
8.3  多态 193
8.3.1  多态与动态绑定 193
8.3.2  方法的覆盖、隐藏和重载 196
8.4  接口 198
8.4.1  接口的概念 198
8.4.2  Delphi对象接口 199
8.4.3  接口应用实例 203
8.5  本章小结 211
8.6  本章习题 213
第9章  开发过程与程序调试 221
9.1  软件开发过程概述 221
9.1.1  软件生命周期 221
9.1.2  软件开发过程 222
9.2  调试与测试 226
9.2.1  程序调试 226
9.2.2  软件质量与测试 230
9.3  异常与异常处理 232
9.3.1  异常与Delphi的异常类 232
9.3.2  异常保护与处理机制 235
9.3.3  利用异常处理编程 238
9.4  本章小结 240
9.5  本章习题 241
第10章  设计Windows应用程序 245
10.1  可视化程序设计 245
10.1.1  图形用户界面 245
10.1.2  可视化组件 247
10.2  Windows窗体 249
10.2.1  应用程序和主窗体 250
10.2.2  添加其他窗体 252
10.2.3  动态创建窗体 252
10.3  菜单和工具栏 254
10.3.1  设计菜单 254
10.3.2  设计工具栏 257
10.3.3  设计动作 258
10.4  使用控件 259
10.4.1  控件的属性和布局 259
10.4.2  事件处理模型 264
10.4.3  示例程序:EditPad 266
10.5  本章小结 271
10.6  本章习题 272
第11章  设计数据库应用程序 275
11.1  数据库和数据库系统 275
11.1.1  数据库管理系统 275
11.1.2  数据库应用程序 277
11.1.3  数据库安全 277
11.2  Delphi数据库体系结构 278
11.2.1  本地数据库和远程数据库 278
11.2.2  选择合适的体系结构 278
11.2.3  连接数据库服务器 280
11.2.4  Delphi数据库组件介绍 281
11.3  基于ADO的数据库应用程序 281
11.3.1  ADO概述 282
11.3.2  连接ADO数据库 282
11.3.3  ADO数据集 285
11.3.4  设计用户界面 286
11.3.5  示例程序:图书管理系统 287
11.4  SQL数据库编程 298
11.4.1  SQL语言简介 298
11.4.2  使用SQL编程 300
11.4.3  示例程序:SQL查询窗体 304
11.5  本章小结 309
11.6  本章习题 310
附录A  ASCII码 313
附录B  Unicode码 317

教学资源推荐
作者: (美)John R.Hubbard
作者: 丁山 朱留存 编著
作者: [美] 丹尼尔·卡斯沃姆(Daniel Kusswurm) 著
作者: 骆斌 主编 邵栋 任桐炜 编著
参考读物推荐
作者: Luke Welling, Laura Thomson
作者: (美)Eugene Agafonov 著
作者: [德] 斯蒂芬·罗斯(Stephan Roth) 著