首页 > 图书中心 >图书详情

C++程序设计教程(修订版)——设计思想与实现

提供PPT课件、答案与源代码,咨询QQ:883604(仅限教师)。教育部全国普通高等学校优秀教材奖,“十二五”普通高等教育本科国家级规划教材,

作者:钱能
定价:42
印次:2-14
ISBN:9787302201854
出版日期:2009.07.01
印刷日期:2018.10.15

C++是一种高效实用的程序设计语言,它既可进行过程化程序设计,也可进行面向对象程序设计,因而成为编程人员最广泛使用的工具。学好C++,很容易触类旁通其他软件,C++架起了通向强大、易用、真正的软件开发应用的桥梁。许多高等院校已经开设了C++程序设计语言课,急需一本实用的教材。本书是作者总结两年教学实践的经验写成的,适合用作大学计算机专业和非计算机专业的程序设计基础课程教材,也可供自学的读者使用。 本书共分两大部分。第一部分,第1章至第10章是基础部分,主要介绍C++程序设计语言、程序结构和过程化基础。第二部分,第11章至第21章,是面向对象程序设计部分,它建立在C++程序设计基础之上,讲述了面向对象程序设计方法。

more >

前言 C++是一门高效实用的程序设计语言,它既可进行过程化程序 设计,也可进行面向对象程序 设计。C++语言强调对高级抽象的支持。C++实现了类的封装、数据隐藏、继承及多态,使得 其代码容易维护及高度可重用。随着C++渐渐成为ANSI标准, 这种新的面向对象程序设计语 言迅速成为程序员最广泛使用的工具。几乎在所有计算机研究和应用领域,都能看到C++的影子。 C++从C进化而来,是C语言的超集。C++在程序结构的本质上与C是一致的,都是用函数驱动 机制实现。学过C语言,再来看C++,就会感到C++更简单和容易理解。过程化程序 设计与面向对象程序设计之间并无水火不容的矛盾,面向对象程序设计是过程化程序设计的 自然升华。 本书对于学过或没有学过C语言的读者都是适用的。如果学过ANSI C,则可以跳过第一部分 的程序 设计基础,直接阅读第二部分。在学习第二部分时,遇到某些概念不清之处,可以根据章节 目录查阅第一部分的有关内容。本书配备有《C++习题解答》,这对自学者尤为方便。 本书适合做大学计算机专业和非计算机专业的程序设计基础课程教材。通过本书可达到以下 三个培养目标: 1. 程序设计入门,领略什么是面向对象程序设计; 2. 掌握程序设计方法,领会面向对象程序设计; 3. 把握C++程序设计的灵魂,掌握面向对象程序设计的方法 。 纵观当前,C++的发展领导了程序设计语言的潮流,大有取代 其他程序语言之趋势。在教学 上,它以其面向对象的特征和严密的类型系统而正在悄无声息地取代Pascal; 在科学计算功 能 上,它比Fortran更为可靠和方便; 在系统软件的研究开发上,它又是上选的语种; 在小规 模控制应用上,C++的效率比之C毫不逊色; 在大规模应用软件 开发上,以Windows环境为代 表的C++类库以及组件(组合类库)在迅速发展,它的触角触 及各个领域。 C++编译器以Borland C++和Vis ual C++为典型,其版本在激烈的竞争中快速更新。那些老 版本,如Microsoft C和Tubor C已经很少为人所用。即使学习C语言的人们目前也多在C++的 编译环境中上机操作与调试。计算机等级考试的程序设计要求也在补充和更新。这就是C++不久即将取代C的无可抗拒的趋势与事实。C++作为程序设计基础教学也将以强有力的态势迅速取代C语言。 C++程序的集成开发器如Borland C++和Visual C++(2.0以下版),作为软件开发工具,已 经不再时髦。Borland C++将不再有新版本,Borland公司的C++Builder将取代现在的Borlan d C++,就像当初Borland C++取 代Tubor C一样。软件开发进入了可视化程序开发环境的时代。 一方面是陈旧的软件开发工具在淘汰,另一方面是新的软件开发工具在崛起。作者竭力推崇 新的软件开发工具BC++Builder 4.0和Visual C++6.0,因为它们不但是优秀的可视化开发工具 ,而且由于它们是基于C++的,可以充分发挥C++语言强大灵活 的特点,用面向对象程序设计方法去阅读、理解、思考和分析、设计以及编程。 学好C++,很容易触类旁通其他软件,如基于Java语言的Visua l J++和J++Builder,而且像A ctiveX SDK和DirectX SDK等都是C++形式的。C++架起了通向强大、易用、真正的软件开发 应用的桥梁。计算机发展到今天,培养一个具有相当的应用软件开发能力的人才,已经不需 要很长的周期了。这给每个人都带来了最好的机遇和最大的挑战。我们的战略是,大学 一年级学习C++课程,大学二年级,在适当的指导下就可学 习如C++Builder和Visual C++ 这些快速应用程序开发工具了。这意味着计算机专业的学生,大学二年级就可以冲向计算 机应用的前沿,以此与计算机其他课程的学习相辅相成。非计算机专业的学生,同样也可以 在应用开发的实践中找到自己的位置。 学程序设计,不仅要在运用程序设计的思想上获得一个大的突破,也应在运用程序设计的开 发工具上走向真正的实用。这才是真正的理论联系实际,而且是事半功倍的学习方法。 本书分为两大部分。第一部分,第1章至第10章,是基础部分,主要介绍C++程序设计语言,程序结构和过程化基础。第二部分,第11章至第21章,是面向 对象程序设计部分,它建立在C++程序设计基础之上,讲述了 面向对象程序设计的方法。 本书内容特点 1. 强化重要概念 函数: 函数是理解C/C++语言的重要基础。在书中作了较多的 描述。 程序结构: 程序结构的理解与实践是从C++语言的学习跨向实 际应用的关键。作者在这方面也注入了较多的笔墨。 指针: 指针是理解各种C++语言现象的关键,透过指针能够更 好地理解语言的表达和程序的工作。这本书对指针重点展开介绍。 链表: 链表是数据结构的基础,也是软件设计的重要技术。作者强调链表实现技术,是想从 根本上让读者领会程序设计的技术性和艺术性。 引用: 引用是C++特有的,C++面 向对象的程序能够被人阅读理解,引用起了很大的作用。本书专辟一章讲述。 类: 类是面向对象程序设计的首要概念。书中从第11章起,不停地描述类类型机制和面向对 象程序设计的各项内容。 继承与虚函数: 继承与虚函数是C++实现类的多态性的机制。 它因而也是面向对象程序设计的关键之一。理解继承与虚函数能使读者从整体上把握面向对 象程序设计的方法,从而走向真正的实用。 2. 舍弃次要内容 联合与位域: 本书只介绍结构而不介绍联合和位域,是考虑到这些内容相对整个程序设计的 功能来说已经退化。 多级指针: 书中只介绍多级指针的概念(多维数组也如此),而不具体展开。 考虑到篇幅不讲成员指针: 在《C++习题解答》中, 有对 成员指针的介绍,作为本书的补充。 3. 不求面面俱到,但求通俗易懂 本书不是语法参考书,是自成体系的C++教科书。它的目的是 让读者通过自学或在老师讲授 下,能够运用C++语言的基本要素,进行基本的结构化程序设 计和面向对象的程序设计。因 此全书紧紧围绕着如何进行程序设计而展开。前半部分,讲述C++程序设计基础,在此基础之上,后半部分,介绍面向对象程序设计的具体方法。 4. 以C作为背景 本书讲述的内容以ANSI C++为标准。书中出现的C内容是C++的参照。如关于C库函数printf 和scanf,出现在与C++流作比较的场合,库函数malloc和free 出现在与C++的new和delete作 比较的场合。另外,还有C中的结构与C++中的结构之差异,C 中的函数名与C++中的函数名之差异等。 考虑到准备参加C语言等级考试的读者,我们在书中对C的数学和字符串操作库函数作了适当 的介绍。 本书编排特点  每章首均引出本章将要讲述的内容和学习要求。  在每章结束时,都做了小结,给出本章内容的概括性描述,指出本章在全书中的重要程 度,并且指导学生进一步学习有关内容。  每章末安排的习题都是操作性习题,能通过上机加以验证。  书中遇有在理解上特别重要的内容用黑体标记。  与本书章节内容紧密联系的一些概念和说明用→引导,另起编段。  本书的各章与《C++习题解答》中的各章一一对应。教程中 没有写进去的内容有些在习题 解答中得到了补充。教程中的习题有些在习题解答中有类似的题解。  本书强调程序的可读性。使用统一的程序设计风格,并希望读者自始至终地模仿。  本书强调程序的可移植性。不以某个C++编译器为标准,而 以最新的ANSI C++标准为编书 标准。程序中的编译错误,一般用Borland C++(简称BC)中 的出错信息给出。有些BC中的 警告在Visual C++(简称VC)中是编译错误或反之,则同时也 给出VC的出错信息。  本书中包含了大量的程序例子,并附有运行结果。凡在程序开头带有程序名编号的,都 是 完整的程序,它们经过了上机调试,可以直接在计算机上编译运行。运行结果中,如果是手 工键入的字符,则用下划线表示。 本书中所有编号的程序,读者可到网站http://www.tup.com.cn上下载。 大学C++程序设计基础教学尚在起步,教学方法、手段和形式 还在摸索中。本教材难免有不足之处,我们诚恳期待读者的批评指正和建议,以供再版时参 考,使本书日臻完善。 作者的电子邮件地址: qianneng@mail.hz.zj.cn 通信地址: 杭州市德胜新村12幢1单元101室(邮编310014)

