基本信息
- 作者: 王立柱
- 丛书名: 高等院校计算机专业人才能力培养规划教材
- 出版社:机械工业出版社
- ISBN:9787111390398
- 上架时间:2012-7-11
- 出版日期:2012 年7月
- 开本:16开
- 页码:268
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 面向对象
教材 > 计算机教材 > 本科/研究生

内容简介
计算机书籍
C++主要包括两部分内容:C和C++的公共子集,C++直接支持的高级技术部分。C++包含四种程序设计风格:过程化程序设计、数据抽象、面向对象程序设计和泛型程序设计。本书从公共子集到高级技术部分逐步讲授,内容涉及:机器语言简介,基本数据类型,运算符和表达式,语句组结构,指针和数组,函数,模块化程序设计,C风格串,结构、联合、枚举,二维数组和指针,顺序表,单向链表,从C到C++的基本内容,从顺序表到顺序表类,从C风格串到String类串,Date类,继承和动态绑定,函数模板和向量类模板,链表类模板和适配器,C++的I/O流库,C++综合设计实例,命名空间。
《程序设计:从过程化到面向对象》可以作为高等院校计算机及相关专业本科生以C++作为第一门程序设计课程的教材,也可以作为计算机编程爱好者的自学教材和参考书。
目录
出版者的话
编委会
丛书序言
前言
教学建议
第1章 机器语言简介 1
1.1 计算机组成及工作过程 1
1.2 计算机硬件和软件 4
1.3 机器语言程序 5
1.4 汇编语言 7
1.5 深入探讨—存储和算法是一对矛盾体 8
习题 9
第2章 基本数据类型 10
2.1 变量与字面值常量 10
2.2 整型 15
2.3 字符型 16
2.4 实型 19
2.5 布尔型 20
2.6 typedef 名字 20
前言
辩证逻辑和旧的纯粹的形式逻辑相反,不像后者满足于把各种思维运动形式,即各种不同的判断和推理的形式列举出来和毫无关联地排列起来。相反地,辩证逻辑由此及彼地推出这些形式,不把它们互相平列起来,而使它们互相隶属,从低级形式发展出高级形式。
—恩格斯
一、“人体解剖”的方法
C++主要包括两部分内容,一部分是C和C++的公共子集,另一部分是C++直接支持的高级技术部分。公共子集主要有基本类型、指针、数组、结构、函数和C风格字符串。高级技术部分有类、继承和动态绑定、函数模板、类模板和STL(string、vector和list等)。从公共子集到高级技术部分,包含着程序设计风格从过程化程序设计到数据抽象,然后从面向对象程序设计到泛型程序设计的发展。
C++是从C扩展类型开始的,“C++的每一步演化和发展都是由于实际问题所引起的”,这些实际问题主要来自类型的扩展。Stroustrup指出:“C++支持一种逐步推进的学习方式。你学习一个新语言的方式依赖于你已经知道些什么,还依赖于你的学习目的。”
本书的目的是掌握C++的演化和发展规律,从C和C++的公共子集开始,然后将其作为已知。“逐步推进的学习方式”是从自定义类型的C描述转换到C++描述,再到vector和list的实现。本书的特点是:分析各种概念,注意概念的隶属关系,建立概念的连锁,不让其中缺少一个环节,而且使整个连锁有一组大家熟悉的典型程序设计作为根据。这是一种逻辑方式,也是马克思提倡的“人体解剖”方式。我们知道,事物的本质只有在它发展到一定阶段的时候才能清晰地显露出来,于是,这一清晰的本质就是一把钥匙,借此,我们可以对整个发展过程重新做出合乎逻辑的描述,展示出其内在规律性。黑格尔形容这种方式是“密涅瓦的猫头鹰从黄昏起飞”。在马克思看来,这种逻辑方式不过是摆脱历史的形式以及起扰乱作用的偶然性,按照现实的历史过程本身的规律进行修正,因而具有逻辑上前后一贯的形式,使每一个要素可以在它完全成熟并且具有典型性的发展点上加以考察。如果把C看做不成熟的“猴体”,把C++看做成熟的“人体”,那么马克思认为“人体解剖对于猴类解剖是一把钥匙”。
Bruce Eckel在他的《C++编程思想》一书中就探索了这种逻辑方式:他先用C语言实现一个顺序表,然后再转换为C++类。顺序表便是那种“完全成熟并具有典型性的发展点”。显然,这种逻辑方式下的C已不是传统的、由不了解C++的人来讲授的、只为应对考试的C,而是从C++的高度来修正的、按照从C到C++的发展规律和人的认知规律来描述的C。
本书的创新是把STL的string、vector和list作为C++发展中的成熟点,实现了从C到C++的无缝连接。
二、本书的脉络
为了阐述从C到C++的发展,并使其具有逻辑上前后一贯的形式,本书以程序设计的基本矛盾为主线,把解决实际问题作为动机,用程序设计的典型实例来贯穿。
什么是程序?程序是在某种存储模式上实现的算法,即程序=存储模式+算法。所谓存储模式是指数据和对数据的基本运算或基本操作的存在形式。所谓算法是指可以用基本运算或基本操作来表示的问题求解的有穷序列。算法好比一台机器,构造再复杂,也不过是简单机械动作的重复。最先提出这个思想的人是图灵,他认为,应该用机器保留一些最简单的操作,然后将一个复杂的计算分解为这些操作。冯·诺依曼用固化在硬件中的机器指令表示简单操作。这些机器指令的集合构成的系统成为第一个程序语言—机器语言。从此,存储模式都用程序语言来表示,程序也就成为用某种程序语言实现的算法,例如机器语言程序、C语言程序、C++语言程序、Java语言程序等。
什么是程序设计?程序设计的关键也是程序设计方法,它是关于存储和算法的关系和发展的科学。“纵观短暂的计算机发展史,存储和算法这两个方面一直存在,发展演化的只是它们之间的关系,这个关系就是程序设计方法”。
存储和算法是一对矛盾体。存储是为了算法,算法离不开存储。但是存储相对稳定,制约着算法的自由发展,而算法越来越复杂,要求存储不断改进。这样的矛盾推动了程序设计的持续发展。我们的理论正是对这种发展过程的阐明。一切发展,不管其内容如何,都可以看做一系列不同的发展阶段,它们以一个否定另一个的方式彼此联系着。这里的“否定”不是消灭,而是扬弃,是后者克服前者中消极的东西,保留和继承积极的东西,并把它发展到新的阶段。
本书的内容安排如下(见下图):
第1章(机器语言简介)从机器语言层面认识存储模式和算法的矛盾,同时引入地址、子程序调用、入口地址、现场保护、栈等概念。算法的发展推动矛盾的发展,矛盾的发展推动概念和语言的发展。
第2章(基本数据类型)引入基本类型,弥补机器指令系统的不足。
第3章(运算符和表达式)从基本类型的运算符组合介绍最简单的结构化算法即结构化程序。
第4章(语句组结构)用结构化的语句组扩展表达式。
第5章(指针和数组)引入复合类型弥补基本类型的不足。
序言
教育包括知识、能力、素质三个方面,专业教育不仅要重视知识的传授,更应突出专业能力的培养,实施能力导向的教育。如何以知识为载体实现能力的培养和素质的提高,特别是实现专业能力和素质的提高是非常重要的。对计算机专业本科教育而言,要想实现能力导向的教育,首先要分析专业能力的构成并考虑如何将其培养落实到教学实践中。为此,教育部高等学校计算机科学与技术专业教学指导分委员会开展了计算机科学与技术专业人才专业能力(简称计算机专业能力)的培养研究。该项研究明确了计算机专业本科人才应具有的4大基本能力—计算思维能力、算法设计与分析能力、程序设计与实现能力、系统能力,并将这四大基本能力分解为82个能力点,探讨如何面对不同类型学生的教育需求,在教学活动中进行落实。
为体现研究成果在教学活动中的实现,我们根据《高等学校计算机科学与技术专业人才专业能力构成与培养》,出版了这套教材。本套教材面向高等院校从知识传授向能力培养转型的需求,在内容的选择、体系安排和教学方法上按照专业能力培养的需要进行了探索。其主要特点有:
(1)以教学研究为先导。本套教材以计算机专业能力专项研究成果为基础,体现了先进的教育理念和教学方法,内容选择、知识深度、结构安排更加符合计算机专业教育的需求。
(2)落实能力培养的思想,同时满足课程的要求。本套教材不仅关注知识点的讲授,还凸显能力培养的要求,将能力的培养分解到各门课程的各个知识点的讲授中。
(3)力求贴近教学实际。作者均长期从事实际教学工作且对专业能力培养具有一定研究,教材编写注重科学组织内容、合理安排体系、便于教学实施,更具操作性。
(4)构建立体化教材。为了方便教师的教学活动,配合主教材开发配套的实验教材、教师参考书、学生辅导书、电子课件等教辅资源。
本套丛书的出版是在配合计算机专业能力的培养和落实方面的初步尝试,我们衷心希望本套教材的出版能起到抛砖引玉的作用,也希望广大教育工作者加入到能力培养的研究和实践中来,并对相关的教材建设提出自己的宝贵意见。
丛书编委会