出版时间:2009-4 出版社:陈家骏、 郑滔 机械工业出版社 (2009-04出版) 作者:陈家骏,郑滔 著 页数:307
Tag标签:无
前言
本书第1版自2004年出版以来,得到了广大读者的热情关注和支持,很多读者还提出了宝贵的建议,我们深表感谢。在近几年的教学中,我们也发现了本书的一些不足之处。首先,编写该教材的初衷是介绍程序设计的基本思想、概念和技术,C++语言是作为编程实现语言的角色出现,然而,在教材某些内容的表述上违背了这个初衷,教材的一些地方出现了C++语言“喧宾夺主”的情况。其次,教材在一些内容的表达上过于“精炼”,使初学者有“看天书”的感觉。再次,教材对现在比较流行的C++标准模板库(STL)以及它所支持的泛型程序设计没有给出足够的介绍,从而给读者学习使用STL带来了困难。此外,教材中还存在少量的错误。针对上述问题,我们对教材进行了修订。第2版的变动主要体现在以下几个方面:1)重新组织了一些章节的内容,并调整了相应章节(主要是节)的标题和次序,进一步突出了程序设计的主流思想、概念和技术。2)对教材的文字进行了润色,补充了例子,并为例子中的程序代码增加了注释,使之更加容易理解。
内容概要
《程序设计教程:用C++语言编程(第2版)》是以C++作为实现语言的第一门程序设计课程的教材。以介绍基本的程序设计思想、概念和技术为中心,强调了数据结构、算法、过程抽象以及数据抽象等重要的程序设计思想。全书共12章,主要内容包括:数据类型、表达式、流程控制、子程序、递归、类/对象、继承、类属(泛型)、输入/输出以及异常处理等。内容相对完整,概念力求精确。 《程序设计教程:用C++语言编程(第2版)》在第1版的基础上,相应地增加了例子、代码注释和习题,便于读者轻松且牢固地掌握程序设计的技巧。可作为高等院校本科生第一门程序设计课程的教材,也可供程序设计的初学者参考。
作者简介
陈家骏,男,1963年生。获南京大学博士学位,现为南京大学计算机科学与技术系教授,博士生导师。主要从事自然语言处理和软件工程领域的研究工作,曾多次主持国家及省级科研项目的研究与开发,其中包括:863“基于语义和多策略融合的日汉机器翻译关键技术研究”、国家自然科学基金“基于统计关系学习的汉语指代消解研究”以及江苏省自然科学基金“基于条件随机场和核集成的自适应中文信息抽取技术研究”等项目,研究成果多次获得省部级科研奖励。具有多年的软件开发和程序设计课程教学的经历。郑滔,男,1966年生。获南京大学硕士学位,现为南京大学软件学院教授。主要从事软件工程和嵌入式系统领域的研究工作。曾多次参加国家/省科技攻关项目、国家/省自然科学基金项目和国家863高科技项目的研究与开发,研究成果两次获得部级科技成果二等奖。具有多年软件开发和程序设计以及编译技术课程教学的经历。
书籍目录
第2版前言第1版前言作者简介教学建议第1章 概述1.1 计算机的工作模型1.1.1 硬件1.1.2 软件1.1.3 机内信息表示1.2 程序设计1.2.1 程序设计范型1.2.2 程序设计步骤1.2.3 程序设计语言1.3 C++语言1.3.1 C++语言概述1.3.2 C++程序的构成1.3.3 C++程序的运行步骤1.3.4 C++语言的词法1.4 小结1.5 习题第2章 数据描述(Ⅰ)——基本数据类型和表达式2.1 数据类型概述2.2 基本数据类型2.2.1 整数类型2.2.2 实数类型2.2.3 字符类型2.2.4 逻辑类型2.3 数据的表现形式2.3.1 常量2.3.2 变量2.3.3 变量值的输入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.2 操作符的优先级和结合性2.5.3 表达式中操作数的类型转换2.5.4 表达式结果的输出2.5.5 表达式的副作用2.6 小结2.7 习题第3章 流程控制——语句3.1 程序流程控制概述3.2 顺序控制3.2.1 表达式语句3.2.2 复合语句3.2.3 空语句3.3 选择控制3.3.1 if语句3.3.2 switch语句3.4 循环(重复)控制3.4.1 while语句3.4.2 do.while语句3.4.3 for语句3.4.4 计数循环和事件循环3.4.5 循环程序设计实例3.5 无条件转移控制3.5.1 goto语句3.5.2 break语句3.5.3 continue语句3.6 程序设计风格3.6.1 结构化程序设计3.6.2 关于goto语句3.7 小结3.8 习题 第4章 过程抽象——函数4.1 基于过程抽象的程序设计4.1.1 功能分解与复合4.1.2 子程序4.1.3 子程序间的数据传递4.2 C++函数4.2.1 函数的定义4.2.2 函数的调用4.2.3 值作为参数传递4.2.4 基于函数的过程式程序设计4.3 标识符的作用域与变量的生存期4.3.1 变量的局部性——局部变量与全局变量4.3.2 C++程序的多模块结构4.3.3 标识符的作用域4.3.4 名空间4.3.5 变量的生存期(存储分配)4.3.6 基于栈的函数调用的实现4.4 递归函数4.4.1 什么是递归函数4.4.2 “分而治之”的程序设计4.4.3 递归与循环的选择4.4.4 递归函数应用实例4.5 函数的进一步讨论4.5.1 内联函数4.5.2 带默认值的形式参数4.5.3 函数名重载4.6 C++标准函数库4.7 C++的条件编译4.7.1 条件编译命令4.7.2 基于多环境的程序编制4.7.3 程序调试4.8 小结4.9 习题第5章 数据描述(Ⅱ)——构造数据类型5.1 枚举类型5.2 数组类型5.2.1 一维数组的定义与操作5.2.2 字符串类型的一种实现——一维字符数组5.2.3 二维数组的定义与操作5.2.4 数组类型的应用5.3 结构类型5.3.1 结构类型的定义与操作5.3.2 结构类型的应用5.4 联合类型5.5 指针类型5.5.1 指针类型的定义5.5.2 指针类型的基本操作5.5.3 指针作为参数传递5.5.4 指针与动态变量5.5.5 函数指针5.5.6 指针与数组5.5.7 多级指针5.6 引用类型5.6.1 引用类型的定义5.6.2 引用作为参数传递5.6.3 引用类型与指针类型的区别5.7 小结5.8 习题第6章 数据抽象——对象与类6.1 基于数据抽象的程序设计6.1.1 什么是面向对象程序设计6.1.2 为什么要面向对象6.1.3 面向对象程序设计的基本内容6.2 类6.2.1 数据成员6.2.2 成员函数6.2.3 成员的访问控制——信息隐藏6.3 对象6.3.1 对象的创建和标识6.3.2 对象的操作6.3.3 this指针6.4 对象的初始化和消亡前处理6.4.1 构造函数与析构函数6.4.2 成员对象的初始化6.4.3 拷贝构造函数6.5 对象与类的进一步讨论6.5.1 对常量对象的访问——常成员函数6.5.2 对象之间的数据共享静态数据成员6.5.3 提高对对象私有数据成员的访问效率——友元6.6 类作为模块6.6.1 类模块的组成6.6.2 Demeter法则6.7 小结6.8 习题第7章 操作符重载7.1 操作符重载概述7.1.1 操作符重载的必要性7.1.2 操作符重载的方式7.1.3 操作符重载的基本原则7.2 操作符重载的实现7.2.1 双目操作符重载7.2.2 单目操作符重载7.3 C++中几个特殊操作符的重载7.3.1 赋值操作符7.3.2 数组元素访问操作符(下标操作符)7.3.3 类成员访问操作符7.3.4 动态存储分配与去配操作符7.3.5 自定义类型转换操作符7.3.6 函数调用操作符7.4 操作符重载的实例——字符串类String的一种实现7.5 小结7.6 习题第8章 类的继承——派生类8.1 类之间的继承关系——基类与派生类8.2 单继承8.2.1 单继承的定义8.2.2 在派生类中访问基类成员——protected访问控制8.2.3 派生类对基类成员的访问控制继承方式8.2.4 派生类对象的初始化和赋值操作8.2.5 单继承的应用实例8.2.6 类之间的聚集关系8.3 消息(成员函数调用)的动态绑定8.3.1 消息的多态性8.3.2 虚函数与消息的动态绑定8.3.3 纯虚函数和抽象类8.3.4 虚函数动态绑定的一种实现8.4 多继承8.4.1 多继承的必要性8.4.2 多继承的定义8.4.3 名冲突8.4.4 重复继承——虚基类8.5 小结8.6 习题第9章 类属(泛型)机制——模板9.1 类属(泛型)程序设计9.2 模板9.2.1 函数模板9.2.2 类模板9.2.3 模板的复用9.3 C++标准模板库9.3.1 概述9.3.2 容器9.3.3 迭代器9.3.4 算法9.4 小结9.5 习题第10章输入/输出10.1 输入/输出概述10.2 面向控制台的输入/输出10.2.1 基于函数库的控制台I/O10.2.2 基于类库的控制台。I/O10.2.3 抽取/插入操作符“>>”和“
章节摘录
插图:第1章概述自1946年第一台数字电子计算机(ENIAC)问世以来,计算机在理论、技术以及应用等方面发展迅速。特别是计算机的应用,它已从早期的数值计算应用拓广到现在的大量的非数值计算应用,如管理信息系统、文字处理系统、基于Internet的web浏览器以及嵌入式应用系统(如家电的电脑控制)等。现在,计算机已经渗透到人类社会活动的各个领域并发挥着巨大的作用。一台计算机由硬件和软件两部分构成。硬件是指计算机的物理构成,软件主要是指计算机程序(指令序列)。硬件是计算机的物质基础,软件是计算机的灵魂。没有硬件就没有计算机;但是,如果只有硬件没有软件,可以说计算机几乎什么事情也做不了,要想用计算机来解决各种问题,必须要有相应的软件。从某种意义上讲,一台计算机的性能主要由硬件决定,而它的功能则主要由软件来提供。随着计算机应用领域不断扩大、应用层次不断加深,社会对计算机软件的需求急剧增长,从而导致软件规模不断扩大、复杂程度不断提高。如何设计出大量的满足用户需求的高质量软件是软件工作者所面临的严峻挑战。1.1计算机的工作模型计算机程序不同于其他程序(如音乐会程序),它是由计算机来执行的,编制计算机程序(程序设计)时通常要考虑到计算机解决问题的方式和特点。因此,要进行程序设计,就有必要对计算机的工作模型有一定的了解。下面将分别从计算机的硬件、软件以及计算机内部的信息表示几个方面来介绍计算机的工作模型。
编辑推荐
《程序设计教程:用C++语言编程(第2版)》为普通高等教育“十一五”国家级规划教材之一。
图书封面
图书标签Tags
无
评论、评分、阅读与下载