《C语言开发实战》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:软件开发技术联盟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302323082
  • 页数:615 页
图书介绍:本书从初学者的角度讲述了使用Visual C++ 6.0(以及部分Turbo C)进行程序开发应该掌握的各项技术,突出“基础”、“全面”、“深入”,同时就像书名所暗示的一样,强调“实战”效果。本书每一章均提供了相应的实例,同时在各章的结尾安排有实战,做到理论联系实际。 本书适合有志于从事软件开发的初学者、高校计算机相关专业学生和毕业生,也可作为软件开发人员的参考手册,或者高校的教学参考书。

第1篇 新手入门 3

第1章 C语言开发环境 3

1.1本章知识体系 4

1.2程序员的成长之路 4

1.3 C语言的重要性 5

1.4如何学好C语言 5

1.5 C语言常用开发工具简介 6

1.5.1 Turbo C 6

1.5.2 Visual C++6.0 7

1.5.3 C++ Builder(BCB) 7

1.5.4 Cygwin 7

1.5.5 Dev-C++ 7

1.5.6 Source Insight 7

1.6了解Visual C++集成开发环境 8

1.6.1开发环境布局 8

1.6.2菜单栏 8

1.6.3工具栏 14

1.6.4工作区窗口 14

1.6.5代码编辑窗口 14

1.6.6输出窗口 15

1.7如何在Turbo C 2.0下运行C源程序 15

1.8了解GCC开发编译器 17

1.9 Dev-C++ 17

1.9.1 Dev-C++概述 17

1.9.2 Dev-C++的使用 17

1.10 Eclipse for C/C++ 19

1.10.1 Eclipse概述 19

1.10.2 Eclipse的使用 19

1.11实战 20

1.11.1判断三角形的类型 20

1.11.2计算某日是该年的第几天 22

1.11.3婚礼上的谎言 23

1.11.4尼科彻斯定理 24

1.11.5猴子吃桃 25

1.11.6阳阳买苹果 26

1.12疑难解惑 28

1.12.1为什么说C语言可移植性好 28

1.12.2 C语言的应用领域有哪些 28

1.12.3如何提高C语言的编程效率 28

1.13小结 29

1.14学习成果检验 29

第2章 C语言开发基础 31

2.1本章知识体系 32

2.2编码规范要记牢 32

2.2.1注释的合理使用 32

2.2.2程序中的{}要对齐 33

2.2.3合理使用空格使代码更规范 34

2.2.4换行使代码更清晰 34

2.3语言要素 35

2.3.1关键字 35

2.3.2标识符 35

2.4常量 36

2.4.1整型常量 36

2.4.2实型常量 38

2.4.3字符型常量 38

2.4.4字符串常量 39

2.5变量 40

2.5.1什么是变量 40

2.5.2变量的声明 41

2.6 数据类型 41

2.6.1什么是数据类型 41

2.6.2整型 41

2.6.3实型 43

2.6.4字符型 44

2.6.5枚举类型 45

2.7使用typedef定义类型 47

2.8变量的存储类型 49

2.8.1了解变量的存储类型 49

2.8.2使用auto关键字声明自动变量 49

2.8.3使用static关键字声明静态变量 50

2.8.4使用register关键字声明寄存器变量 52

2.8.5使用extern关键字声明外部变量 53

2.8.6使用static关键字声明静态外部变量 56

2.9混合运算 57

2.10实战 58

2.10.1十进制转换为二进制 58

2.10.2求100~200之间的素数 60

2.10.3利用“#”输出图形 61

2.10.4打印杨辉三角 61

2.10.5利用“*”输出矩形 63

2.10.6小球下落问题 63

2.10.7巧分苹果 64

2.11疑难解惑 66

2.11.1声明变量和定义变量 66

2.11.2限定词const 66

2.11.3字符串常量为什么用“\0”作为结束符 67

2.12小结 67

2.13学习成果检验 67

第3章 运算符与表达式 69

3.1本章知识体系 70

3.2运算符与表达式的使用 70

