C/C++及其相关
-
C++面向对象高效编程(美)Kayshav Dattatri著;潇湘工作室译编辑推荐:本书以帮助读者掌握C++面向对象高效编程方法为目的,详细介绍C++编程中的各种概念和应用技巧。全书共分为两部分,第一部分介绍面向对象编程的基础和应用,如数据抽象、继承、异常处理等内容;第二部分说明了如何建立抽象的概念及其策略,并研究了C++对象模型。书中带有大量的代码实例,使读者不仅能够从理论上得以提高,而且还能够轻松地在实践中应用。本书适用于C++程序员,也可供对面向对象程序设计感兴趣的编程人员及大专院校计算机专业师生参考。 -
Borland C++ Builder 5实用编程技术朱正茂,彭湃等编著本书针对C++Builder 5在集成开发环境、图形、图像、多媒体、数据库和网络的应用开发方面所涉及的基础知识、开发步骤及程序设计技巧作了比较深入的介绍。书中不仅对上述各方面所涉及的组件作了较为详细的介绍,而且还对OpenGL、DirectX、BDE和ODBC等非组件技术作了比较详细的介绍。本书适合对C++语言规范和C++Builder 5开发环境感兴趣的初、中级用户。 -
C++面向对象程序设计王萍编著《教育部人才培养模式改革和开放教育试点教材:C++面向对象程序设计》是针对中央广播电视大学计算机专业编写的。《教育部人才培养模式改革和开放教育试点教材:C++面向对象程序设计》围绕C++面向对象程序设计,内容覆盖基本概念和方法,基本数据结构和面向对象的概念、方法和技巧。全书共有14章,其中第1章至第6章简要介绍了C++语言的发展历史、特点和程序风格,C++语言程序设计的基本结构、步骤、方法和技巧;第7章至第8章重点介绍了数组、结构等数据结构以及指针和引用的概念和方法;第9章至第14章详细介绍了面向对象程序设计的方法和特点。《教育部人才培养模式改革和开放教育试点教材:C++面向对象程序设计》是中央广播电视大学开放教育计算机科学与技术专业的教材,也可供其他大专院校计算机专业的本科生以及从事计算机软件开发的科研人员使用。 -
VISUAL C++编程技巧清宏计算机工作室编著Visual C++是基于Windows操作平台的功能强大的编程开发环境。本册通过上百个实例全面讲述和分析了应用MFC进行Visual C++编程的思想,对Visual C++在编程实际应用方面的基本使用方法和一些高级编程技术要点作了详尽的讲解。 -
数据结构与算法分析(美)Clifford A.Shaffer著;张铭,刘晓丹等译本书采用程序员最爱用的面向对象C++语言来描述数据结构和算法,并把数据结构原理和算法分析技术有机地结合在一起,系统介绍了各种类型的数据结构和排序、检索的各种方法。作者非常注意对每一种数据结构不同存储方法及有关算法进行分析比较。书中还引入了一些比较高级的数据结构与先进的算法分析技术,并介绍了可计算性理论的一般知识。本版的重要改进在于引入了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。本书概念清楚、逻辑性强、内容新颖,可作为大专院校计算机软件专业与计算机应用专业学生的教材和参考书,也可供计算机工程技术人员参考。译者序数据结构与算法分析是一门计算机专业十分重要的基础课,计算机科学各领域及各种应用软件都要使用相关的数据结构和算法。当面临一个新的设计问题时,设计者需要选择适当的数据结构,并设计出满足一定?奔浜涂占湎拗频挠行惴ā1臼樽髡甙咽萁峁购退惴ǚ治鲇谢厝嗪显谝槐窘滩闹校兄诙琳吒菸侍獾男灾恃≡窈侠淼氖萁峁梗⒍允奔淇占涓丛有越斜匾目刂啤*?本书采用当前流行的面向对象的C++语言来描述数据结构和算法,因为C++语言是程序员最广泛使用的语言。因此,程序员可以把本书中的许多?惴ㄖ苯佑τ糜诮吹氖导氏钅恐小>」?数据结构和算法在设计本质上还是很底层的东西,并不像软件工程大型项目设计那样,对面向对象方法具有直接的依赖性,因此有人会认为并不需要采用面向对象的高级技术来描述底层的算法,但是采用C++语言能够更好地体现抽象数据类型的概念,从而更本质地描述数据结构和算法。为了使本书清晰易懂,作者有意回避了C++的某些重要特性。这个版本的重要改进是引入了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。本书包括四大部分内容,第一部分是准备工作,介绍了一些基本概念和术语,以及基本的数学知识。第二部分介绍了最基本的数据结构,依次为线性表(包括栈和队列)、二叉树和树。对每种数据结构的讲解都从其数学特性入手,先介绍抽象数据类型,然后再讨论不同的存储方法,并且研究不同存储方法的可能算法。值得赞赏的是,作者结合算法分析来讨论各种存储方法和算法的利弊,摒弃那些不适宜的方法,这样就调动了读者思维,使其可从中学到考虑问题的方法。这种“授人以渔”的策略使读者在今后设计和应用数据结构时能够全面地考虑各种因素,并选择最佳方案。作为最常用的算法,排序和检索历来是数据结构讨论的重点问题。这在第三部分的第9章和第10章中进行了详尽的讨论。排序算法最能体现算法分析的魅力,它的算法速度要求非常高:其中内排序主要考虑的是怎样减少关键码之间的比较次数和记录交换次数,以提高排序速度;而外排序则考虑外存的特性,尽量减少访问操作,以提高排序速度。第8章证明了所有基于比较的排序算法的时间代价是Θ(nlogn),这也是排序问题的时间代价。检索则考虑怎样提高检索速度,这往往与存储方法有关。书中介绍了几种高效的数据结构,如自组织线性表、散列表、B树和B+树等,都具有极好的检索性能。第四部分介绍了数据结构的应用与一些高级主题,其中包括图、跳跃表、广义表和稀疏矩阵等更复杂的线性表结构、还包括Trie结构、AVL树等复杂树结构,以及kd树、PR四分树等空间数据结构。另外,第四部分还简单介绍了求和、递归关系分析和均摊分析等高级算法分析技术,这些技术对于提高程序员的算法分析能力具有重要作用。本书的前言及第1章至第7章由张铭翻译,第8章至第15章由刘晓丹翻译。另外,肖毅、柴雯、肖之屏、刘NFB35、赵培翔、李丽、王蜀安、张海东、刘振飞和李健等人也参加了本书的翻译工作,在此对他们的辛勤劳动表示感谢。由于水平有限,难免有不妥之处,欢迎批评指正。前言我们研究数据结构的目的是为了学会编写更高效的程序。既然现在的计算机速度一年比一年快,为什么还会需要高效率的程序呢?这是由于人类解决问题的雄心与能力是同步增长的。现代计算技术在计算能力和存储容量上的革命,仅仅提供了计算更复杂问题的有效工具,而程序的高效性要求永远也不会过时。程序高效性的要求不会,也不应该与合理的设计和简明清晰的编码相矛盾。高效程序的设计基于良好的信息组织和优秀的算法,而不是基于“编程小伎俩”。如果一个程序员没有掌握程序设计简明清晰的基本原理,就不可能编写出有效的程序。反过来讲,简洁的程序需要合理的数据组织和清晰的算法。大多数计算机科学系的课程设置都已意识到,要培养良好的程序设计技能,首先应该强调基本的软件工程原理。因此,一旦程序员学会了程序设计和实现简明清晰的原理,下一步就应该学习有效的数据组织和算法,以提高程序的效率。途径本书描述了许多用于表示数据的技术。这些技术体现在以下的原则中:1.〖ZK(#〗每一种数据结构和每一个算法都有其时间、空间的代价和效率。当面临一个新的设计问题时,设计者要透彻地掌握权衡时间、空间代价和算法有效性的方法,以适应问题的需要。这就要懂得算法分析的原理,而且还需要了解所使用的物理介质的特性(例如,数据存储在磁盘上与存储在主存中时,就有不同的考虑)。2.与代价和效率有关的是时空权衡。例如,人们通常增加空间代价来减少运行时间,反之亦然。程序员所面对的时空权衡问题普遍存在于软件设计和实现的各个阶段,因此必须把这个概念牢记在心。3.程序员应该充分了解一些现成的方法,以免进行不必要的重复开发工作。因此,学生们需要了解经常使用的数据结构和相关算法。4.数据结构服从于应用需求。学生们必须把分析应用需求放在第一位,然后再寻找一种与实际应用相匹配的数据结构。要做到这一点,需要应用上述三条原则。〖ZK)〗教学建议数据结构和算法设计的书籍往往囿于下面两种情形之一〖BFQ〗:〖BF〗一种是教材,一种是百科全书。有些书籍试图融合这两种编排,但通常是二者都没有组织好,而本书是作为教材来编写的。我相信了解那些用于选择或设计可解决问题的数据结构的基本原理十分重要,会比死记硬背书本内容重要得多。因此,本书中涵盖了大多数(但不是所有的)标准数据结构。为了阐述一些重要原理,也包括了某些并非广泛使用的数据结构。?硗猓臼橹谢菇樯芰?一些相对较新但即将得到广泛应用的数据结构。本书可作为本科生一个学期的教学内容,也可作为专业技术人员的自学教材。读者应该具备编程经验,最好学过相当于两个学期的结构化程序设计语言(如Pascal或C语言),并且最好懂得一些C++的基本知识。早已熟悉递归的读者具有一定的?攀啤O刃尥暌幻藕?的离散数学课程对于数据结构的学习也大有裨益。第2章中给出了一些理解本书所必备的数学预备知识。读者遇到不熟悉的数学问题时,可以查阅这一章中的相关内容。尽管本书应该一个学期完成,但书中超过了一个学期的内容,这样就可以为教师提供一些选择的余地。二年级学生的基本数据结构和算法分析背景不太多,可以给他们详细地讲解第1~12章的内容,再从第13章中选择一些专题来讲解,我就是这样来给二年级学生讲课的。背景知识更丰富的学生,可以先读第1章,跳过第2章中除“深入学习导读”之外的内容,简要地浏览第3章和第4章(请着重阅读4.1.3小节和4.2小节),然后详细阅读其余的章节。另外,教师可以根据程序设计实习的需要,选择第13章中的某些专题内容。第13章是针对进行较大的程序设计练习而编写的。我建议所有选修数据结构的学生,都应该做一些高级树结构或其他较复杂的动态数据结构的上机实习,如第12章中的跳跃表或稀疏矩阵。所有这些数据结构都没有二叉检索树难,学完第5章的学生都有能力来实现它们。本书尽量合理地安排内容顺序。教师可以根据需要自由地重新组织内容。读者掌握了第1至第6章后,以下的内容就相对独立了。显然,外排序依赖于内排序和磁盘文件系统。Kruskal最小支撑树算法使用了6.2小节关于UNION/FIND的算法。9.2小节的自组织线性表谈到了8.3小节讨论的缓冲区置换技术。第14章的讨论基于本书的例题。15.2小节依赖于图论知识。一般情况下,大多数主题都只依赖于同一章中讨论过的内容。关于C++本书中所有示例程序都是用C++来编写的,但也并不想难倒那些对C++不熟悉的读者。在努力保持C++优点的同时,我尽量使示例程序简明、清晰。C++在本书中只是作为阐释数据结构的工具,而且实际上只用了C++的一个小子集。特别是书中用到了C++隐蔽实现细节的特性,如类(class)、私有成员(privateclassmember)、构造函数(constructor)、析构函数(destructor)。这些特性支持着一个关键的概念,即体现于抽象数据类型(abstractdatatype)中的逻辑设计与体现于数据结构中的物理实现的分离。为了使本书清晰易懂,我完全回避了C++的某些重要特性,并有意排除或尽量少用一些经验丰富的C++程序员常用的特性,如类的层次(classhierarchy)、继承(inheritance)和虚函数(virtualfunction)。运算符和函数的重载(overloading)也很少使用。C的原始语义比C++所提供的一些类似功能要好一些。当然,上述C++的特性在实际程序中是合理的设计基础,但是它们只能掩盖而并没有加强本书中所阐述的原理。例如,类的继承在避免重复编码和降低程序错误率方面很重要,但是从教育学的标准观点来看,类的继承在若干类中分散了数据元素的描述,从而使得程序更难理解。因此,在本书中,当类的继承对阐述观点有明显作用时才使用继承来定义类(例如第531小节)。但这并不意味着程序员都应该遵从类似的原则,避免代码重复和减少错误是很重要的目标,不要把本书中的示例程序直接复制到你自己的程序中,只把它们看做是对数据结构原理的阐释即可。我需要做出的最痛苦的选择是:在示例代码中是否使用模板(t -
C++Builder实例入门陈雪飞编著C++ Builder是传统C++开发工具的里程碑,是第三代应用程序开发环境。它既从Borland C++中继承了C++语言的语法,又从Delphi中继承了可视化构件库。可以说C++ Builder是快速应用程序开发模式和可重用构件的一个完美的结合,代表着C++语言的未来发展方向。 本书的主要目标是让读者能够轻松地理解一些基本概念,迅速地学会C++ Builder应用程序的开发。希望它是您开启成功之门的一把金钥匙! -
看图学修VCD/DVD吴疆,王跃生编著本书详细地介绍了VCD/DVD机的种类、特点和组成,对VCD/DVD机中常用的元器件进行了分类说明;对VCD/DVD机经常出现的图像故障、伴音故障和操作故障,给出了100种常见故障现象,通过具体的故障实例,分析了故障原因,指出了维修方法。本书采用数字照相技术,真实地拍摄了元器件与设备的外型、故障发生的位置与维修操作的方法,内容通俗、直观、易懂,图文并茂。本书可供VCD/DVD机初级维修人员阅读,也可供无线电爱好者和家用电器维修初学者学习使用。 -
高质量程序设计指南林锐,顾晓刚,谢义军编著高质量软件开发是国内计算机教育的薄弱环节,很多程序员虽然能熟练地掌握编程技术但是缺乏强烈的质量意识,不懂得在开发过程中内建高质量。这使得大部分企业只能依靠大量地测试和改错来提高软件产品的质量,为此付出了高昂的代价。因此,如何有效地提高软件产品的质量是IT企业面临的主要挑战之一。本书论述高质量软件开发方法与C++/C编程规范,共十五章,分两部分:(1)第一部分共四章,重点介绍软件质量和面向对象程序设计方法。(2)第二部分共十一章,重点阐述C++/C编程风格和一些技术专题。本书以幽默的笔调对软件工程和编程作了很好的论述。前期版本曾经在Internet上广泛流传,被国内IT企业的不少软件开发人员采用。本书的主要读者对象是IT企业的程序员和项目经理,以及高年级本科生和研究生。本书作者林锐博士是上海贝尔有限公司软件工程专家,他将从一名程序开发人员成长为软件工程专家的亲身感悟写成活泼生动的文字,将程序设计和软件工程的很多思想方法融于笑谈之中,内容风趣,令人耳目一新。该书早期版本曾在网上广泛流传,得到了国内很多程序员、大学教师和学生们的好评。作者数易其稿,最新版本添加了不少精彩章节。不仅介绍了高质量软件开发的思想方法,而且以幽默的笔调讲述程序员做人做事的道理,完全没有计算机书籍刻板的气息。尤其是附录那篇描述程序员成长的《大学十年》,令人激动,催人奋进。这是一本能打动程序员心灵的佳作。该书专注于"高质量"而不是"语法",是广大迫切需要提高软件产品质量,改进编程思想的程序员、IT企业技术主管的选择。 -
C++ BUILDER编程技巧清宏计算机工作室编著本书以详尽的实例、丰富的内容深入系统地介绍了C++ Builder 5.0在网络和数据库方面的编程技巧和方法。针对每一个技巧的主题,分为着急所在、实现与应用以及专家点评三个部分进行讲解,力示在讲解清楚内容的前提下,缩短篇幅,使读者在有限篇幅下学到更多的技巧。本书按章节编写,各章由既相对独立、又相互关联的技巧主题组成,并且在顺序编排上考虑了前后内容的连续性。本书适合已懂得C++并具有C++ Builder 5.0基本知识的读者学习可供广大程序员、大专院校师生、计算机爱好者和各种培训班学员参考使用。 -
Borland C++ Builder网络编程贺涛编著本书采用理论与实例相结合的形式向读者介绍使用C++Builder进行网络开发的方法和技巧。理论部分涉及到Internet基础知识、网络协议、客户/服务器原理、Web服务器与浏览器、CGI与ISAPI、动态链接库、分布式系统、Socket编程原理、NetBIOS、C++Builder的网络开发控件使用原理及方法等内容。实例是与理论紧密结合的应用程序,主要包括:收发电子邮件系统、文件传输系统、新闻组系统、网络数据传输、网络聊天系统、网络连珠游戏、创建Web服务器应用程序、基于客户用/服务器模式的数据库和多层数据库应用程序开发、应用程序中嵌入浏览器、主机IP地址查询、获取网络适配器信息等。本书内容丰富、语言简洁。要求读者具有使用C++Builder开发应用程序的基本知识。此书可作为广大程序员、大专院校师生、计算机网络爱好者和相关人员的培训教材。
