C语言程序设计与项目实践(第2版)

C语言程序设计与项目实践(第2版)"

作者:陈建国、易永红、马宁、靳光明
ISBN:9787302583264
定价:¥79
字数:千字
页数:
出版时间:2021.12.01
开本:
版次:2-1
装帧:
出版社:清华大学出版社
简介

本书作为学习C语言编程的入门教材,强化项目实践,重在提高编程能力。本书按照CDIO模式编写,即按照构思(分析)、设计、实现、运行的结构来构建项目模块。本书将“学生成绩管理系统”项目贯穿到全书的每章内容中,项目基于工作任务,工作任务基于教学案例,项目任务中融入基础知识。本书内容包括C语言概述、基本数据类型及运算、顺序程序设计、分支程序设计、循环程序设计、模块化程序设计、简单构造类型、复杂构造类型、指针、文件组织与使用、C语言的高级应用。

本书可以作为计算机及相关专业程序设计课程的入门教材,也可作为参加计算机等级考试和计算机编程人员的参考书。

前言

本书作为高职高专学生学习C语言编程的入门教材,着重讲述C语言程序设计的基础知识、基本算法和结构化程序设计的基本方法。本书力求帮助学生打好程序设计的基础,强化项目实践,重在提高学生的编程能力。本书具有以下特色。

(1)  知识体系层次分明。本书在结构方面针对高职高专学生自身的特点与培养目标,从高职高专学生的思维方式、理解能力以及在后续课程中的应用等诸多方面出发。在编排顺序方面较其他教材也有较大的改变,框架结构分为三个部分: 第一部分是C语言基础,包括第1~6章,内容有C语言概述、基本数据类型及运算、顺序程序设计、分支程序设计、循环程序设计、模块化程序设计;第二部分是C语言应用编程,包括第7~10章,内容有简单构造类型、复杂构造类型、指针、文件组织与使用;第三部分是第11章,介绍C语言的高级编程技术,包括位运算及应用、高级语言与汇编语言的混合编程、C51程序设计。

(2)  零起点、循序渐进,系统学习。在内容体系上,本书做到了循序渐进、系统学习、广泛实践,便于学生接受。通过第一部分的学习,学生可以基本掌握利用C语言进行结构化程序设计的方法。在学习程序的三种基本结构后,紧接着学习模块化程序设计技术(函数),从而帮助学生接受结构化编程的思想。在第二部分,逐步引入工程项目的实际例子,以提高学生分析问题和解决问题的能力。第二部分中先介绍数组,利用经典的案例,让学生学会如何利用C语言实现数据的处理,如信息系统设计中增加、删除、修改、查找等基本操作,为后面的项目实践打下基础。然后通过对结构体、共用体、枚举类型的介绍,让学生掌握如何运用计算机描述现实生活中的实体对象,如何解决实际问题的方法。指针是C语言的精彩部分,通过前面的学习,学生已经具备一定的编程能力,将指针与数组、函数、结构等结合起来,便能利用指针编写出效率更高的程序。最后介绍如何利用C语言的文件处理功能真正实现对数据的管理,结合前面的项目,使学生能够完成一个完整项目的设计。第三部分为选学部分,主要是引导学生学习,为学生在工作中利用C语言实现实时控制的编程打下基础。

(3)  案例教学、任务驱动、项目实践。本书采用任务驱动、项目实践的教学思想,全书共10个项目,34个任务,每个任务围绕学生成绩管理系统进行,并将该管理系统贯穿到全书的每个项目中,每个项目的完成又基于每个工作任务,每个工作任务基于各个章节的案例,各个项目既有一定的独立性,又相互关联,如项目8~项目10,其任务基本相同,但采用的方法和手段不同。充分考虑程序的共享性、可维护性的工程实践的基本思想,大量采用模块化编程、多人协作编程等技术,使用NS算法描述工具,程序中很多代码是通用的。每个模块的代码量较小,学生很容易实现。采用以上方式,让学生在学完这门课程后,能够掌握程序开发的基本方法,并养成良好的编程习惯。

(4) 讲练结合、自主学习。为避免现在的职业教育中学生只能“抄程序”而不能“写程序”的弊病,必须让学生掌握一定C语言的基础知识。本书将工作任务分解成提出问题、分析问题、讲解问题所需要的基本知识、任务实施、拓展训练等几个教学阶段。每个知识点结合大量案例,这些案例为解决任务而精心编写。教学上采用“讲练结合”的方式,让学生在实践中学习。学生通过相关案例的学习以及拓展训练,可以在教师的指导下完成相关工作任务,并利用课余时间完成项目实践。采用这种方法引导和帮助学生解决实际问题,可以提高学生解决具体问题及自我学习的能力。