3.2.1赋值运算符与表达式 70

3.2.2加减乘除新认识 72

3.2.3关系源自比较 73

3.2.4逻辑出真假 74

3.2.5逗号运算符与表达式 76

3.2.6运算符的优先级 77

3.3自增、自减操作符 78

3.3.1认识自增、自减操作符 78

3.3.2自增、自减操作符的副作用 79

3.4位运算 79

3.4.1“或”运算符 80

3.4.2“与”运算符 81

3.4.3“取反”运算符 82

3.4.4“异或”运算符 83

3.4.5“左移”运算符 84

3.4.6“右移”运算符 85

3.5实战 86

3.5.1求1~10的累加和 86

3.5.2计算学生的平均身高 86

3.5.3求一元二次方程ax2+bx+c=0的根 87

3.5.4阿姆斯特朗数 88

3.5.5可逆素数 89

3.5.6满足abcd=(ab+cd)2的数 90

3.5.7最大公约数及最小公倍数 91

3.5.8循环移位 92

3.6疑难解惑 94

3.6.1表达式“a=b”和“a= =b”一样吗 94

3.6.2如何区分“,”是运算符还是分隔符 94

3.6.3 C语言中有哪些简化的运算表达式 96

3.7小结 96

3.8学习成果检验 96

第4章 语句 99

4.1本章知识体系 100

4.2语句的构成 100

4.2.1表达式语句 101

4.2.2函数调用语句 101

4.2.3控制语句 103

4.2.4复合语句 103

4.2.5空语句 103

4.3如何实现字符数据输入/输出 103

4.3.1字符数据输出 103

4.3.2字符数据输入 104

4.4格式输入/输出 105

4.4.1格式输出函数 105

4.4.2格式输入函数 110

4.5程序的控制结构 112

4.5.1顺序结构 112

4.5.2分支结构 113

4.5.3循环结构 113

4.6 if语句 114

4.6.1 if语句的介绍 114

4.6.2 if语句的嵌套 118

4.7条件运算符 119

4.8 switch语句 120

4.8.1 switch语句的基本形式 120

4.8.2剖析switch和if语句 124

4.9 while与do-while语句 124

4.9.1当型循环语句while 124

4.9.2直到型循环语句do-while 127

4.9.3 while与do-while的异同 128

4.10 for语句 129

4.10.1初识for语句 129

4.10.2 for语句的变体 131

4.10.3 for语句的嵌套 133

4.11跳转语句 135

4.11.1 continue语句跳出本次循环 135

4.11.2 break语句跳出循环 136

4.11.3用于返回数据的return语句 137

4.11.4 goto语句 138

4.12实战 139

4.12.1输出3*3矩阵 139

4.12.2输出一个字符的前驱字符 140

4.12.3根据输入判断能否构成三角形 141

4.12.4求学生的最高分和最低分 142

4.12.5整数加减法练习 142

4.12.6一元钱兑换方案 144

4.13疑难解惑 145

4.13.1 C语言提供的跳转语句各有什么特点 145

4.13.2循环嵌套时应该注意什么 145

4.13.3如何提高循环语句的执行效率 145

4.14小结 146

4.15 学习成果检验 146

第5章 综合实验(一)——模拟ATM机界面程序 147

5.1概述 148

5.2需求分析 148

5.3设计思路 148

5.4详细设计 148

5.5程序代码 153

第2篇 进阶提高 159

第6章 数组 159

6.1本章知识体系 160

6.2一维数组 160

6.2.1如何定义和引用一维数组 160

6.2.2一维数组初始化 161

6.2.3一维数组应用 163

6.3二维数组 164

6.3.1如何定义和引用二维数组 164

6.3.2二维数组初始化 164

6.3.3二维数组应用 166

6.4多维数组 167

6.5字符数组 168

6.5.1如何定义和使用字符数组 168

6.5.2字符数组初始化 168

6.5.3字符数组的结束标志 171

6.5.4字符数组的输入和输出 172

6.5.5字符数组应用 174

6.6实战 175

6.6.1相邻元素之和 175

