本书从软件的角度出发,以程序设计方法为主要目标,以程序设计语言C/C++为编程工具,介绍软件的基本概念、分类及其作用,构造软件的基本方法、技术和实现途径,如结构化程序设计的基本思想、模块化程序设计方法、数据组织和算法设计、面向对象的程序设计思想和方法、程序设计语言C/C++等,通过典型的例题把程序设计方法和程序设计语言相结合,来进一步展现程序设计的全过程。\r\n\r\n 与本书配套编写的《计算机软件技术实验教程》同时由重庆大学出版社出版。本书可作为高校理工类非计算机本科、专科专业学生学习计算机程序设计语言、程序设计方法等方面的教材,也可作为高等教育自学考试教材和高等职业技术教育教材,以及从事计算机软件应用开发技术人员的参考书。 \r\n\r\n \r\n
\r\n
1 软件技术初步 \r\n\r\n 1. 1 计算机系统 \r\n\r\n 1. 1. 1 计算的需要及其局限性 \r\n\r\n 1. 1. 2 计算机系统及其发展 \r\n\r\n 1. 1. 3 计算机软件的分类及其功能 \r\n\r\n 1. 1. 4 计算机系统的应用模式 \r\n\r\n 1. 2 程序和程序设计 \r\n\r\n 1. 2. 1 数据和数据类型 \r\n\r\n 1. 2. 2 数据结构 \r\n\r\n 1. 2. 3 算法和算法描述 \r\n\r\n 1. 2. 4 程序和程序设计 \r\n\r\n 1. 3 程序设计语言 \r\n\r\n 1. 3. 1 程序设计语言的基本概念 \r\n\r\n 1. 3. 2 程序设计语言及其发展 \r\n\r\n 1. 4 程序设计方法 \r\n\r\n 1. 4. 1 结构化程序设计方法 \r\n\r\n 1. 4. 2 面向对象程序设计方法 \r\n\r\n 1. 5 软件工程 \r\n\r\n 1. 5. 1 软件工程 \r\n\r\n 1. 5. 2 软件的生命周期 \r\n\r\n 1. 5. 3 软件过程与软件过程改进 \r\n\r\n 习题1 \r\n\r\n 2 程序设计基础 \r\n\r\n 2. 1 一个简单的程序 \r\n\r\n 2. 2 常量与变量 \r\n\r\n 2. 2. 1 数据类型的概念 \r\n\r\n 2. 2. 2 常量与变量 \r\n\r\n 2. 2. 3 运算符与表达式 \r\n\r\n 2. 3 C程序的结构 \r\n\r\n 2. 3. 1 C语言中的语句 \r\n\r\n 2. 3. 2 C程序的组成 \r\n\r\n 2. 4 程序的顺序结构 \r\n\r\n 2. 4. 1 字符的输入与输出 \r\n\r\n 2. 4. 2 格式化输入与输出 \r\n\r\n 2. 4. 3 简单程序设计举例 \r\n\r\n 2. 5 程序的选择结构 \r\n\r\n 2. 5. 1 选择结构的概念 \r\n\r\n 2. 5. 2 C语言中选择结构的实现 \r\n\r\n 2. 5. 3 选择结构程序设计举例 \r\n\r\n 2. 6 程序的循环结构 \r\n\r\n 2. 6. 1 循环结构的概念 \r\n\r\n 2. 6. 2 C语言中循环结构的实现 \r\n\r\n 2. 6. 3 循环结构程序设计举例 \r\n\r\n 2. 7 程序设计风格 \r\n\r\n 2. 7. 1 源程序文档化 \r\n\r\n 2. 7. 2 数据说明 \r\n\r\n 2. 7. 3 语句结构 \r\n\r\n 2. 7. 4 输入和输出(I/0) \r\n\r\n 2. 8 控制结构程序设计举例 \r\n\r\n 习题2 \r\n\r\n 3 模块化程序设计 \r\n\r\n 3. 1 模块化程序设计的基本概念 \r\n\r\n 3. 1. 1 模块化的基本思想 \r\n\r\n 3. 1. 2 C程序的模块结构 \r\n\r\n 3. 2 函数的定义和调用 \r\n\r\n 3. 2. 1 函数的定义 \r\n\r\n 3. 2. 2 函数的说明和调用 \r\n\r\n 3. 2. 3 函数的参数传递 \r\n\r\n 3. 2. 4 函数的返回方式 \r\n\r\n 3. 2. 5 函数的嵌套调用和递归调用 \r\n\r\n 3. 3 作用域和存储类别 \r\n\r\n 3. 3. 1 变量的作用域 \r\n\r\n 3. 3. 2 变量的存储类别 \r\n\r\n 3. 3. 3 内部函数和外部函数 \r\n\r\n 3. 4 编译预处理 \r\n\r\n 3. 4. 1 '文件包含'处理 \r\n\r\n 3. 4. 2 宏定义 \r\n\r\n 3. 5 系统函数 \r\n\r\n 3. 6 模块化程序设计举例 \r\n\r\n 习题3 \r\n\r\n 4 复杂数据类型和程序设计 \r\n\r\n 4. 1 指针类型和程序设计 \r\n\r\n 4. 1. 1 指针的概念 \r\n\r\n 4. 1. 2 函数和指针 \r\n\r\n 4. 2 数组类型和程序设计 \r\n\r\n 4. 2. 1 一维数组 \r\n\r\n 4. 2. 2 二维数组 \r\n\r\n 4. 2. 3 字符数组和字符串 \r\n\r\n 4. 2. 4 指针和数组 \r\n\r\n 4. 3 结构类型和程序设计 \r\n\r\n 4. 3. 1 结构类型变量的定义 \r\n\r\n 4. 3. 2 结构类型变量的引用 \r\n\r\n 4. 3. 3 结构变量的初始化 \r\n\r\n 4. 3. 4 结构和函数 \r\n\r\n 4. 3. 5 结构和数组 \r\n\r\n 4. 3. 6 结构的嵌套 \r\n\r\n 4. 3. 7 指向结构的指针 \r\n\r\n 4. 4 共用体和程序设计 \r\n\r\n 4. 5 位运算及位段 \r\n\r\n 4. 5. 1 二进制位运算符及位运算 \r\n\r\n 4. 5. 2 位段 \r\n\r\n 4. 6 文 件 \r\n\r\n 4. 6. 1 文件的概念 \r\n\r\n 4. 6. 2 文件的操作 \r\n\r\n 4. 7 复杂数据类型程序设计举例 \r\n\r\n 习题4 \r\n\r\n 5 基础数据结构及算法 \r\n\r\n 5. 1 数据结构的基本概念 \r\n\r\n 5. 1. 1 什么是数据结构 \r\n\r\n 5. 1. 2 数据的逻辑结构 \r\n\r\n 5. 1. 3 数据结构的存储方式 \r\n\r\n 5. 1. 4 数据结构的基本运算 \r\n\r\n 5. 1. 5 抽象数据类型和数据结构的C语言描述 \r\n\r\n 5. 2 线性数据结构 \r\n\r\n 5. 2. 1 线性表及其基本运算 \r\n\r\n 5. 2. 2 线性表的链接存储结构 \r\n\r\n 5. 2. 3 栈和队列 \r\n\r\n 5. 2. 4 C语言实现线性数据结构程序设计应用举例 \r\n\r\n 5. 3 树型数据结构 \r\n\r\n 5. 3. 1 树的基本概念 \r\n\r\n 5. 3. 2 二叉树 \r\n\r\n 5. 4 查找与排序 \r\n\r\n 5. 4. 1 查找 \r\n\r\n 5. 4. 2 排序 \r\n\r\n 习题5 \r\n\r\n 6 面向对象的程序设计和C++语言 \r\n\r\n 6. 1 C++语言面向对象的特点 \r\n\r\n 6. 2 类 \r\n\r\n 6. 2. 1 从结构到类 \r\n\r\n 6. 2. 2 类与对象 \r\n\r\n 6. 2. 3 访问类成员 \r\n\r\n 6. 2. 4 成员函数的特性 \r\n\r\n 6. 3 继承 \r\n\r\n 6. 3. 1 继承的概念及分类 \r\n\r\n 6. 3. 2 单继承 \r\n\r\n 6. 3. 3 多重继承 \r\n\r\n 6. 4 多态性 \r\n\r\n 6. 4. 1 虚函数 \r\n\r\n 6. 4. 2 抽象类和纯虚函数 \r\n\r\n 6. 4. 3 由抽象类派生具体类 \r\n\r\n 习题6 \r\n\r\n 主要参考书目 \r\n
\r\n
计算机技术的飞速发展, 加快了人类进入信息社会的步伐, 改变了世界, 改变了人们的工作. 学习和生活, 对社会发展产生了广泛而深远的影响. 计算机技术在其他各学科中的应用, 极大地促进了各学科的发展. 不
掌握计算机技术, 就无法掌握最先进. 最有效的研究开发手段, 将影响到其所从事学科的发展. 因此, 计算机
技术基础是21世纪高校非计算机专业大学生必须掌握的. 最重要的基础之一.
经过多年的探索和实践, 按“计算机文化基础”. “计算机技术基础”. “计算机应用基础”三个层次组织教学已被公认为高校非计算机专业计算机基础教学的基本模式. 第一层次开设“计算机文化基础”课程, 教学的主要任务是使学生掌握计算机基础知识和基本操作能力, 第二层次开设“计算机软件技术基础”和“计算机硬件技术基础”课程, 教学的主要任务是使学生掌握计算机软. 硬件技术的基本知识和基本开发技术, 第三层次按专业群开设“计算机信息管理基础”. “计算机辅助设计基础”. “计算机网络技术基础”. “计算机控制技术基础”等不同课程, 教学的主要任务是培养学生应用计算机技术分析解决本学科及相关领域问题的能力.
为了适应计算机技术的飞速发展和广泛应用对高校非计算机专业人才培养提出的新要求, 我们组织一批
长期从事计算机技术教学和科研的教师, 编写了这套计算机基础教学系列教材. 本系列教材有如下特点:
1. 适合于层次教学模式. 系列教材内容覆盖了高校各类非计算机专业三层次计算机基础教学要求, 既有适合理工类专业使用的, 也有适合文经类专业使用的, 各类专业都可从中选择到相应的教材.
2. 内容新. 系列教材较好地反映了计算机技术的新发展, 如《计算机文化基础》介绍了图形窗口界面和网络. 多媒体基础, 《计算机软件技术基础》介绍了软件基本概念和基本工具. 结构化及面向对象程序设计的概念与方法. 软件工程的基本思想和最先进的开发环境及平台, 《计算机信息管理基础》以大型关系数据库管理系统为背景, 介绍了关系数据库的基本知识和数据的构造方法以及网络技术在系统中的应用等等.
3. 强调应用和实用. 非计算机专业的计算机基础教学以应用为目的, 因此, 本系列教材在编写上特别注意应用需要, 强调实用性. 主要课程教材都配有实验教程, 基本知识理论讲深讲透, 使用技术主要通过学生上机实验来掌握.
4. 便于自学. 为了充分调动学生的学习主动性和能动性, 本系列教材在写法上, 既注意概念的严谨与清晰, 又特别注意用易读易懂的方法阐述问题, 应用举例丰富, 便于自学.
总而言之, 本系列教材的编写指导思想是:内容要新, 要体现计算机技术的新发展和适应教学改革的要求, 概念要清晰. 通俗易懂, 便于学生自学, 应用性. 实用性要强, 切实在培养学生应用能力上下功夫, 层次配
套, 可选择性强, 适用面宽, 既是普通高校非计算机专业本专科学生教材, 亦可作为高等教育自学教材和工程技术人员的参考书.
限于编者水平, 系列教材的内容及体系难免有缺点错误, 诚恳希望读者和专家给予指正.
编委会
2002年1月
本书是为适应计算机软件技术的发展和计算机基础教学改革的要求而编写的.
随着计算机技术的迅速发展, 计算机软件技术的概念. 方法和应用范围也在迅速变化. 但是, 在用计算
机软件技术解决实际问题的时候, 最基本的方法和技术就是程序设计. 其中, 结构化程序设计方法和面向
对象程序设计方法以及能够支持这两种程序设计方法的程序设计语言C和C++具有极大的影响力. 因此, 本书的组织将紧紧围绕程序设计方法和程序设计语言这两个主题逐步介绍相关的内容. 第1章作为全书的概论, 介绍了计算机系统中软件的概念. 分类及其作用, 程序. 程序设计语言和程序设计方法, 标准和规范. 过程和管理等软件工程中的一些基本概念, 第2章介绍程序设计的基础, 从结构化程序设计方法的角度出发, 首先介绍构成程序的C语言基本成分, 然后介绍程序的基本结构, 包括顺序结构. 选择结构和循环结构, 并通过程序设计举例进一步说明C语言对结构化程序设计方法的强有力的支持, 为了加强程序的可读性和可理解性, 本章还引入了程序设计风格的概念, 第3章是企图从解决大问题的角度出发, 进一步介绍一种体现结构化程序设计基本思想的方法即模块化程序设计方法的基本思想和概念, 利用C语言对模块化程序设计方法提供支持的特征, 如函数. 存储类. 作用域. 预编译等, 通过典型例题说明在解决大问题时运用模块化程序设计方法的基本策略和一般步骤, 第4章主要是结合C语言本身的特点, 在引入如数组. 指针. 结构. 共用体. 文件等复杂数据类型的基础上, 介绍如何利用这些丰富的数据类型. 前述各章所介绍的C语言基础和程序设计方法等来解决实际问题, 并通过大量例题予以说明, 第5章实际上是程序设计的高级部分, 为使初学计算机语言和程序设计的读者, 尤其是非计算机专业的学生, 不至于陷入讨论数据结构和算法设计本身, 这里仅仅选择一些常用的基础数据结构和相应的算法如线性表. 栈. 队列. 二叉树. 分类和查找等内容, 试图阐明“数据结构+算法=程序”的观点, 第6章所介绍的内容是本书的另一个意图, 那就是让学生初步建立面向对象程序设计的基本概念, 并通过C++语言和简单例题让学生有一个认识. 了解和体会面向对象程序设计方法的途径, 这也为学生能够开展结构化程序设计方法和面向对象程序设计方法. 以及支持结构化程序设计方法的C语言和支持面向对象程序设计方法的C++语言之间的比较研究提供了基础.
教材的每章还附有与内容紧密结合的习题, 以促进学生的学习. 巩固和提高, 部分习题的参考答案. 以及C语言常用函数. C++流类库. ASCII码对照表等在与本书配套编写的《计算机软件技术实验教程》中给
出.
本书由曾一任主编, 李绍全. 应宏任副主编. 各章编写分工如下:曾一编写第1章, 杨芳明编写第2章, 刘宴宾. 何进. 李绍全. 聂永平编写第3章和第4章, 应宏. 盛明兰编写第5章, 陈莉编写第6章.
编 者
2002年6月
无封面