编程大讲坛 坛坛是佳酿--编程大讲坛:C语言核心开发技术从入门到精通



【书名】编程大讲坛:C语言核心开发技术从入门到精通
【作者】陈强
【ISBN】978-7-121-09060-8
【出版社】电子工业出版社
【出版日期】20098
【定  价】59.80元(含光盘1张)
【宣传语】
编程大讲坛、坛坛是佳酿
用实用的方式,讲解实用的技术和项目实践经验

书山有路勤为径,学海无涯苦作舟。
                             ——韩愈
这是出自我国唐代著名诗人、哲学家韩愈的治学名联。他教育我们要想学好书中的知识,需要自己付出辛勤的汗水。转眼间已经距大唐盛世千年,现在已经进入了21世纪。这是一个什么时代?
——这是一个快节奏的时代,要求我们要跟上发展!
——这是一个网络时代,网络上有我们需要的大量资源!
——这是一个奋斗的时代,各行各业的人们都需要奋斗!
——这是一个竞争的时代,我们随时随地都面临着竞争!

本系列图书和市场上其他类似书籍相比,具有以下与众不同的特色。
1.科学的合理计划
2.知识点的通俗性和全面性,典型的实例,深入性的实例讲解
3.实用性
4.全面性
5.与网络学习的完美结合
6.实用超值的光盘
7.提供完善的技术支持
【内容简介】
本书由浅入深地讲解了C语言开发技术,以遵循科学合理的学习计划为主线,通过典型实例来讲解其具体使用。全书内容分为20课,其中第1~8课依次讲解了C语言概述、C语言算法和数据类型、C语言运算符和表达式、C语句和数据的输入输出、程序流程控制、数组和字符串、函数,以及指针。第9~12课讲解了结构体、共用体和枚举,链表,位运算和编译预处理。第13~17课讲解了文件操作处理,错误和程序调试,组件技术的相关知识,C语言程序设计范例和C语言高级编程技术。第18~20课分别讲解了C语言俄罗斯方块游戏,Ping网络项目,学生成绩管理系统的流程和实现方法。
光盘中包含全书案例的完整源代码、C语言开发环境快速入门的视频教程,以及赠送的4套完整大型案例的源代码和视频讲解。
本书内容全面,不但适合没有任何C语言基础的初学者,而且适合有一定设计基础并且想进一步提高水平的中级读者。
【目录】

第1篇  编程基础篇
 