6.6.2选票系统 176

6.6.3统计学生成绩 178

6.6.4模拟比赛打分 179

6.6.5矩阵的转置 180

6.6.6设计魔方阵 181

6.6.7统计各种字符个数 183

6.6.8删除字符串中的连续字符 184

6.7疑难解惑 185

6.7.1数组下标必须从0开始吗 185

6.7.2数组名作函数参数与数组元素作函数参数有什么不同之处 185

6.7.3 ‘\0’和“\0”有什么区别 186

6.8小结 186

6.9学习成果检验 186

第7章 函数 187

7.1本章知识体系 188

7.2函数概述 188

7.3函数的定义 190

7.3.1无参函数 190

7.3.2有参函数 191

7.3.3空函数 191

7.4返回语句 192

7.4.1从函数返回 192

7.4.2返回值 192

7.5函数参数 193

7.5.1形式参数与实际参数 193

7.5.2数组作函数参数 195

7.5.3 main参数 199

7.6函数的调用 201

7.6.1函数调用方式 201

7.6.2嵌套调用 202

7.6.3递归调用 203

7.7内部函数和外部函数 206

7.7.1内部函数 206

7.7.2外部函数 207

7.8局部变量和全局变量 208

7.8.1局部变量 208

7.8.2全局变量 209

7.9实战 212

7.9.1百钱百鸡问题 212

7.9.2求直角三角形斜边 213

7.9.3小数分离 213

7.9.4判断素数 214

7.9.5递归解决分鱼问题 215

7.9.6字母检索 216

7.9.7求字符串中字符的个数 217

7.9.8打渔晒网问题 218

7.10疑难解惑 220

7.10.1在调用时不使用函数的返回值会产生什么现象 220

7.10.2 C语言中函数的调用方式有哪几种 220

7.10.3函数定义时容易犯哪些错误 221

7.11小结 221

7.12学习成果检验 222

第8章 指针 223

8.1本章知识体系 224

8.2指针相关概念 224

8.2.1地址与指针 224

8.2.2指针变量 225

8.2.3指针的赋值 225

8.2.4指针的引用 226

8.3指针运算 227

8.4一维数组与指针 230

8.5指针访问二维数组 234

8.6字符和指针 237

8.6.1使用字符指针 237

8.6.2字符指针数组 239

8.7指向指针的指针 240

8.8函数型指针 242

8.9实战 244

8.9.1用指针实现数据交换 244

8.9.2使用指针实现整数排序 245

8.9.3查找成绩不及格的学生 246

8.9.4使用指针实现冒泡排序 247

8.9.5使用指针插入元素 248

8.9.6实现输入月份号输出该月份的英文名 249

8.9.7将若干字符串按字母顺序输出 251

8.10疑难解惑 252

8.10.1指针类型和指针所指向的类型是一样的吗 252

8.10.2指针运算与取地址运算符有何联系 253

8.10.3空指针有何意义 253

8.11小结 254

8.12学习成果检验 254

第9章 结构体和共用体 255

9.1本章知识体系 256

9.2结构体 256

9.2.1结构体类型的概念 256

9.2.2结构体变量的定义 257

9.2.3结构体类型的几点说明 259

9.2.4结构体变量的引用 260

9.2.5结构体变量的初始化 260

9.3结构体数组 261

9.3.1定义结构体数组 261

9.3.2初始化结构体数组 262

9.4结构体指针 264

9.4.1指向结构体变量的指针 265

9.4.2指向结构体数组的指针 265

9.4.3结构体作函数参数 267

9.5包含结构的结构 270

9.6链表 271

9.6.1什么是链表 271

9.6.2创建动态链表 272

9.6.3链表相关操作 274

9.7共用体 280

9.7.1什么是共用体 280

9.7.2共用体变量的定义和引用 281

9.7.3共用体类型的初始化 282

9.8实战 283

9.8.1找出最高分 283

9.8.2候选人选票程序 284

9.8.3求平面上两点距离 285

9.8.4设计通讯录 286

