C++是一种高效应用的程序设计语言,它即可进行过程化程序设计,也可进行面向对象程序设计,因而成了编程人员最广泛使用的工具。学好C++,很容易触类旁通其他软件,C++架起了通向强大、易用、真正的软件开发应用的桥梁。许多高等院校已经开设了C++程序设计语言课,急需一本实用的教材,本书是作者总结两年教学实践的经验写成的,适合用作大学计算机专业和非计算机专业的程序设计基础课程教材,也可供自学的读者使用。\r\n 本书共分两大部分。第一部分,第1章至第10章是基础部分,主要介绍C++程序设计语言、程序结构和过程化基础。第二部分,第11章至第12章,是面向对象程序设计部分,它建立在C++程序设计上,讲述了面向对象程序设计方法。
第1部分 C++过程化语言基础\r\n 第1章 C++入门\r\n 1.1 从C到C++\r\n 1.2 程序与语言\r\n 1.3 结构化程序设计\r\n 1.4 面向对象程序设计\r\n 1.5 程序开发过程\r\n 1.6 最简单的程序\r\n 1.7 函数\r\n 小结\r\n 第2章 基本数据类型与输入输出\r\n 2.1 字符集与保留字\r\n 2.2 基本数据类型\r\n 2.3 变量定义\r\n 2.4 常量\r\n 2.5 常量定义\r\n 2.6 I/O流控制\r\n 2.7 printf与scanf\r\n 小结\r\n 练习\r\n 第3章 表达式和语句\r\n 3.1 表达式\r\n 3.2 算术运算和赋值\r\n 3.3 算术类型转换\r\n 3.4 增量和减量\r\n 3.5 关系与逻辑运算\r\n 3.6 if语句\r\n 3.7 条件运算符\r\n 3.8 逗号表达式\r\n 3.9 求值次序与副作用\r\n 小结\r\n 练习\r\n 第4章 过程化语句\r\n 4.1 while语句\r\n 4.2 do...while语句\r\n 4.3 for语句\r\n 4.4 switch语句\r\n 4.5 转向语句\r\n 4.6 过程应用:求\r\n 4.7 过程应用:判明素数\r\n 4.8 过程应用:求积分\r\n 小结\r\n 练习\r\n 第5章 函数\r\n 5.1 函数概述\r\n 5.2 函数原型\r\n 5.3 全局变量与局部变量\r\n 5.4 函数调用机制\r\n 5.5 静态局部变量\r\n 5.6 递归函数\r\n 5.7 内联函数\r\n 5.8 重载函数\r\n 5.9 默认参数的函数\r\n 小结\r\n 练习\r\n 第6章 程序结构\r\n 6.1 外部存储类型\r\n 6.2 静态存储类型\r\n 6.3 作用域\r\n 6.4 可见性\r\n 6.5 生命期\r\n 6.6 头文件\r\n 6.7 多文件结构\r\n 6.8 编译预处理\r\n 小结\r\n 练习\r\n 第7章 数组\r\n 7.1 数组定义\r\n 7.2 访问数组元素\r\n 7.3 初始化数组\r\n 7.4 向函数传递数组\r\n 7.5 二维数组\r\n 7.6 数组应用:排序\r\n 7.7 数组应用:Josephus问题\r\n 7.8 数组应用:矩陈乘法\r\n 小结\r\n 练习\r\n 第8章 指针\r\n 8.1 指针概念\r\n 8.2 指针运算\r\n 8.3 指针与数组\r\n 8.4 堆内存分配\r\n 8.5 const指针\r\n 8.6 指针与函数\r\n 8.7 字符指针\r\n 8.8 指针数组\r\n 8.9 命令行参数\r\n 8.10 函数指针\r\n 小结\r\n 练习\r\n 第9章 引用\r\n 9.1 引用的概念\r\n 9.2 引用的操作\r\n 9.3 什么能被引用\r\n 9.4 用引用传递函数参数\r\n 9.5 返回多个值\r\n 9.6 用引用返回值\r\n 9.7 函数调用作为左值\r\n 9.8 用const限定引用\r\n 9.9 返回堆中变量的引用\r\n 小结\r\n 练习\r\n 第10章 结构\r\n 10.1 结构\r\n 10.2 结构与指针\r\n 10.3 结构与数组\r\n 10.4 传递结构参数\r\n 10.5 返回结构\r\n 10.6 链表结构\r\n 10.7 创建与遍历链表\r\n 10.8 删除链表结点\r\n 10.9 结构应用:Josephus问题\r\n 10.10\r\n 小结\r\n 练习\r\n第二部分 面向对象程序设计\r\n ……\r\n参考文献
C++是一门高效实用的程序设计语言,它既可进行过程化程序设计,也可进行面向对象程序设计。C++语言强调对高级抽象的支持。C++实现了类的封装、数据隐藏、继承及多态,使得其代码容易维护及高度可重用。随着C++渐渐成为ANSI标准,这种新的面向对象程序设计语言迅速成为了程序员最广泛使用的工具。几乎在所有计算机研究和应用领域,都能看到C++的影子。
C++从C进化而来,是C语言的超集。C++在程序结构的本质上与C是一致的,都是用函数驱动机制实现。学过C语言,再来看C++,就会感到C++更简单和容易理解。我们说,过程化程序设计与面向对象程序设计之间并无水火不容的矛盾,面向对象程序设计是过程化程序设计的自然升华。
本书对于学过或没有学过C语言的读者都是适用的。如果学过ANSIC,则可以跳过第一部分的程序设计基础,直接阅读第二部分。在学习第二部分时,遇到某些概念不清之处,可以根据章节目录查阅第一部分的有关内容。本书配备有《C++实验指导书》和《C++习题解答》,这对自学者尤为方便。
本书适合做大学计算机专业和非计算机专业的程序设计基础课程教材。通过本书可达到以下三个培养目标:
1.程序设计入门,领略什么是面向对象程序设计;
2.掌握程序设计方法,领会面向对象程序设计;
3.把握C++程序设计的灵魂,掌握面向对象程序设计的方法。
纵观当前,C++的发展领导了程序设计语言的潮流,大有取代其他程序语言之趋势。在教学上,它以其面向对象的特征和严密的类型系统而正在悄无声息地取代PASCAL;在科学计算功能上,它比Fortran更为可靠和方便;在系统软件的研究开发上,它又是上选的语种;在小规模控制应用上,C++的效率比之C毫不逊色;在大规模应用软件开发上,以Windows环境为代表的C++类库以及组件(组合类库)在迅速发展,它的触角触及各个领域。
C++编译器以BorlandC++和Visual C++为典型,其版本在激烈的竞争中快速更新。那些老版本,如MicrosoftC和TuborC已经很少为人所用。即使学习C语言的人们目前也多在C++的编译环境中上机操作与调试。计算机等级考试的程序设计要求也在补充和更新。这就是C十+不久即将取代C的无可抗拒的趋势与事实。C++作为程序设计基础教学也将以强有力的态势迅速取代C语言。
C++程序的集成开发器如Borland C++和Visual C++(2.0以下版),作为软件开发工具,已经不再时髦。Borland C++将不再有新版本,Borland公司的C++Builder将取代现在的Borland C++,就像当初Borland C++取代Tubor C一样。软件开发进入了可视化程序开发环境的时代。
一方面是陈旧的软件开发工具在淘汰另一方面是新的软件开发工具在崛起。作者竭力推崇新的软件开发工具BC++Bhilder4.0和Visual C++ 6.0,因为它们不但是优秀的可视化开发工具,而且由于它们是基于C++的,可以充分发挥C++语言强大灵活的特点,用面向对象程序设计方法去阅读、理解、思考和分析、设计以及编程。
学好C++,很容易触类旁通其他软件,如基于Java语言的VisualJ++和J++ builder,而且像ActiveX SDK和DirectX SDK等都是C++形式的。C++架起了通向强大、易用、真正的软件开发应用的桥梁。计算机发展到今天,培养一个具有相当的应用软件开发能力的人才,已经不需要很长的周期了。这给我们每个人都带来了最好的机遇和最大的挑战。我们的战略是,大学一年级,学习C++课程,大学二年级,在适当的指导下就可学习如C++Builder和VisualC++这些快速应用程序开发工具了。这意味着计算机专业的学生,大学二年级,就可以冲向计算机应用的前沿,以此与计算机其他课程的学习相辅相成。非计算机专业的学生,同样也可以在应用开发的实践中找到自己的位置。
学程序设计,不仅要在运用程序设计的思想上获得一个大的突破,也应在运用程序设计的开发工具上,走向真正的实用。这才是真正的理论联系实际,而且是事半功倍的学习方法。
本书分为两大部分。第一部分,第1章至第10章,是基础部分,主要介绍C+十程序设计语言,程序结构和过程化基础。第二部分,第11章至第21章,是面向对象程序设计部分,它建立在C++程序设计基础之上,讲述了面向对象程序设计的方法。