第1课  C语言概述 3
C语言是当前所有开发语言中使用最为广泛的一种,从其诞生之日起就深受人们的喜爱。因为C语言的普及性,使得后来的开发语言都或多或少地遵循了它的模式。
1.1  本课学习目标 3
1.2  C语言发展介绍 3
1.3  C语言特点 4
1.4  C语言编译器 5
1.5  安装Turbo C 3.0 6
1.6  Turbo C 3.0开发环境 9
1.6.1  File(文件)菜单 9
1.6.2  Edit(编辑)菜单 10
1.6.3  Run(运行)菜单 10
1.6.4  Compile(编译)菜单 11
1.6.5  Project(项目)菜单 11
1.6.6  Debug(调试)菜单 12
1.7  进行C语言程序开发 12
1.7.1  编辑源代码 13
1.7.2  源代码编译 13
1.7.3  链接目标代码 13
1.7.4  运行可执行程序 14
1.8  一个简单的C语言程序 14
1.9  C语言程序结构 15
1.9.1  C程序组成部分 15
1.9.2  C语言程序格式总结 18
1.10  本课回顾和网络关键词 19
第2课  C语言算法和数据类型 21
任何程序语言中都需要进行大量的运算,为达到某个目的以获取指定的结果,这就需要了解算法的基础知识。
2.1  本课学习目标 21
2.2  算法基础 21
2.2.1  算法的概念 21
2.2.2  流程图表示算法 23
2.2.3  计算机语言表示算法 24
2.3  C语言数据类型概述 24
2.4  常量和变量 26
2.4.1  常量 26
2.4.2  变量 27
2.5  整型数据 30
2.5.1  整型常量 31
2.5.2  整型变量 32
2.6  实型数据 35
2.6.1  实型常量 35
2.6.2  实型变量 36
2.6.3  实型常量的类型 38
2.7  字符型数据 38
2.7.1  字符常量 39
2.7.2  字符串常量 41
2.7.3  字符变量 41
2.8  初始化变量 44
2.9  整型、实型与字符型数据间的运算 45
2.10  本课回顾和网络关键词 47
第3课  C语言运算符和表达式 49
有了变量和常量后,还需要对它们进行必要的运算处理,才能实现特定功能。为此,运算符和表达式便应运而生。
3.1  本课学习目标 49
3.2  运算符和表达式基础 49
3.2.1  运算符的种类 49
3.2.2  运算符的优先级 51
3.3  算术运算符和算术表达式 52
3.3.1  单目运算符 53
3.3.2  双目运算符 54
3.4  赋值运算符和赋值表达式 55
3.4.1  基本赋值运算符 56
3.4.2  复合赋值运算符 59
3.4.3  赋值表达式 60
3.5  关系运算符和关系表达式 62
3.6  逻辑运算符和逻辑表达式 64
3.7  逗号运算符和逗号表达式 67
3.8  求字节数运算符 69
3.9  本课回顾和网络关键词 71
第4课 C语句和数据的输入输出 73
在本书前几课的内容中,多次使用了printf函数和scanf函数,这两个函数是最为常用的输入和输出函数。
4.1  本课学习目标 73
4.2  C语句初步 73
4.2.1  C语句简介 73
4.2.2  空白对语句的作用 75
4.2.3  赋值语句 76
4.3  数据的输入和输出 77
4.3.1  putchar函数 77
4.3.2  getchar函数 79
4.3.3  printf函数 81
4.3.4  scanf函数 85
4.3.5  puts函数 90
4.3.6  gets函数 91
4.4  本课回顾和网络关键词 93
第5课  程序流程控制 95
C语言是一种结构化和模块化通用程序设计语言,结构化程序设计方法可以使程序结构更加清晰,提高程序的设计质量和效率。
5.1  本课学习目标 95
5.2  顺序结构 95
5.3  选择结构 97
5.3.1  单分支结构语句 98
5.3.2  双分支结构语句 99
5.3.3  多分支结构语句 104
5.3.4  条件运算符和条件表达式 107
5.4  循环结构 109
5.4.1  for语句循环 109
5.4.2  while语句 113
5.4.3  do…while语句 116
5.4.4  循环语句的总结和效率 118
5.4.5  goto语句 119
5.4.6  break语句 120
5.4.7  continue语句 121
5.4.8  死循环和退出程序 121
5.5  本课回顾和网络关键词 123
第6课  数组和字符串 125
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。
6.1  本课学习目标 125
6.2  一维数组 125
6.2.1  定义一维数组 126
6.2.2  引用一维数组元素 126
6.2.3  初始化一维数组 128
6.3  多维数组 131
6.3.1  二维数组 132
6.3.2  多维数组 136
6.3.3  引用多维数组 138
6.4  字符数组与字符串 140
6.4.1  字符数组 140
6.4.2  字符串与字符数组 143
6.4.3  字符数组的输入/输出 143
6.5  字符串处理函数 146
6.5.1  测试字符串长度函数 146
6.5.2  字符串大小写转换函数 147
6.5.3  字符串复制函数 148
6.5.4  字符串比较函数 151
6.5.5  字符串连接函数 153
6.5.6  其他字符串函数 155
6.5.7  将字符串转换成数值的函数 155
6.6  字符处理函数 156
6.6.1  字符检测函数 156
6.6.2  字符大小写转换函数 158
6.7  本课回顾和网络关键词 159
第7课  函数 161
在前面的内容中,已经介绍过C语言源程序是由函数组成的。虽然其程序中大多数只有一个主函数main(),但实用的程序往往由多个函数组成。函数是C语言源程序的基本模块,通过对函数模块的调用就能够实现特定的功能。
7.1  本课学习目标 161
7.2  C语言函数基础 161
7.2.1  函数分类 162
7.2.2  函数的定义 163
7.3  函数的声明和函数原型 166
7.4  参数 167
7.4.1  形参和实参 168
7.4.2  数组名作为函数参数 169
7.4.3  数组作为函数参数 172
7.5  返回值 176
7.6  函数的调用 178
7.6.1  函数调用格式 178
7.6.2  函数调用的方式 180
7.6.3  对被调函数的声明 182
7.6.4  调用函数方式的深入分析 183
7.7  函数的嵌套调用和递归调用 184
7.7.1  函数的嵌套调用 185
7.7.2  函数的递归调用 189
7.8  变量的作用域和生存期 193
7.8.1  变量作用域 193
7.8.2  静态存储变量和动态存储变量 197
7.9  项目文件 206
7.10  内部函数和外部函数 208
7.10.1  内部函数 208
7.10.2  外部函数 209
7.11  库函数基础 211
7.11.1  C库函数介绍 211
7.11.2  C库函数分类 212
7.12  本课回顾和网络关键词 213
第8课  指针 215
指针是C语言中广泛使用的一种数据类型,运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构,可以很方便地使用数组和字符串,并能像汇编语言一样处理内存地址,从而编出精炼而高效的程序。
8.1  本课学习目标 215
8.2  基本概念 215
8.3  变量的指针和指向变量的指针变量 216
8.3.1  指针变量的声明 217
8.3.2  指针变量的初始化 217
8.3.3  指针变量的引用 218
8.3.4  关于指针运算符的说明 220
8.3.5  指针变量的运算 222
8.3.6  指针变量作为函数参数 223
8.3.7  void类型的指针 226
8.4  指针和数组 228
8.4.1  数组元素的指针 229
8.4.2  指向一维数组元素的指针变量 230
8.4.3  通过指针引用数组元素 231
8.4.4  使用指针变量应该注意的问题 235
8.4.5  数组名作函数参数 238
8.5  指针和多维数组 242
8.5.1  多维数组的地址 242
8.5.2  指向多维数组的指针变量 245
8.6  指针和字符串 248
8.6.1  指针访问字符串 248
8.6.2  字符串指针作函数参数 250
8.6.3  使用字符串指针变量与字符数组的区别 252
8.7  指针数组和多级指针 253
8.7.1  指针数组 253
8.7.2  多级指针的定义和应用 255
8.7.3  指向指针的指针 257
8.7.4  main函数的参数 258
8.8  指针函数和函数指针 260
8.9  本课回顾和网络关键词 264
第9课  结构体、共用体和枚举 265
在前面的内容中,我们学习了一种构造数据类型——数组,使用数组后可以给整个程序带来极大的方便。在实际问题中,一组数据往往具有不同的数据类型。
9.1  本课学习目标 265
9.2  结构体 265
9.2.1  定义结构体类型 266
9.2.2  结构体类型变量的定义 267
9.2.3  结构体变量的引用 269
9.2.4  结构体变量的初始化 272
9.3  结构体数组 273
9.3.1  结构体数组定义 273
9.3.2  结构体数组的初始化 276
9.3.3  结构体数组的引用 280
9.4  结构体指针 282
9.4.1  结构体指针变量的定义 282
9.4.2  结构体指针变量的初始化 283
9.4.3  结构体指针变量的引用 283
9.4.4  指向结构变量的指针 284
9.4.5  指向结构体数组的指针 285
9.5  结构体和函数 287
9.5.1  结构体变量和结构体指针作为函数参数 287
9.5.2  返回结构体类型值的函数 289
9.6  共用体 291
9.6.1  共用体及共用体变量的定义 291
9.6.2  共用体变量的引用与初始化 294
9.6.3  结构和共用体的区别 295
9.7  枚举 296
9.7.1  定义枚举类型 297
9.7.2  定义枚举变量 298
9.7.3  枚举变量的引用 298
9.8  用typedef定义类型 300
9.9  本课回顾和网络关键词 303
第10课  链表 305
在C语言数组中,不允许动态数组类型。用变量表示长度,相对数组的大小做动态说明,这是错误的。但是在现实引用中,往往会发生上述情况,即所需的内存空间取决于实际输入的数据,而无法预先决定。
10.1  本课学习目标 305
10.2  动态内存分配 305
10.2.1  为什么用动态内存分配 306
10.2.2  如何实现动态内存分配及其管理 306
10.3  链表 310
10.3.1  链表概述 311
10.3.2  单向链表 314
10.3.3  创建链表 317
10.3.4  删除整个链表 318
10.3.5  在链表中插入结点 319
10.3.6  在链表中删除结点 319
10.3.7  双向链表 320
10.3.8  循环链表 323
10.4  本课回顾和网络关键词 323
第11课  位运算 325
在前面介绍的各种运算都是以字节作为最基本单位进行的,但在很多系统程序中常要求在位(bit)一级进行运算或处理。
11.1  本课学习目标 325
11.2  位运算符和位运算 325
11.2.1  按位与运算 326
11.2.2  按位或运算 327
11.2.3  按位异或运算 328
11.2.4  取反运算 329
11.2.5  左移运算 329
11.2.6  右移运算 330
11.2.7  位运算应用实例 330
11.3  位域 333
11.4  本课回顾和网络关键词 335
第12课  预编译处理 337
在前面的内容中,已多次使用过以“#”号开头的预处理命令。如包含命令#include,宏定义命令#define等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分。
12.1  本课学习目标 337
12.2  预处理概述 337
12.3  宏定义 338
12.3.1  不带参数的宏定义 338
12.3.2  带参数的宏定义 341
12.3.3  字符串化运算符 344
12.3.4  并接运算符 345
12.4  文件包含 345
12.5  条件编译 348
12.6  本课回顾和网络关键词 354

 
第2篇  技术提高篇
 
