C/C++及其相关
-
数据结构金远平本书系统、全面地论述数据结构的重要内容,包括基本概念和方法、线性表、链表、树、堆结构、图、排序和搜索结构。在充分继承国内外经典教材的合理体系结构和优秀内容的基础上,结合国内实际教学情况编写,内容系统、精炼,且经过优化整合,在深度和广度上有明显增强;突出重点、难点,强调分析问题和解决问题的方法,以及产生这些方法的背景。书中内容都经过编者深入研究,且在教学实践中反复验证,因而较易理解。本书注重启发创新思维,培养能力;概念准确,逻辑性强;自然引用面向对象设计思想,用C++语言描述算法。本书适于作为计算机科学与技术、软件工程以及相关专业的教材,也可供从事相关工作的科技与工程人员参考。本书前言设计解决实际问题的计算机软件系统,首先需要建立被处理对象的数据模型。数据和世上万物一样,都是具有结构的。因此,人们很自然地用数据结构表示应用领域的被处理对象。为了模拟实际问题的求解过程和现实对象的行为,还必须提供对数据结构的相应操作。数据结构的实现是由下一层数据结构表示上一层数据结构,直至由程序设计语言提供的基本数据类型表示的过程。评价数据结构表示优劣的标准主要是其能否方便且有效地实现需要的操作,而实现操作的算法设计及其效率高低也依赖于数据结构表示。因此,数据结构的定义、表示以及操作的实现相互关联,都是数据结构研究的重要内容。计算机软件系统可看成是通过不同层次的数据结构及其操作实现的。通过多层表示,完成计算机对应用领域问题的求解过程。在此,中间层数据结构起着核心作用。数据结构的研究产生了一批通用性强、具有很高实用价值的中间层数据结构,如数组、字符串、集合、线性表、栈、队列、链表、树、图、符号表等。这些结构不仅为我们提供了设计软件系统的有用工具,而且向我们展示了在广泛的应用领域表示与解决问题的精巧思路和技术。系统地学习和掌握数据结构知识和方法,对于提高设计与开发软件系统尤其是复杂软件系统的能力,无疑是十分重要的。因此,数据结构早已成为计算机科学与技术和软件工程等专业的核心课程。数据结构课程内容丰富,涵盖了计算机科学与技术的许多重要的成果,分析问题和解决问题的思路和方法新颖,创新点多,技巧性强,对学生专业素质的培养作用明显,但同时也是一门较难学习的课程。我校计算机科学与工程系开设的"数据结构"课程一直采用美国南加州大学教授E.Horowitz等编著的《数据结构基础》作为教材。该书注重培养学生分析问题、解决问题的能力,在数据结构和算法设计以及时空复杂性分析的深度和广度方面特色明显。但在教学中也感到该书内容的表达形式学生较难理解,方法和技术的论述还不够简明扼要,有的内容不够精炼,部分章节存在一些小错误,教学效果较多依赖于教师的讲解。为此,编者在充分继承该书体系结构和内容优点的基础上,吸收其他教材长处,进行优化整合,并结合自身多年的教学改革与实践经验,编写了这本教材,力图使其系统全面,内容深刻,表达简洁,易于理解,以适应计算机科学与技术及相关专业的教学需要。本书共分为8章。第1章论述数据结构的基本概念和方法,包括数据结构与软件系统,数据抽象与封装,算法,递归,性能分析、性能测量,以及效率与权衡等。特别引入了代价分摊分析方法,将相关的操作序列联系起来分析,从而得到更接近实际代价的结果。此外,还从软件重用的角度描述了C++的模板机制。第2章介绍线性表的概念及其顺序表示方法,讨论了通过线性表表示的多项式、稀疏矩阵和字符串等结构。在描述著名的字符串模式匹配算法KMP时,采用了简明易懂的图示方法。还通过两个字符串的最长公共子序列问题的求解,展示了利用动态规划改进算法效率的方法。由于栈和队列是受限的线性表,因此也被整合到这一章。此章不仅给出了通用栈和队列的实现方法,还分别通过求解迷宫问题、表达式计算以及机场模拟问题描述了栈和队列的应用。第3章论述以链表形式实现线性表的方法和技术,讨论了遍历通用模板类容器对象的游标技术。还介绍了广义表的功能及其实现方法,并结合C++的动态类型,讨论了异构表的实现方法。第4章介绍最基本的非线性结构:树,包括树和森林的概念、二叉树、二叉树的遍历及应用、线索二叉树、胜者树、败者树、森林的二叉树表示及遍历、树在并查集问题中的应用和二叉树计数等。特别给出了有一定难度的中序线索二叉树的后序遍历算法,还给出了生成所有可能的二叉树的算法。第5章介绍支持各种优先队列的堆结构,包括最大堆、最大最小堆、双堆、左偏树、二项式堆和斐波纳契堆。在分析二项式堆和斐波纳契堆的性能时,采用了代价分摊方法。第6章介绍更普遍的非线性结构:图,包括图的定义和表示方法、图的遍历、图的连通性、最小代价生成树、最短路径和传递闭包以及活动网络等。特别讨论了应用斐波纳契堆改进最短路径算法性能的技术。在数据结构中,数据元素之间的次序是一种重要的关系。按照数据元素的特定属性对其进行排序是最频繁的计算任务之一。第7章介绍各种典型的排序方法,包括插入排序、希尔排序、快速排序、归并排序、堆排序、基数排序、基于链表和映射表排序结果的顺序化以及外排序。第8章介绍符号表概念以及实现符号表的各种结构,包括二叉查找树、AVL树、2-3树、Splay树、B树、B+树、Trie、静态散列和动态散列等,特别分析了二叉查找树的平均性能。在分析Splay树的性能时,采用了代价分摊方法。此外,还论述了上述结构的演变关系,帮助读者理解其设计思想。本书可供各种层次的读者选用,既适用于教学,也可供从事相关工作的科技与工程人员参考。可以按"数据结构基础"(64学时,必修)和"高级数据结构"(24~32学时,选修)两门课组织教学。本书的2.4、2.9、3.10、4.5、4.8、4.9、5.2~5.6、6.4、7.8、8.4、8.5、8.7和8.9节可作为"高级数据结构"课程的内容,其余作为"数据结构基础"课程的内容。本书引用了数据结构研究的大量先进成果,在此,作者谨向这些成果的原创者表示崇高的敬意和衷心的感谢。同时,对本书所引用的参考文献的作者也表示衷心的感谢。在本书的写作过程中,作者与徐宝文、孙志挥、王茜、徐冬梅、王树梅、吉根林和张丽晖老师开展了卓有成效的讨论,并由此得到很多启发。南京大学计算机科学与技术系陈道蓄教授认真审读了全部书稿,并提出了十分宝贵的修改意见,在此对他们表示最诚挚的谢意。感谢清华大学出版社的鼓励与支持。感谢东南大学教学改革基金的资助。还要感谢作者的众多学生,他们在数据结构课程学习过程中表现出的热情与执着给了作者很大的鼓励,与他们的讨论和交流使作者对教学内容和教学方法的改进有了更深刻的认识。 -
图像模式识别杨淑莹编著本书介绍图像模式识别的各种算法及其编程实现步骤。全书共分为10章,内容包括:模式识别的基本概念,位图的基础知识,分类器设计,模板匹配分类器,基于概率统计的Bayes分类器,几何分类器,神经网络分类器,图像分割与特征提取,聚类分析,模糊聚类分析,遗传算法聚类分析。本书实用性强,选材新颖,包括了神经网络、模糊集理论、遗传算法等新技术,针对每一种模式识别技术,书中分为理论基础、实现步骤、编程代码三部分,所有算法都用VC++编程实现,程序结构简单,代码简洁,便于初学者很快掌握模式识别技术。本书可作为高等院校计算机工程、信息工程、生物医学工程、智能机器人学、工业自动化、模式识别等学科本科生、研究生的教材或教学参考书,亦可供有关工程技术人员参考。 -
程序设计教程姚普选、仇国巍本书以VisualC++.NET为工具,循序渐进地介绍了计算机程序设计的基本思想和常用的程序设计方法,并简明扼要地介绍了与之相关的算法、数据结构以及其他方面的知识。主要内容包括程序设计基础知识、算法基本常识、数据类型知识和应用、程序结构知识和应用、面向对象程序设计方法、用户界面设计方法、图形图像处理及多媒体播放程序设方法,以及数据文件的使用和数据库应用程序设计方法等。本书讲求文字的准确性、思想的连贯性、方法的实用性和内容的先进性,对于重要的名词、抽象的概念、常用的技术,以及具有递进关系的系列内容的讲解,都根据教学活动中的实际情况进行了精心地安排。本书的编写体系考虑到了不同层次读者的需求,适合于作为高等院校计算机程序设计课程的教材,也可供学习程序设计的其他人员使用。本书前言计算机程序设计是计算机基础教育的重点和基础。作为高等院校的学生,尤其是将来要成为工程技术人员的理工科学生,不能只满足于使用别人设计好的软件,而应该具有一定的程序设计能力。实际上,程序设计并不是一件容易的事情。就现状而言,要编程序解决一个实际问题,首先要理解问题本身的逻辑结构和工作方式,然后再考虑选用哪种程序设计语言和工具。而在程序设计过程中,还要考虑问题在计算机中如何表示?应该采用哪种算法?按照什么方法和步骤来编制和调试程序等等。这涉及到了程序设计语言的语法规则、程序设计工具的使用方法、算法设计策略、数据结构常识、程序设计的一般方法和技巧等多方面的知识和技能。要使学生在有限的时间内掌握程序设计技术,首先要有能够将这些知识和技能有机地融合在一起的教材。多年来,围绕着计算机程序设计课程,积累了一大批各具特色的教材和参考书,其中不乏立意深刻、内容丰富的好教材。但当程序设计发展到了面向对象设计方法、可视化设计环境之后,因为需要解决的实际问题的范围越来越广、程序设计工具越来越复杂、程序设计手段更为丰富多彩等各种原因,有关的书籍大都有所侧重,或者详细地介绍程序设计语言和软件开发工具的使用方法,或者系统地讨论程序设计的一般方法,而将这两者有机地结合在一起并适合于教学的书籍较少,有鉴于此,笔者编写了这本《程序设计教程(VisualC++.NET)》。本书选择了核心的程序设计技术以及VisualC++.NET软件开发环境的常用功能,由浅入深地进行了详细的讲解,力图使读者在有限的时间内,对课程的相关知识有一个清晰、完整的理解。本书中对重要的概念和方法一般都先在例题或讲解中以极易理解的简单方式加以运用,然后在其后的某个章节集中讲解,这样既起到了分散难点的作用,便于初学者理解和掌握,又避免了因刻意分散难点而形成的相关内容割裂开来,不便查阅、不易形成完整印象的弊病。同时,本书注重知识和技能的合理调配,力图避免因强调某些方面、忽略其他方面所造成的程序设计能力整体上的缺失。本书可作为高等院校程序设计课程的教材,也可作为程序设计工作者的参考书。采用本书作为教材的程序设计课程以64~72(包括上机时数)学时为宜。本书每章都配备了内容丰富的习题,不同类型的读者可根据自己的实际情况选作部分习题。本书第1章~第6章由姚普选编写,第7章~第9章由仇国巍编写,最后由姚普选统稿。程序设计技术博大精深,其内容绝非一本书所能包括。而且,书的编写不可避免的要受到作者的思想水平、时间、篇幅等种种限制。因此,作者希望传达的信息是否到位或者是否得体,还要经过读者的检验。望广大读者批评指正。姚普选2004年10月 -
Visual C++教程郑阿奇主编;丁有和编著本书以丰富的实例介绍了如何使用VisualC++6.0编写Windows应用程序。全书共分9章,介绍VisualC++6.0的开发环境,C++语言基础,Windows消息的使用方法,利用MFCAppWizard编写Windows应用程序的具体步骤,对话框及常用控件的相关知识,菜单、工具栏和状态栏的基本知识及它们的制作方法,框架窗口、文档和视图、文本和图形操作,数据库的相关知识,ADO编程过程,网络方面的相关知识及如何利用WinSocket进行网站编程等内容。本书适合作为高职学校计算机及通信专业学生的教材,也适合作为普通院校计算机及通信专业的本科和专科学生的教材,还适合作为VisualC++自学者的的入门教材和软件开发人员的参考书。 -
《新编C语言程序设计教程》习题解答及学习指导李军民 编著本书是配合“C程序设计”课程的学习参考与实验指导书。全书内容包括两篇:第一篇主要针对《新编C语言程序设计教程》(第二版)给出了相应习题的参考解答与思考题;第二篇是根据C语言程序设计的教学进度与要求编排了具有针对性的上机实验指导。同时,在附录中介绍了在TurboC环境下的上机操作过程和在VC环境下的上机操作方法。本书具有较高的针对性与实用性,涵盖知识丰富、条理清晰,是学习C语言程序设计的一本很好的参考书、练习书。无论采用任何C语言教材都可以选用本书作为学习参考书与实验指导书。本书适用于高等学校本、专科学生或计算机培训班使用,也可供其他自学者参考。 -
C程序设计题解与上机指导谭浩强编著本书是与谭浩强所著的《C程序设计》(第三版)(清华大学出版社2005年出版)配合使用的参考书。内容包括: (1)《C程序设计》(第三版)一书的习题和参考解答,包括了该书各章的全部习题,约150题,对全部编程习题都给出了参考解答。(2)上机指导,详细介绍了在Turbo C 2.0、Turbo C++ 3.0和Visual C++ 6.0集成环境下编辑、编译、调试和运行程序的方法。(3)上机实验内容,提供了学习本课程应当进行的12个实验(每一个实验对应教材中一章的内容)。本书内容丰富、概念清晰、实用性强,是学习C语言的一本好参考书,不仅可以作为《C程序设计》(第三版)的参考书,而且可以作为任何C语言教材的参考书;既适于高等学校师生或计算机培训班使用,也可供报考计算机等级考试者和其他自学者参考。本书特色:·至2004午底本书累计发行了近300万册。·本书包括三部分。第一部分为“C程序设计习题与参考解答”。在这一部分中包括了清华大学出版社出版的《C程序设计(第三版)》一书的全部习题。对其中一些概念问答题,山于能在教材书中直接找到答案,为节省篇幅本书不另给出答案。对其他类型的习题都一律给出参考答案。对编程序题,除给出参考程序外,还给出运行结果,以使读者对照分析。·本书第二部分是“C语言上机指南”。介绍了Turbo C 2.0、Turbo C++3.0和Visual C++ 6.0集成环境的上机方法,相信对读者上机练习会有帮助。·本书的第三部分是上机实验内容。在这部分中提出了上机实验的要求,介绍了程序调试和测试的初步知识,并且具体安排了12个实验(每一个实验对应教材中一章的内容)。·对所有程序都重新进行了调试,对部分程序进行了重写或较大的修改完善,全部程序都在Turbo C++ 3.0或Visual C++ 6.0环境下调试通过。 -
C程序设计谭浩强著本书曾荣获:原电子工业部优秀教材一等奖全国高等院校计算机基础教育研究会优秀教材一等奖高校出版社优秀畅销书特等奖C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。本书的第一版于1991年出版,第二版于1999年出版。由于本书作者具有丰富的教学经验和编写教材的经验,并针对初学者的特点,精心策划、准确定位,使得本书概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。本书被普遍认为是学习C语言的好教材,并被全国大多数高校选用。十多年来本书累计发行了700多万册,创同类书的全国最高记录,是学习C语言的主流用书。本书曾荣获原电子工业部优秀教材一等奖、高校出版社优秀畅销书特等奖、全国高等院校计算机基础教育研究会优秀教材一等奖。根据发展的需要,作者对本书进行了再修订,使本书更加完善,更便于学习。书中全部例题中的程序均已调试通过。本书内容新颖、体系合理、逻辑性强、文字流畅、通俗易懂,是学习C语言的理想教材。凡具有计算机初级知识的读者都能读懂本书。本书可作为高等学校各专业的正式教材,也是一本自学的好教材。另外本书还配有辅助教材《C程序设计题解与上机指导》(第三版)。 -
C++语言和面向对象程序设计教程习题解答及上机实践宛延闿[等]编著本书是与《C++语言和面向对象程序设计教程》(宛延间等编著)一书配套使用的所有14章习题的详尽解答及上机练习。习题内容丰富、编排精炼准确。习题类型有填空题、选择题、改错题、问答题和编程题等。通过解题和上机可加强读者对C++语言基本概念、面向对象程序设计和面向对象建模内涵的理解。本书可作为高等院校学生学习C++语言和面向对象程序设计的补充教材,也是广大读者和科技工作者学习C++语言和面向对象程序设计必备的参考书。 -
CPID/FPGA 与ASIC 设计实践教程朱如琪本书以大规模可编程逻辑器件为基础,详细分析了pld、cpld/fpga器件的原理、设计选型、开发流程、配置和下载电路;介绍了verilog hdl语言和 eda设计软件;通过实例介绍了利用现代eda技术设计数字电路和数字系统的方法。 主要内容为:第1,2章介绍了eda技术和可编程逻辑器件的原理、常用的 eda设计软件、cpld/fpga器件的一些性能指标、cpld/fpga器件的编程方法和下载电路;第3章介绍了altera公司的quartus ii设计软件的使用;第4,5章介绍了电子电路与verilog hdl语言,以数字电路与逻辑设计为基础,分析了利用verilog hdl描述数字电路的方法;第6章首先按照数字电路与逻辑设计课程的顺序,通过实例说明了常用数字逻辑电路的实现方法,然后讨论了利用verilog hdl设计可综合的数字电路的一些设计方法与技巧;第7,8章主要介绍了综合性设计实验;最后给出了一些经典的数字电路设计练习项目。 本书可用作高等院校电类、机电类或非电类专业的研究生、本科生和专科生教材,也可作为电子系统设计工程技术人员学习eda技术的参考书。 -
C语言程序设计上机指导与习题集单洪森、恰汗·合孜尔暂缺简介...
