新书推荐CC程序设计导论从计算到编程

书名:C/C++程序设计导论——从计算到编程(微课视频版)

作者:张力生、张化川、何睿、赵春泽

定价:69.90元ISBN:0出版日期:.03.01

技术背景在软件无处不在的时代,程序设计课程的重要性毋庸置疑。本书先通过数学带领读者学习计算和描述计算的表达方式,然后讲解如何使用计算机语言编程。编程具有较强的科学性和系统性,本书强调使用数学模型解决问题,针对我国学生数学基础好但计算思维薄弱的特点,从四则运算、函数和数学归纳法等初等数学内容入手学习计算方法和表达方式,并融入计算理论、程序理论和计算机系统等基本原理,从计算和数据两条主线,由浅入深地讨论编程的基本知识、基本原理和基本方法,旨在培养能够运用数学知识编程的优秀人才。本书的主要范围如图0.1所示。图0.1本书的主要范围编程也是工程性工作,主要涉及详细设计、编码实现两个阶段的工作。详细设计阶段的主要工作是抽象数据和设计计算流程。本书使用流程图、计算顺序图、运算序列图以及内存图等图形语言作为描述数据和计算流程的工具,介绍数学模型中数的表示方法和计算流程,在冯?诺依曼机上详细讨论数据存储方式和运算的实现原理,着重介绍运用数及运算、数学公式(函数)等数学知识设计程序流程、定义数据的方法。编码实现阶段的主要工作是使用计算机语言描述设计的数据和计算流程,并调试通过。计算机语言的表达方法主要来源于数学和自然语言,本书选用C/C++语言作为编程语言工具,介绍计算机语言的知识,分层次详细介绍编写代码的步骤和方法,着重介绍怎样运用数学和自然语言的知识描述程序的数据和计算流程。调试程序是编码实现阶段的重要工作,其工作量在编程中的占比非常高。本书选用VisualStudio作为集成开发平台,针对表达式、分支、循环、函数和程序模块详细介绍调试程序的步骤和方法。本书主要内容本书以基础理论和编程实践相结合的方式,图文并茂地介绍设计程序所需的数学知识、计算机基础知识和计算机语言基本知识,从计算和数据角度系统地介绍了设计程序的基本原理、基本方法和典型编程模式,并使用C/C++语言实现设计的程序。

全书分为基础篇和应用篇两部分,共10章。

第一部分为基础篇,包括第1~5章,按照计算机语言的层次关系采用自底向上的方式组织内容,主要从计算角度介绍编程的基本知识和基本方法。

第1章为概述。介绍了计算机、计算机语言和程序等基本概念,举例说明了编译和连接的功能和作用,以及调试程序的一般步骤,让读者对编程有一个基本的了解。

第2章为表达式和数据类型。从数和四则运算引入表达式和数据类型的概念,主要讨论了基本运算在冯?诺依曼机上的语义和表达式的运算序列,举例说明了计算表达式的步骤和方法,讨论了整型、字符型和实数型等基本数据类型的表示原理和存储格式,介绍了字符流和控制输出格式的方法,并介绍了编写、调试和维护表达式的步骤和方法。

第3章为构造分支。从分段函数引入分支的概念,主要介绍使用流程图描述程序流程的方法,深入讨论了通过分段函数构造分支的方法,讨论了关系表达式、逻辑表达式和条件表达式,举例说明了编写分支程序的4种典型模式,深入讨论了I/O流及其运算,最后介绍了编写、调试和维护分支程序的步骤和方法。

第4章为构造循环。从数学归纳法引入了循环的概念,主要介绍了构造循环的基本知识和基本原理,讨论了在数列上采用递推方式构造循环的一般步骤和基本方法,举例说明了递推公式的推导思路,介绍了while语句、for语句和do…while语句等循环语句及循环的通用流程框架,讨论了使用循环变量模式和嵌套模式编写程序的方法,最后介绍了调试和维护循环程序的步骤和方法。

