C/C++及其相关
-
面向对象编程[加]Goran Svenk著;马海军,段晓勇译;马海军译本书的作者向工程学学生教授C++已长达八年之久。他长久以来一直在寻找一本使用纯面向对象的方法,并包含不同工程学学科程序示例的C++图书。由于没有找到一本这样的书,于是作者决心自己写一本书来满足这些需求。本书使用纯面向对象的方法来教授C++,不包含对于已经完成了C语言课程的读者而言多余的内容。本书包括许多电学和计算机工程学科的实例。本书是基于ANSI/ISOC++标准的C++程序设计语言教程。Seneca学院技术系的教授,也是电子和计算机工程技术学院的软件工程专业的学术带头人。他在学院或大学教授计算机科学和控制系统的不同课程超过了18年。同时负责一些程序设计语言(Pascal、C、C++、VisualBasic和Java)的课程设计与开发研究。十余年来,C++已经成为了最流行、应用最广的编程语言之一。它被广泛地应用于工业和商业计算机应用程序开发的不同领域。C++和它的前身C已经成为工程技术的不同领域,如控制系统、通信、计算机辅助设计和嵌入式系统的主流编程语言。据估计,全球有几百万C++程序员。1998年通过的C++标准使C++的教授、学习与程序开发更为简单。本书适合于有一定编程基础的中高级程序员阅读,书中鼓励用户使用纯粹的面向对象的方法来解决问题。本书首先讨论了C++对C语言过程化编程的增强功能,分析了这两种语言的异同,以方便读者的学习。然后通过丰富的工程技术领域的实际示例引导读者对面向对象的编程概念进行深入的剖析和研究。每一章都包含了许多程序示例、编程项目、实际案例分析和问题讨论,可以有效地帮助读者学习和掌握新的、有用的C++技巧。另外,本书中的所有内容都基于ANSI/ISO定义的最新的C++标准,使得本书成为一本C++程序员不可或缺的学习和参考书。本书尤其适合作为电子、机电等相关工科专业的C++教材。 -
C语言参考手册(美)Samuel P. Harbison Ⅲ,(美)Guy L. Steele Jr.著;邱仲潘等译;邱仲潘译本书是经典c语言参考手册的最新版,在强调正确性、可移植性和可维护性的基础上,对C语言的具体细节、运行库以及C语言编程风格做了完整、准确的描述。本书涵盖了传统C语言、C89、C95、C99等所有C语言版本的实现,同时讨论了C++与C语言兼容的部分。全书自上而下介绍了C语言的词法结构、预处理器、声明、类型表达式、语句、函数和运行库,是所有C语言编程人员必备的参考书。这本畅销的权威参考手册对c语言的基本概念和运行库提供了完整的描述,同时还强调了以正确性、可移植性和可维护性为根本出发点的良好的C语言编程风格;被国外众多高校广泛采用为教材或教学参考书。本书描述了c语言各个版本的所有细节,是c语言编程人员和实现者惟一必备的参考手册。最新的第5版经过修订和更新,融入了最新c语言标准ISO/IEC9899:1999的完整描述,包括强大的语言扩展和新的函数库。Web站点WWW.CAReferenceManuaI.com中包含了本书较长示例的源代码、对C语言争论点的深入讨论、最新ISO/IEC语言标准修订以及其他重要C语言资源的链接。作者简介SamaelP.HarbiSOnⅢ于卡内基,梅隆大学获得计算机科学博士学位,现任Carlow学院的计算机科学系副教授。他曾就职于德州仪器和Tartan公司,还曾经担任C++程序设计语言标准化国际工作组的主席。他的研究领域涉及程序设计语言和软件开发工具。GuyL.SteeleJr.于MIT获得计算机科学和人工智能博士学位,曾任卡内基·梅隆大学计算机科学系副教授,还曾就职子Tartan实验室和Thinking Machines公司,1994年加入SUN公司,主要从事并行算法、实现策略、软件支持等方面的研究以及Java语言规范的制定。他曾是X3J11(C语言)标准委员会,X3J3(Fortran)标准委员会成员,现在还担任X3J13(Common Lisp)标准委员会的主席。鉴子他在Usp语言词法方面的贡献,1988年ACM授予他Grace Murray Hopper奖。他于1990年被选为美国人工智能学会会士,于1994年被选为ACM会士。他还曾任1990年ACM图灵奖评审委员会的主席。 -
C语言程序设计实训教程马尚风主编《C语言程序设计实训教程》是《C语言程序设计》的配套书,用于上机实训。《C语言程序设计实训教程》共8章,分别是:C程序设计基础、程序的控制结构、函数、指针与数组、指针与函数、结构体与共用体、文件、C程序设计大型作业。每章给出实训目的与内容、实训知识准备、实训案例与实训项目,每章的最后还附有一定的练习。《C语言程序设计实训教程》先从示范案例开始,通过思考与给出的提示,使学生独立地完成实训项目。《C语言程序设计实训教程》可作为高职高专相应课程的实训教材,也是本专科相关专业学生、自考学员和专业教师颇有帮助的辅助教材。 -
Essential C++(美)Stanley B.Lippman著本书是特别为那些想在短时间内赶上C++技术发展的人设计的,书中强调了C++编程过程中一定会遇到的要素,以及可协助解决实际问题的技术。本书的组织围绕这一系列逐渐复杂的程序问题,同时介绍了解决这些问题的语言特性。通过这种方式,你不仅可以学到C++的函数和结构,还可以理解它们的设计目标和基本原理。StanleyB.Lippman目前已应微软邀请,加盟了VisualC++开发小组。此前他曾在贝尔实验室领导过cfront3.0和2.1的编译器开发小组,并曾是BjarneStroustrup所领导的贝尔实验室基础项目中的一员。Stan是《C++Primer》及《InsideTheC++ObjectModel》的作者,这些极为成功的书籍由AddisonWesley出版。本书提供了一条学习和应用C++的捷径。本书是特别为那些想在短时间内赶上C++技术发展的人设计的,书中强调了C++编程过程中一定会遇到的要素,以及可协助解决实际问题的技术。总之,这本言简意赅的指南为你提供了实用的C++知识,以及进一步深入研究的基础。本书将C++的本质概括为:procedural、generic、Object-based、Object-orientde。本书的组织围绕这一系列逐渐复杂的程序问题,同时介绍了解决这些问题的语言特性。通过这种方式,你不仅可以学到C++的函数和结构,还可以理解它们的设计目标和基本原理。 -
C++程序设计实践教程李海文,吴乃陵编著本书是与吴乃陵等编著的《C++程序设计》(高等教育出版社2003年出版)配套的实践教材,它不仅仅是实验指导书,也是教材的延伸,通过它可进一步完成Windows下程序设计的初步训练。内容包括:与C++程序设计教学同步的程序设计实验,WindowsAPI及MFC应用程序设计基础和实验,最后安排有课程设计内容,另外还对VC++60集成开发环境进行了介绍。本书可作为高等学校C++程序设计课的实验指导用书,也可供编程爱好者和编程技术人员参考使用 -
实用C语言简明教程顾小晶主编本书为高等学校培养应用型人才教材之一,由具有丰富教学经验的一线教师编写。本书编者根据应用型高校学生的特点,结合多年讲授C语言的教学经验,力求做到:注重基础、强调方法、突出实用和强化实践。全书在全面阐述基础语法、语言特点的基础上,强调程序设计的方法和程序设计的风格。全书内容在满足教学大纲和计算机等级考试要求的同时,对于实际应用中C语言的不易掌握之处和灵活性加以重点说明。本书重视实践环节,除了每章提供上机实习题外,有专门章节进行上机实验和课程设计指导以及程序调试方法的介绍。同时,在全书的体系结构上也作了精心编排;重点突出、难点分散、深入浅出、循序渐进。本书是高等院校及相关专业的教材,也可作为程序设计人员学习的参考教材。 -
程序设计基础陆虹主编本书是普通高等教育“十五”国家级规划教材(高职高专教育),主要内容包括程序设计概述、数据类型与数据的输入输出、表达式语句、控制语句、数组、指针与文件、结构和函数等。本书针对高职高专学生的认知特点,以及在开始学习程序设计时的实际情况,使用“示范实例——模仿实例——实训任务”的体例。每章首先给出学习目标,明确对知识、技能掌握程度的要求,然后选用大量实用、趣味及学生身边所熟悉的问题,作为实例与实训任务,便于教师组织互动式的教学。本书不仅注重编程能力的培养,而且强调程序调试能力的培养,通过调试实例提高学生解决问题的能力,增强编程的信心。本书适用于高等职业学校、高等专科学校、成人高校及本科院校举办的二级职业技术学院、继续教育学院和民办高校使用。 -
C++编程基础(美)Steve Heller著;胡凤燕,朱德爽等译这是初学者学习标准C++的一本理想书籍。本书的写作体例非常有特色,其内容以初学者(一个聪明的女孩,苏珊)提出问题、编程高手(本书的作者,史狄夫)回答问题的形式为主线进行组织,知识讲解和概念分析非常适合初学者的思维。而且,这里的对话都是真实对话的记录,对话中的男女主人公演绎了一段动人的爱情故事,现在他们建立了一个幸福的家庭。本书以对话的方式,逐步深入地讲解C++编程中的概念和技巧,特别讲述初学者容易混淆的概念,使得初学者可以快速掌握C++的开发技巧。本书首先介绍最基本的编程概念,让初学者解除编程的神秘面纱并知道如何进行编程,然后介绍编程的基础知识,通过开发几个比较实用的例子来介绍如何使用C++语言进行编程,这几个例子分别是:商店的库存管理、创建自定义的string类以及家庭物品清单项目。通过这些例子,读者可以确切地理解专业程序设计人员是如何开发一个完整的应用程序并部署于实际环境的。贯穿本书,作者介绍了C++的一些重要语言特征,如类、标准类库、数组、指针、封装、继承、多态性、枚举和名字空间等。与一般的初学者用书不同,本书使用的是符合产业标准的代码,读者可以学习到最新、最实用的语法和标准C++开发工具。附带光盘中含有所有的示例代码和标准C++编译器,方便读者的学习。前言大多数科技书所存在的基本问题是作者太想当然。一个人一旦成为高科技领域(如C++编程)的专家,他往往就不知道如何与正在努力奋斗的新手沟通。还有一点必须说明:大部分科技人员并不是很好的作者。幸运的是,程序设计员中10%最顶尖的人有望成为很好的作者——我的老朋友SteveHeller就是这两方面的高手。他非常聪明,知道自己不能够像编程新手一样考虑问题,所以他向新手寻求帮助。现在你手中拿的这本书不仅非常巧妙,而且具有特殊的、意想不到的魅力,这使它成为我所见过的最出色的科技书之一。这是因为,史狄夫所找到的写作伙伴具有与他一样的智慧,而且她对这方面知识的渴望和一无所知成了史狄夫的熟练技能的完美补充。本书不但是史狄夫和苏珊共同写作的书本的选集,而且还是两种非凡智慧结合到一起的故事。他们连贯的对话使本书更为亲切,而这正是大多数科技指南所没有的。他们都从对方那里得到了最有价值的收获,史狄夫让苏珊不断思考、学习并进步,而苏珊使史狄夫从高度抽象的世界回归到日常经历的实例和模拟。对话的结果是用两个声音将许多主题交织在一起的优美乐章。史狄夫揭开了C++的神秘性,而苏珊不断学习该语言,这两者结合在一起。他们一起研究计算机的内部世界时,不但学到了字节和硅等内容,而且他们相互之间产生了不断增长的好感和关怀。苏珊学到了她所不知道的知识,而史狄夫进行了复习——多么令人愉悦的经历。有多少编程入门书也是爱情故事?这可能是惟一的。我不强求大家效仿,但我要说的是,史狄夫和苏珊之间的关系所产生的著作不仅仅是顶级的技术指导书,而且是精妙的艺术。认识他俩是我的荣幸,而介绍这本书更是我的荣耀。我希望他们发现问题、解决问题的过程能在各位的学习过程中起到指导作用。EricS.Raymond序言本书是否适合你?如果你是其他计算机语言(非C++语言)的程序员,而想提高自己的能力,那么只要读几页就可以毫不费力地得出结论。那么,对于没有编程经验的新手又如何呢?在这种情况下,下面给出的一些测验可能会对大家有所帮助:1.是否想知道计算机程序内部是如何工作的以及如何编写自己的程序?2.是否愿意尽全力学习一门复杂的技术科目?3.是否有幽默感?如果所有答案都是肯定的并且能够坚持到底,那么你将能够从中学到很多知识。常识认为,编程是少数专业人员所做的困难工作。我写这本书的主要原因之一是,我认为这种态度是错误的,让大家了解程序如何运行以及如何编程是可能的,而且甚至是合乎需要的。对于那些不知道计算机是如何执行那些看起来很神秘的工作的人,他们在越来越依赖于这些非凡机器的社会中,将越来越处于不利地位。除了话题之外,我看不出一本书枯燥乏味的任何正当原因。而且,我已经尽我所能使此书浅显易懂。不过,不要因此就觉得该学科很简单:编程没有捷径可走,它比几何学更为烦琐。尤其是对于没有编程经验的人,C++比实际中其他任何研究领域更能拓宽你的思维。想要学习C++,那为什么要选择这本书而不是其他数不胜数的C++入门书呢?本书与其他入门书的一个不同点是,其他书中有许多仍没有使用C++标准类库①,这是C++语言定义中非常重要的一部分。本书将使用一些标准类库的功能,以便于读者开始了解C++语言中这一重要部分。当然,本书没有包含其全部内容,这将需要更多的空间。实际上介绍标准类库的书有许多,不过我不清楚哪些适合编程新手。有一个因素使得本书是独一无二的:一个真实的、活生生的人的参与,她在读这份材料之前什么都不知道,她就是我的妻子苏珊②。她的主要贡献就是从初稿开始认真阅读书中每一行,并通过E-mail对她所不理解的内容进行提问。我同样通过E-mail回答她的问题,直到我俩都满意——她理解了问题而材料文本变得清晰为止。文本完成之后,我抽出部分合适的E-mail信件,对它们进行编辑,检查其拼写和标点符号等,然后将它们加入到文本中最合适的地方。对本书的这个最新版本,我们讨论了由标准类库的应用而引起的改变。作为讨论的结果,我对现有的E-mail信件进行了适当地添加和修改,以使它们在变化的环境中讲得通。不过,苏珊对这些信件中有关她的内容做最终决定,这样,它们仍是真实的对话。当然,这些对话的确占了一定的篇幅,或许因此而减少了一些有关C++和编程的信息。因此,如果想从书本的每一页上获得最大量的新信息,那么或许该选择其他书,如BjarneStroustrup所编写的优秀的“TheC++ProgrammingLanguage”(ISBN0-201-88954-4),或者由AndrewKoenig和BarbaraMoo所著的“AcceleratedC++”(ISBN0-201-70353-X)。但是,从我的其他书本的读者所获得的绝大部分评论都表明:他们认为我这种方式很有帮助,我猜想你们也会有此感觉。在这个序的后面,苏珊写了关于她加入此工程的叙述。我建议大家在开始学习后面的内容之前先阅读此叙述,因为这里说明了她是如何以及为什么致力于使你的工作更简单而更有趣。说到苏珊,下面有一小段关于如何学习本书的对话,这段对话是在她首次学习本书第2章和第3章时进行的。苏珊:让我说,要觉得真正了解了它,我真的需要再研究两遍。现在我可以这么做,但是我不知道你是否希望我这么做。我想:对大多数人来说,每章读一遍就够了。史狄夫:事实上,我希望读者有必要的话对这些章节多读几遍;对于编程新手,我认为这是必要的。编程是最复杂的人类学科之一,尽管它不需要学科的数学能力,如核物理学①。我努力使我的解释尽可能简单,但不进行大量的工作和思考是不可能学好编程(或其他复杂学科)的。她完成文本的多遍阅读并从中学到更多知识之后,我们继续下面的讨论:苏珊:或许这点应该在序言或其他位置指出。当然,最终读者将同我一样明白这点,不过我花了不少时间才得出此结论。如果事先知道这一点,那么,或许我不会因为读完一遍后不明白而气馁。史狄夫:我在序言中真正要讲的是,读者不要因此而认为这如同在公园里散步一样简单。无论如何,请不要气馁。我认为你已经在没有任何专业背景的情况下学到了许多非常专业的知识,这是值得骄傲的!在本书中,我们将多次听到苏珊的心声。在本书的测试和修订过程中,我们通过E-mail进行讨论,她的话将被频繁地摘录出来。我希望她的意见和我的回答将对你学习此技术材料有所帮助。言归正传,该告诉读者在本书中发现错误或遇到其他问题时如何获得更新和帮助了。最好的方法是访问我的站点:steveheller.com,我的E-mail地址是steve@steveheller.com。如果你喜欢这本书并想要告诉其他人,那么你可能想在Amazon.com上撰写在线评论——可以通过访问我的主页进行,也可以沿着“用户评论”链接到Amazon上。请注意,对于“classes”(类)和其他C++术语的复数,我都用统一的等宽字体,而不是在复数词尾用普通字体,如“classes”,这是因为,我认为在一个单词中用不同的字体容易分散注意力。在C++中没有复数术语,知道这一点就不会出现将“classes”当做C++术语的错误,实际上此术语是“class”。如果出现这种错误,那么将很快就会发现,因为在程序中错误使用术语时将得到出错消息。下面是来自我的试读者苏珊的心声。我希望大家从她的参与中得到的收获能和我一样多。致谢 -
数据结构学习指导与题解薛超英编这是和华中科技大学出版社出版的“面向21世纪计算机专业本科系列教材”中的《数据结构——用Pascal语言、C++语言对照描述算法》(第二版)配套的教学辅导书。内容包括教材中每一章的基本知识点、主要教学内容、同步练习题和解答等。提供同步练习题约有1100道,分9组,对应于教材的第1章至第9章。每一组习题包括判断题、选择题、填空题、图表计算题、算法填空题和算法设计题等6种题型。这些题型都是目前各类考试如研究生入学考试、自学考试和等级考试中常见的题型。每道习题都有参考答案,其中每个算法设计题的参考答案均由解题思路和算法两部分构成。和教材的风格一致,本书中每个算法也用PasCal语言、C++语言对照描述,并且都是经过作者上机调试的。本书的最后还有4套模拟试卷。本书的习题与解答由作者精心设计与编排,内容丰富、覆盖面广,对教师讲授和学生学习“数据结构”课程都能起到较好的帮助作用,也可作为有关专业的研究生入学考试和其它各类考试的参考书。 -
C++编程导论(美)Diane Zak著;马良荔 等译本书主要介绍了C++语言的基本知识,首先概述了微机系统及其软、硬件,程序设计语言及其控制结构,从面向对象的设计方法着手引入C++语言;第4章详细介绍了C++的基础知识,包括变量、常量、运算符、内存分配;第5章、第7章和第8章分别说明了内置函数、函数的返回值以及无返回值函数;接下来又详细讲述了程序设计的选择和循环结构,深入说明了如何用选择结构编程实现一些实际的算法;第11章系统地讲述了C++中的字符和字符串概念及其一些相关的实际算法应用;第12章给出了C++语言最重要的特性——面向对象的概念和简单的编程方法;接着,描述了顺序存取文件的基本概念以及打开、关闭文件等一些操作;最后,详细讲述了数组的概念、编程方法及其在具体算法中的编程应用。通过阅读本书,读者可以清楚地了解有关C++语言的特性和基本知识,可以熟练地掌握C++的基本编程设计方法。本书可作为大中专院校计算机专业的教材和参考书,也可供从事相关工作的工程技术人员参考。