9.8.5输出火车票价格 288

9.8.6链队列 289

9.8.7约瑟夫环 293

9.8.8计算开机时间 295

9.9疑难解惑 296

9.9.1定义结构体对结构体成员的类型是否有限制 296

9.9.2成员运算符(.)和指向结构体成员运算符(->)有何区别 297

9.9.3结构体和联合体有什么区别和联系 297

9.10小结 297

9.11学习成果检验 298

第10章 综合实验(二)——猜数字游戏 299

10.1概述 300

10.2需求分析 300

10.3系统设计 300

10.3.1设计目标 300

10.3.2开发及运行环境 300

10.4程序预览 301

10.5设计思路 302

10.6文件引用 302

10.7主要功能实现 303

10.7.1主函数 303

10.7.2猜数字 304

10.7.3光标定位 306

第3篇 高级应用 311

第11章 文件 311

11.1本章知识体系 312

11.2文件概述 312

11.3文件基本操作 313

11.3.1文件的打开 313

11.3.2文件的关闭 314

11.4文件的读写 315

11.4.1 fputc函数 315

11.4.2 fgetc函数 316

11.4.3 fread函数和fwrite函数 317

11.5文件的定位 319

11.5.1 rewind函数 319

11.5.2 ftell函数 321

11.5.3 fseek函数 321

11.6出错检测 323

11.6.1 ferror函数 323

11.6.2 clearerr函数 325

11.7实战 326

11.7.1读取磁盘文件 326

11.7.2将数据写入磁盘文件 327

11.7.3创建文件 328

11.7.4删除文件 330

11.7.5重命名文件 331

11.7.6文件加密 333

11.7.7格式化读写文件 335

11.8疑难解惑 337

11.8.1标准文件和一般文件有什么区别 337

11.8.2 C语言的常用库文件包含哪些 338

11.8.3为什么文件打开以后要及时关闭 339

11.9小结 339

11.10学习成果检验 339

第12章 预处理 341

12.1本章知识体系 342

12.2不带参数的宏定义 342

12.3带参数的宏定义 344

12.4 #include命令 345

12.5条件编译 348

12.5.1 #if命令 348

12.5.2 #ifdef及#ifndef命令 350

12.5.3 #undef命令 351

12.5.4 #line命令 352

12.5.5 #pragma命令 352

12.6实战 353

12.6.1利用宏计算两个数的乘积 353

12.6.2利用宏求3个数中的最小数 354

12.6.3使用带参数的宏求圆面积 354

12.6.4利用文件包含设计输出格式 355

12.6.5使用条件编译隐藏密码 356

12.7疑难解惑 356

12.7.1 C语言中包括哪些预处理功能 356

12.7.2使用宏时需要注意些什么 357

12.7.3文件包含可以嵌套吗 357

12.8小结 358

12.9学习成果检验 358

第13章 存储管理 359

13.1本章知识体系 360

13.2内存组织方式 360

13.2.1内存组织方式 360

13.2.2堆与栈 360

13.3分配内存函数(malloc和calloc) 363

13.3.1 malloc函数 363

13.3.2 calloc函数 364

13.4修改已分配内存(realloc函数) 365

13.5释放内存——feee函数 366

13.6谁偷了我的内存 367

13.7实战 367

13.7.1为具有3个元素的数组分配内存 367

13.7.2为二维数组动态分配内存并释放 368

13.7.3商品信息的动态存放 369

13.8疑难解惑 370

13.8.1什么是“内存泄露” 370

13.8.2内存耗尽了怎么办 370

13.8.3常见的内存管理错误有哪些 370

13.9小结 371

13.10学习成果检验 371

第14章 综合实验(三)——商品信息管理系统 373

14.1概述 374

14.1.1需求分析 374

14.1.2功能结构图 374

14.2预处理 374

14.2.1文件引用 374

14.2.2宏定义 375

14.3声明结构体 375

14.4函数声明 375

14.5功能选择界面 376

14.5.1功能概述 376

14.5.2主函数 376

14.5.3自定义菜单功能函数 377

