本书遵循以计算思维能力培养为切入点的教学改革思路,以 C++语言作为实现工具,介绍计算机和程序设计的基础知识与基本方法。全书的主要内容包括计算机基础知识、C++程序设计概述、分支结构、循环控制结构、数组与指针、函数、类与对象、继承与多态。__eol__在本书编写过程中,考虑到初学者的认知特点及培养程序设计能力的教学要求,对 C++语言本身的语法规则做了适当处理和组织编排,突出算法的重要概念和本质特点。全书以实际问题的求解过程为向导,突出从问题到算法,再到程序的一种思维过程,强调计算机求解问题的思路引导与程序设计思维方式的训练,重点放在程序设计的思想与方法上。__eol__本书例题丰富,与《程序设计基础学习指导书(C++)》(ISBN 978-7-121-26967-7)一起构成了一套完整的教学用书,可作为高等学校计算机与程序设计基础课程的教材,也可供社会各类计算机应用人员阅读参考。__eol__
以案例切入,引出知识点,提高读者学习兴趣。 融入算法设计思想培养,将传统的面向过程程序设计和现代的面向对象程序设计有机结合。 针对核心语法,进行重点解释,设置经典案例分析,深入浅出,降低初学者学习的难度。 本书包含配套学习用书《程序设计基础学习指导书(C++)》(ISBN 978-7-121-26967-7),增加知识点结构图、常见问题讨论和常见错误分析,以及包含丰富的习题与答案详解,感兴趣的读者朋友可以对照使用。 本书配套教学资源请登录http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0267140免费获取。
李战春,华中科技大学教授,博士,教育部文科计算机基础教学指导分委员会委员,负责“大学计算机基础”校级精品课程建设、“C++程序设计”教学内容与方法改革、学习主体个性化的C++实验体系构建与实践等工作。
第1章 计算机基础知识
1.1计算机的概况
1.1.1计算机的发展
1.1.2计算机的分类和特点
1.1.3计算机的特点与性能指标
1.1.4计算机的应用领域
1.2计算机中的信息表示
1.2.1信息编码与数制的基本概念
1.2.2数制之间的相互转换
1.2.3计算机中的数据表示14
1.3计算机系统的组成及其工作原理
1.3.1计算机硬件组成
1.3.2计算机软件组成
1.3.3计算机硬件与软件协同工作
1.4计算机程序设计与算法基础
1.4.1程序设计与程序设计语言
1.4.2语言处理程序
1.4.3计算机程序的执行过程
1.4.4算法的概念
1.4.5算法设计举例
1.4.6算法的表示
1.4.7算法的结构化描述
1.5综合应用——配置自己的计算机
1.6本章小结
1.7习题
第2章 C++程序设计概述
2.1简单的C++程序实例
2.1.1一个简单的程序结构
2.1.2C++程序的编辑和实现
2.2C++语言规则
2.2.1C++的字符集
2.2.2关键字
2.2.3标识符
2.2.4标点符号
2.3C++的数据类型
2.3.1基本数据类型
2.3.2其他数据类型
2.4运算符和表达式
2.4.1基本运算符及其表达式
2.4.2C++的运算符、优先级和结合性
2.4.3语句
2.5简单的输入/输出
2.5.1数据的输入/输出
2.5.2输出格式控制
2.6本章小结
2.7习题
第3章 分支结构
3.1if分支结构
3.1.1单分支结构
3.1.2双分支结构
3.1.3多分支结构语句
3.1.4分支结构中的if嵌套问题
3.2switch开关语句
3.2.1switch开关语句
3.2.2switch应用实例
3.3综合应用
3.4本章小结
3.5习题
第4章 循环控制结构
4.1循环语句
4.1.1for语句
4.1.2while语句
4.1.3do-while语句
4.1.4三种语句的共性和区别
4.1.5多重循环
4.2break语句与continue语句
4.2.1break语句
4.2.2continue语句
4.3常用算法应用举例
4.3.1穷举法
4.3.2迭代法
4.3.3递推法
4.4输入/输出文件简介
4.5综合应用
4.6本章小结
4.7习题
第5章数组与指针
5.1一维数组
5.1.1一维数组的定义与初始化
5.1.2一维数组的应用
5.2字符数组与字符串
5.3二维数组
5.3.1二维数组的定义与初始化
5.3.2二维数组的访问
5.3.3二维数组的应用
5.4指针
5.4.1内存空间的访问方式
5.4.2指针变量的声明与运算
5.4.3指针与数组的关系
5.4.4多级指针与多维数组
5.4.5指针数组
5.5动态内存分配
5.5.1动态内存的申请和释放
5.5.2动态数组
5.5.3动态数组应用举例
5.6综合应用
5.6.1查找算法
5.6.2排序算法
5.6.3约瑟夫问题
5.6.4贪心算法——装船问题
5.7本章小结
5.8习题
第6章 函数
6.1函数基本概念
6.1.1理解函数
6.1.2C++语言中的函数
6.2函数的声明、定义与调用
6.2.1函数声明
6.2.2函数定义
6.2.3函数调用
6.2.4程序实例
6.3变量的存储方式和生存期
6.3.1存储特性与作用域
6.3.2变量的生存期
6.4函数参数传递
6.4.1值传递
6.4.2指针传递
6.4.3引用传递
6.4.4数组参数
6.4.5程序实例
6.5函数嵌套与递归调用
6.5.1嵌套调用
6.5.2递归调用
6.5.3程序实例
6.6函数重载及参数默认值设置
6.6.1函数重载
6.6.2带默认形参值的函数
6.7多文件程序结构
6.7.1多文件结构
6.7.2预处理功能
6.7.3多文件应用实例
6.8综合应用
6.9本章小结
6.10习题
第7章类与对象
7.1从面向过程到面向对象
7.2类和对象
7.2.1类的定义
7.2.2对象的定义与使用
7.2.3构造函数与析构函数
7.2.4UML类图
7.2.5程序实例
7.3类的高级应用
7.3.1类的组合
7.3.2友元
7.3.3运算符重载
7.3.4静态成员
7.4本章小结
7.5习题
第8章继承与多态
8.1继承与派生
8.1.1派生类的定义
8.1.2同名覆盖与新成员的派生
8.1.3类型兼容
8.1.4程序实例
8.2多态与虚函数
8.2.1虚函数的定义
8.2.2纯虚函数
8.3本章小结
8.4习题
附录A库函数集锦
参考文献
“计算机与程序设计基础”是一门非常重要的计算机课程,其目的是介绍计算机和程序设计的 基础知识,使学生掌握算法设计与程序设计的基本思想、方法和技术,通过课后练习,培养学生解 决问题和编程的能力,熟悉上机的全过程及调试程序的基本方法与技巧,从而更好地培养学生的创 新能力,为未来应用计算机进行科学研究与实际应用奠定坚实的基础。
本书系统介绍了计算机的基础知识、程序设计基本概念和编程思想。针对初学者的特点,力求 做到深入浅出,将复杂的概念用简洁浅显的语言来讲述,使读者可以轻松地入门,循序渐进地提高。
本书由作者总结多年教学实践经验编写而成,针对程序设计的每个知识模块都采用“提出问 题”→“分析问题设计算法”→“编出程序”→“运行程序”→“介绍所涉及的知识点”→“补 充实例”→“课后习题”的模式组织教学内容,目的是教会学生如何编写程序,而不是背语法。
按程序设计的思路组织全书的内容,真正讲授程序设计,把重点放在讲述程序设计的方法上, 而非语言本身,注重对学生进行程序设计方法、算法和计算思维的训练,将 C++ 语言只作为讲授 程序设计的载体工具。书中穿插介绍了递推法、迭代法、穷举法、试探法、递归法、分治法等算法 设计策略,有利于读者掌握有关程序设计方法。
根据讲述设计方法的需要,对 C++ 语言本身采取“有所取、有所不取”的策略。对于那些常 用的语言成分,与讲述程序设计方法有关的语言成分,将穿插在程序设计过程中,并做详细准确的 介绍。不涉及与讲述程序设计方法关系不大且不常用的语法知识。
全书选取大量的案例,以案例为驱动,改变单纯解释语法成分的做法。让程序设计始终贯穿整 个教学过程,充分体现了以案例为驱动,突出实践的特点。本书案例多选择与实际应用相关的、实 用的题目。本书所有例子均在 Visual C++ 6.0 环境下调试通过。
为了方便学习和加强实验教学,同时编写了该书的配套用书《程序设计基础学习指导书(C++)》(ISBN 978-7-121-26967-7)。
本书的全部资源和配套课件可从华信教育资源网 http://www.hxedu.com.cn 注册免费下载。
本书的第 1 章由李战春编写,第 2 章由黄晓涛编写,第 3 章由徐永兵编写,第 4 章由黄庆凤编写,第 5 章由江敏编写,第 6 章由胡兵编写,第 7 章和第 8 章由李赤松编写。在本书的编写过程中, 编者查阅和参考了大量文献,在此对书后所列出的参考文献的作者一并表示感谢。另外,对广大读 者和师生对本书提出诚恳的建议和意见也表示衷心的感谢。由于作者水平有限,书中难免存在不足 和错误之处,恳请读者批评指正。