第5章为函数。从数学函数引入计算机函数的概念,主要介绍了变量和函数的基本知识,介绍了使用“栈”机制管理变量和实现函数调用的原理,讨论了使用“栈”机制分析函数内部执行过程的方法,介绍了定义和调用函数的方法,讨论了描述函数调用关系的方法,举例说明了使用数学递归函数编写计算机递归函数和构造循环的方法,介绍了函数模板以及重载函数技术,最后介绍了调试和维护函数的步骤和基本方法。

第二部分为应用篇,包括第6~10章,按照数据类型或应用场景组织内容,主要从数据角度介绍编程的基本知识和基本方法。

第6章为程序组织。在总结前面内容的基础上,主要介绍了模块化程序设计思想以及相关的基本知识,着重介绍了多文件结构以及使用方法,介绍了预编译技术以及支持多文件结构程序的基本原理和方法,并介绍了在模块层次上调试程序的基本知识。

第7章为数组。介绍了“程序=数据结构+算法”的观点,开始从数据角度介绍编程技术。从数列和矩阵引入数组的概念,介绍了一维数组和二维数组,讨论了其存储结构,举例说明了使用数组管理数据和描述问题的步骤和基本方法。

第8章为指针和引用。从内存的逻辑地址引入指针的概念,主要介绍了指针及其运算,讨论了使用指针访问变量或数组元素的方法,介绍了动态管理堆内存技术,讨论了参数传递的原理,举例说明了各类参数传递的应用场景和编程方法,介绍了字符数组,举例说明了使用字符数组处理字符串的基本方法。介绍了引用及其使用方法,最后讨论了程序安全性。

第9章为结构。从向量引入结构的概念,主要介绍了声明结构、定义结构变量以及相关运算等知识,讨论了结构的存储结构和访问结构成员的方法,介绍了使用结构描述二维表并管理其数据的方法,以及使用结构实现链表的基本方法。

第10章为底层编程。从整数的记数法引入“按位”计算,介绍十进制、二进制。举例说明了自然数和整数的数值计算方法,讨论了使用补码表示整数的原理,介绍了位运算、联合等底层编程知识和技术。举例说明了基本运算的内部实现原理和方法,详细讲解了在实际应用中抽象、定义底层数据及运算的基本原理和编程方法,介绍了一个最简单的R进制计算机,讨论了对其扩展的路径和方法,可作为进一步学习、训练的示例。

最后,提供了ASCII表和运算表两个附录,以方便读者查阅。其中,运算表详细描述了常用运算的语法和语义,以及优先级和结合性,是编程的基础资料。

目录

上下滚动查看↓

目录

第一部分基础篇

第1章概述3

1.1计算机3

1.2计算机语言4

1.3为什么选择C/C++语言5

1.4简单程序6

1.5编译和连接6

1.6调试程序7

1.7本章小结9

1.8习题9

第2章表达式和数据类型10

2.1表达式10

2.1.1四则运算中的计算10

2.1.2在计算机中的计算顺序11

2.1.3表达式的运算序列12

2.1.4计算表达式的基本方法14

2.2算术运算18

2.2.1算术运算的语法和语义18

2.2.2编写表达式20

2.2.3表达式语句21

2.3变量及其运算21

2.3.1计算机中的变量22

2.3.2赋值运算26

2.4整型30

2.4.1理解整数与进制30

2.4.2整数的数据类型33

2.4.3自增和自减运算37

2.5字符型40

2.5.1字符集40

2.5.2使用字符型41

2.6实数型43

2.6.1浮点数记数法43

2.6.2实数型分类45

2.6.3实数的字面表示45

2.6.4实数型的精度和范围45

2.7算术类型转换46

2.7.1整数的数据类型转换46

2.7.2算术运算的自动类型规则48

2.7.3强制数据类型转换49

2.8计算表达式的方法50

2.8.1确定表达式的运算顺序51

2.8.2标注数据类型51

2.8.3计算表达式的值52