(5) 重点突出,层次分明。本书的知识体系按照高级语言程序设计本身教学特征的要求,分为三条线索,即数据类型(基本数据类型、简单结构类型、复杂结构类型、指针)、程序设计的基本方法(顺序程序设计、分支程序设计、循环程序设计、模块化程序设计)、常用算法(算法及描述、数据处理、迭代、穷举、数据文件存储与管理)。本书采用Visual C++ 2010编程环境,适当引入C++的部分内容,如常量的声明、输入/输出流、引用变量等。每章有关键词和小结,部分习题为全国等级考试的精选题目,从多角度帮助学生掌握基础知识。通过知识体系的学习,让学生不但具有一定的实践能力,还具有相应的专业理论基础,为提高学生的专业素质奠定良好的基础。

本书内容翔实、层次分明、结构紧凑,叙述深入浅出,通俗易懂。适合作为高职高专及各类院校的教材,也可作为参加计算机等级考试和其他计算机编程的人员的参考书。

编著者2021年10月

目录

第1章C语言概述1

1.1程序设计语言与C语言1

1.1.1程序设计语言1

1.1.2C语言的发展与特点3

1.1.3C程序的上机调试步骤和方法4

1.1.4任务11C程序的编程环境14

1.2算法及其描述15

1.2.1算法与结构化程序设计15

1.2.2算法的描述17

1.2.3任务12算法的描述22

1.3项目实践程序结构分析23

小结24

习题25

第2章基本数据类型及运算27

2.1C语言的语法特征与程序结构27

2.1.1C程序的结构28

2.1.2C语言的字符集与词汇29

2.1.3任务21理解C语言的结构30

2.2C语言的数据31

2.2.1C语言的数据类型31

2.2.2常量和变量32

2.2.3整型数据34

2.2.4实型数据36

2.2.5字符型数据39

2.2.6变量赋初值42

2.2.7测试数据长度43

2.2.8各类数值型数据之间的混合运算43

2.2.9任务22理解数据在计算机中的表示与存储45

2.3运算符与表达式47

2.3.1运算符的分类47

2.3.2算术运算符与表达式48

2.3.3赋值运算符和赋值表达式49

2.3.4自增、自减运算符51

2.3.5逗号运算符和逗号表达式53

2.3.6任务23理解C语言的算术运算53

2.4项目实践描述学生信息54

小结55

习题56

第3章顺序程序设计61

3.1数据的输入与输出61

3.1.1字符数据的输入与输出62

3.1.2格式化输入与输出63

3.1.3输入/输出流68

3.1.4顺序程序设计71

3.1.5任务31考试成绩绩点的计算73

3.2宏与预定义74

3.2.1宏定义74

3.2.2文件包含80

3.2.3条件编译81

3.2.4#pragma预处理指令83

3.2.5任务32提高程序的可读性与易修改性84

3.3项目实践功能菜单设计85

小结86

习题87

第4章分支程序设计92

4.1分支和条件逻辑92

4.1.1关系运算符和表达式93

4.1.2逻辑运算符和表达式94

4.1.3条件运算符和条件表达式95

4.1.4任务41获得奖学金的条件逻辑97

4.2简单分支程序设计98

4.2.1单分支结构的程序设计98

4.2.2双分支结构的程序设计99

4.2.3任务42判断考试成绩是否合格101

4.3多分支程序设计102

4.3.1if语句的多重选择程序设计102

4.3.2switch语句的多重选择程序设计105

4.3.3任务43求解分段函数107

4.4项目实践判定考试成绩等级109

小结112

习题113

第5章循环程序设计118

5.1循环语句118

5.1.1用while语句处理循环119

5.1.2用dowhile语句处理循环121

5.1.3用for语句处理循环122

5.1.4循环嵌套的使用127

5.1.5任务51统计某门课程的平均成绩128

5.2控制转移语句130

5.2.1break语句130

5.2.2continue语句131

5.2.3goto语句132

5.2.4任务52强制中断循环134

5.3循环程序设计的应用135

5.3.1穷举135

5.3.2迭代137

5.3.3任务53穷举与迭代139

5.4项目实践考试成绩统计141

小结142

习题143

第6章模块化程序设计149

6.1函数149

6.1.1函数的概念150

6.1.2函数的声明与定义151

6.1.3函数的调用153

6.1.4函数间的数据传递155

6.1.5任务61学生成绩统计的模块化编程159

6.2变量的作用域与生存周期162

6.2.1变量的作用域与可见性162

6.2.2变量的生存周期168

6.2.3内部函数和外部函数172

6.2.4任务62多人协作完成一个任务174

6.3嵌套与递归175

6.3.1嵌套176

6.3.2递归177

6.3.3任务63币额数量的计算179

6.4项目实践自动出题181

小结184

习题185

第7章简单构造类型189

7.1一维数组189

7.1.1一维数组的定义与初始化190

7.1.2一维数组元素的引用192