第13课  文件操作处理 357
计算机信息系统中,根据信息的存储时间,可以分为临时性信息和永久性信息。简单来说,临时信息存储在计算机系统临时存储设备(例如存储在计算机内存),这类信息随系统断电而丢失。
13.1  本课学习目标 357
13.2  文件概述 357
13.2.1  文本文件 358
13.2.2  文件分类 359
13.3  文件指针 360
13.4  文件打开与关闭 360
13.4.1  文件打开 360
13.4.2  文件关闭 363
13.5  文件读写操作 365
13.5.1  字符读写函数 366
13.5.2  字符串读写函数 370
13.5.3  格式化读写函数 374
13.5.4  数据块读写函数 377
13.5.5  其他读写函数 379
13.6  文件的随机读写 381
13.6.1  fseek函数 381
13.6.2  rewind函数 384
13.6.3  ftell函数 384
13.7  文件管理函数 386
13.7.1  删除文件 386
13.7.2  重命名文件 387
13.7.3  复制文件 388
13.8  文件状态检测函数 391
13.8.1  feof函数 391
13.8.2  ferror函数 392
13.8.3  clearerr函数 392
13.9  本课回顾和网络关键词 396
第14课  错误和程序调试 397
C语言不但功能强大,而且使用范围广,是广大程序员必备的语言之一。程序员可以方便使用C编写出功能强大的项目,但是要真正学好C语言,其实并不容易。
14.1  本课学习目标 397
14.2  常见错误分析 397
14.3  错误的检出与分离 403
14.4  程序调试 405
14.5  本课回顾和网络关键词 409
第15课  组件技术简要介绍 411
组件是编程语言中的核心,无论是传统的C语言,还是近年来很火的.NET技术,都包含了大量的组件。
15.1  本课学习目标 411
15.2  组件技术概述 411
15.3  体系结构 412
15.4  CORBA技术体系 413
15.4.1  CORBA概述 413
15.4.2  对象管理体系结构OMA 414
15.4.3  CORBA的结构基础 415
15.4.4  CORBA技术应用 417
15.5  DCOM技术 418
15.5.1  分布式应用的作用 418
15.5.2  DCOM的结构 419
15.5.3  部件和复用 420
15.5.4  位置独立性 420
15.6  EJB技术 421
15.7  本课回顾和网络关键词 422
第16课  C语言程序设计范例总结 423
在前面的内容中,介绍了C语言的基本知识和概念,并介绍了各种数学运算和字符的处理方法。本课将着重总结介绍常见的数学问题及其处理方法,以及如何应用C语言程序进行程序设计,并最终求解问题,以此来提高读者的开发经验。
16.1  本课学习目标 423
16.2  求和和求积问题 423
16.2.1  计算数列求和 424
16.2.2  π的计算 425
16.2.3  定积分计算 427
16.3  遍历问题 428
16.3.1  字符统计问题 428
16.3.2  加密计算 429
16.3.3  素数问题 430
16.3.4  水仙花数/完数问题 431
16.3.5  百钱买百鸡问题 433
16.4  迭代问题 434
16.4.1  二分法迭代 434
16.4.2  牛顿迭代 436
16.5  排序问题 437
16.5.1  直接插入排序 438
16.5.2  起泡法排序 439
16.5.3  选择排序 440
16.6  查找问题 441
16.6.1  顺序查找 442
16.6.2  折半查找 442
16.7  递归问题 443
16.7.1  折半查找 443
16.7.2  树的遍历 445
16.8  字符串处理 447
16.9  矩阵运算 448
16.10  本课回顾和网络关键词 450
第17课  C语言高级编程技术 451
在前面的内容中,C语言开发都是在DOS环境下进行的。执行后只能显示简单的文字效果,界面枯燥乏味。而使用过C语言等开发工具的程序员应该了解到,图形界面给开发人员带来的巨大诱惑性。
17.1  本课学习目标 451
17.2  高级编程技术概述 451
17.3  文本的屏幕输出和键盘输入 452
17.3.1  文本的屏幕输出 452
17.3.2  键盘输入 459
17.3.3  应用实例 461
17.4  图形显示方式和鼠标输入 464
17.4.1  图形模式的初始化 464
17.4.2  清屏和恢复显示方式的函数 467
17.4.3  独立图形运行程序的建立 468
17.4.4  基本绘图函数 469
17.4.5  画线的线型函数 473
17.4.6  颜色控制函数 476
17.4.7  封闭图形的填色函数及有关画图函数 481
17.4.8  图形窗口函数 484
17.4.9  图形方式下的文本输出函数 485
17.5  菜单设计 489
17.5.1  实现下拉式菜单 489
17.5.2  实现弹出式菜单 494
17.6  网络编程基础 499
17.6.1  常用协议报头 499
17.6.2  Winsock基础 503
17.7  本课回顾和网络关键词 506
 
