本书以Delphi 7为工具,结合大量具有应用价值的实例,循序渐进地介绍了计算机程序设计的基本思想和常用的程序设计方法,并简明扼要地介绍了编程时经常涉及的算法概念和计算机软件系统的工作机理等方面的知识,主要内容包括程序设计的基础知识、算法设计、数据类型、程序结构、复杂数据类型、面向对象程序设计、用户界面设计、图处理与多媒体播放、数据库应用程序。书中各章均配有习题。
本书讲求文字的准确性、思想的连贯性、方法的实用性和内容的先进性。书中将程序设计过程中所涉及的多方面的知识有机地融合在一起,力求使读者在有限的时间内,理解程序设计的基本思想,掌握程序设计的基本方法。
本书适合作为高等学校计算机程序设计课程的教材,也可供学习程序设计的其他人员使用。
第1章 程序设计基础知识
1.1 程序与程序设计
1.1.1 程序的性能与结构
1.1.2 程序设计语言
1.1.3 计算机解题的步骤
I.2 Delphi程序设计方法
1.2.1 Delphi集成开发环境
1.2.2 Delphi程序设计实例
1.2.3 DelpLi工程中的主要文件
1.3 Delphi程序设计的基本技能
1.3.1 窗体和组件的使用
1.3.2 代码编辑器的使用
1.3.3 变量赋值及组件的动态属性设置
1.3.4 数据输入输出
习题
第2章 算法与程序设计
2.1 算法的概念
2.1.1 算法实例
2.1.2 算法的特征
2.1.3 算法的表示
2.2 算法的结构
2.2.1 算法的3种基本结构
2.2.2 基本结构的本质属性
2.2.3 N—S结构流程图
2.3 算法的程序实现
2.3.1 算法的程序实现步骤
2.3.2 选择结构的程序实现
2.3.3 循环结构的程序实现
2.3.4 算法与数据结构
2.3.5 结构化程序设计
习题
第3章 Delphi语言的语法基础
3.1 符号
3.1.1 特定符号
3.1.2 分隔符
3.1.3 标识符
3.1.4 数字、字符串和标号
3.2 常量、变量与标准函数
3.2.1 数据类型
3.2.2 标准数据类型
3.2.3 字面常量和声明常量
3.2.4 变量的声明和引用
3.2.5 标准函数
3.3 表达式
3.3.1 算术表达式
3.3.2 字符串类型和字符表达式
3.3.3 关系表达式和布尔表达式
3.4 枚举类型、子界类型与集合类型
3.4.1 枚举类型
3.4.2 子界类型
3.4.3 集合类型
3.4.4 类型间的相容关系
3.5 数组
3.5.1 一维数组
3.5.2 多维数组
3.5.3 动态数组
习题
第4章 Delphi程序结构
4.1 控制结构
4.1.1 选择结构
4.1.2 循环结构
4.1.3 循环结构的嵌套
4.1.4 非正常流程控制
4.2 异常处理机制
4.2.1 异常处理机制的作用
4.2.2 try...except语句
4.2.3 异常处理的例子
4.2.4 try...hnally语句
4.3 过程与函数
4.3.1 过程的声明和调用
4.3.2 函数的声明和调用
4.3.3 过程和函数的参数
4.3.4 过程和函数的嵌套
4.4 递推、迭代和递归
4.4.1 递推算法和程序
4.4.2 迭代算法和程序
4.4.3 递J]算法和程序
4.5 Delphi应用程序的结构
4.5.1 Delphi程序的组织结构
4.5.2 变量的作用域
4.5.3 构成Delphi工程的文件
习题
第5章 记录、文件与指针
5.1 记录类型
5.1.1 记录的声明和引用
5.1.2 记录的嵌套
5.1.3 带变体部分的记录
5.2 文件类型
5.2.1 文件的定义
5.2.2 文件的基本操作
5.2.3 文本文件的操作
5.3 指针类型
5.3.1 指针类型与动态变量
5.3.2 指针操作
5.3.3 链表操作
5.4 几种算法设计技术
5.4.1 分治法
5.4.2 贪心法
5.4.3 回溯法
习题
第6章 面向对象程序设计
6.1 类和对象
6.1.1 面向对象程序设计思想
6.1.2 类的定义
6.1.3 对象
6.1.4 构造函数和析构函数
6.2 类的三大特性
6.2.1 类的封装性
6.2.2 类的继承性
6.2.3 类的多态性
6.3 可视组件库(VCL)
6.3.1 VCI。的类结构
6.3.2 组件工作机理
6.3.3 控件的动态生成
6.3.4 对象变量
6.4 消息处理
6.4.] Windows消息
6.4.2 Delphi消息系统
6.4.3 消息处理
6.4.4 VCL消息处理机制
6.4.5 使用挂钩
6.5 自制控件
6.5.1 制作组件的一般方法
6,5,2 使用向导制作新组件
6.5.3 组件的属性、方法和事件
6.5.4 给自定义组件添加功能
6.5.5 组件的测试和安装
习题
第7章 用户界面设计
7.1 窗体设计
7.1.1 窗体的属性
7.1.2 窗体的事件和方法
7.1.3 定制对话框
7.1.4 MDI窗体
7.2菜单设计
7.2.1 菜单组件与菜单设计
7.2.2 使用菜单模板设计菜单
7.2.3 菜单项设计技巧
7.3 工具栏与状态栏设计
7.3.1 工具栏组件
7.3.2 工具栏设计实例
7.3.3 状态栏设计
7.4 文字编辑程序
7.4.1 标准对话框的使用
7.4.2 文本的复制和打印
7.4.3 文字编辑器实例
习题
第8章 图、多媒体与多线程程序
8.1 图处理组件
8.1.1 图处理组件与图像种类
8.1.2 图像组件(1mage)
8.1.3 成形组件(Shape)
8.2 画布对象
8.2.1 像素操作
8.2.2 画笔
8.2.3 画刷与作图区域
8.2.4 画布对象的基本作图方法
8.2.5 组件及对象的综合应用
8.3 控件拖放及运动
8.3.1 控件的公共属性
8.3.2 鼠标事件及手控作图
8.3.3 控件的拖放操作
8.3.4 控件的动画效果
8.3.5 键盘事件及组件的手控运动
8.4 音频和视频播放
8.4.1 音频播放
8.4.2 卡通控件
8.4.3 媒体播放器控件
8.5 多线程应用程序
8.5.1 进程与线程
8.5.2 创建线程对象
8.5.3 线程对象的使用
习题
第9章 数据库应用程序
9.1 数据库系统概念
9.1.1 数据库系统组成
9.1.2 关系数据库层次结构
9.1.3 数据库系统开发工具
9.2 数据库应用程序的结构与设计
9.2.1 应用程序的结构
9.2.2 应用程序向导的使用
9.2.3 应用程序的设计步骤
9.3 数据库连接
9.3.1 配置BDE数据源
9.3.2 建立ODBC数据源
9.3.3 使用数据库浏览器
9.4 数据库操纵
9.4.1 字段的操作
9.4.2 使用Tabel组件的记录查找
9.4.3 使用Query组件的SQL查询
9.5 基于ADO的数据库应用程序
9.5.I ADO组件
9.5.2 通过ADO连接数据库
9.5.3 通过ADO创建主/细表应用程序
习题
参考文献
计算机程序设计是计算机基础教育的重点和基础。作为高等学校的学生,尤其是将来要成为工程技术人员的理工科学生,不能只满足于使用别人设计好的软件,而应该具有一定的程序设计能力。
实际上,程序设计并不是一件容易的事情。要编程序解决一个实际问题,首先要理解问题本身的逻辑结构和工作方式,然后再考虑选用哪种程序设计语言和工具。而且在程序设计的过程中,还要考虑问题在计算机中如何表示,应该采用哪种算法,按照什么方法和步骤来编制和调试程序等。这就涉及了程序设计语言的语法规则、程序设计工具的使用、算法设计策略、数据结构常识、程序设计的技巧等多方面的知识和技能。要使学生在有限的时间内掌握程序设计技术,首先就要有能够将这些知识和技能有机地融合在一起的教材。
多年来,围绕着计算机程序设计课程,出现了一大批各具特色的教材和参考书,其中不乏立意深刻、内容丰富的好教材。但遗憾的是,当程序设计发展到了面向对象设计方法和可视化设计环境之后,需要解决的实际问题的范围越来越广,程序设计的工具越来越复杂,程序设计手段更加丰富多彩,而现有的教材和参考书大都有所侧重,或者详细地介绍程序设计语言和工具的使用方法,或者系统地论述算法设计的知识和技能,或者深入地探讨各种程序设计方法的优劣,程序设计课程所需要的语言的知识、工具的使用技能、数据结构的知识以及程序设计方法等,散见于各种不同类型的书籍中,这就给教材的选用和学生的学习带来了一定的困难。有鉴于此,作者结合多年的教学实践,编写了本书。
本书选择了核心的程序设计技术、常用的算法设计策略以及Delphi 7开发环境的常用功能,由浅人深地进行了详细的讲解,力图使读者在有限的时间内,对课程的相关知识有一个清晰和完整的理解。本书中对重要的概念和方法一般都先在例题或讲解中以极易理解的简单方式加以运用,然后在其后的某个章节集中讲解。这样既起到了分散难点的作用,便于初学者理解和掌握,又避免了因刻意分散难点而将相关内容割裂开来,造成不便查阅,不易形成完整印象的弊病。同时,本书注重知识和技能的合理调配,力图避免因强调某些方面,忽略其他方面所造成的程序设计能力整体上的缺失。
本书可作为高等学校程序设计课程的教材,也可作为程序设计工作者的参考书。采用本书作为教材的程序设计课程以64—72(包括上机时数)学时为宜。带*的章节为选学内容,如果学时数较少,对这部分内容可以不学。本书每章都配备了内容丰富的习题,不同类型的读者可根据自己的实际情况选做部分习题。
程序设计技术博大精深,其内容绝非一本书所能包括。由于本书的编写不可避免地要受到作者水平、写作时间、篇幅等种种限制,因此,作者要传达的信息是否到位或者是否得体,还要经过读者的检验,望广大读者批评指正。
姚普选
2004年1月于西安交通大学