第二版 C 高级程式设计


第二版 C 高级程式设计

文章插图
C 高级程式设计(第二版)【第二版 C 高级程式设计】C++程式设计语言同时支持面向过程和面向对象编程,全书以C++标準为蓝本,以实际案例为支撑来阐释学生学习过程中晦涩难懂的概念,并将多年来教学过程中学生遇到的难以掌握的知识点以重点突出或错误解释的方式列出 。
基本介绍书名:C 高级程式设计(第二版)
作者:田秀霞、孙超超、张安勤、王真、彭源 
出版社:清华大学出版社 
出版时间:2016.07.01 
图书简介C++程式设计语言同时支持面向过程和面向对象编程,全书以C++标準为蓝本,以实际案例为支撑来阐释学生学习过程中晦涩难懂的概念,并将多年来教学过程中学生遇到的难以掌握的知识点以重点突出或错误解释的方式列出 。整本书的语言通俗易懂,每个章节的开始都以一个短小有趣的引发好奇心的说明引导学生进入本章节内容的学习 。整个内容按照循序渐进的方式展开,引领学生从C++的面向过程编程逐步过渡到C++的面向对象编程,实现学习点上的由易到难的顺利过渡 。本书内容包括绪论、数据类型与基本输入输出、控制语句、函式与预处理、数组、指针与引用、自定义数据类型、类、静态成员与友元、继承与派生、多态性、输入输出流、模板、鍊表、异常处理和项目开发指南 。在书中每一章的最后,都有一个较为大型和完整的编程实例,涉及网路、密码学、计算机病毒、数据结构、算法设计、图形学等各门课程的一些入门知识,在巩固所学知识的同时,也让学生对这些课程有了初步的感性认识,以便后继课程的学习 。本书适用于高校计算机专业程式设计课程教学,也适用于自学成才的读者,在本书的指导下,读者可以逐步由不入门到初级程式设计师到高级程式设计师,并从中体会到学习编程的无限乐趣,为成为一名真正的程式设计师打下坚实的基础 。图书目录第1章绪论1.1电脑程式设计语言1.1.1程式设计语言的演变1.1.2C++程式设计语言的发展1.2程式设计方法1.2.1面向过程程式设计1.2.2面向对象程式设计1.3计算机信息的存储与表示1.3.1数据在计算机中的表示1.3.2数据单位1.3.3不同形式数据的表示方法1.4C++程式结构与开发过程1.4.1C++程式的开发流程1.4.2第一个C++程式1.4.3C++程式设计环境1.4.4带命令行参数的程式1.5C++的词和规则1.5.1C++的字元集1.5.2词与词法规则1.6编程实例——程式设计方法比较习题1第2章数据类型、表达式与基本输入输出2.1数据类型基本概念2.1.1C++数据类型的种类2.1.2整型和实型2.1.3数值的範围2.1.4有符号数和无符号数2.1.5有符号数和无符号数的範围区别2.1.6本章用到的关键字2.2C++基本数据类型2.2.1整型、实型和字元型2.2.2布尔型和无类型2.2.3为数据类型起别名2.2.4sizeof的使用2.3变数2.3.1变数概述2.3.2变数的定义2.3.3赋值语句2.3.4变数的初始化2.4常量2.4.1整型常量2.4.2字元常量和字元串常量2.4.3逻辑常量2.4.4枚举常量...2.4.5实型常量2.4.6地址常量2.5符号常量2.5.1为什幺需要符号常量2.5.2const与#define的比较2.6基本输入输出2.6.1cout输出流2.6.2cin输入流2.7运算符和表达式2.7.1C++语言运算符的种类2.7.2算术运算符2.7.3赋值运算符2.7.4关係运算符2.7.5逻辑运算符2.7.6位运算符2.7.7条件运算符2.7.8逗号运算符2.7.9运算符的优先权及结合性2.8编程实例——获取IP位址并计算网路号等信息2.8.1背景2.8.2原始码及程式解释习题2第3章语句和控制结构3.1顺序结构3.1.1表达式语句3.1.2函式调用语句3.1.3複合语句3.1.4空语句3.1.5赋值语句3.2选择结构3.2.1if…else语句和if语句3.2.2多路分支3.2.3程式套用举例3.3循环结构3.3.1while语句3.3.2do…while语句3.3.3for语句3.3.43种循环语句的选用3.3.5循环的嵌套3.4控制转移3.4.1break语句3.4.2continue语句3.4.3goto语句3.4.4return语句3.5编程实例——凯撒加/解密和维吉尼亚加/解密3.5.1背景3.5.2原始码及程式解释习题3第4章函式4.1函式概述4.2预定义函式4.3自定义函式4.3.1函式的定义4.3.2函式的返回值4.3.3函式参数和传值调用4.3.4函式定义和函式声明的区别4.4函式的重载4.5带默认参数的函式4.6内联函式4.7函式的嵌套调用4.8函式的递归调用4.9局部变数与全局变数4.10变数的存储类别4.10.1自动变数4.10.2静态局部变数4.10.3暂存器变数4.10.4外部变数和静态外部变数4.11预处理命令4.11.1档案包含4.11.2条件编译4.12编程实例——Hanoi(汉诺)塔问题习题4 第5章数组5.1一维数组5.1.1定义和引用一维数组5.1.2数组的初始化5.1.3数组下标越界5.1.4一维数组和循环5.1.5一维数组的套用5.2多维数组5.2.1定义和引用二维数组5.2.2二维数组的初始化5.2.3二维数组的套用5.2.4多维数组简单介绍5.3字元数组5.3.1定义和引用一维字元数组5.3.2一维字元数组的初始化5.3.3多维字元数组5.3.4字元数组的输入与输出5.3.5字元数组处理函式5.4string类型5.4.1定义和初始化string类型变数5.4.2string对象的使用5.5数组在函式中的套用5.5.1数组元素作为函式参数5.5.2整个数组作为函式参数5.6编程实例——大整数加减运算5.6.1设计思路5.6.2原始码和程式解释习题5第6章指针和引用6.1指针与指针变数6.1.1指针的概念6.1.2定义指针变数6.1.3引用指针变数6.1.4无名变数6.1.5指针作为函式参数6.2数组与指针6.2.1指向数组元素的指针6.2.2指针变数作为函式参数接收数组地址6.3字元串与指针6.4const修饰指针6.4.1指向常量的指针6.4.2指针常量6.5引用6.5.1引用的基本概念6.5.2引用的套用6.6动态数组6.7其他指针6.7.1函式指针6.7.2指向指针的指针6.7.3指针数组6.8编程实例——选择法排序习题6第7章自定义数据类型7.1结构体类型7.1.1结构体类型的声明7.1.2结构体变数的定义、初始化及使用7.1.3结构体数组的定义、初始化及使用7.1.4结构体作为函式参数7.2共用体7.2.1共用体变数的定义与初始化7.2.2共用体变数的使用7.3枚举类型7.3.1枚举类型变数的定义与初始化7.3.2枚举类型变数的使用7.4typedef声明7.5编程实例——递归下降语法分析器7.5.1算法介绍7.5.2程式原始码习题7第8章类8.1类的声明8.1.1类类型的声明8.1.2对象的定义8.1.3类的访问属性8.1.4取值函式和赋值函式8.1.5内联成员函式 8.1.6this指针8.2构造函式和析构函式8.2.1构造函式8.2.2拷贝构造函式8.2.3析构函式8.3组合对象8.3.1组合对象概述8.3.2构造函式和析构函式在组合对象中的使用8.4对象数组8.4.1对象数组的定义8.4.2对象数组的初始化8.5对象指针8.5.1对象指针的定义与使用8.5.2指向对象成员的指针8.6编程实例——学生成绩排名8.6.1算法介绍8.6.2程式原始码习题8第9章静态成员与友元9.1变数的使用9.1.1作用域9.1.2可见性9.1.3生存期9.2类的静态成员9.2.1静态数据成员9.2.2静态成员函式9.3类的友元9.3.1友元函式9.3.2友元类9.4const修饰符9.4.1const修饰变数9.4.2const修饰引用9.4.3const修饰对象9.4.4const修饰类中的成员9.5编程实例——缓冲区溢出9.5.1背景9.5.2程式原始码习题9第10章运算符重载10.1重载二元运算符10.1.1成员函式实现运算符重载10.1.2友元函式实现运算符重载10.2重载一元运算符10.3>>和<<运算符重载10.3.1<<运算符重载10.3.2>>运算符重载10.4重载运算符限制与设计规则10.5编程实例——矩阵及向量间的运算10.5.1背景10.5.2程式原始码习题10第11章继承与派生11.1类的继承与派生11.1.1继承与派生的概念11.1.2派生类的声明11.1.3继承方式11.1.4派生类中的构造函式和析构函式11.1.5重定义成员函式11.1.6构造函式和析构函式的调用顺序11.2二义性问题11.3虚基类11.3.1虚基类的声明11.3.2虚基类的构造函式11.4编程实例——银行账户管理系统11.4.1需求分析与数据结构设计11.4.2程式原始码习题11第12章多态12.1upcast12.2后期绑定与虚函式12.3重新定义和超载12.4VPTR和VTABLE12.5关于运算效率的考虑 12.6纯虚函式与抽象类12.7纯虚函式的定义12.8编程实例——虚函式实现求不同图形的面积习题12第13章输入输出流13.1流的概念13.1.1与I/O流类库有关的头档案13.1.2iostream头档案中的重载运算符13.2输入输出格式控制13.2.1ios类中的枚举常量13.2.2ios类中的成员函式13.2.3iomanip头档案中的控制符13.3字元I/O13.3.1get函式13.3.2put函式13.3.3getline函式13.4其他成员函式13.4.1ignore函式13.4.2eof函式13.4.3peek函式13.4.4putback函式13.5档案和档案I/O13.5.1档案的概念13.5.2档案流类与档案流对象13.5.3档案的打开与关闭13.5.4I/O对象的条件状态13.5.5ASCII档案的访问13.5.6二进制档案的访问(选读)13.6编程实例——ini档案的读/写13.6.1ini档案结构13.6.2原始码和程式解释习题13第14章模板14.1函式模板14.1.1函式模板的定义14.1.2函式模板的套用14.2类模板14.2.1类模板的定义14.2.2类模板的套用14.3编程实例——複数类的定义和实现习题14第15章鍊表15.1鍊表概述15.2单鍊表类的定义15.3鍊表结点的访问15.4鍊表结点的插入15.5鍊表结点的删除15.6鍊表实例——简单的鍊表操作习题15第16章异常处理16.1C++错误处理16.2C++异常处理机制16.2.1异常处理机制的3个部分16.2.2异常处理的语法16.2.3自定义异常类16.2.4多个throw和catch16.2.5catch(…)16.2.6异常规範16.3编程实例——病毒的自我複製习题16第17章项目开发指南17.1项目管理基础17.1.1项目与项目管理17.1.2项目流程17.1.3项目实施管理17.2项目开发团队17.2.1项目团队组成17.2.2项目团队要求17.3项目的研发17.3.1软体版本控制17.3.2程式编写规範17.3.3功能设计说明书的撰写17.3.4程式设计与实现 17.3.5单元测试17.3.6提交代码17.3.7功能维护习题17参考文献