7.1.3一维数组作为函数参数195

7.1.4任务71统计分析学生的考试成绩198

7.2一维数组的应用200

7.2.1数据元素的复制与选择200

7.2.2数据元素的移动204

7.2.3数据元素的查找与统计205

7.2.4数据元素的修改、删除与插入210

7.2.5数据的排序212

7.2.6任务72创建学生成绩表214

7.3二维数组及其应用217

7.3.1二维数组的定义与初始化218

7.3.2二维数组元素的引用219

7.3.3二维数组作为函数参数222

7.3.4任务73统计分析多门课程的成绩223

7.4字符数组与字符串227

7.4.1字符数组的定义、初始化及引用227

7.4.2字符串与字符数组227

7.4.3字符串的处理228

7.4.4任务74查找学生信息232

7.5项目实践考试成绩管理236

小结239

习题239

第8章复杂构造类型245

8.1结构体245

8.1.1结构体与结构体变量的定义246

8.1.2结构体成员的初始化251

8.1.3结构体成员的访问252

8.1.4结构体与函数254

8.1.5结构体数组255

8.1.6任务81建立学生基本信息表256

8.2枚举260

8.2.1枚举类型的定义260

8.2.2枚举变量260

8.2.3任务82创建学生成绩表262

8.3共用体264

8.3.1共用体概述264

8.3.2共用体变量的引用265

8.3.3任务83创建学生成绩表267

8.4自定义类型与数据的分层270

8.4.1自定义类型270

8.4.2自定义类型的应用271

8.4.3任务84学生基本信息的分层处理272

8.5项目实践再谈学生成绩管理274

小结280

习题281

第9章指针285

9.1指针与指针变量285

9.1.1指针的概念286

9.1.2指针变量的定义286

9.1.3指针运算符287

9.1.4指针表达式289

9.1.5存储空间的动态分配292

9.1.6任务91利用指针访问数据294

9.2指针与函数295

9.2.1指针变量作为函数的参数295

9.2.2函数main的参数297

9.2.3指针函数298

9.2.4函数指针300

9.2.5任务92创建静态成绩表303

9.3指针与数组304

9.3.1指针与一维数组305

9.3.2指针与多维数组309

9.3.3数组指针用作函数参数312

9.3.4字符串和指针317

9.3.5任务93创建动态成绩表319

9.4指针与结构体322

9.4.1结构体指针322

9.4.2结构体数组指针324

9.4.3结构体指针变量用作函数参数325

9.4.4结构体的自引用326

9.4.5任务94创建链表330

9.5指针数组与指向指针的指针332

9.5.1指针数组332

9.5.2指向指针的指针333

9.5.3任务95再谈排序334

9.6项目实践成绩管理优化336

小结340

习题340

第10章文件组织与使用346

10.1文件的顺序读/写346

10.1.1文件的相关概念346

10.1.2文件的打开与关闭349

10.1.3文件的读/写350

10.1.4文件检测函数357

10.1.5任务101创建一个文件359

10.2文件的随机读/写363

10.2.1文件定位363

10.2.2随机读/写365

10.2.3任务102随机存取学生信息366

10.3项目实践数据存储369

小结377

习题377

第11章C语言的高级应用381

11.1位运算及应用381

11.1.1位运算381

11.1.2位域(位段)387

11.1.3任务111文件的加密与解密389

11.2高级语言与汇编语言的混合编程391

11.2.1Visual C++汇编程序环境设置392

11.2.2在C程序中嵌入汇编语句397

11.2.3采用模块调用的方法399

11.2.4任务112C语言与汇编语言混合编程的应用401

11.3C51程序设计404

11.3.1C51编程基础404

11.3.2Keil C51集成开发环境简介408

11.3.3任务113用89S51单片机控制8个LED发光管发光411

小结413

习题414

参考文献415

附录AC语言中的运算符416附录BASCII表418附录CC语言常见库函数419

作者简介

编辑推荐

本书采用按照CDIO的模式编写,将一个完整项目融入课程中,采用项目实践、任务驱动的教学模式,强化实践应用,培养学生工程实践能力。本书提供了丰富的教学资源,提供网络教学资源,满足教师的教学需求,该课程有完整的教学资源平台,提供学生和教师在线学习和参考。培养学生的自主学习的能力

作者寄语

陈建国,男,54岁,任职于绵阳职业技术学院,本科,电子科技大学计算机应用专业毕业,副教授。主要教授过C语言程序设计、数据结构 、C#面向对象程序设计、windows程序设计、Java Web 程序设计、Java 框架技术等课程。主持的C#程序设计课程评为省级精品课程、省级共享资源课程、省级在线开放课程,c# for windos评为省级精品课程,C语言程设计、Javaweb 程序设计评为院级精品资源课程建设。

电子资料

www.luweidong.cn

下一个