14.6录入商品信息 378

14.7查询商品信息 381

14.8删除商品信息 383

14.9修改商品信息 385

14.10插入商品信息 387

14.11统计商品数 389

14.12小结 390

第4篇 范例演练 393

第15章 排序 393

15.1选择排序 394

15.1.1范例功能演示 394

15.1.2开发思路指引 394

15.1.3专家难点解析 395

15.1.4设计过程详解 396

15.1.5范例开发手记 397

15.1.6进阶与提高 397

15.2冒泡排序 398

15.2.1范例功能演示 398

15.2.2开发思路指引 398

15.2.3专家难点解析 399

15.2.4设计过程详解 400

15.2.5范例开发手记 401

15.2.6进阶与提高 401

15.3插入排序 402

15.3.1范例功能演示 402

15.3.2开发思路指引 402

15.3.3专家难点解析 403

15.3.4设计过程详解 404

15.3.5范例开发手记 405

15.3.6进阶与提高 405

15.4希尔排序 406

15.4.1范例功能演示 406

15.4.2开发思路指引 406

15.4.3专家难点解析 407

15.4.4设计过程详解 408

15.4.5范例开发手记 409

15.4.6进阶与提高 409

15.5快速排序 410

15.5.1范例功能演示 411

15.5.2开发思路指引 411

15.5.3专家难点解析 412

15.5.4设计过程详解 413

15.5.5范例开发手记 414

15.5.6进阶与提高 415

第16章 查找 417

16.1顺序查找 418

16.1.1范例功能演示 418

16.1.2开发思路指引 418

16.1.3专家难点解析 418

16.1.4设计过程详解 419

16.1.5范例开发手记 420

16.1.6进阶与提高 420

16.2折半查找 421

16.2.1范例功能演示 422

16.2.2开发思路指引 422

16.2.3专家难点解析 422

16.2.4设计过程详解 423

16.2.5范例开发手记 424

16.2.6进阶与提高 424

16.3分块查找 426

16.3.1范例功能演示 426

16.3.2开发思路指引 426

16.3.3专家难点解析 426

16.3.4设计过程详解 428

16.3.5范例开发手记 429

16.3.6进阶与提高 429

16.4哈希查找 431

16.4.1范例功能演示 431

16.4.2开发思路指引 431

16.4.3专家难点解析 431

16.4.4设计过程详解 433

16.4.5范例开发手记 435

16.4.6进阶与提高 436

第17章 数据压缩 441

17.1 RLE算法实现数据压缩 442

17.1.1范例功能演示 442

17.1.2开发思路指引 442

17.1.3专家难点解析 442

17.1.4设计过程详解 443

17.1.5范例开发手记 445

17.1.6进阶与提高 445

17.2 LZW算法实现数据压缩 447

17.2.1范例功能演示 447

17.2.2开发思路指引 447

17.2.3专家难点解析 447

17.2.4设计过程详解 448

17.2.5范例开发手记 451

17.2.6进阶与提高 451

第18章 图形编程 455

18.1绘制折线图 456

18.1.1范例功能演示 456

18.1.2开发思路指引 456

18.1.3专家难点解析 456

18.1.4设计过程详解 458

18.1.5范例开发手记 460

18.1.6进阶与提高 460

18.2绘制饼状图 462

18.2.1范例功能演示 462

18.2.2开发思路指引 462

18.2.3专家难点解析 462

18.2.4设计过程详解 464

18.2.5范例开发手记 465

18.2.6进阶与提高 466

18.3绘制条形图 467

18.3.1范例功能演示 467

18.3.2开发思路指引 467

18.3.3专家难点解析 468

18.3.4设计过程详解 469

18.3.5范例开发手记 471

18.3.6进阶与提高 471

18.4绘制玫瑰花 473

18.4.1范例功能演示 473

18.4.2开发思路指引 473

18.4.3专家难点解析 473

18.4.4设计过程详解 474

18.4.5范例开发手记 479

18.4.6进阶与提高 479

18.5菜单界面设计 481