2.9字符流和输出格式53

2.9.1字符流的工作原理53

2.9.2控制输出单元的格式54

2.10表达式的调试与维护55

2.10.1调试编译错误56

2.10.2整型的溢出57

2.10.3整数的重要性58

2.11本章小结58

2.12习题59

第3章构造分支61

3.1结构化程序设计61

3.1.13种基本结构61

3.1.2流程图62

3.2分支结构及条件62

3.2.1if语句64

3.2.2关系运算65

3.2.3逻辑运算68

3.3构造分支的典型模式73

3.3.1单分支(if…)73

3.3.2复合语句和空语句74

3.3.3双分支(if…else…)77

3.3.4if语句嵌套78

3.3.5多分支(if…elseif…else)81

3.4使用switch语句82

3.5条件运算86

3.5.1条件运算的语法语义86

3.5.2条件运算表达式举例86

3.6I/O流及其运算89

3.6.1输出数据90

3.6.2输入数据92

3.7分支的调试与维护96

3.7.1代码格式的重要性96

3.7.2调试分支的逻辑错误97

3.8本章小结98

3.9习题99

第4章构造循环

4.1从顺序到循环

4.1.1数列求和问题

4.1.2数学归纳法中的递推

4.2使用递推构造循环

4.2.1累加和

4.2.2调和级数

4.2.3while语句

4.2.4逗号运算

4.3循环变量模式

4.3.1循环变量模式的流程框架

4.3.2循环变量模式的代码框架

4.3.3数列求积问题

4.4嵌套循环编程模式

4.5循环语句

4.5.1do…while语句

4.5.2for语句

4.5.3转向语句

4.6应用举例

4.6.1计算阶乘的累加和

4.6.2程序的运行效率

4.6.3计算ln2

4.6.4判断素数

4.6.5输出图形

4.7循环的调试与维护

4.7.1调试循环的基本方法

4.7.2维护循环代码

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.3.3访问变量的规则

5.4复合函数与分层的思想

5.4.1复合函数

5.4.2数学公式中的复合函数

5.4.3分层思想

5.5函数的嵌套调用

5.6递归函数

5.6.1数学归纳法中的递归

5.6.2递归函数举例

5.6.3递归调用过程的内部实现

5.6.4编写递归函数的方法

5.7重载函数与默认参数值

5.7.1重载函数

5.7.2匹配重载函数的步骤

5.7.3默认参数值

5.8函数模板

5.9应用举例

5.9.1求最大公约数

5.9.2汉诺塔问题

5.10函数的调试与维护

5.10.1白盒测试和黑盒测试

5.10.2测试用例和白盒测试技术

5.11本章小结

5.12习题

第二部分应用篇

第6章组织程序

6.1目前所处的学习阶段

6.2模块化程序设计思想

6.3模块与多文件结构

6.3.1划分模块的原则

6.3.2源文件与头文件

6.4使用多文件结构

6.4.1IDE功能介绍

6.4.2使用多文件结构步骤

6.5预编译与模块接口

6.5.1预编译

6.5.2模块接口

6.6调试与维护

6.6.1测试驱动开发

6.6.2调试函数与黑盒测试

6.7本章小结

6.8习题

第7章数组

7.1数据的重要性

7.2一维数组

7.2.1数组定义

7.2.2数组初始化

7.2.3访问数组元素

7.3二维数组

7.4二维数组初始化

7.5数组应用

7.5.1矩阵乘法

7.5.2冒泡排序法

7.5.3Josephus问题

7.6本章小结

7.7习题

第8章指针和引用

8.1指针及运算

8.1.1指针的概念

8.1.2定义指针变量

8.1.3指针的基本运算

8.1.4指针的加减运算

8.2动态管理堆内存

8.2.1malloc()和free()

8.2.2new与delete

8.3函数调用中传递数组

8.3.1传递一维数组

8.3.2传递二维数组

8.3.3返回指针

8.4字符数组

