本书针对高等学校非计算机专业学生学习计算机软件应用技术的需要,介绍了计算机软件设计的基础知识、方法与实用技术。书中主要内容包括:算法、基本数据结构及其运算、查找与排序技术、资源管理技术、数据库技术、应用软件设计与开发技术。每章都配有一定数量的习题。\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. 2 算法描述语言 \r\n\r\n 1. 3 算法设计基本方法 \r\n\r\n 1. 4 算法的复杂度分析 \r\n\r\n 1. 4. 1 算法的时间复杂度 \r\n\r\n 1. 4. 2 算法的空间复杂度 \r\n\r\n 习题 \r\n\r\n 2 基本数据结构及其运算 \r\n\r\n 2. 1 数据结构的基本概念 \r\n\r\n 2. 1. 1 两个例子 \r\n\r\n 2. 1. 2 什么是数据结构 \r\n\r\n 2. 1. 3 数据结构的图形表示 \r\n\r\n 2. 1. 4 线性数据结构与非线性数据结构 \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 线性链表及其运算 \r\n\r\n 2. 3. 1 线性链表的基本概念 \r\n\r\n 2. 3. 2 线性链表的基本运算 \r\n\r\n 2. 3. 3 循环链表 \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 二叉树及其基本性质 \r\n\r\n 2. 5. 3 二叉树的存储结构 \r\n\r\n 2. 5. 4 二叉树的遍历 \r\n\r\n 2. 5. 5 穿线二叉树 \r\n\r\n 2. 5. 6 表达式的线性化 \r\n\r\n 2. 6 图 \r\n\r\n 2. 6. 1 图的基本概念 \r\n\r\n 2. 6. 2 图的存储结构 \r\n\r\n 2. 6. 3 图的遍历 \r\n\r\n 习题 \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 有序表的对分查找 \r\n\r\n 3. 1. 3 分块查找 \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. 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. 3. 4 其他排序方法简介 \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. 5. 1 B- 树 \r\n\r\n 3. 5. 2 B+ 树 \r\n\r\n 3. 6 拓扑分类 \r\n\r\n 习题 \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. 1. 3 操作系统的分类 \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 习题 \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. 2 关系代数 \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. 3. 3 数据字典 \r\n\r\n 5. 4 关系数据库语言SQL \r\n\r\n 5. 4. 1 SQL语言概述 \r\n\r\n 5. 4. 2 数据库定义 \r\n\r\n 5. 4. 3 数据查询 \r\n\r\n 5. 4. 4 数据修改 \r\n\r\n 5. 4. 5 数据控制 \r\n\r\n 5. 4. 6 嵌入式SQL \r\n\r\n 习题 \r\n\r\n 6 应用软件设计与开发技术 \r\n\r\n 6. 1 软件工程概述 \r\n\r\n 6. 1. 1 软件工程的概念 \r\n\r\n 6. 1. 2 软件生命周期 \r\n\r\n 6. 1. 3 软件支持环境 \r\n\r\n 6. 2 软件详细设计的表达 \r\n\r\n 6. 2. 1 程序流程图 \r\n\r\n 6. 2. 2 NS图 \r\n\r\n 6. 2. 3 问题分析图PAD \r\n\r\n 6. 2. 4 判定表 \r\n\r\n 6. 2. 5 过程设计语言PDL \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. 5 软件开发新技术 \r\n\r\n 6. 5. 1 原型方法 \r\n\r\n 6. 5. 2 瀑布模型 \r\n\r\n 6. 5. 3 面向对象技术 \r\n\r\n 习题 \r\n\r\n 参考文献 \r\n
\r\n
21世纪终于来临了, 在新的世纪, 人们自然对未来有许多美好的愿望和设想. 现代科学技术的飞速发展, 改变了世界, 也改变了人类的生活. 作为新世纪的大学生, 应当站在时代发展的前列, 掌握现代科学技术知识, 调整自己的知识结构和能力结构, 以适应社会发展的要求. 新世纪需要具有丰富现代科学知识. 能够独立解决面临任务. 充满活力. 有创新意识的新型人才.
掌握计算机知识和应用无疑是培养新型人才的一个重要环节. 计算机既是现代科学技术的结晶, 又是大众化的工具. 学习计算机知识不仅是为了掌握一种技能, 更重要的是:它能启发人们对先进科技的向往, 激发创新意识, 推动对新知识的学习, 培养自学能力, 锻炼动手实践的本领. 因而它是高等学校全面素质教育中极为重要的一部分.
自20世纪80年代初以来, 高等学校中计算机教育(尤其是非计算机专业中的计算机教育)发展迅速, 计算机教育的内容不断扩展, 程度不断提高, 它所起的作用也愈来愈显著.
在实践中, 大家已认识到, 计算机应用人才队伍是由两部分人组成的:一部分是计算机专业出身的计算机专业人才, 他们是计算机应用人才队伍中的骨干力量, 另一部分是各行各业中应用计算机的人员. 这后一部分人一般并非从计算机专业毕业, 他们人数众多, 既熟悉自己所从事的专业, 又掌握计算机的应用知识, 善于用计算机作为工具去解决本领域中的任务. 他们是计算机应用人才队伍中的基本力量. 事实上, 大部分应用软件都是由非计算机专业出身的计算机应用人员研制的. 他们具有的这个优势是其他人难以代替的. 从这个事实可以看到在非计算机专业中深入进行计算机教育的必要性.
非计算机专业中的计算机教育, 在目的. 内容. 教学体系. 教材. 教学方法等各方面都与计算机专业有很大的不同, 决不应该照搬计算机专业的模式和做法. 全国高等院校计算机基础教育研究会自1984年成立以来, 始终不渝地探索高校计算机基础教育的特点和规律, 在20世纪80年代中期, 最早提出了按层次进行教育的方案. 计算机应用是分层次的, 不同的人在不同的层次上使用着计算机, 同样, 计算机教育也是分层次的, 以适应不同应用层次的要求. 全国有一千多所高等学校, 好几百个专业, 学校的类型. 条件和基础差别很大, 不可能按同一模式. 同一要求. 同一内容进行教学. 按层次组织教学, 可以使不同专业. 不同学校能够根据自己阶情况选择教学内容, 做到“各取所需”.
经过十多年的实践, 几经调整, 许多高校形成了按以下三个层次组织教学的方案:第一层次为计算机公共基础, 学习计算机基本知识和基本操作, 第二层次为计算机技术基础, 内容包括程序设计. 数据库. 网络和多媒体等, 第三层次为计算机应用课程, 结合专业应用的需要学习有关计算机应用课程. 每一层次中设立若干门课程, 包括必修课和选修课.
1988年起, 我们根据层次教学方案, 组织编写了“计算机基础教育丛书”, 邀请有丰富教学经验的专家学者先后编写了20多种教材, 由清华大学出版社出版. 丛书出版后, 迅速受到广大高校师生的欢迎, 对高等学校 的计算机基础教育起了积极的推动作用. 广大读者反映这套教材定位准确. 内容幸富. 通俗易懂, 符合广大非计算机专业学生的特点. 许多高校都采用了我们编写的教材. 丛书总发行量达到700多万册, 这在全国是罕见的.
在新世纪来临之际, 我们在计算机基础教育丛书成功出版的基础上组织了这套“新世纪计算机基础教育丛书”, 以适应新形势的要求. 本丛书有以下特点:
(1)内容新颖. 根据新世纪的需要, 重新确定丛书的内容, 以符合计算机科学技术的发展和教学改革的要求. 本丛书除保留了原丛书中经过实践考验且深受群众欢迎的优秀教材外, 还编写了许多新的教材, 在这些教材中反映了近年来迅速得到推广应用的一些计算机新技术, 以后还将根据发展不断补充新的内容.
(2)适合按层次组织教学的需要. 在新世纪大多数学校是采用层次教学模式的, 但不同的学校和专业所达到的层次不同. 本丛书采用模块形式, 提供了各种课程的教材, 内容覆盖高校计算机基础教育的三个层次. 既有供理工类专业用的, 也有供文科和经济类专业用的, 既有必修课的教材, 也包括一些选修课的教材供选用. 各类学校都可以从中选择到合适的教材.
(3)符合大学非计算机专业学生的特点. 本丛书针对非计算机专业学生的特点, 以应用为目的, 以应用为出发点, 强调实用性. 本丛书的作者都是长期在第一线从事高校计算机基础教育的教授和副教授, 对学生的基础. 特点和认识规律有深入的研究, 在教学实践中积累了丰富的经验, 可以说, 每一本教材都是他们长期教学经验的总结. 在教材的写法上, 既注意概念的严谨和清晰, 又特别注意采用读者容易理解的方法阐明看来深奥难懂的问题, 做到例题丰富, 通俗易懂, 便于自学. 这一点是本丛书一个十分重要的特点. 书是写给读者看的, 读者如果看不懂, 只能算写作的失败.
(4)采用多样化的形式. 除了文字教材这一基本形式外, 有些教材还配有习题解答和上机指导, 我们还准备采用现代教学方式, 陆续制作电子出版物, 以利于学生自学.
总之, 本丛书的指导思想是:内容新颖. 概念清晰. 实用性强. 通俗易懂. 层次配套. 简单概括为:“新颖. 清晰. 实用. 通俗. 配套”. 我们经过多年实践形成的这一套行之有效的创作风格相信会受到广大读者欢迎. 判别一本书的优劣, 读者最有发言权.
本丛书多年来得到各方面人土的指导. 支持和帮助, 尤其是得到全国高等院校计算机基础教育研究会的各位专家和各高校的老师们的支持和帮助, 我们在此表示由衷的感谢.
本丛书肯定有不足之处, 竭诚希望得到广大读者的批评指正.
丛书主编
全国高等院校计算机基础教育研究会理事长
谭浩强
2000年1月1日
随着计算机技术的深入发展, 计算机技术的应用已经渗透到各个领域, 特别是计算机软件的设计与开发, 已经不只是计算机专业人员的事情了. 现在, 越来越多的软件需要非计算机专业人员来设计与开发, 很多系统软件与应用软件由非计算机专业人员来使用, 并在此基础上进行二次开发. 因此, 普及计算机软件技术已经是大势所趋.
本书是在《软件应用技术基础》(该书由清华大学出版社1994年出版, 获电子工业部1995年优秀教材一等奖)一书的基础上改写而成的, 更加适合于广大非计算机专业人员学习软件设计与开发的需要. 作为应用计算机的科技人员, 除了要掌握现有计算机软件的使用方法外, 还必须要掌握软件设计与开发的基本知识和有关技术, 如数据的组织. 程序的组织. 计算机资源的利用. 数据处理技术等, 以便得心应手地进行应用软件的设计与开发.
全书共分6章, 每章后面都附有一定数量的习题.
第1章介绍算法, 主要包括算法的基本概念. 算法的基本设计方法. 算法的复杂度分析等内容.
第2章介绍基本数据结构及其运算, 主要包括数据结构的基本概念, 线性表. 栈. 队列及其在顺序存储结构下的运算和应用, 线性链表及其运算, 数组, 二叉树的概念. 存储及其应用, 图的存储及其遍历.
第3章介绍常用的查找与排序技术, 主要包括基本的查找技术. 哈希表技术. 基本的排序技术. 二叉排序树及其查找. 多层索引树及其查找. 拓扑分类.
第4章介绍资源管理技术, 主要包括操作系统的功能与任务. 多道程序设计. 存储空间的组织.
第5章介绍数据库技术, 主要包括数据库基本概念. 关系代数. 数据库设计. 关系数据库语言SQL.
第6章介绍应用软件设计与开发技术, 主要包括软件工程概述. 软件详细设计的表达. 结构化分析与设计方法. 测试与调试基本技术. 软件开发新技术.
本书内容丰富. 通俗易懂. 实用性强, 书中所有算法程序均上机调试通过. 本书可作为非计算机专业的教材, 也可作为广大从事计算机应用工作的科技人员的参考书.
由于作者水平有限, 书中难免有错误或不妥之处, 恳请读者批评指正.
作 者
2001年12月
无封面