图书前言

本书第二版是普通高等教育“十一五”国家级规划教材,并被评为2008年度普通高等教育精品教材。

本次修订保持了第二版的特点(见第二版前言),主要在内容上作了如下几方面的调整:

(1) 在第1章中增加了集合方面的基本知识,对算法方面的基本知识内容作了适当的精简。

(2) 在第2章中增加了索引存储结构的内容。

(3) 在第5章中删去了关系数据库语言SQL的内容。

(4) 新增加了编译技术概述一章。

本书内容丰富,通俗易懂,实用性强,书中所有算法程序均上机调试通过。本书可作为非计算机专业的大学生或研究生软件基础课程的教材,也可作为广大从事计算机应用工作的科技人员的参考书。

由于作者水平有限,书中难免有错误或不妥之处,恳请读者批评指正。

作 者2010年5月

  非计算机专业的学生(包括广大科技人员)如何学习和掌握软件技术,不可能像计算机专业的学生那样学习软件的各门课程,因此有必要将主要的软件技术和知识在一门课程中介绍,但又不能是拼盘式的组合,在国外根本没有这样的教材。国内这样的教材也不多,有的教材虽然名称叫“软件技术”,但实际上是一些新软件的使用。本教材是介绍软件技术,而不是软件的使用。

本教材主要是针对非计算机专业的学生对于计算机软件技术的需要,将有关软件基础知识以及应用技术介绍给读者。其特点如下:

(1) 系统性。本教材并不是简单地将计算机专业的各门课程内容拼装在一起,而是以软件应用技术的需要,将它们有机地结合在一起,为读者提供软件开发中所需要的软件知识和技术。全书以数据结构与算法为基础,以软件技术为线索,系统性强。

(2) 强调应用。本教材强调以应用为目的,全书中实例比较丰富。全书几乎是围绕解决软件开发中所遇到的软件技术问题来展开。在介绍系统软件(如操作系统)时,为了便于读者理解,也适当介绍一些原理,但主要的还是介绍实现系统软件中的技术,以便读者将这些技术用到应用软件的开发中。

(3) 可读性强。本书深入浅出,通过例子引出基本概念,便于读者接受。

此次对本书的修订主要是前三章。书中所有的算法均采用C++描述。由于C++语言既可用于面向过程的程序设计,又支持面向对象的程序设计,因此,作者在对算法进行描述时,尽量采用最合适的程序设计方法。例如,对于基本的数据结构(如顺序存储与链式存储的线性表、栈、队列等)采用面向对象的方法,将数据与运算封装成类,以便在其他应用程序中直接使用;而对于同一批数据进行同类操作的各种算法(如对线性表的各种排序方法)采用面向过程的方法,将各种不同的算法用普通函数来描述。这样,书中的所有算法就可以直接在实际应用中方便地使用。

本书内容丰富,通俗易懂,实用性强,书中所有算法程序(C++描述)均上机调试通过。本书可作为非计算机专业的大学生或研究生的软件课程教材,也可作为广大从事计算机应用工作的科技人员的参考书。

由于作者水平有限,书中难免有错误或不妥之处,恳请读者批评指正。

作 者2007年1月

  随着计算机技术的深入发展,计算机技术的应用已经渗透到各个领域,特别是计算机软件的设计与开发,已经不只是计算机专业人员的事情了。现在,越来越多的软件需要非计算机专业人员来设计与开发,很多系统软件与应用软件由非计算机专业人员来使用,并在此基础上进行二次开发。因此,普及计算机软件技术已经是大势所趋。

本书是在《软件应用技术基础》(该书由清华大学出版社出版,获电子工业部优秀教材一等奖)一书的基础上改写而成,使本书更适合于广大非计算机专业学习软件设计与开发的需要。作为应用计算机的科技人员,除了要掌握现有计算机软件的使用外,从实际应用出发,还必须要掌握软件设计与开发的基本知识和有关技术,如数据的组织、程序的组织、计算机资源的利用、数据处理技术等,以便得心应手地进行应用软件的设计与开发。

全书共分6章,每章后面都附有一定数量的习题。

第1章介绍算法。主要包括算法的基本概念、算法的基本设计方法、算法的复杂度分析等内容。

第2章介绍基本数据结构及其运算。主要包括数据结构的基本概念,线性表、栈、队列及其在顺序存储结构下的运算和应用,线性链表及其运算,数组,二叉树的概念、存储及其应用,图的存储及其遍历。

第3章介绍常用的查找与排序技术。主要包括基本的查找技术、哈希表技术、基本的排序技术、二叉排序树及其查找、多层索引树及其查找、拓扑分类。

第4章介绍资源管理技术。主要包括操作系统的功能与任务、多道程序设计、存储空间的组织。

第5章介绍数据库技术。主要包括数据库基本概念、关系代数、数据库设计、关系数据库语言SQL. 

第6章介绍应用软件设计与开发技术。主要包括软件工程概述、软件详细设计的表达、结构化分析与设计方法、测试与调试基本技术、软件开发新技术。

本书内容丰富,通俗易懂,实用性强,书中所有算法程序均上机调试通过。本书可作为非计算机专业的大学生或研究生的软件课程教材,也可作为广大从事计算机应用工作的科技人员的参考书。

由于作者水平有限,书中难免有错误或不妥之处,恳请读者批评指正。

作 者2001年9月