C/C++及其相关
-
C程序设计实训教程杨金龙主编;杨兴明,陈彦许,崔会军等编著本书是21世纪高职高专信息技术实训教材中的一本,本书可以帮助读者更好地掌握C语言程序设计课程的基本内容和学习方法,提高上机实验能力和程序设计能力。 本书讲述了程序的开发过程及常见的错误、Turbo C 2.0集成开发环境的使用、在各种计算机系统上常用的库函数及使用说明、Turbo C 2.0编译错误信息及处理方法和屏幕、图表函数及用法等内容。 本书内容丰富、系统全面、概念清晰、实用性较强,是学习C语言的一本很好的实践参考书。 本书可作为高等职业院校、高等专科学校、成人高等学校软件职业技术学院专业学生学习用书,也可以供继续教育学校以及程序爱好者使用。 -
C语言实例解析精粹曹衍龙,林瑞仲,徐慧 编著本书共分8篇,分别为基础篇、数据结构篇、数值计算与趣味数学篇、图形篇、系统篇、常见试题解答篇、游戏篇和综合实例篇,汇集了近200个实例,基本涵盖了目前C语言编程的各个方面。书中以具体的实例为线索,特别注重对例题的分析、对知识点的归纳、对求解方法的引申,同时程序代码中融会了C语言的各种编程技巧,条理清晰,以方便读者举一反三,开发出符合特定要求的程序。本书的配套光盘中涵盖了书中所有实例的源代码,以方便读者学习和查阅。本书适合具有初步C语言基础的读者阅读,可作为高校相关专业的辅导教材,也可作为C语言使用者进行程序设计的实例参考手册。 -
C程序设计教程刘振安编著本书以实例为主线,以培养C语言应用能力为重点,强调理论教学与实验密切结合的同时,注意介绍ANSIC已经更新的内容,并与C++接轨,例如,引入函数原型,void关键字及const限定符和使用方法等。重点介绍基本理论、基本知识和基本技能,熟悉掌握编译环境,尤其培养从事软件初步开发的能力,并为后续课程的学习打下基础。 各章均有典型例题和错误分析,并结合本章内容给出实验题和习题,同时从实用的观点出发,专门开设一章课程设计实例,结合实例详细介绍头文件的编制、多个C语言文件及工程文件的编制等方法,以培养学生的实际应用能力。 本书取材新颖、结构合理、概念清楚、语言简洁、通俗易懂、实用性强,易于教学和受业,重在培养学生的应用技能。本书特别适合作为高校教材,也可以作为培训班和自学教材及工程技术人员的参考书。 -
标准C语言程序设计及应用周纯杰等编著本书以ANSIC++标准为准则,采取循序渐进、突出重点、分散难点的编写方法, 系统地讲授作为ANSIC++内核的C语言的基本语法和程序设计方法。全书共分11章:C语言基础知识,数据类型、运算符和表达式,程序和流程控制,变 量的存储类型,数组,指针,函数,结构和联合,文件,编译预处理,C语言的实际应 用。每章都有例题、小结、习题,便于读者学习与复习。这些例题都是精选的,并经过上 机检验的。为了满足读者上机练习的需要,书后还给出了5个附录,介绍C语言中常用库 函数、BorlandC++V 3. 1集成环境下运行C语言程序的方法,以及在上机过程中常见的 编译错误及其原因。本书内容新颖、通俗易懂,非常重视对学生编程思想和编程规范的培养,是学习C语 言的理想教材。 -
纯粹C++编程教程(美)Amir Afzal著;吴平译;吴平译本书是专门为具有C语言编程知识的读者与学生编写的,是论述C++语言概念及语法的通用C++书,它围绕C++语言这个中心对全书进行谋篇布局,从介绍非面向对象的函数和运算符开始,逐步过渡到引出C++面向对象特性,讨论更复杂的概念。读者凭借该书打下坚实的C++知识基础之后,即可触类旁通、举一反三,在C++理解和实践方面满怀信心地更上一层楼,把C++语言知识运用到自己感兴趣的领域。本书特点:每章内容简明扼要,并配有说明、例子、表格和图形;用图标和颜色提高文本可读性;体例保持一致性;每章最后附有复习题和编程练习。本书配套光盘内容为部分程序源代码。 -
EVC高级编程及其应用开发汪兵等编著本书特色:●EVC高级编程技术深入浅出地讲述了WINCE开发的重点和难点问题,包括WINCE及EVC概述、图形编程、对话框控件、进程、线程、文件和注册表、WINCE基础数据库编程、WINCE扩展数据库编程、通讯编程、UDP和PING编程、TCP编程、DLL编程、COM编程。●实例开发技术本书中讲述的实例能够辅助开发人员设计出功能强大、性能稳定、界面美观的WINCE应用程序。读者在具有一定C++和WINCE知识的基础上,通过本书的学习,可以快速提高WINCE编程能力和实际开发水平。●源代码下载:http.//www.waterpub.com.cn本书中的实例源代码可以直接从中国水利水电出版社网站下载。随着个人掌上电脑PocketPC、智能手机(SmartPhone)及工业控制器等各种嵌入式产品的不断发展,人们对MicrosoftWindowsCE也越发关注起来,使用WinCE可以为新一代智能设备设计高性能的应用程序。本书深入浅出地讲述了WinCE开发的各个方面,并解决了开发过程中的重点和难点问题。全书共分13章,分别为WinCE及EVC概述、图形编程、对话框控件、进程、线程、文件和注册表、WinCE基础数据库编程、WinCE扩展数据库编程、通讯编程、UDP和PING编程、TCP编程、DLL编程以及COM编程。读者在具有一定C抖和WinCE知识的基础上,通过本书的学习,可以快速提高WinCE的编程能力和实际开发水平。本书适用于具有WinCE初级编程能力的读者,可作为高等院校本科生、研究生的自学参考书和毕业设计的指导书,也可作为相关软件开发人员的参考书。为方便读者学习及相关软件开发人员的实际应用开发需要,本书提供书中所有实例的源代码文件,读者可以从中国水利水电出版社网站(www.waterpub.com.cn)下载。 -
C和C++程序设计教程杨庆祥,钟家民主编全书共分16章,主要内容包括:C语言概述、数据类型、运算符与表达式、语句和流程控制、函数、变量的存储类别和作用域、数组、预处理、指针、位运算、结构体和联合、文件、转向C++、类与对象,继承、重载与转换、VisualC++.NET集成开发环境、VisualC++.NET程序设计实例等内容。本书以C、C++、VisualC++.NET为主线,按照难点分解,平稳过渡、循序渐进的思路组织编排章节内容,并且每章都配有大量的编程实例供读者练习,目的是使读者从零起步,快速入门,轻松地实现从结构化的C语言程序设计向面向对象的C++程序设计的过渡,再到可视化的VC.NET程序设计的飞跃,让读者快速冲向程序设计的前沿阵地。本书既可作为高职高专院校计算机专业教材,也可作为计算机软件培训教材,,还可作为广大计算机编程爱好者的参考用书。 -
Visual C++程序设计教程杨庆祥,钟家民主编本书是一部介绍VisualC++的基础教材,共分为14章,主要内容包括:VisualC++.NET集成开发环境,C++编程基础,菜单、工具栏和状态栏,控件,对话框,鼠标和键盘,文档/视图结构,图形设备接口,文件与打印,动态链接库,多线程,数据库编程,网络编程及异常处理与程序调试等。本书内容深入浅出、图文并茂,使读者快速入门,轻松掌握VisualC++.NET的基本知识和使用方法。同时,本书给出了大量编程实例及其详细操作步骤,帮助读者学习使用VisualC++.NET开发应用程序的方法,从而提高实际软件开发能力。本书既可作为高职高专院校计算机专业教材,也可作为计算机软件培训教材,还可作为广大程序开发爱好者参考用书。 -
C++大学教程(美)Eric Nagler著;侯普秀,曹振新译内容简介目录 本书内容详尽,示例丰富,通过400多个简短易懂的示例深入介绍了C++程序设计方法。全书共分18章,前5章讲解了C++编程和C语言过程化编程之间的区别,内容包括从C到C++的迁移、命名空间、输入输出基础、引用变量和动态内存分配;后面各章介绍了一些常用类及其用、构造函数和析构函数、异常处理、函数重载、继承、模板、输入/输出流、操丛符、string类及标准模板库等内容;本书最后的附录A列出了相关的参考书目,附录B则提供了使用C++的一些准则。本书结构特色实用性和可操作性强。提供了大量的编程示例,帮助学生透彻理解所学的概念。通过大量的练习题进一步巩固所学的内容,确保学生能够真正掌握各章节的内容。科简短明了的"小结"部分总结了各章节的主题内容,使学生对所学的内容一个整体的认识。"注意"部分重点说明了与章节中所介绍概念相关的重要内容。 第1章 由C迁移到C++1.1 概述1.2 C与C++的比较1.3编译器如何识别C++程序1.4预处理器如何识别环境1.5新的注释风格1.6永远不要假定(隐式地使用int类型)1.7 main()的默认返回值1.8声明与定义的区别1.9函数声明中的形参名称1.1 O 函数定义中的形参名称1.1l 所有的函数在调用前必须先声明l-1 2空圆括号的含义1.13函数参数的默认值1.14初始化与赋值的区别1.15放置变量声明的地方1.16 for循环内的变量声明1.17标记名成为类型名1.18 C++与C中枚举类型的区别1.1 9初始化全局变量1.20数组初始化1.2 1 布尔类型1.22 void木指针1.23 使用O,而不是宏NULL1.24 关键字const1.24.1 所有的常量必须初始化1.24.2将常量值的参数传递给函数的含义1.24.3 函数返回值为常量的含义1.24.4 const如何影响指针1.24.5 C++与C中字符数组的区别1.24.6如何支持char const*类型的数组1.24.7 C以及C++处理const方式的区别1.24.8使用const而不是#define1.24 变量的连接1.25新的类型强制转换风格1.25.1 类型强制转换以及转换的区别1.25.2类型强制转换的一般格式1.25.3 static cast1.25.4 reinterpret cast1.25.5 const-cast1.25.6您不会犯错1.26 C以及C++关键字第2章命名空间2.1 概述2.2存在的问题2.3 如何创建命名空间2.4作用域分解运算符2.5 如何访问命名空问的成员2.5.1 直接访问命名空间的成员2.5.2 using声明:访问命名空间成员的另一种方法2.5.3 using指令:访问命名空间成员的另一种方法2.6 小心避免不明确的情况2.7无名的命名空间2.8命名空间的别名2.9 Koenig查找规则第3章输入/输出基础3.1 概述3.2使用新函数的理由3.3头文件:命名约定3.4 iostream头文件3.5 cout对象3.5.1插入运算符3.5.2显式地限定cout对象3.5.3使用using声明来访问cout对象3.5.4使用using指令来访问cout对象3.6关于正确使用std命名空间的建议3.7 了解运算符的优先级3.8输出格式3.9 cin对象3.1O检查文件是否结束第4章引用变量4.1 概述4.2存在的问题4.3如何创建引用变量4.4所有的引用都必须初始化4.5 引用的作用4.6使用const限定引用4.7何时不需要使用引用4.8没有"常量引用"4.9创建对指针的引用4.10创建对数组的引用4.11 由函数返回引用第5章动态内存分配5.1 概述5.2如何为单个对象分配动态内存5.3如何初始化基本类型5.4空圆括号的含义5.5如何释放单个对象的空闲空间5.6如何为对象的数组分配空闲空间5.7如何释放对象数组的空闲空间5.8保持平衡5.9如何使用new和delete在空闲存储区中存储字符串5.10如何分配和删除多维数组5.11 命名该空间5.12两个程序输出示例第6章类6.1 概述6.2 C中的结构6.2.1 全局函数6.2.2 C存在的问题6.3初识封装6.3.1修订后的Circle抽象6.3.2必须支持常量对象6.4结构与类6.5类的用途6.6类的组件6.7如何编写类定义6.7.1 类声明与类定义6.7.2关于输入/输出类6.8数据隐藏的原则6.9访问限定符6.9.1 private关键字6.9.2 public关键字6.9.3 protected关键字6.9.4选择编码风格6.10模块化并实现隐藏6.10.1如何模块化6.10.2用户的任务6.10.3本节小结6.1 1 如何通过实例来访问类成员6.12 内联函数6.12.1 内联函数的含义6.12.2 内联函数与宏的对比6.12.3 使得内联函数对编译器有效6.12.4放置内联函数的地方6.12.5 内联函数的连接6.12.6如何编写全局成员内联函数6.12.7 如何编写类成员内联函数6.12.8隐式内联和显式内联的比较6.13 mutable关键字6.14如何显示类的内容6.15类中的枚举类型6.15.1使用枚举的原因6.1 5.2私有枚举6.1 5.3 公有枚举6.15.4 "Enum Hack"的作用第7章构造函数和析构函数7.1 概述7.2构造函数的定义7.2.1语法规则7.2.2何时不调用构造函数7.2.3编译器提供的默认构造函数7.2.4默认的构造函数:普遍定义7.2.5初始化常量对象7.2.6构造函数重载7.2.7不能直接调用构造函数7.3析构函数的定义7.3.1编译器提供的析构函数7.3.2析构函数的作用7.3.3编写您自己的析构函数7.3.4语法规则7.4如何实例化类并调用默认构造函数7.5如何实例化类并向构造函数传递参数7.6如何阻止使用默认构造函数的实例化7.7隐式类型转换7.8复制构造函数7.8.1默认复制构造函数7.8.2复制构造函数的语法7.8.3复制构造函数的数量7.8.4浅复制与深复制7.8.5编写您自己的复制构造函数7.8.6如何阻止对象复制7.9函数风格的强制转换7.10初始化与赋值7.11基/成员初始化列表7.11.1默认初始化7.11.2强制使用基/成员初始化列表7.11.3 另一种初始化调用的情况7.12关于指针7.13 形参名与类成员名7.14非静态数据成员的初始化顺序7.15 基本类型的数组作为非静态数据成员7.16用户自定义类型数组作为非静态数据成员7.17如何创建用户自定义实例的数组7.18如何声明常量数据成员数组7.19如何在空闲存储区中创建用户自定义类型7.20如何在空闲存储区中创建用户自定义类型的数组7.2l调用new时的语法第8章类的其他特征8.1 概述8.2 this指针8.2.1 解引用this指针来复制调用对象8.2.2解引用this指针以允许链接函数8.3静态类数据成员8.3.1 在类的定义中初始化静态类数据成员8.3.2静态成员函数8.3.3用于生成随机数的类8.3.4 Die类8.3.5 Dice类8.4类的大小8.5友元函数8.5.1 类如何授权一个函数作为它的友元函数8.5.2成员函数和非成员函数8.5.3 使用非成员非友元函数替代友元函数8.5.4在命名空间中声明类的友元函数8.6友元类8.7 类的封装8.8运算符转换函数8.8.1 用途8.8.2语法8.9类成员指针8.9.1全局函数指针8.9.2指向非静态类成员函数的指针8.9.3 使用指向非静态成员函数的指针调用函数8.9.4指向静态类成员函数的指针第9章异常处理9.1 概述9.2如何抛出异常9.3如何捕获异常9.4 catch代码块的匹配处理9.5异常处理的一个简单示例9.6释放堆栈9.7如果调用new失败怎么办9.8如何防止new抛出异常9.9异常的传播9.10如何处理指向空闲空间的指针9.11 不能销毁还没有创建的对象9.12重新抛出对象9.13 从子对象成员中捕获抛出的异常9.14function-try-blocks9.15子对象成员和指针的混合使用9.16对象的局部结构9.17编写异常.安全代码9.17.1 堆栈中的简单对象9.17.2堆栈中的对象数组9.17.3 空闲存储区中的简单对象9.17.4再论空闲存储区中的简单对象9.17.5 空闲存储区中的对象数组9.17.6再论空闲存储区中的对象数组9.18析构函数和异常处理9.19异常规范9.20 出错条件9.20.1 意外错误9.20.2终止错误9.21 编译器如何对待异常规范9.22为类定义operator new()函数第10章函数重载10.1 概述lO.2几个关于函数重载的示例10.3忽略返回类型10.4 const限定参数按值传递l0.5 const限定参数按指针传递10.6 const限定参数按引用传递10.7可变成员函数和常量成员函数10.8 重载决议10.9根据指针类型重载10.10名称重整10.10.1如何避免名称重整10.10.2类型.安全连接10.11运算符函数重载10.11.1运算符优先级表10.11.2重载运算符的命名10.11.3默认参数。10.11.4 C++自带的运算符10.11.5不能改变优先级10.11.6不能改变"Narity"10.11.7不能改变结合性10.11.8成员函数与非成员函数10.11.9至少支持一个类实例10.11.10中缀表示法和函数表示法10.11.1l 二元成员函数和隐式类型转换10.11.12多次重载或者允许隐式类型转换10.11.13运算符的重载10.11.14赋值运算符10.11.15函数调用运算符10.11.16下标运算符10.11.17间接成员运算符10.11.18复合赋值运算符10.11.19自增运算符和自减运算符10.11.20重载逗号运算符10.11.21重载逻辑与和逻辑或运算符10.11.22重载插入运算符10.11.23运算符小结第11章继承11.1 概述11.2 内存中的派生类实例1l.3 使用继承创建is-a关系11.4如何定义派生类11.5再论结构和类11.6 关键字protected11.7访问特权11.8基类"存取器"函数11.9修改继承访问11.10 函数隐藏11.11 派生类成员函数如何调用基类成员函数11.12管理函数11.12.1如何编写管理函数11.12.2派生类到基类的标准转换11.12.3 隐藏非成员函数11.12.4不要对数组进行向上类型转换11.1 3 多态性11.14多态性和虚函数11.14.1 友好的程序代码和不友好的程序代码11.14.2重写虚函数11.14.3虚析构函数11.14.4从基类的构造函数中调用虚函数11.1 5抽象基类11.15.1 再论关于贷款的示例11.15.2关于虚函数的异常规范11.16里氏代换原则11.17多重继承11.17.1 虚基类11.17.2初始化虚基类第12章模板12.1 概述12.2 函数模板12.2.1 不使用宏的原因12.2.2如何编写函数模板12.2.3优化代码12.2.4在何处使用函数模板12.2.5针对不同的参数类型进行实例化12.2.6显式地指定类型12.2.7默认的函数参数12.2.8完全特殊化函数模板12.2.9如何调用特殊化的函数12.2.10对特殊化和重载的选择12.2.11特殊化greater()函数模板12.3类模板12.3.1如何定义类模板12.3.2在类定义之外定义成员12.3.3实例化类模板12.3.4另一个模板的模板实例化12.3.5默认模板参数12.3.6在类模板中声明另一个友元类12.3.7在类模板中声明友元函数12.3.8特殊化类模板12.3.9在类模板中嵌入类模板12.3.10从类模板中派生新类12.4非类型模板参数12.4.1 默认的模板参数和特殊化12.4.2关于使用非类型模板参数的有趣示例12.5 成员模板12.6模板模式12.7关键字typename第13章运行时类型信息l3.1 概述13.2动态转型态13.3动态转型态是如何工作的13.4关键字typeid第14章输出流14.1 概述14.2实例std::cerr和std::clog14.3如何格式化输出14.3.1位格式标志14.3.2如何打开位格式标志14.3.3 如何以合适的基数显示整数14.3.4如何显示整数的基数设置14.3.5如何显示整数的符号14.3.6如何将输出显示为大写字母14.3.7如何显示字符14.3.8如何设置输出字段宽度14.3.9如何指定填充字符14.3.10如何指定字段对齐14.3.1 1 如何格式化浮点型数值14.4如何显示bool类型14.5如何显示地址14.6如何输出到内存缓冲区14.6.1 成员函数ostream::flush()14.6.2预定义的stdio和iostream流的混合使用第15章输入流l5.1 概述15.2如何检查错误15.2.1错误报告标志15.2.2访问成员函数15.2.3直接测试iostream对象15.2.4成员函数std::basic ios::clear()15.2.5如何清空输入流的缓冲区l5.3 字符输入15.3.1使用提取运算符实现对字符串的输入15.3.2限制输入字符的个数15.3.3使用std::istream::getline()实现字符串输入第16章操纵符16.1 概述16.2操纵符的格式16.3一些简单的操纵符l6.4 不带参数调用的内置操纵符16.5使用带有一个参数的操纵符16.6使用带有一个参数的内置操纵符第17章文件输入/输出17.1 概述17.2文件输入/输出类17.3文件输出17.3.1文件名参数17.3.2文件模式参数17.3.3验证文件是否打开17.3.4关闭打开的文件17.3.5输出磁盘文件示例1 7.4 文件输入1 7.5文件位置标记l 7.6 文件更新1 7.7 二进制模式17.8未格式化的输出17.9未格式化的输入17.10重定向I/O第1 8章string类与标准模板库18.1概述18.2 string类l8.3标准模板库18.3.1 std::vector类18.3.2迭代器18.3.3迭代器的类型18.3.4基于string的I/O18.3.5标准模板库中的算法18.3.6标准模板库的主要容器18.3.7比较对象附录A参考书目附录B C++准则 -
C++ Builder 6程序设计教程陆卫忠,刘文亮等编著《C++Builder6程序设计教程(第2版)》系统地介绍了在Windows环境下利用C++Builder进行应用程序开发的方法,主要内容包括C++Builder常用组件的使用、MDI多文档应用程序设计、文件操作与文件管理、数据库应用程序设计、多线程应用程序设计、Intemet应用程序设计、动态链接库DLL以及多媒体与图形应用程序设计。全书内容翔实、实例丰富,汇集了作者多年来的实际开发经验和教学心得。各章附有适量习题和上机实践,便于学生课后练习。《C++Builder6程序设计教程(第2版)》可作为高等院校计算机程序设计及其相关课程教材,也可作为各类计算机培训班的教学用书,还可供从事计算机应用开发的广大工程技术人员、及爱好者使用。