more >
扫描二维码
下载APP了解更多

同系列产品more >

C++程序设计教程(第3版)实验指导

钱能
定 价:45元

查看详情
C++程序设计教程(第3版)(竞技版...

钱能
定 价:79.80元

查看详情
C++程序设计教程(第3版)(通用版)...

钱能
定 价:69.80元

查看详情
C++程序设计教程详解——过程化编程...

钱能
定 价:79元

查看详情
C++程序设计教程(第二版)习题及...

钱能
定 价:34.50元

查看详情
图书分类全部图书
more >
  • 如果希望加入教师微信交流群,请加微信:itbook8

    如果希望加入教师QQ交流群,请加QQ:883604

    加入时,请写明:“学校+姓名”,并写明“加入教师群”,只限教师。


more >
  • 目录

    第一部分C++过程化语言基础

    第1章C++入门

    1.1从C到C++

    1.2程序与语言

    1.3结构化程序设计

    1.4面向对象程序设计

    1.5程序开发过程

    1.6最简单的程序

    1.7函数

    小结

    第2章基本数据类型与输入输出

    2.1字符集与保留字

    2.2基本数据类型

    2.3变量定义

    2.4字面量

    2.5常量

    2.6I/O流控制

    2.7printf与scanf

    小结

    练习

    第3章表达式和语句

    3.1表达式

    3.2算术运算和赋值

    3.3算术类型转换

    3.4增量和减量

    3.5关系与逻辑运算

    3.6if语句

    3.7条件运算符

    3.8逗号表达式

    3.9求值次序与副作用

    小结

    练习

    第4章过程化语句

    4.1while语句

    4.2do...while语句

    4.3for语句

    4.4switch语句

    4.5转向语句

    4.6过程应用: 求π

    4.7过程应用: 判明素数

    4.8过程应用: 求积分

    小结

    练习

    第5章函数

    5.1函数概述

    5.2函数原型

    5.3全局变量与局部变量

    5.4函数调用机制

    5.5静态局部变量

    5.6递归函数

    5.7内联函数

    5.8重载函数

    5.9默认参数的函数

    小结

    练习

    第6章程序结构

    6.1外部存储类型

    6.2静态存储类型

    6.3作用域

    6.4可见性

    6.5生命期

    6.6头文件

    6.7多文件结构

    6.8编译预处理

    小结

    练习第7章数组

    7.1数组定义

    7.2访问数组元素

    7.3初始化数组

    7.4向函数传递数组 ...

  • 在历经34次重印,发行超过40万之时,应广大使用钱能第一版《C++程序设计教程》教师之要求,清华大学出版社隆重推出该教程的修订版——《C++程序设计教程(修订版)——设计思想与实现》。

    在C++标准化的进程中,对C++语言设计所作的更新,是本版修订的一个原因。全书所有的概念描述都按C++标准予以了调整。其中,新的C++设计中,main函数的返回类型不再用void,而是统一用int,以保证与操作系统界面沟通的设计一致性,修订版对全部包含main函数的程序都作了修改;表达式作为可以参加运算的量,在本质上应具有值的属性,使得其与过程(void函数)调用相区别;常量是具有名字的不变量,而字面量是不具有名字的不变量,决定了后者常作为初始化等场合的一次性使用而与前者相区别,书中关于常量的章节也由此有了变更;原书对数组初始化的描述是沿用C规则的,但标准化C++之后的数组初始化规则最终统一了C的相关设计,这也影响到本书修订版对数组初始化原则的调整;在类机制中,静态成员访问约定,在有新创对象引导的情况下,访问顺序不由语言设计确定而由实现(各自的编译器)确定,因而事实上具有不确定性。此外,原书的简易版快速排序算法在本次修订中也进行了更新。

    教材中通过展开过程化编程与面向对象编程的两种典型模式比较的讨论来展示C++比之C的技术进步之所在。教材一方面表示,相当一部分应用为小规模编程,其过程化编程方法同样重要;另一方面也表示,在展开规模化编程时,面向对象编程具有诸多的优势。而C++既可以进行过程化编程,又可以进行面向对象编程,两种方法各具特点,但无论采用哪种方法编程,比之C都更加安全、灵活和方便。

    考虑到原书特色,修订版仍然保留了原来的框架和结构体系,并保持原先的描述风格。由于仍以C++标准讨论稿为技术蓝本,所以,代码仍按前C++来描述:编译指令的包含(include)文件操作仍沿用C习惯;字符串以过渡形式的string类型和字符数组形式的C字符串互相穿插的方式来描述,所以经常会进行C串函数的调用;由于基于当时的16位编译器代码调试,所以int数据类型常以16位长度来举例,相应对指针实体也作2字节的长度假设。这些仅仅是一些刻板的知识约定,可随新的C++标准而调整,对于编程方法来说,不会有任何影响。并且,书中的工程文件虽也保留了旧编译环境中的.prj扩展名,但所表达的程序组织结构仍是清楚的。

    与原书一致的是,所有编号的代码都是可运行代码实例,经作者在Borland C++ Builder 6中重新测试。虽没有在VC6中全部测试,但亦不应有运行问题。在VC6中运行,遇有一些可能的运行结果差异,多是因为原16位编译器与现32位编译器之间存在着差异,没有其他本质上的不同。对于产生的如表达式副作用和编译不确定性所导致的差异,在描述中都有交代。由于多数代码规模不大,涉及知识点集中,所以用C++工具做实验容易上手,不需要复杂的调试。采用修订版的《C++程序设计教程》,能够从过程化到对象化编程的学习更连贯、自然。



版本展示

精彩书评more >

标题

评论

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