C++编程——数据结构与程序设计方法
[绝版]基本信息
- 原书名:C++ Programming Program Design Including Data Structures
- 原出版社: Thomson
- 作者: [美]D.S.Malik [作译者介绍]
- 译者: 晏海华 蔡旭辉 常鸿
- 丛书名: 国外计算机科学教材系列
- 出版社:电子工业出版社
- ISBN:7505382357
- 上架时间:2003-8-4
- 出版日期:2003 年6月
- 开本:16开
- 页码:943
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > C++ > C++
合作专区 > 微软技术图书 > 微软程序设计 > 微软C/C++/VC++
教材 > 研究生/本科/专科教材 > 工学 > 计算机
教材 > 计算机教材 > 本科/研究生 > 计算机专业教材 > 计算机专业课程 > 程序设计
内容简介回到顶部↑
[b]本书特点:[/b]
■ 本书所有程序源代码都以ansi/iso 标准c++和标准c++形式提供,并可以使用microsoft visual c++ 6.0,borland c++ builder 5 开发工具,或是 metrowerks codewarrior来编译这些程序。
■ 每章后面的程序范例都是完整的程序代码。这些程序范例中包括输入、输出、问题分析和算法设计等具体步骤,并提供了完整的程序代码清单。
■ “小结”部分总结了每章的重要概念。
■ “练习”测试学生标识声明和语句正误的能力。
■ “编程练习”培养学生亲自动手编写c++程序的能力。
■ “注意”强调了各章节中重要概念的注意事项。
■ 每章中统一编号的例题通过相应代码来帮助读者理解程序设计的概念。
[b]d. s. malik [/b]
d.s. malik现任creighton大学数学与计算机科学系教授。他1985年获得ohio大学博士学位。自从在creighton大学任教以来,他一直在讲授计算机程序设计课程。d.s. malik在抽象代数、模糊自动机理论及语言、模糊逻辑及应用和信息科学领域发表了超过45篇论文并出版了6本图书。
■ 本书所有程序源代码都以ansi/iso 标准c++和标准c++形式提供,并可以使用microsoft visual c++ 6.0,borland c++ builder 5 开发工具,或是 metrowerks codewarrior来编译这些程序。
■ 每章后面的程序范例都是完整的程序代码。这些程序范例中包括输入、输出、问题分析和算法设计等具体步骤,并提供了完整的程序代码清单。
■ “小结”部分总结了每章的重要概念。
■ “练习”测试学生标识声明和语句正误的能力。
■ “编程练习”培养学生亲自动手编写c++程序的能力。
■ “注意”强调了各章节中重要概念的注意事项。
■ 每章中统一编号的例题通过相应代码来帮助读者理解程序设计的概念。
[b]d. s. malik [/b]
d.s. malik现任creighton大学数学与计算机科学系教授。他1985年获得ohio大学博士学位。自从在creighton大学任教以来,他一直在讲授计算机程序设计课程。d.s. malik在抽象代数、模糊自动机理论及语言、模糊逻辑及应用和信息科学领域发表了超过45篇论文并出版了6本图书。
作译者回到顶部↑
本书提供作译者介绍
D.S. Malik现任Creighton大学数学与计算机科学系教授。他1985年获得Ohio大学博士学位。自从在Creighton大学任教以来,他一直在讲授计算机程序设计课程。D.S. Malik在抽象代数、模糊自动机理论及语言、模糊逻辑及应用和信息科学领域发表了超过45篇论文并出版了6本图书。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第1章 计算机和程序设计语言概述
1.1 简介
1.2 计算机发展史简述
1.3 计算机系统的组成
1.3.1 硬件
1.3.2 软件
1.4 计算机语言
1.5 程序设计语言的发展
1.6 高级语言程序的处理过程
1.7 按问题分析—编码—执行循环的程序设计
1.8 面向对象程序设计
1.9 ansi/iso标准c++
1.10 小结
1.11 练习
第2章 c++基础
2.1 c++程序基础
2.2 数据类型
2.2.1 简单数据类型
2.2.2 浮点数据类型
2.2.3 字符串数据类型
1.1 简介
1.2 计算机发展史简述
1.3 计算机系统的组成
1.3.1 硬件
1.3.2 软件
1.4 计算机语言
1.5 程序设计语言的发展
1.6 高级语言程序的处理过程
1.7 按问题分析—编码—执行循环的程序设计
1.8 面向对象程序设计
1.9 ansi/iso标准c++
1.10 小结
1.11 练习
第2章 c++基础
2.1 c++程序基础
2.2 数据类型
2.2.1 简单数据类型
2.2.2 浮点数据类型
2.2.3 字符串数据类型
译者序回到顶部↑
由于面向对象技术的普及,C++已取代传统的过程性语言成为当今主流程序设计语言。
目前,国内许多高校将C++语言作为计算机专业开设的第…门程序设计语言课程(CSl),许多自学者亦选择C++语言作为自学的第一门程序设计语言。而当前,尽管市面上有关C什语言的书籍很多,但适合作为教材,特别是适合没有任何程序设计基础的学生的教材几乎没有。译者本人在高校从事计算机专业C++语言的教学工作多年,对此深有体会。
本书作者D.S.Malik教授在Creighton大学已讲授了50多学期的计算机专业程序设计课程,本书就是作者从课程讲稿中改进、发展而来。作者在书中不只是列出C++语言的语法和给出相应例子,而是进一步揭示出隐藏在程序设计语言中的各种概念、思想之中的‘“为什么”,以激发读者学习程序设计语言的兴趣。因此,本书是一本非常优秀的教材,特6U适合没有任何程序设计基础的学生使用。此外,学习计算机语言的目的就是用它来解决实际问题,本书还有两个有别于一般计算机语言书籍及语言参考书的显著特点。一是书中每章都带有程序范例,在程序范例中不仅仅提供完整的程序代码清单,而且还包括程序的输入/输出、问题分析和主要算法的设计等具体程序设计步骤,使得读者能够通过具体实例学会如何用面向对象方法来分析、设计并解决问题(完整的程序设计过程),以达到培养学生程序设计能力的目的。其二,在本书中还详细描述了如何用C++实现常用的数据结构,如表、链表、栈、队列、二叉树和图,以及多种查找和排序算法,使得计算机语言和数据结构的学习有机地结合起来,以便能够使用所学程序设计语言来解决实际问题。
本书主要由晏海华、蔡旭辉、常鸿、孙希坤、樊平、尚卫东、陈庆吉和朱经伟等翻译,并由晏海华和蔡旭辉等审校。
由于时间关系及水平所限,翻译不当或错误可能在所难免,恳请读者指正和见谅。
目前,国内许多高校将C++语言作为计算机专业开设的第…门程序设计语言课程(CSl),许多自学者亦选择C++语言作为自学的第一门程序设计语言。而当前,尽管市面上有关C什语言的书籍很多,但适合作为教材,特别是适合没有任何程序设计基础的学生的教材几乎没有。译者本人在高校从事计算机专业C++语言的教学工作多年,对此深有体会。
本书作者D.S.Malik教授在Creighton大学已讲授了50多学期的计算机专业程序设计课程,本书就是作者从课程讲稿中改进、发展而来。作者在书中不只是列出C++语言的语法和给出相应例子,而是进一步揭示出隐藏在程序设计语言中的各种概念、思想之中的‘“为什么”,以激发读者学习程序设计语言的兴趣。因此,本书是一本非常优秀的教材,特6U适合没有任何程序设计基础的学生使用。此外,学习计算机语言的目的就是用它来解决实际问题,本书还有两个有别于一般计算机语言书籍及语言参考书的显著特点。一是书中每章都带有程序范例,在程序范例中不仅仅提供完整的程序代码清单,而且还包括程序的输入/输出、问题分析和主要算法的设计等具体程序设计步骤,使得读者能够通过具体实例学会如何用面向对象方法来分析、设计并解决问题(完整的程序设计过程),以达到培养学生程序设计能力的目的。其二,在本书中还详细描述了如何用C++实现常用的数据结构,如表、链表、栈、队列、二叉树和图,以及多种查找和排序算法,使得计算机语言和数据结构的学习有机地结合起来,以便能够使用所学程序设计语言来解决实际问题。
本书主要由晏海华、蔡旭辉、常鸿、孙希坤、樊平、尚卫东、陈庆吉和朱经伟等翻译,并由晏海华和蔡旭辉等审校。
由于时间关系及水平所限,翻译不当或错误可能在所难免,恳请读者指正和见谅。
前言回到顶部↑
欢迎使用本书。本书专为两个学期(CSl和CS2)的C++课程而设计,相信它一定能给广大教师和学生以耳目一新的感觉。本课程应作为计算机专业的基础课程。主要目的是激发所有学习程序设计者的学习兴趣,而没有考虑其目前已经达到何种水平。因为对学生的程序设计兴趣的培养和激发是他们学好本课程的关键因素。笔者已经成功地讲授了50多个学期的计算机专业程序设计课程,本书正是从这些课程的讲稿中不断改进、发展而来的最终成果。
《C++编程——数据结构与程序设计方法》一书,刚开始只是为笔者所在学校当时使用的一些程序设计教程所写的简单例题、习题以及大篇幅的代码举例的补充材料。很快,这本补充材料内容多得可以单独成为一本教科书。事实上,本书中所采用的编排方式和讲述方法,会使读者感到概念清晰,易于理解。本书的选材都经过反复推敲,易于学生接受。本书中选用的大多数例题,也都经过课堂上与同学们相互探讨。
无论从事何种职业,将知识在实际中运用才是最重要的。正如厨艺学习者要按照菜谱练习烹饪,小提琴初学者要练习音阶一样,程序设计的初学者一定要亲自动手编写代码来解决问题。本书并不是一本C++参考手册;我们不只是列出C++语法并给出例子,而是进一步揭示出隐藏在各种概念、思想之中的“为什么”。在每一章中,这种关键性的“为什么”的问题都将得以解答。这种方法成为学好C++语言的有效手段。只有让学生们明白“为什么”,才能激发起他们学习的兴趣。
一般来说,C++初学者需要先掌握一门其他的程序设计语言。但是,本书假定读者没有任何程序设计基础。然而,例如代数学等高等数学知识还是必需要具备的。
本书内容
C++语言是从C语言演化发展而来的。现在,它不仅只是作为软件行业广泛使用的一种程序开发语言,为数众多的大专院校已将C++作为第一门程序设计语言课程列在教学计划中。C++融合了结构化程序设计和面向对象程序设计两种方法,本书将分别阐述。
本书应在计算机专业分两个学期讲授,CS1和CS2。第一个学期讲授前12章或13章,其余部分应在第二学期讲授。
1998年7月,正式通过了ANSI/ISO标准C++。本书在主要讲述ANSI/ISO标准C++的同时,也将介绍怎样使用标准C++编写程序。虽然标准C++和ANSI/ISO标准C++大部分语法是相同的,但在本书第8章中还是对ANSI/ISO标准C++支持而标准C++不支持的一些特性做了讨论。
第1章简要回顾了计算机和程序设计语言的发展史。读者在迅速阅读本章之后可以了解一些计算机软、硬件方面的基础知识。本章也同时介绍结构化程序设计和面向对象程序设计的基本概念。
在完成第2章之后,读者将了解C++的一些基本知识,并可以着手编写一些涉及到计算的复杂程序。输入/输出是所有程序设计语言的基础。输入/输出在本章中简要介绍,并在第3章中详细讨论。
第4章和第5章将介绍用来改变程序执行顺序的控制结构。第6章和第7章将讲述用户自定义函数。建议没有任何程序设计基础的读者要在第6章和第7章中多下些功夫。第7章中使用大量举例帮助读者理解参数传递和标识符作用域的概念。
第8章将讨论用户自定义的简单数据类型(枚举类型)、ANSI/ISO标准C++的名字空间机制以及string类型。早期版本的C语言不支持枚举类型。枚举类型的用途十分有限,其主要作用是增加程序的可读性。本书的编排也充分考虑到这一点,读者可以在第一次阅读本书时略过枚举类型部分,并不会感到不连贯。枚举类型部分可以放在后面仔细阅读。
第9章将详细说明数组,第10章将介绍并讨论递归。
第11章将介绍结构。本书中介绍的结构与C语言中的结构极为相似。实际上,本章也可以略过,因为结构并不是后续章节所必须知道的预备知识。
第12章开始讲述面向对象程序开发技术(OOP),并介绍类。本章前一部分将介绍类的定义和使用,后一部分介绍抽象数据类型(ADTL本章也将指出为什么类成为C什中实现抽象数据类型的很自然的方法。第13章继续介绍面向对象程序设计(OOD)和面向对象程序开发的基础概念,并讨论继承和组成。本章解释了为什么类成为C++中实现抽象数据类型的一种很自然机制,并介绍C++是怎样支持面向对象程序开发的。本章同时也讨论了在解决具体问题时应该怎样去定义类。
第14章将详细讨论指针。在介绍指针的基础知识和怎样在程序中使用指针之后,本章着重讨论了含有指针类型数据成员类的特性,以及怎样避免由指针引起的错误。本章进一步指出了怎样利用动态数组存储和处理列表。本章同时还将讨论怎样通过虚函数来实现多态机制。
第15章继续讲述面向对象程序设计和面向对象程序开发,并将重点讨论C++的多态机制。本章具体地讨论了C++中的两种类型的多态机制——重载和模板。
第16章和第17章专门论述数据结构。第16章将详细讨论链表,第17章将讨论栈和队列。这两章所提供的程序代码对于该类型数据结构都是通用的。这两章充分使用了面向对象程序设计的基本概念。
第18章讨论了多种查找和排序算法。在指出这些算法原理的同时,本章还提供了关于这些算法执行效率的相关分析。算法分析使程序设计者能够在解决具体问题时知道应选用何种算法。本章同时介绍了多种排序算法,教师可以根据实际情况选择讲授其中的几种算法。
第19章介绍了二叉树。本章讨论和讲述了二叉树的基本性质和各种遍历算法。本章还介绍了一种特殊的二叉树——二叉查找树,介绍并举例说明了二叉查找树的查找、插入和删除算法。本章同时提供了二叉树的非递归遍历算法。为了增加遍历算法的灵活性,本书介绍了怎样构造和传递函数指针参数。
《C++编程——数据结构与程序设计方法》一书,刚开始只是为笔者所在学校当时使用的一些程序设计教程所写的简单例题、习题以及大篇幅的代码举例的补充材料。很快,这本补充材料内容多得可以单独成为一本教科书。事实上,本书中所采用的编排方式和讲述方法,会使读者感到概念清晰,易于理解。本书的选材都经过反复推敲,易于学生接受。本书中选用的大多数例题,也都经过课堂上与同学们相互探讨。
无论从事何种职业,将知识在实际中运用才是最重要的。正如厨艺学习者要按照菜谱练习烹饪,小提琴初学者要练习音阶一样,程序设计的初学者一定要亲自动手编写代码来解决问题。本书并不是一本C++参考手册;我们不只是列出C++语法并给出例子,而是进一步揭示出隐藏在各种概念、思想之中的“为什么”。在每一章中,这种关键性的“为什么”的问题都将得以解答。这种方法成为学好C++语言的有效手段。只有让学生们明白“为什么”,才能激发起他们学习的兴趣。
一般来说,C++初学者需要先掌握一门其他的程序设计语言。但是,本书假定读者没有任何程序设计基础。然而,例如代数学等高等数学知识还是必需要具备的。
本书内容
C++语言是从C语言演化发展而来的。现在,它不仅只是作为软件行业广泛使用的一种程序开发语言,为数众多的大专院校已将C++作为第一门程序设计语言课程列在教学计划中。C++融合了结构化程序设计和面向对象程序设计两种方法,本书将分别阐述。
本书应在计算机专业分两个学期讲授,CS1和CS2。第一个学期讲授前12章或13章,其余部分应在第二学期讲授。
1998年7月,正式通过了ANSI/ISO标准C++。本书在主要讲述ANSI/ISO标准C++的同时,也将介绍怎样使用标准C++编写程序。虽然标准C++和ANSI/ISO标准C++大部分语法是相同的,但在本书第8章中还是对ANSI/ISO标准C++支持而标准C++不支持的一些特性做了讨论。
第1章简要回顾了计算机和程序设计语言的发展史。读者在迅速阅读本章之后可以了解一些计算机软、硬件方面的基础知识。本章也同时介绍结构化程序设计和面向对象程序设计的基本概念。
在完成第2章之后,读者将了解C++的一些基本知识,并可以着手编写一些涉及到计算的复杂程序。输入/输出是所有程序设计语言的基础。输入/输出在本章中简要介绍,并在第3章中详细讨论。
第4章和第5章将介绍用来改变程序执行顺序的控制结构。第6章和第7章将讲述用户自定义函数。建议没有任何程序设计基础的读者要在第6章和第7章中多下些功夫。第7章中使用大量举例帮助读者理解参数传递和标识符作用域的概念。
第8章将讨论用户自定义的简单数据类型(枚举类型)、ANSI/ISO标准C++的名字空间机制以及string类型。早期版本的C语言不支持枚举类型。枚举类型的用途十分有限,其主要作用是增加程序的可读性。本书的编排也充分考虑到这一点,读者可以在第一次阅读本书时略过枚举类型部分,并不会感到不连贯。枚举类型部分可以放在后面仔细阅读。
第9章将详细说明数组,第10章将介绍并讨论递归。
第11章将介绍结构。本书中介绍的结构与C语言中的结构极为相似。实际上,本章也可以略过,因为结构并不是后续章节所必须知道的预备知识。
第12章开始讲述面向对象程序开发技术(OOP),并介绍类。本章前一部分将介绍类的定义和使用,后一部分介绍抽象数据类型(ADTL本章也将指出为什么类成为C什中实现抽象数据类型的很自然的方法。第13章继续介绍面向对象程序设计(OOD)和面向对象程序开发的基础概念,并讨论继承和组成。本章解释了为什么类成为C++中实现抽象数据类型的一种很自然机制,并介绍C++是怎样支持面向对象程序开发的。本章同时也讨论了在解决具体问题时应该怎样去定义类。
第14章将详细讨论指针。在介绍指针的基础知识和怎样在程序中使用指针之后,本章着重讨论了含有指针类型数据成员类的特性,以及怎样避免由指针引起的错误。本章进一步指出了怎样利用动态数组存储和处理列表。本章同时还将讨论怎样通过虚函数来实现多态机制。
第15章继续讲述面向对象程序设计和面向对象程序开发,并将重点讨论C++的多态机制。本章具体地讨论了C++中的两种类型的多态机制——重载和模板。
第16章和第17章专门论述数据结构。第16章将详细讨论链表,第17章将讨论栈和队列。这两章所提供的程序代码对于该类型数据结构都是通用的。这两章充分使用了面向对象程序设计的基本概念。
第18章讨论了多种查找和排序算法。在指出这些算法原理的同时,本章还提供了关于这些算法执行效率的相关分析。算法分析使程序设计者能够在解决具体问题时知道应选用何种算法。本章同时介绍了多种排序算法,教师可以根据实际情况选择讲授其中的几种算法。
第19章介绍了二叉树。本章讨论和讲述了二叉树的基本性质和各种遍历算法。本章还介绍了一种特殊的二叉树——二叉查找树,介绍并举例说明了二叉查找树的查找、插入和删除算法。本章同时提供了二叉树的非递归遍历算法。为了增加遍历算法的灵活性,本书介绍了怎样构造和传递函数指针参数。
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)








点击看大图





加载中...