18.5.1范例功能演示 481

18.5.2开发思路指引 481

18.5.3专家难点解析 481

18.5.4设计过程详解 482

18.5.5范例开发手记 488

18.5.6进阶与提高 489

第19章 文件的高级应用 491

19.1创建文件 492

19.1.1范例功能演示 492

19.1.2开发思路指引 492

19.1.3专家难点解析 492

19.1.4设计过程详解 493

19.1.5范例开发手记 493

19.1.6进阶与提高 494

19.2文件的复制 494

19.2.1范例功能演示 495

19.2.2开发思路指引 495

19.2.3专家难点解析 495

19.2.4设计过程详解 495

19.2.5范例开发手记 496

19.2.6进阶与提高 497

19.3删除文件 498

19.3.1范例功能演示 498

19.3.2开发思路指引 498

19.3.3专家难点解析 498

19.3.4设计过程详解 499

19.3.5范例开发手记 500

19.3.6进阶与提高 500

19.4重命名文件 503

19.4.1范例功能演示 503

19.4.2开发思路指引 503

19.4.3专家难点解析 503

19.4.4设计过程详解 504

19.4.5范例开发手记 504

19.4.6进阶与提高 505

19.5文件加密 506

19.5.1范例功能演示 506

19.5.2开发思路指引 506

19.5.3专家难点解析 507

19.5.4设计过程详解 507

19.5.5范例开发手记 509

19.5.6进阶与提高 509

第20章 综合实验(四)——五子棋游戏开发 511

20.1概述 512

20.2需求分析 512

20.3系统设计 512

20.3.1设计目标 512

20.3.2开发及运行环境 512

20.4程序预览 512

20.5 graphics.h文件 513

20.6设计思路 516

20.7预处理 517

20.7.1文件引用 517

20.7.2宏定义 517

20.8声明变量 517

20.9函数声明 518

20.10主要功能实现 518

20.10.1主函数 518

20.10.2开始游戏 520

20.10.3绘制棋盘 520

20.10.4绘制棋子 521

20.10.5清除棋子 521

20.10.6游戏过程 522

20.10.7判断胜负结果 528

20.11小结 530

第5篇 项目实战 533

第21章 网络通信系统 533

21.1网络通信系统概述 534

21.1.1开发背景 534

21.1.2需求分析 534

21.1.3功能结构图 534

21.2技术攻关 535

21.2.1 TCP/IP协议 535

21.2.2 IP地址 536

21.2.3数据包格式 537

21.2.4建立连接 538

21.2.5套接字库函数 539

21.3网络通信系统主程序 543

21.4点对点通信 546

21.5服务器中转通信 554

21.6程序调试与错误处理 561

21.7小结 564

第22章 图书管理系统(MySQL) 567

22.1概述 568

22.1.1需求分析 568

22.1.2开发工具选择 568

22.2系统设计 568

22.2.1系统目标 568

22.2.2系统功能结构 569

22.2.3系统预览 569

22.2.4开发及运行环境 570

22.3数据库设计 570

22.3.1安装MySQL数据库 570

22.3.2启动MySQL数据库 574

22.3.3创建数据库 574

22.3.4数据表结构 575

22.4 C语言开发数据库程序的流程 576

22.5 C语言操作MySQL数据库 578

22.5.1 MySQL常用数据库操作函数 578

22.5.2连接MySQL数据 579

22.5.3查询图书表记录 580

22.5.4插入图书表记录 583

22.5.5修改图书表记录 584

22.5.6删除图书表记录 585

22.6文件引用 586

22.7变量和函数定义 587

22.8主要功能模块设计 587

22.8.1显示主菜单信息 587

22.8.2显示所有图书信息 589

22.8.3添加图书信息 592

22.8.4修改图书信息 599

22.8.5删除图书信息 606

22.8.6查询图书信息 611

22.9程序调试及错误处理 613

22.9.1解决创建数据表为一个文件的问题 613

22.9.2在创建数据表时,最后一句结尾没有标点 614

22.10小结 615