第3篇  综合应用篇
 
第18课  俄罗斯方块游戏 509
俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。
18.1  游戏功能描述 509
18.2  游戏总体设计 510
18.2.1  功能模块设计 510
18.2.2  数据结构设计 512
18.2.3  构成函数介绍 514
18.3  游戏具体实现 515
18.3.1  预处理 515
18.3.2  主函数 518
18.3.3  初始化界面处理 521
18.3.4  时钟中断处理 522
18.3.5  成绩、速度和帮助处理 522
18.3.6  满行处理 523
18.3.7  方块显示和消除处理 526
18.3.8  游戏方块操作判断处理 528
第19课  Ping网络项目设计 531
Ping命令是使用最为频繁的一个网络测试命令,它能够测试一个主机到另外一个主机间的网络连接是否连通。
19.1  系统功能描述 531
19.2  系统总体设计 532
19.2.1  功能模块设计 532
19.2.2  数据结构设计 534
19.2.3  构成函数介绍 535
19.3  系统具体实现 536
19.3.1  预处理 536
19.3.2  初始化处理 538
19.3.3  控制模块 539
19.3.4  数据报解读处理 541
19.3.5  Ping测试处理 543
19.3.6  主函数 546
第20课  学生成绩管理系统 549
现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。
20.1  系统总体描述 549
20.1.1  项目开发的目标 549
20.1.2  项目提出的意义 549
20.1.3  系统功能描述 550
20.2  系统总体设计 551
20.2.1  功能模块设计 551
20.2.2  数据结构设计 554
20.2.3  构成函数介绍 554
20.3  系统具体实现 556
20.3.1  预处理 556
20.3.2  主函数main 557
20.3.3  系统主菜单函数 558
20.3.4  表格显示信息 559
20.3.5  信息查找定位 560
20.3.6  格式化输入数据 561
20.3.7  增加学生记录 561
20.3.8  查询学生记录 563
20.3.9  删除学生记录 564
20.3.10  修改学生记录 565
20.3.11  插入学生记录 566
20.3.12  统计学生记录 568
20.3.13  排序处理 568
20.3.14  存储学生信息 570

光盘索引
 
实例名称:俄罗斯方块游戏
路    径:…\data\视频\俄罗斯方块.avi
视频时间:14分30秒
通过一个简单的俄罗斯方块游戏实例来说明C语言编写游戏项目的基本方法。本实例游戏的构成功能模块包括:游戏方块预览功能、游戏方块控制功能、游戏显示更新功能、游戏速度和分数更新功能、游戏帮助功能。
实例名称:Ping网络项目设计
路    径:…\data\视频\Ping网络项目.avi
视频时间:21分53秒
使用C语言开发一个类似Windows系统Ping工具的方法,并详细介绍其具体的实现流程,让读者体会C语言在网络编程领域中的应用。本实例系统的构成功能模块包括:初始化模块、控制模块、数据解读模块、Ping测试模块。
实例名称:学生成绩管理系统
路    径:…\data\视频\学生成绩.avi
视频时间:22分31秒
使用C语言开发一个学生成绩管理系统的方法,并详细介绍其具体的实现流程,让读者体会C语言在文件操作领域中的应用。本实例的构成功能模块包括:输入记录模块、记录查询模块、记录更新模块、记录统计模块、记录输出模块。

请使用浏览器的分享功能分享到微信等