8.4.1定义字符数组

8.4.2字符串常量

8.4.3字符串的基本运算

8.4.4使用字符串运算

8.4.5使用字符数组的安全性

8.4.6字符串数组

8.5函数指针与数据排序

8.6引用

8.6.1传值调用的局限

8.6.2传地址调用

8.6.3引用的概念

8.6.4传引用调用

8.7应用举例

8.7.1消除指针提高安全性

8.7.2使用函数模板重用代码

8.7.3字符串排序

8.8程序安全性问题

8.8.1限制变量访问

8.8.2提高函数调用的安全性

8.9本章小结

8.10习题

第9章结构

9.1声明结构

9.2定义和访问结构变量

9.3使用结构

9.3.1使用点运算访问成员变量

9.3.2使用指针访问变量

9.4应用举例

9.4.1使用动态数组管理员工信息

9.4.2使用指针数组管理员工信息

9.4.3多维表

9.4.4Josephus问题

9.5本章小结

9.6习题

第10章底层编程

10.1进制和计算方法

10.1.1十进制及计算方法

10.1.2自然数的二进制及计算方法

10.1.3整数的补码

10.1.4十六进制

10.2位运算

10.2.1移位运算

10.2.2按位逻辑运算

10.2.3编程实现加减法运算

10.2.4编程实现整数乘法

10.2.5R进制计算机

10.2.6IP地址

10.3联合

10.3.1声明联合和定义变量

10.3.2字节的顺序

10.3.3图像的像素点

10.3.4IP地址

10.4本章小结

10.5习题

附录AASCII表

附录B运算表

参考文献  

本书特色

(1)强化数学基础,夯实计算思维,重点讲解计算方法等内容。本书涉及的数学知识主要来源于初等数学内容,并针对我国中学生计算思维薄弱的特点讲解了计算方法的内容,充分利用我国学生数学基础好的优势,降低学习的门槛。

(2)结构化程序设计思想和面向对象程序设计思想有机融合,旨在节约学生的学习时间。按照先有数再有运算的数学思维,以计算和数据并重的观点组织内容,将结构化程序设计思想和面向对象程序设计思想融合,在程序设计方法上形成一个整体。

(3)图文并茂,通俗易懂。通过使用大量的流程图、计算顺序图、运算序列图和内存图等图形语言,全面讲解程序的计算和数据等内容,以便加强对读者软件设计能力的培养。

(4)紧跟国际工程教育思路,注重实践。将计算机语言、计算机系统、开发环境等回归到工具,强调运用这些工具解决实际问题。

配套资源

为便于教与学,本书配有分钟微课视频、源代码、教学课件、教学大纲、授课计划、习题答案、考试试卷及答案。

进一步学习的内容当读者完成本书的学习时,是否能成为一名编程的专家呢?答案当然是否定的。但在程序设计领域已经有了一个良好的开始,比较好地掌握了编程所需的基本知识和基本原理,并得到了较好的编程训练。能够编写比较简单的程序,能够从计算角度理解复杂的程序,为进一步的学习打下了良好的理论和实践基础。当读者完成本书的学习后,进一步学习的最好方法是大量阅读程序并开发一个真正能被别人使用的程序。编程开源区、开发环境中都有很多经典的代码,可供读者选择,但在阅读程序时,需要从数据和计算流程两个方面理解。还可以进一步从更高层次学习抽象数据和计算的方法,学习面向对象的编程知识和技术。面向对象编程的教材很多,最好选择整合了面向对象设计和编程实现内容的教材,面向对象设计的成果一般会使用UML描述,在选择教材时,可通过是否使用了UML简单判断是否包含了面向对象设计内容。读者对象

本书适合作为全国高等院校计算机及相关专业的程序设计课程的教材,也可供从事软件开发的专业人员自学使用。

IT书圈




转载请注明:http://www.aierlanlan.com/rzgz/12.html

  • 上一篇文章: 没有了
  •   
  • 下一篇文章: