Ⅰ c语言学习
首先是纯C的教材
第一本:H.M.Deitel和P.J.Deitel的《C HOW TO PROGRAM》(C程序设计教程)。
作者是父子,从事语言教材的编写合计超过40年,本书被美国众多高校选用为教材,既可入门也可翻阅,甚好。本FAQ作者认为如果你只打算看一本的话,那就选他好了。
第二本:Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language 》(C程序设计语言)。
此书简称K&R,由C语言的创建者撰写,是全球销售最多的C语言教材,其品质不容置疑。不过不适合入门,适于在入门之后巩固提高。实体书有原版和译本购买,电子版英文较多。
第三本:谭浩强的《C程序设计》。
优点在于,面向中国学生,语言易于理解,而且全书篇幅小,看过的人多,容易找到人请教。但是各方面的概念不深入,浅尝辄止,实际上还有些小错误,不是很严谨。因此适合第一次入门学习,例题做完基本就可以抛弃了。有实体书和电子版下载。同时配套有习题集和习题解答,适合自学。
第四本:王大刚先生的《C语言编程宝典》。
质量不错,与老谭的书一样非常适合中国学生,而且对于TC的图形编程讲解非常透彻。本人没有发现实体书,可能只发布在网络上,在VCgood论坛有转载:
http://www.vcgood.com/bbs/forum_posts.asp?TID=1560&PN=2
http://book.chinaz.com/C/C/index.html
第五本:无名作者的《C语言初学者入门讲座》
VCgood论坛转载,作者未知,质量同上一本。http://www.vcgood.com/bbs/forum_posts.asp?TID=1294&PN=4
第六本:Kenneth A.Reek 的《C和指针》
进阶读物,把指针一章演绎为一本书可见其技术精度。指针是C的灵魂,能领会本书中的理念,才能算是真正明白了C指针的奥妙,才算懂得了C。
第七本:Andrew Koenig 的 《C陷阱与缺陷》
进阶读物,在认真读完上面的入门书之前,暂勿阅读。本书畅销14年历久不衰,足证品质。
最后一本:ISO C89规范/C99规范
一切关于C语言的疑问,只有一件东西最权威,那就是ISO的规范。但这不是正式出版物,是类似法律文本的技术说明,而且只有英文版。新手阅读,提防吐血而亡。
然后是C++的教材
C++比C复杂的多,所以教材也就纷繁芜杂。既有综合性入门性的,也有专项深入的,阅读要循序渐进,以下分阶段介绍(以下文字有部分引用自他人评介)。
首先是毫无基础的时候,先要初步掌握语法并形成编程的概念
level 0:
H.M.Deitel和P.J.Deitel的《 C++ How to Program 》(C++大学教程)。
又是这对父子。有很多号称C++入门的书,但经我的观察,如果要选择能推荐给毫无编程概念的新手用的书,这本算是佼佼者了。此父子的《C程序设计教程》我已推荐了。
仍然是K&R,Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language》(C程序设计语言)。
尽管C++之父亲口说,最好把C++看作一门新语言来学习,但我个人认为,一开始学习C至少有两大好处。相比C++,C还是非常简单的,易于掌握,避免你过早陷入C++的语法泥潭。同时,学C能让你对计算机的底层运行有所认识,建立良好的概念。
钱能的《C++程序设计教程》
国内C++教材中较好的一本,作者是教师,总结多年教学实践的经验写成的,比较适合国内学生。
PS:老谭也有一本C++教材,在此就不太推荐了,它完全是用C的思维来看C++。
当读者有一定c/c++基础
推荐的阅读顺序:
level 1
从Stanley B.lippman着 侯捷 译的《essential c++》开始,短小精悍,可以对c++能进一步了解其特性。Stanley B.Lippman的职业是提供关于C++和面向对象的训练、咨询、设计和指导。他也是Bjarne Stroustrup领导的Bell实验室Foundation项目的成员之一,负责C++程序设计环境中的对象模型部分。简单说,他是C++的创建者之一。
以Stanley B.Lippman,Josee LaJoie,Barbara E.Moo的《c++ primer》作字典和课外读物,因为太厚不可能一口气看完,当然你也可以用它作为主力教材。Lippman说过了,Josee LaJoie是C++标准委员会原负责人,Barbara E.Moo 是独立咨询顾问,参与了第一个使用C++编写的商业产品的开发,领导了公司中第一个C++编译器项目。
C++之父Bjarne Stroustrup的《the c++ programming language》,简称BS的TCPL,全面而深入的书,缺点也是太厚。
这个阶段 也可以延用前阶段Detiel父子的教材。
level 2 这个阶段就要养成好习惯
然后从Scott Meyers的《effective c++》开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻
接着是 Herb Sutter的《exceptional c++》。此人是C++标准委员会的主席,主席说话,谁有异议。
顺下来就是Scott Meyers的《more effective c++》和Herb Sutter的《more exceptional c++》,请熟读并牢记各条款
level 3 这个阶段 把C++的类搞透
Stanley B.lippman的《insied the c++ object model》(深度探索C++对象模型)看过后如一缕清风扫去一直以来你对语言的疑惑,你终于能明白compiler到底都背着你做了些什么了,这本书要细细回味,比较难啃,最好反复看几遍,加深印象。
看完上一本之后,这本Bjarne Stroustrup的《The design and evolution of c++》(C++的设计与演化)会重演一次当年C++他爹在设计整个语言过程中的历程。
Stephen C. Dewhurst的《C++ Gotchas: Avoiding Common Problems in Coding and Design》(C++程序设计陷阱)会帮你在设计层面避免错误。
level 4 这个阶段深入STL吧
Nicolai M.Josuttis的《the c++ standard library》(C++标准程序库—自修教程与参考手册) 是stl的字典,什么都可以查得到。
Scott Meyers的《effective stl》,它和圣经一样是你日常行为的规范。发现没有,Scott Meyers先生一直在搞effective系列。
Matthew H. Austern的《generic programming and the stl》(泛型编程与STL)让你从OO(面向对象)向GP(泛型编程)转变。
光用不行,我们还有必要了解stl的工作原理,那么侯捷的 《stl源码剖析》会解决你所有的困惑。
level 5 彻底掌握模版泛型编程
对于c++无非是OO和GP,想进一步提升OO,Herb Sutter的《exeptional c++ style》是一本主席这么多年的经验之谈,是很长esp的。
一位stl高手是不能不去了解template的,《c++ template》是一本网络全书,足够你看完后对于GP游刃有余。
Andrei Alexandrescu的《modern c++ design》是太过聪明的人写给明眼人看的。
level 6
这个时候,对于C++语法本身,你应该是已经到了随心所欲的境界,你所要练习的大概就是大规模的C++程序的设计以及一些通用的高效库的使用,以及为什么要这样做的理由。
所以,《C++ 输入输出流及本地化》《C++ Network Programming》《大规模C++程序设计》是你需要的。
同时,C++教材中的异类:Barbara E.Moo和Andrew Koenig的《Ruminations On C++》(C++ 沉思录)是值得你一看的,他集中反映了C++的关键思想和编程技术,说明了C++是什么样的以及能够做些什么,不仅告诉你如何编程,还告诉你为什么要这样编程。本书曾出现在众多的C++专家推荐书目中。
和C一样,同样有最后一本书
ISO+IEC+14882-1998 C++规范。这可不是宝典圣经,这就是C++的法律,一切疑问以此为准到此打住。不过,有个脚注,某些具体情况取决于编译器实现。
接下来是Windows编程
至少在国内来说,Windows环境下的编程还是很有市场的。
第一本书:Charles Petzold 的 《Programming Windows》(Windows程序设计)。
如果说,在windows编程领域只能翻阅一本书的话,那就是他了。《Windows程序设计》由微软出版社在1988年首次出版,后来被认为是这方面最好的导论性读本。在1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Windows Magezine》和Microsoft公司授予Windows Pioneer奖,以表彰他对Microsoft Windows的成功做出的贡献。这本书经典到这个程度,以至对于Windows程序员来说,“从Chares 的(Window程序设计)一书中寻找答案。”几乎成了一句至理名言。
你可以在这个地方观看到他的外观,http://www.charlespetzold.com/pw5/,国内书店有售,电子版则需要仔细搜索。
第二本:Jeffrey Richter 的《》(Windows核心编程)和《Advanced Windows》(Windows 高级编程指南)
和上面这本书难分伯仲。这么说吧,你读了之后就会后悔,后悔为什么没有早点读他。建议先看高级,再看核心。
个人认为除非windows发生革命性的变化,否则看完这三本书,足以应付通常的Windows编程。
上面三本书介绍的是直接使用WindowsAPI实现应用,总的来说那是一种很基础但很繁琐的方式。Windows下有很多的编程库可以使用,VC和BCB都自备了优良的库。
在VC来说,存在版本的差异,如果是6.0版本,那么你基本只有MFC这一种选择,但对于2002以后的版本,包括新推出的2008,MFC、ATL、.net都不错。
对于MFC。
要学会怎么用,可以看一下这几本:
微软出版社授权的中文版系列书 由David J.Kruglinski,Scot Wingo,George Shepherd写的《Programming Visual C++ 6.0 技术内幕(第5版)》,经典的“Visual C++技术内幕”的第5版。
清华大学出版社出版 杨永国 的《Visual C++ 6.0实用教程(第2版) 》,这本不是那么经典,同类多得很,但好处是便宜,而且能够买到,有些书已经买不到了。
如果想知道MFC的原理,侯俊杰先生的《深入浅出MFC 》(Dessecting MFC)就值得你仔细阅读。
对于VC2002--2008中的.net,单独讲授的似乎目前还没有像《Windows程序设计》那样经典的书出现,毕竟.net出现的时间也不长。但把.net MFC ATL等综合在一起讲的,倒还是有一些。
由H.M.Deitel,P.J.Deitel,J.P.Liperi和C.H.Yaeger共同编写的《Visual C++.NET:How To Program 》(Visual C++.NET大学教程)品质算是上乘。还记得Deitel这对父子作者么,在chinapub上可以看到父子俩合着的教材有47套之多,而且个个畅销,我觉得他们俨然就是美国的谭浩强,只是水平高出不少。
George Shepherd,David Kruglinski 的 《Visual C++ .NET技术内幕(第6版)》,就是上面那本书的.net升级。
IVOR HORTON的《VISUAL C++ 2005入门经典》也可一看。
BCB在版本6以前用的是着名的VCL库,BCBX另起炉灶,用的是wxWidgets库。由于对BC,作者自己涉猎不多,所以这两套库的教材,请大家自行查找。
就像C++和C的规范文件一样,Windows编程中,也有一件类似万宝全书的神物,那就是Microsoft自己推出的MSDN。
MSDN是Microsoft Software Developer Network的简称。这是微软的针对开发者的开发计划。你可以在http://msdn.microsoft.com看到有关软件开发的资料。在VisualStudio中包括MSDN Library的光盘,其中包括VisualStudio的帮助文件和许多与开发相关的技术文献。MSDN Library每个季度更新一次,可以向微软订阅更新光盘,不过价格不便宜。
MSDN就是微软的技术大全,所有微软的软件系统的开发的已公开资料,都在上面。如果在那里也无法找到答案,那你只能想办法咨询微软的内部工程师求得隐藏秘籍。不要妄想能够完全阅读它,3G容量的文档(大部分是文本,不是图片和视频),实在太过巨大了。
Ⅱ 学习C语言 必看的书籍
Brian W.Kernighan, Dennis M.Ritchie,《C程序设计语言》
清华影印版、习题集;机械译文版(新版、老版):习题集
这是迄今为止在所有程序设计语言书籍中最广受尊敬的一部经典,是任何一名C程序员的必读之作。因为出自C语言的设计者Dennis M.Ritchie和着名的计算机科学家Brian W.Kernighan之手,它被昵称为“K&R C”。是它首先引入了“Hello World!”程序,这个程序几乎成了后来任何一本入门性程序设计语言书籍中的第一个例子。
如同C语言本身简洁紧凑而极具威力一样,这本书轻薄短小而极富张力。通过简洁的描述和典型的示例,它全面、系统、准确地讲述了C语言的各个特性以及C程序设计的基
法,内容涵盖基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口以及标准库等内容。
简洁清晰是这本书最大的特色。这本小书可以教给你许多比它厚几倍的“大部头”的知识。我认为那些动辄洋洋洒洒拼凑出好几百页乃至上千页的技术作者应该好好向K&R学一学。对于中、高级程序员而言,如果希望迅速获得C语言的严肃知识而又不愿意多花费哪怕一丁点时间,这本书就是首选。
顺便说一句,这本书的索引制作非常出色,极具实用价值,这可能首先要归功于正文部分的简明扼要。此外,尽管它看上去很像一本教程,但其实更是一本写给专业程序员的指南。如果你不具备任何其他语言程序设计背景或基本的C语言知识,这本书也许并不适合用作你的C语言启蒙读物。
2. Perter Van Der LinDen,《C专家编程》
C专家编程
C语言是严肃的程序员语言,但这并不意味着C语言书籍必须板着面孔说教。在这本被C程序员昵称为“鱼书”(封面上有一条“丑陋的”腔棘鱼)的着作中,作为SUN公司编译器和操作系统核心开发组成员之一,Peter淋漓尽致地展示了其深厚的技术沉淀、丰富的项目经验、高超的写作技巧以及招牌式的幽默。在这部作品中,作者以流畅的文字、诙谐的笔法将逸闻典故、智慧和幽默自然地融入技术描述中,读来宛若一本小说,极富趣味。 本书讲述了C语言的历史、语言特性、声明、数组、指针、连接、运行时以及内存使用等知识,揭示了C语言中许多隐晦之处,尤其深入解析了声明、数组和指针、内存使用等方面的细节。要想成为一名专家级C程序员,这些内容都是必须掌握的。和其他满是抽象例子的C语言书籍不同,这本书充满了大量的来自真实世界的C程序设计实例,它们对C程序员具有很高的参照价值。另外,每一章都以极富趣味的“轻松一下”收尾,而附录A“程序员工作面试的秘密”则是任何语言的程序员在应聘工作前增强自信的好材料。
我怀疑真正的C专家可能用不着看这本书 ——从内容到组织方式到行文风格都决定了这是一本轻松愉快的“从菜鸟到高手”的进阶读本,所以,它理应拥有更广泛的读者群。初级程序员往往更需要热情的鼓励,在阅读这本书的过程中,你定会深深地被作者对编程的激情所感染。
世间并无完美。我认为这本书的缺陷在于,和大多数平庸的C语言书籍一样,它画蛇添足地加入了一章关于C++的描述。在今天看来,这个描述既不全面也有失公允。不过,鉴于作者是在1994年从一名C程序员的角度去观察C++,这一点也就不足为奇了。 3. Samuel P. Harbison, Guy L. Steele,《C语言参考手册(第五版)》
影印版(机械工业出版社)、中文版(机械工业出版社)
在C语言参考手册类书籍里,Samuel P. Harbison 和Guy L. Steele合着的C: A Reference Manual是非常出色的一本。这本手册的第五版新增了对C99标准的介绍,以便满足新时期C语言学习的需要。全书共分为两大部分,第一部分专注于C语言特性,第二部分则全面讨论了C标准库。本书涵盖C99、C89、传统的C、所有版本的C运行库以及编写与C++兼容的C代码等一切知识。
这本手册只是中等厚度,但它比“比它更厚”的其他参考手册更清晰地描述了C语言的现在和过去的方方面面。整本手册技术细节描述精确,组织条理清楚,内容完备详尽而又简明扼要。可以这么说,它在广度、深度和精度方面都是出类拔萃的。对于中、高级C程序员而言,这本手册值得常备案头,它几乎肯定要比K&R的着作使用频率更高。
4. David Hanson,《C语言接口与实现:创建可重用软件的技术》,机械工业出版社
C语言接口与实现:创建可重用软件的技术
C语言能够历经三十多年而不衰,一个重要的原因在于它的适应能力。在这“复用”、“面向对象”、“组件”、“异常处理”等先进机制漫天飞舞的年代,C语言仍然能够凭借它小而优雅的语言特性,在相当程度上满足现代软件体系架构提出的要求。只不过,想要达到这个程度,必须要在C的应用功力上达到最高层次。在嵌入式、系统软件以及对性能要求极高的系统开发中,开发人员必须达到这样的层次,熟练掌握C语言的高级特性,才能够同时满足效率和灵活性、复用性的要求。可惜,虽然C语言技术图书汗牛充栋,但是关注这个峰顶之域的作品却是屈指可数。David Hanson的C Interfaces and Implementations就是个中翘楚。
David Hanson是业内大名鼎鼎的自由编译器lcc的合作者。在这个项目中,他负责提供高度可复用的基础架构。在不断的实践中,他完全使用ANSI C形成了一整套可复用组件库。这套组件库架构清晰,性能优异,而且提供了很多高级的特性,比如类Win32 SEH的异常处理机制、可移植的线程库、高性能的内存池、丰富的可复用数据结构组件。David Hanson把他在创作这些组件的过程中所积累的心得以及对其源码的精致剖析原原本本地写在了这本书里。这样的着作,当然堪称C语言领域里的铭心绝品。难怪已故着名技术作家Richard Stevens对此书赞不绝口,他说:“这本书中的技术,对于大部分C程序员来说,已经遗忘得太久了。”对于希望能在C语言应用上达到最高层次的核心程序员而言,这本书是难得的必读之作。
其他除了以上四本书以外,我还乐意推荐Andrew Koenig的着作《C陷阱和缺陷》(人民邮电出版社)和Deitel父子合着的C How to Program两本书。
C专家编程
Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减少程序错误的建议以及前面各章问题的参考答案。尽管这个小册子成书于C89标准制定之前,然而,即使到了C99早已颁布的今天,书中提到的大多数陷阱和缺陷一如十五年前那样使我们警醒。
C程序设计教程
Deitel父子合着的C How to Program一直是非常好的C语言入门教程,我手头的中译本名为《C程序设计教程》(机械工业出版社出版,原书第二版)。除了对技术的正规描述(辅以许多简明扼要的例子)外,每一章后面都带有小结、术语、常见的程序设计错误、良好的程序设计习惯、性能忠告、可移植性忠告、软件工程评述、自我测验练习及答案等。整书内容清晰,组织良好,易于阅读和理解。值得一提的是,有许多入门书读完一遍即可扔掉,而这一本是个例外。
结语以上这几本书很大程度上局限于描述C语言及标准库本身,如果希望学习更专业的、领域相关的C程序设计技术,你可以在选择阅读这几本书的基础上继续查阅专门书籍。此外,在C语言书籍领域,水平不相上下的作品有很多,这几本只是根据我自身的阅读体验
Ⅲ 有哪些你看了以后大呼过瘾的编程书
第一阶段:
C语言————《C语言设计》 作者:谭浩强
大多数人都推荐谭浩强的这本书,谭老师的C语言程序设计,我觉得更适合当教科书,主要是篇幅没有那么大,本书的内容不是很全,由老师带入门时最好的。
《C Primer Plus》第五版 作者:Stephen Prata
这本书比较厚,内容也比较基础,扩展也比较广,自学更容易上手,唯一的缺席在于他是外国人编写,而国内的翻译往往然人难以满意,如果你有较好的英语水平,最好阅读英文版的。
《C语言入门经典》第四版 作者:Ivor Horton
第二阶段:
这一阶段看个人的主攻方向,安卓一般就java、PC游戏、软件C++,也有推荐C#,这些都是主流语言,其他语言要看个人爱好与发展。
面向对象的语言,一般懂一门,之后要转其他语言也很容易的,其实思想都差不多,主要的不同在于语法。C#容易上手,一个月入门,一年精通,而C++却有点难,一年入门,二十年也未必敢说自己精通。如果有时间,可以了解一下汇编语言。
第三阶段:
API/SDK------------- 《windows程序设计》(Jeff Prosise)
这书主要是开发Windows软件要深入研读的,毕竟是WindowsAPI。如果是主攻C++,那么这本书你可以大概略读一遍,不用过多的深入追究,QT才是C++主要深入思虑的关键。
第四阶段:
MFC----《VC++技术内幕》、《深入浅出MFC》及视频教程孙鑫 VC++6.0
如果是C++,QT是要重点学习的对象。
第五阶段:
COM/DCOM/ATL/COM+---------《COM技术内幕》
未知阶段:
《数据结构》,《算法导论》这些基本是编程的核心了,编程的很大情况都依赖于算法的实现,这个两门基本要深入研究,这是决定编程能力的核心标准。
如果不弄底层的话,《操作系统原理》可以简单地了解。
Ⅳ 求C++ 网络编程最好的书籍 谢谢了
学习编程基础也很重要的,路要一步一步地走。不要老是想到看一本书就成为高手。我给你推荐一些书吧,你可以选一些看。其中很多都是经典之作。C++是以C为基础的,所以你最好看一下C语言,网络方面,《计算机网络》和《TCP/IP详解》是必看的。望采纳。
1、算法
计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑
算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑
离散数学及其应用----------Kenneth H.Rosen
具体数学—计算机科学基础--------Donald.E.Knuth
2、数据结构
数据结构 C++
数据结构算法与应用
3、C语言
C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父”
C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata
C程序设计(第三版)---------------------------谭浩强
C语言大全(第四版)---------------------------HERBERT SCHILDT
C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON
C语言参考手册(原书第5版)--------------------------Samuel P.Harbison
C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱与缺陷-----------------------------------Andrew Koenig
5、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”
C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman
C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis
C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”
深度探索C++对象模型---c++八大金刚----Stanley B.Lippman
Essential C++中文版---c++八大金刚---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers
More Effective C++中文版----c++八大金刚------Scott Meyers
C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel
C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel
C++程序设计--------------------------谭浩强
C++ 程序设计教程(第2版)--------------钱能
C++ Primer Plus(第五版)中文版---Stephen Prata
6、操作系统
深入理解计算机系统(修订版)-------RANDAL E.BRYANT
计算机操作系统(第六版)
7、编译原理
跟我一起写makefile
《编译原理技术和工具》------- Alfred ------- 龙书
《现代编译原理-C语言描述》 ----------- Andrew W. Appel ----------- 虎书
《高级编译器设计与实现》 ----------- Steven S.Muchnick ----------- 鲸书
8、网络
计算机网络第四版中文版-----------Andrew S.Tanenbaum -------网络编程三剑客
TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客
UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客
用TCP/IP进行网际互联-----------Douglas E. Comer
高级TCP/IP编程-------------------Jon C. Snader
C++网络编程-----------------------Douglas Schmidt
UNIX环境高级编程(第2版)--------------------Richard Stevens
9、Linux
Linux内核设计与实现
Linux内核完全注释
LINUX内核分析及编程
Ⅳ 《C程序设计》学完了往后想学C++推荐几本书
经过十分漫长的C++学习过程,我总算完成了我自己的C++心愿,看完了我想看的所有C++书籍,回
顾我C++的整个学习过程,颇有一些心得和经验,希望与各位分享,也希望给正处在摸索学习阶段的
XDJM一点学习参考。
首先看看我第一次接触编程语言,唔,那可能要追述上到世纪,在我小学4年纪的时候第一次接触到
BASIC,那个时候学习这个东西完全是为了要爸爸给我买一台386,没想到的是,BASIC开启了我对于计算
机的一切兴趣与追求。5年纪的时候参加少年的计算机奥赛,我用BASIC写的一个彩色立体可旋转移动的正
方体拿了一个铜牌,从此计算机编程成为了最大的爱好,现在我还保留着源代码,是保存在一盘普通单放
机的磁带上的,我估计很少有人用过录音机和串口的转换器吧,呵。我用BASIC写的第二个大程序是给我
妈妈用的财务程序,初中二年纪的时候,我妈妈在单位做出纳,我总看到妈妈每天晚上拿个计算机算一堆
表,所以我写了这个程序帮助妈妈快速完成她的工作,其实我的根本目的是为了一台打印机,因为这个程
序,生成了简单的报表,她可以直接打印,当然为了这个便利,她必须花钱给我买一台当时还算价值不低
的打印机。不过现在回顾起来,BASIC虽然是我编程的第一位启蒙老师,但是在我开始C++的学习之后,他
确实使我我思想上产生了很大的困绕,主要是OOP思想,我花费了将近1年多的时间才真正体会到什么是OO!
到了大学,我才真正开始系统的学习编程。在此之间走过一些歪路,比如高中的时候研究HACKING,
之所以说学习hacking是条歪路,原因很简单,因为研究到一定的程度,没有十分稳固的编程基础,根本
的无法继续深入学习。中国**联盟解体前,位列第三的kender给了我这方面很大的打击,从此我就退出了
,从此对于hacking我就不闻不问,从此看到那些下三烂的货色也要学hacking,我就感到可笑。第一次接
触的是C,没什么好说的,我C学的不好,因为我大二的时候经商去了,而且我觉得C能做的,我用BASIC都
能做到,为什么要学C?当然那个时候我成绩真是北大的BBS...然后接触到的就是C++,教材的钱能的
《C++程序设计》,这本书其实还是很不错的,不过很多看了两本名着的朋友都对这本书嗤之以鼻,也许是
我天生很笨,在我看完了《C++PRIMER》后还经常番看《C++程序设计》。《C++程序设计》虽然出书的时
候ANSI C++还没有确定下来,不过它还是含盖了C++所有语法,建议对C++感兴趣却又没有任何基础的人先
从这本书开始,简单而高效,不要认为人家一上来就看《C++ PRIMER》或是《the c++ programming
language》就觉得自己的档次很低,你要确信,你肯定能超过他!这本书课后习题在我看来是典型的结构
化编程,即使到了CLASS,也全部可以用STRUCT代替。不过在这个阶段做习题十分必要,用处我不想敲了
,推荐使用的编译器就是书中所说到的编译器(我忘记叫什么了:P)看完之后,如果你想说C++很简单的话
,建议你在看完了《C++ PRIMER》或是《the c++ programming language》之后再说。这两本书都是基于
标准C++的,十分苛求的说,后者对标准的兼容性稍差:)。对这两本书,我的看法是,如果你确实想仔细
的学习,建议你看《C++ PRIMER》,如果你想跳过我将要写到的下面两本书的话,建议你看
《the c++ programming language》。对这两本书,前者最高到中文第三版,因为第四版,后者到特别版
。对于前者,我看后的感觉是它的优点在于解析,特别是函数,类,模板的解析,但是它并没有含盖C++
的方方面面,后者就不是这样。实际上我并没有仔细看过后者,只是同学总是拿这本书上的问题来与我商
量,所以有机会偷窥了几眼。暂定你选择的是前者继续学习,在看完后,也许你用C++编制普通的程序已
经能够运用自如,但是你仍然应该会有很多问题和遗憾,比如,类继承,虚拟继承,类访问控制,类继承
下的访问控制,还有虽然我已经对如何解析十分清楚,但是我仍然感觉我对语法掌握得不系统,遗憾的是
,书中出现了很多的库函数,我为什么都不知道?这个时候建议你看看《标准C++宝典》,这本书对于语
法正所谓事无巨细,一一道来啊,再就是回顾一下《C++ 程序设计》(钱能),对类的部分讲解的还是十
分精辟的。在掌握了一切牢固的语法基础之后,我选择的下一步不是STL,而是IOSTREAM,原因之一是因
为《C++ PRIMER》并没有把这一部分讲述的很好,对了,《C++ PRIMER》也没有把STL讲述的很好,所以
我看《C++ PRIMER》的时候这些章节都跳过了,我的目标是不求知道,只求精通。对于IOSTREAM,我选的
书是《Standard C++ IOStream and Locales》,我当时还是看的E文原版,事实证明,我错了,这本对于
当时的我,难度突然拔的太高,所以在看完了第一章之后我就放弃了,只是暂时的搁置下来了。对了,忘
记说,对于《C++ PRIMER》或是《the c++ programming language》的学习,你应该十分认真的选择编译
器了,我推荐3个首选dev-cpp最高4.9.9.2,然后是vc.net(千万看清楚,不是vc6.0!),最后就是
borland c++ builder-X,具体我就不介绍了,相信你学习到这一步,自己应该已经掌握很多的信息了.继
续,下一步,我的选择是〈深入探索C++对象模型〉,我是在图书馆借阅的,现在也有电子版了,不过我
看了以下,效果一般,但是可以和E文原版的电子版一起看。这本书看完。如果你是跟我一样,把
《C++ PRIMER》翻烂掉,能把《深入探索C++对象模型》的知识要点全部背出来的话,我恭喜你,你的
C++水平已经到中级了:)接下来,我的选择是对C++这门语言为我提供的所有服务设施通透的学习一边。
说穿了,就是库函数,C++库函数分两部分,一部分来自C语言,一部分就是STL,对于C语言部分,我建议
你可以买一本C++函数库的书,最近好象刚出了一本,不过我还没有机会看,我看的是〈C和C++代码精
粹〉,里面把C语言部分的库函数分为3类,这本书我也就看了这3个章节,其他的东西我知道,看他做
甚?而对于STL,你如果真想成为C++出类拔萃的高手,你应该看3本<<C++标准程序库>> <<泛型编程与
STL>> <<STL源码剖析>>,第一本主要讲的是如何使用STL,第二本将STL的一些设计理念,并指导你进
行泛型设计,所谓泛型说穿了就是指模板。看完这些书,如果你跟我一样,可以把STL全部重写一边的
话,那么恭喜你,你已经成为C++准高手,这个时候我的选择是回过头去看《Standard C++ IOStream
and Locales》,呵,现在才发现原来这本书这么简单!简直是naive!其实,我现在最想做的事情就是能
够把IO全部重写一边,不过还没有找到合适的编译器下手,感觉应该用GCC比较好,还没开始研究,我也
不清楚。好了,既然这么多本讲述C++技术的书籍你都搞完了,也不在乎多两本吧,呵呵。知道你应该看
什么吗?你应该看看<exceotional c++>还有<effective c++>,这两本书都有more版,不算太难,最后可
以看《高质量C++编程》,最后有一套练习题,做做,小菜一样。接下来我的选择是<C++编程思想> 〈设
计模式〉 〈大规模C++程序设计〉(最后一本我最近才看完:P)这3本书可不讲什么语法,第一本实在没
有必要介绍,似乎每一种语言的编程思想的的书籍都是说的如何用这门语言编程,第二本其实并不能说是
针对C++,所有语言通用的一本书,关键是程序设计的方式,第三本被称为〈设计模式〉的C++实践篇,其
意义毋庸多说。看完了吗?好吧,你应该选一个项目锻炼一下。如果你能在一个月内看完这所有的书,欢
迎你加入ISS_SQL开发团队,这个就是我近期想做的事情,我就是想写一个自己的数据库。不过如果你不
是外星人的话,我估计你不可能在一个月的时间内,看完我看了2年的书。对于我刚才说的SQL,我还在选
人,说实在的,现在我的同学里,真的是没有几个人的技术能让我看的上的,哎,得一知己难啊!还是继
续说编程,这个时候,你已经有了顶级的C++基础,想学什么不容易?JAVA,你学了一个月??开玩笑,
我看了一个星期的书就开始做项目了!其实我觉得到了这个时候是一个面临选择的时候,一个是做UNIX下
的开发,一个是做WINDOWS下的,不过我选择了第三条路,也就是我正在学的,算法,因为我的导师正在
做973计划中的数据挖掘项目,所以我也沾光,因为是基与weka,所以我用java,这个B语言真弱智,我已
经开始讨厌JAVA了,所以我才想用C++重写一个WEKA类的开源软件,不过我感觉用java写算法,的确不
错。前段时间,我一个同学为了一个C#问题苦恼,问题粗略说来是GIS设备返回串,要进行处理,提取数
据,因为串本身的复杂性,具体是怎么样的我也不知道,因为他的这个是商业项目。这个问题在C#下十分
困难,连正则表达式都无能为力,所以我给他的建议是写一个自动机,也不知道他最后的处理方式,不过
在java下,呵,大概不超过五十行代码吧。说远了。
最后说说人的问题。有一点点浮躁的人建议你千万别想学C++,直接学VB或者C#算了,希望在浩方有
个排名的人,我直接告诉你,你不应该学C++。
关于C++的学习,我就说这么多,其实也感觉没有说什么,只是把我学习C++看的每一门书都罗列出来
,虽有显摆之嫌,但也确实希望给那些如曾经的我一样迷茫的摸索者,那些希望学习C++且追求完美技术
的人指一条明路。简单的说,你认真看完我上面说的所有书,你就是C++高手!
新手入门:如何学好c++
下面的是学C++时要注意的。
1.把C++当成一门新的语言学习(和C没啥关系!真的。);
2.看《Thinking In C++》,不要看《C++变成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object
Model》,不要因为他们很难而我们自己是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic
programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
9.看Visual C++的书,是学不了C++语言的;
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
17.C++不仅仅是支持面向对象的程序设计语言;
18.学习编程最好的方法之一就是阅读源代码;
19.在任何时刻都不要认为自己手中的书已经足够了;
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
26.请看《程序设计实践》,并严格的按照其要求去做;
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
31.学习编程的秘诀是:编程,编程,再编程;
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
33.记住:面向对象技术不只是C++专有的;
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
35.把在书中看到的有意义的例子扩充;
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
39.C++语言和C++的集成开发环境要同时学习和掌握;
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;
47.请不断地对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
48.保存好你写过的所有的程序——那是你最好的积累之一;
49.请不要做浮躁的人;
50.请热爱C++!
补充:
对c++学习的一点感想,希望对初学者能有些帮助
1.如果你以前从来没有接触过c++,那么选择的第一本c++教程就显得尤为重要,我认为你可以参照以下的标准进行选择:
a.对标准c++进行讲解,毕竟c++比从前发生了很大的变化。
b.要求全面,但不要很深,这要有助于你对于c++有一个全面的认识,打好基础,并且易懂的教材还能加快学习的进度,让自己保持一种成就感。
c.要有完整的范例来讲解每一个知识点如何运用,请注意这里所说的完整,并不是一个个代码片断。因为由于你以前从未接触过用c++进行编程,完整的代码可以使你有一个整体的概念,并且能够很快去进行大量的实践,因为变编程是从模仿开始,完整的代码恰恰告诉你了一个完整的步骤。不必自己去揣测。
d.推荐:《c++ primer plus》
2.当你有了一定的基础以后,就要选择一些书来迅速提高自己。这类书的特点是不仅仅教你如何去运用,而且要叫你如何去思考,并且你读起来也不是那么轻松。它意味深远,并不是你读一遍就能掌握的。
推荐:《thinking in c++》《effective c++》《more effective c++》
《c++ programming language》...《c++ 沉思录》
3.接下来就是对第二步所介绍的书籍进行反复的阅读,并且进行实践。由于这些书一位深远,每个人基于自己的基础都会有不同的收获,例如如果你的基础还没有达到某一高度,那么你就对一些精深的技术视而不见,不信?你可以试试,看看当自己有了一定提高之后再来读从前的一本书,你会发现许多新的东西。
Ⅵ 求解三菱PLC,STL指令怎么用的
三菱plcstl指令用法:
1、STL 指令可以使编程者生成流程和工作与顺序功能图非常接近的程序。STL 指令的意义为激活某个步(即状态),在梯形图上体现为从主母线上引出的状态接点。STL 指令有建立子母线的功能,从而使该状态的所有操作均在子母线上进行。步进返回指令 RET 是指状态流程结束,用于返回主母线。
2、STL触点与母线相连,与STL触点相连的起始触点应使用LD或LDI指令。即使用STL 指令后,LD点移至STL触点的右侧,一直到出现下一条STL指令或RET指令为止。RET指令表明整个STL程序区的结束,LD点返回原母线。各STL触点驱动的电路一般放在一起,最后一个STL电路结束时一定要使用RET指令,否则将出现“程序错误”信息,PLC不能执行用户程序。
3、STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈和应用指令。STL触点右边不能使用入栈(MPS)指令。
4、STL指令不能与MC-MCR指令一起使用。
(6)cstl编程手册扩展阅读:
STL指令注意事项:
1、OUT指令与SET指令均可用于步的活动状态的转换,使新的状态继电器置位,原状态继电器自动复位,此外还有自保持功能。SET指令一般用于驱动目标步比当前步元件号大的状态继电器。
2、在转换条件对应的电路中,不能使用ANB,ORB,MPS,MRD和MPP指令。可用转换条件对应的复杂电路来驱动辅助继电器,再用后者的常开触点来作转条件。
3、CPU不执行处于断开状态的STL触点驱动的电路块中的指令,在没有并行序列时,同时只有一个STL触点接通,因此使用STL指令可以显着的缩短用户程序的执行时间,提高PLC的输入、输出响应速度。