1. 初级阶段没必要把数学弄得很深!(这一步省略,总不能让我把原来学的数学看一遍吧)。
2. 找一本概要性质的看看就好,要不然太高深的书会打消人的积极性!!
3. 下一步再深入的看c++(高质量c++ and so on)。
4. 然后就是找一门工具(如vc或c++builder),建议vc。
5. 然后就是最难啃的骨头MFC了!!
==================
(一)语言入门: 《C++ Primer》最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。 《The C++ Programming Language》/《C++程序设计语言》最新版本:第三版特别版简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来) 《Essential C++》《Accelerated C++》这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。 以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
(二)进阶A:这个路线侧重于语言本身 《Effective C++》最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。 《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不会过时,人们将广为传诵它制定的101条戒律。还不知道他的简称,也许“101”会成为一个候选者? 提到《Effective C++》,那么另外三本书一一浮出水面:《More Effective C++》《Exceptional C++》《More Exceptional C++》。新书《Exceptional C++ Style》也是值得一看的好书。上述几本书,一本也不应该放过。个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。
(三)进阶B:这个路线侧重于程序库。 《The C++ Standard Library》/《C++标准程序库—自修教程与参考手册》听说过STL吗?这本书会教你最基本的,也是最重要的STL的使用。这本书,应该是必读的。 《Effective STL》会使用STL还不够,还必须知道什么时候选择什么STL组件,这是STL使用的必读书。 《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》/《泛型编程与STL》。这本书理论性较强,但是真的很严谨,而且并不是非常难懂。理解其中对于Concept的解释,将是非常重要的。 《C++ STL》这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃不好的,需要慢慢吸收。 这个路线的书,仍然是建议按顺序阅读。进阶A、进阶B两个路线应该是可以并行的。 其他进阶参考书提出这些参考书,只是避免争议,也为开阔视野,笔者并不曾完全读过所有的。 《Thinking in C++》/《C++编程思想》这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试一下该书。 以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。 《C++必知必会》如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。 《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序设计陷阱》这又是一本我未曾读过,而且广受好评的书。 《STL 源码剖析》这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。 高级:《The Design and Evolution of C++》/《C++语方的设计和演化》简称D&E,内容并不艰深,Bjarne的书,仅此,就值得一读。前段时间,互动网曾8块一本(人民币)贱卖此书,现在好像没了。 《Inside The C++ Object Model》/《深度探索C++对象模型》 C程序员读后一定会觉得C++原来并不神秘。 《C++ Template》在阅读STL、Boost或者Loki的源代码之前,请仔细阅读本书,它可以减轻一些阅读的烦恼。这本书是讨论C++模版的权威。 《Modern C++ Design Generic Programming and Design Patterns Applied》/《C++设计新思维——泛型编程与设计模式之应用》简称MCD。在阅读MCD之前,建议先阅读一下《C++ Template》。 《对象揭秘:Java、Eiffel和C++》你对C++不满吗?这本书可以部分地帮你完成抱怨的目标。也许它还可以让你不迷信C++。 最后,一份C++标准文档也是应该加以咀嚼的。 还有一些书籍,并不能简单的归于C++,也难以在纯粹的书本学习中加以掌握。《Design Patterns》/《设计模式》一书就归于此类。 所有上述的书籍,要么谈论C++语言本身,要么谈论STL的,要么兼而有之(当然严格讲STL也是C++语言非常重要的一部分)。偶尔,某些书中条目也会涉及实际工程。这些书并不是C++软件开发的全部,但是他们很重要。阅读这些书,未必需要化费太多的精力,有时候是会困难,但也有时候会很快速。最后,编程语言并非计算机科学技术的全部,尤其对于在校的学生来说,打好基础、开阔视野都是非常重要的。
===============================
入门:
入门就是要初步对编程的思想有个了解,并且能编程解决一些小问题。入门一定要选好书,难度如果太低了会造成对读者的误导,以为编程就是这么回事;也不能太高深,免的打击读者的信心。既然编程的入门要求是编一些小程序解决小问题,那么就没必要直接学习C++,我觉得循环、判断、跳转、指针才是最基本的编程思想,学通了这些对以后学习C++很有帮助。
我建议应该先把C扎实地学好,不光要掌握C的语法,因为学习编程的最终目的是解决实际问题,所以还要适当掌握把实际问题与编程联系在一起的能力,我推荐《 C程序设计语言(第2版) 》,这本书是C语言之父写的,不仅详尽介绍了C的语法,还提供了很多实际的小问题作为实例,可以说看了这本书之后能为以后的编程学习打下一个扎实的基础!
提高:
学了《 C程序设计语言(第2版) 》后可以开始学习C++,一开始没必要钻很深的大部头书,《 Essential C++中文版 》非常适合初学,一个礼拜就可以看完,看了它可以快速对C++的全貌有个了解,虽然不会马上熟练掌握C++。
我们不能满足于解决“百钱买百鸡”,真正实现程序还有很多非功能上的问题,比如怎样做才能使用更少的内存?怎样做才能更快?在熟悉一门语言后,一定要认真学习的就是数据结构!数据结构保证了我们的程序能以高效的方式运行。《 数据结构算法与应用C++语言描述 》是本好书,它提供了很多实际的例子,比如火车站调度、走迷宫,相比于“百钱买百鸡”这种问题又提高了一个层次。
接下来专心提高C++的水平,可以选择《 C++编程思想 》,然后再看《 Effective C++中文版 2nd Edition 》和《 More Effective C++中文版 》,这两本书介绍了高效使用C++的宝贵经验,语言很幽默。至此,你已经可以自称是C++程序员了,恭喜!
下面介绍几本书,有兴趣的朋友可以选读。如果想高效地使用C++开发软件,STL一定要学!《 C++标准程序库—自修教程与参考手册 》可以帮你学会STL的使用,而且开发时可以拿它做手册,有了前面数据结构的基础,学习STL的使用不会遇到什么困难。如果你还想知道STL的设计思想及原理,不妨看看《 泛型编程与STL 》。有些朋友可能会问,C++的面向对象机制是怎么实现的?《 深度探索C++对象模型 》给了你答案,它剖析了C++底层的实现。最后,如果想有一本C++大百科全书,那非《 C++程序设计语言(特别版) 》莫属!这本书是C++之父Bjarne Stroustrup的大作,算是书中权威。
再提高:
到现在为止,你已经熟练掌握C++语言了,现在需要提高的就是设计思想,面向对象(OO)的最大特点是把我们的注意力从系统的执行体系结构转移到概念体系结构,因此利用OO开发大型系统会更轻松。但是经常可以看到人们拿着C++用面向过程的思想解决问题,缺乏的就是面向对象的设计思想,也难怪,在这里之前看的书都没有教你怎样用面向对象的方法开发系统,顶多介绍了面向对象是什么,看了这么多书难免会先入为主,《C语言程序设计》(或者你看的第一本编程书)中的思路潜在的影响着我们。这条鸿沟就由《 设计模式--可复用面向对象软件的基础 》来补救吧!所谓模式就是前人总结出来的、经过千锤百炼的一种系统结构,设计模式展示了23个经典的模式,通过学习、理解,你可以看到什么是真正的面向对象。
看了《 设计模式--可复用面向对象软件的基础 》后,有时间不妨看看《 重构--改善既有代码的设计(中文版) 》,学了面向对象的设计思想后看它,可以站在一定高度重新审视一下自己的C++编程水平。
仅当参考!!!!!!!!!!!
分享到:
相关推荐
总之,顺序表是数据结构中的基础元素,理解和熟练掌握其实现与操作对于学习更高级的数据结构和算法至关重要。通过动态数组实现的顺序表具有高效访问和简单操作的特点,但需要注意其扩容和内存管理的问题。在实际编程...
初学数据结构,不是很熟悉,大家一起共同学习,多交流一下,顺序栈基本操作,如有错误请大家多多指教,我会及时更正
本次实验旨在通过实践让学习者深入理解顺序表的基本概念及其操作,并掌握利用C语言实现这些操作的方法。具体目标包括: 1. **顺序表定义**:理解顺序表的数据结构特点,即线性表的一种存储方式,使用一段地址连续的...
总之,数据结构实验中的顺序表实现是一个关键的学习环节,它涵盖了数据结构的基本操作,如初始化、插入、删除、查找以及维护表的状态。通过实际编码和测试,我们可以增强对数据结构的理解,提升编程能力,这对于任何...
根据给定的文件标题“顺序表的各种基本运算”以及描述中的功能需求,本文将详细介绍顺序表的基本操作及其...这些操作是数据结构中非常基础且重要的部分,掌握它们对于进一步学习更复杂的算法和数据结构具有重要意义。
本"cpp教程集"将详细讲解以上各个知识点,通过实例和练习帮助学习者逐步精通C++编程。无论你是初入编程殿堂的新手,还是寻求提升的开发者,都能在其中找到适合自己的学习路径。通过深入学习和实践,你将能够熟练运用...
本篇文章将详细探讨C++中实现顺序表算法的关键知识点,以及如何通过`main.cpp`和`README.txt`文件来理解和构建一个简单的顺序表程序。 1. **顺序表的基本概念**: 顺序表是一种一维数组,其元素在内存中是连续存储...
### 编写函数,建立一个顺序表并输出,计算该顺序表的长度 根据题目描述,本实验的主要目的是让学生理解顺序表的概念,并...通过本实验的学习,学生不仅能够掌握顺序表的使用方法,还能加深对算法与数据结构的理解。
总的来说,这个资源包提供了学习和实践C++顺序表操作的机会,对于计算机科学的学生或程序员来说,这是一个巩固数据结构基础知识和提升编程技能的好材料。通过深入研究和实践,你可以更好地理解和运用数据结构,为...
【压缩包子文件的文件名称列表】:2.3.cpp、2.1.cpp、1.6.cpp、1.5.cpp、2.2.cpp 这些文件名暗示了它们可能是按照某种结构或顺序排列的,可能是按照章节或难度级别。每个文件的扩展名".cpp"表示它们都是C++源代码...
根据给定的代码片段,我们可以总结出以下几个关键的知识点: ### 1. 顺序表的基本概念 ...通过对这些基本操作的学习和理解,可以更好地掌握顺序表的使用方法,并为进一步学习更复杂的数据结构打下坚实的基础。
### 顺序表的设计与实现 #### 实验背景与目的 本次实验主要针对顺序表这一基本数据结构进行设计与实现,旨在加深对数据结构...通过上述内容的学习与实践,可以有效地掌握顺序表的基本概念及其在C++中的具体实现方法。
### 《C++ Primer》学习笔记(27)顺序容器 #### 9.1 顺序容器概述 在C++中,顺序容器是一类用于存储数据的容器,其中元素的位置依赖于其添加到容器中的顺序。这与关联容器形成了对比,关联容器中的元素位置是由其...
- **面向过程**:主要关注解决问题的步骤,程序由一系列顺序执行的函数组成,强调功能分解和算法设计。 - **面向对象**:强调数据和操作数据的方法结合在一起,以对象的形式存在,对象之间通过消息传递进行通信,...
线性表是数据结构中最基础且重要的一种结构,它是由n(n≥0)个...通过这三个文件,我们可以学习如何在C++中实现一个基本的顺序表,并对其进行操作。这不仅有助于理解数据结构的基础,也为实际编程提供了实用的示例。
【西工大 C++语言与CPP作业解析】 在学习编程的过程中,C++语言是一个重要的里程碑,尤其对于西工大的学生来说,掌握C++是必备技能之一。C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程...
总的来说,理解并掌握顺序表及其操作是学习数据结构和算法的关键步骤。在C++中,熟练运用顺序表能够帮助我们编写出更高效、更灵活的代码。通过分析"textone.cpp",你可以深入理解这些概念,并通过实践来提升编程技能...
在这个"cpp代码-顺序表的动态分配"的主题中,我们将深入探讨如何在C++中实现顺序表,并使用动态内存来存储数据。 首先,我们需要了解动态内存分配的概念。在C++中,动态内存分配通过`new`运算符完成,它可以为对象...
综上所述,"大学cpp课件"为初学者提供了全面的C++学习资料,从基础概念到高级主题,再到实战演练,旨在帮助你快速掌握这门强大的编程语言。通过深入学习和不断实践,你将能够熟练运用C++进行软件开发。
顺序表是一种基本的数据结构,广泛应用于计算机科学,特别是在数据结构和算法的学习中。它是由一组相同类型元素按线性顺序排列的集合,可以是数组或链表的形式。在这个完全版的教程中,我们将深入探讨顺序表在C++和...