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

  • 购买积分:17 如何计算积分?
  • 作  者:刘彬彬,李伟明编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302242512
  • 页数:592 页
图书介绍:本书从初学者的角度讲述使用Visual C++6.0进行程序开发应该掌握的各项技术。

基础知识篇 1

第1章C语言开发环境 1

1.1本章知识体系 4

1.2程序员的成长之路 4

1.3 C语言的重要性 5

1.4如何学好C语言 5

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

1.5.1 Turbo c 7

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 8

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

1.6.1开发环境布局 8

1.6.2菜单 8

1.6.3工具栏 15

1.6.4工作区窗口 16

1.6.5代码编辑窗口 16

1.6.6输出窗口 16

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

1.8了解GCC开发编译器 19

1.9 Dev-C++ 19

1.9.1 Dev-C++概述 19

1.9.2 Dev-C++的使用 19

1.10 Eclipse for C/C++ 21

1.10.1 Eclipse概述 21

1.10.2 Eclipse的使用 22

1.11实战 24

1.11.1猴子吃桃 24

1.11.2阳阳买苹果 25

1.12 疑难解惑 26

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

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

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

1.13小结 27

第2章C语言开发基础 29

2.1本章知识体系 30

2.2编码规范要记牢 30

2.2.1注释的合理使用 30

2.2.2程序中的{}要对齐 31

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

2.2.4换行使代码更清晰 32

2.3语言要素 33

2.3.1关键字 33

2.3.2标识符 33

2.4常量 34

2.4.1整型常量 34

2.4.2实型常量 36

2.4.3字符型常量 36

2.4.4字符串常量 37

2.5变量 38

2.5.1什么是变量 38

2.5.2变量的声明 39

2.6数据类型 39

2.6.1什么是数据类型 39

2.6.2整型 40

2.6.3实型 42

2.6.4字符型 42

2.6.5枚举类型 44

2.7使用typedef定义类型 45

2.8变量的存储类型 47

2.8.1了解变量的存储类型 47

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

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

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

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

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

2.9混合运算 55

2.10实战 57

2.10.1十进制转换为二进制 57

2.10.2求100200之间的素数 58

2.11疑难解惑 60

2.11.1声明变量和定义变量 60

2.11.2限定词const 60

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

2.12小结 61

第3章 运算符与表达式 63

3.1本章知识体系 64

3.2运算符与表达式 64

3.2.1赋值运算符与表达式 64

3.2.2加减乘除新认识 67

3.2.3关系源自比较 68

3.2.4逻辑出真假 69

3.2.5逗号运算符与表达式 71

3.2.6运算符的优先级 72

3.3自增、自减操作符 73

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

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

3.4位运算 74

3.4.1“或”运算符 74

3.4.2“与”运算符 76

3.4.3“取反”运算符 77

3.4.4“异或”运算符 78

3.4.5“左移”运算符 79

3.4.6“右移”运算符 80

3.5实战 81

3.5.1最大公约数及最小公倍数 81

3.5.2循环移位 82

3.6疑难解惑 84

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

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

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

3.7小结 86

第4章 语句 87

4.1本章知识体系 88

4.2语句的构成 88

4.2.1表达式语句 89

4.2.2函数调用语句 89

4.2.3控制语句 90

4.2.4复合语句 91

4.2.5空语句 91

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

4.3.1字符数据输出 91

4.3.2字符数据输入 92

4.4格式输入/输出 93

4.4.1格式输出函数 93

4.4.2格式输入函数 98

4.5程序的控制结构 101

4.5.1顺序结构 101

4.5.2分支结构 101

4.5.3循环结构 102

4.6 if语句 103

4.6.1 if语句的介绍 103

4.6.2 if语句的嵌套 107

4.7条件运算符 108

4.8 switch语句 109

4.8.1 switch语句的基本形式 109

4.8.2剖析if和switch语句 112

4.9 while与do-while语句 113

4.9.1当型循环语句while 113

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

4.9.3 while与do-while的异同 118

4.10 for语句 119

4.10.1初识for语句 119

4.10.2 for语句的变体 121

4.10.3 for语句的嵌套 123

4.11跳转语句 125

4.11.1 continue语句跳出本次循环 125

4.11.2 break语句跳出循环 126

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

4.11.4 goto语句 128

4.12实战 129

4.12.1整数加减法练习 129

4.12.2一元钱兑换方案 130

4.13疑难解惑 132

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

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

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

4.14小结 133

第5章 数组 135

5.1本章知识体系 136

5.2一维数组 136

5.2.1如何定义和引用一维数组 136

5.2.2一维数组初始化 137

5.2.3一维数组应用 139

5.3二维数组 140

5.3.1如何定义和引用二维数组 140

5.3.2二维数组初始化 141

5.3.3二维数组应用 143

5.4多维数组 144

5.5字符数组 144

5.5.1如何定义和使用字符数组 144

5.5.2字符数组初始化 145

5.5.3字符数组的结束标志 147

5.5.4字符数组的输入和输出 148

5.5.5字符数组应用 151

5.6实战 152

5.6.1逆序存放数据 152

5.6.2相邻元素之和 154

5.7 疑难解惑 155

5.7.1数组下标必须从0开始吗 155

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

5.7.3‘\0’和“\0”有什么区别 155

5.8小结 156

第6章 函数 157

6.1本章知识体系 158

6.2函数概述 158

6.3函数的定义 160

6.3.1无参函数 160

6.3.2有参函数 161

6.3.3空函数 161

6.4返回语句 162

6.4.1从函数返回 162

6.4.2返回值 162

6.5函数参数 163

6.5.1形式参数与实际参数 163

6.5.2数组作函数参数 165

6.5.3 main参数 170

6.6函数的调用 171

6.6.1函数调用方式 171

6.6.2嵌套调用 172

6.6.3递归调用 174

6.7内部函数和外部函数 177

6.7.1内部函数 177

6.7.2外部函数 177

6.8局部变量和全局变量 179

6.8.1局部变量 179

6.8.2全局变量 180

6.9实战 182

6.9.1求字符串中字符的个数 182

6.9.2打渔晒网问题 183

6.10疑难解惑 185

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

6.10.2 C语言中函数的调用方式有哪几种 186

6.10.3函数定义时容易犯哪些错误 186

6.11小结 187

第7章 指针 189

7.1本章知识体系 190

7.2指针相关概念 190

7.2.1地址与指针 190

7.2.2指针变量 191

7.2.3指针的赋值 192

7.2.4指针的引用 193

7.3指针运算 194

7.4一维数组与指针 196

7.5指针访问二维数组 200

7.6字符和指针 203

7.6.1使用字符指针 203

7.6.2字符指针数组 205

7.7指向指针的指针 206

7.8函数型指针 208

7.9实战 210

7.9.1用指针实现数据交换 210

7.9.2使用指针实现整数排序 212

7.10疑难解惑 213

7.10.1指针类型和指针所指向的类型是一样的吗 213

7.10.2指针运算与取地址运算符有何联系 214

7.10.3空指针有何意义 214

7.11小结 214

第8章 结构体和共用体 215

8.1本章知识体系 216

8.2结构体 216

8.2.1结构体类型的概念 216

8.2.2结构体变量的定义 217

8.2.3结构体类型的几点说明 219

8.2.4结构体变量的引用 220

8.2.5结构体变量的初始化 220

8.3结构体数组 221

8.3.1定义结构体数组 221

8.3.2初始化结构体数组 222

8.4结构体指针 224

8.4.1指向结构体变量的指针 224

8.4.2指向结构体数组的指针 225

8.4.3结构体作函数参数 226

8.5包含结构的结构 229

8.6链表 230

8.6.1什么是链表 230

8.6.2创建动态链表 232

8.6.3链表相关操作 234

8.7共用体 240

8.7.1什么是共用体 240

8.7.2共用体变量的定义和引用 240

8.7.3共用体类型的初始化 241

8.8实战 242

8.8.1约瑟夫环 242

8.8.2计算开机时间 244

8.9疑难解惑 246

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

8.9.2成员运算符()和指向结构体成员的运算符(->)有何区别 246

8.9.3结构体和联合体有什么区别和联系 246

8.10小结 247

第9章 文件 249

9.1本章知识体系 250

9.2文件概述 250

9.3文件基本操作 251

9.3.1文件的打开 251

9.3.2文件的关闭 252

9.4文件的读写 253

9.4.1 fputc 函数 253

9.4.2 fgetc函数 254

9.4.3 fread函数和fwrite函数 255

9.5文件的定位 257

9.5.1 rewind函数 257

9.5.2 ftell函数 259

9.5.3 fseek函数 259

9.6出错检测 261

9.6.1 ferror函数 261

9.6.2 clearerr函数 263

9.7实战 264

9.7.1读取磁盘文件 264

9.7.2将数据写入磁盘文件 265

9.8疑难解惑 266

9.8.1标准文件和一般文件有什么区别 266

9.8.2 C语言的常用库文件包含哪些 266

9.8.3为什么文件打开以后要及时关闭 268

9.9小结 268

第10章 预处理 269

10.1本章知识体系 270

10.2不带参数的宏定义 270

10.3带参数的宏定义 272

10.4 #include命令 273

10.5条件编译 276

10.5.1 #if命令 276

10.5.2 #ifdef及#ifndef命令 279

10.5.3 #undef命令 280

10.5.4 #line命令 280

10.5.5 #pragma命令 281

10.6 实战 282

10.6.1利用宏计算两个数的乘积 282

10.6.2利用宏求3个数中的最小数 282

10.7疑难解惑 283

10.7.1 C语言中包括哪些预处理功能 283

10.7.2使用宏时需要注意些什么 284

10.7.3文件包含可以嵌套吗 284

10.8小结 284

第11章 存储管理 285

11.1本章知识体系 286

11.2内存组织方式 286

11.2.1内存组织方式 286

11.2.2堆与栈 286

11.3分配内存函数(malloc和calloc) 289

11.3.1 malloc函数 289

11.3.2 calloc函数 290

11.4修改已分配内存(relloc函数) 291

11.5释放内存——free函数 292

11.6谁偷了我的内存 293

11.7实战 294

11.7.1为具有3个元素的数组分配内存 294

11.7.2为二维数组动态分配内存并释放 294

11.8疑难解惑 296

11.8.1什么是“内存泄露” 296

11.8.2内存耗尽了怎么办 296

11.8.3常见的内存管理错误有哪些 296

11.9小结 297

范例演练篇 301

第12章 排序 301

12.1选择排序 302

12.1.1范例功能演示 302

12.1.2开发思路指引 302

12.1.3专家难点解析 303

12.1.4设计过程详解 304

12.1.5范例开发手记 305

12.1.6进阶与提高 305

12.2冒泡排序 306

12.2.1范例功能演示 306

12.2.2开发思路指引 306

12.2.3专家难点解析 307

12.2.4设计过程详解 308

12.2.5范例开发手记 309

12.2.6进阶与提高 309

12.3插入排序 310

12.3.1范例功能演示 310

12.3.2开发思路指引 310

12.3.3专家难点解析 311

12.3.4设计过程详解 312

12.3.5范例开发手记 313

12.3.6进阶与提高 313

12.4希尔排序 314

12.4.1范例功能演示 314

12.4.2开发思路指引 315

12.4.3专家难点解析 315

12.4.4设计过程详解 316

12.4.5范例开发手记 317

12.4.6进阶与提高 318

12.5快速排序 319

12.5.1范例功能演示 319

12.5.2开发思路指引 319

12.5.3专家难点解析 320

12.5.4设计过程详解 321

12.5.5范例开发手记 322

12.5.6进阶与提高 323

第13章 查找 325

13.1顺序查找 326

13.1.1范例功能演示 326

13.1.2开发思路指引 326

13.1.3专家难点解析 326

13.1.4设计过程详解 327

13.1.5范例开发手记 328

13.1.6进阶与提高 328

13.2折半查找 329

13.2.1范例功能演示 330

13.2.2开发思路指引 330

13.2.3专家难点解析 330

13.2.4设计过程详解 331

13.2.5范例开发手记 332

13.2.6进阶与提高 332

13.3分块查找 334

13.3.1范例功能演示 334

13.3.2开发思路指引 334

13.3.3专家难点解析 335

13.3.4设计过程详解 336

13.3.5范例开发手记 337

13.3.6进阶与提高 338

13.4哈希查找 339

13.4.1范例功能演示 339

13.4.2开发思路指引 340

13.4.3专家难点解析 340

13.4.4设计过程详解 342

13.4.5范例开发手记 344

13.4.6进阶与提高 344

第14章 数据压缩 349

14.1 RLE算法实现数据压缩 350

14.1.1范例功能演示 350

14.1.2开发思路指引 350

14.1.3专家难点解析 351

14.1.4设计过程详解 351

14.1.5范例开发手记 353

14.1.6进阶与提高 353

14.2 LZW算法实现数据压缩 355

14.2.1范例功能演示 355

14.2.2开发思路指引 355

14.2.3专家难点解析 355

14.2.4设计过程详解 356

14.2.5范例开发手记 359

14.2.6进阶与提高 359

第15章 图形编程 363

15.1绘制折线图 364

15.1.1范例功能演示 364

15.1.2开发思路指引 364

15.1.3专家难点解析 364

15.1.4设计过程详解 366

15.1.5范例开发手记 367

15.1.6进阶与提高 368

15.2饼状图 370

15.2.1范例功能演示 370

15.2.2开发思路指引 370

15.2.3专家难点解析 370

15.2.4设计过程详解 372

15.2.5范例开发手记 373

15.2.6进阶与提高 373

15.3条形图 375

15.3.1范例功能演示 375

15.3.2开发思路指引 375

15.3.3专家难点解析 375

15.3.4设计过程详解 377

15.3.5范例开发手记 379

15.3.6进阶与提高 379

15.4画玫瑰花 381

15.4.1范例功能演示 381

15.4.2开发思路指引 381

15.4.3专家难点解析 381

15.4.4设计过程详解 382

15.4.5范例开发手记 387

15.4.6进阶与提高 387

15.5菜单界面设计 388

15.5.1范例功能演示 389

15.5.2开发思路指引 389

15.5.3专家难点解析 389

15.5.4设计过程详解 390

15.5.5范例开发手记 396

15.5.6进阶与提高 396

第16章 文件的高级应用 399

16.1创建文件 400

16.1.1范例功能演示 400

16.1.2开发思路指引 400

16.1.3专家难点解析 400

16.1.4设计过程详解 401

16.1.5范例开发手记 402

16.1.6进阶与提高 402

16.2文件的复制 403

16.2.1范例功能演示 403

16.2.2开发思路指引 403

16.2.3专家难点解析 403

16.2.4设计过程详解 404

16.2.5范例开发手记 405

16.2.6进阶与提高 405

16.3删除文件 406

16.3.1范例功能演示 407

16.3.2开发思路指引 407

16.3.3专家难点解析 407

16.3.4设计过程详解 408

16.3.5范例开发手记 409

16.3.6进阶与提高 409

16.4重命名文件 412

16.4.1范例功能演示 412

16.4.2开发思路指引 412

16.4.3专家难点解析 412

16.4.4设计过程详解 413

16.4.5范例开发手记 413

16.4.6进阶与提高 414

16.5文件加密 415

16.5.1范例功能演示 415

16.5.2开发思路指引 416

16.5.3专家难点解析 416

16.5.4设计过程详解 417

16.5.5范例开发手记 418

16.5.6进阶与提高 418

项目实战篇 423

第17章 五子棋游戏开发 423

17.1概述 424

17.2需求分析 424

17.3系统设计 424

17.3.1设计目标 424

17.3.2开发及运行环境 424

17.4程序预览 424

17.5 graphics.h文件 425

17.6设计思路 429

17.7预处理 429

17.7.1文件引用 429

17.7.2宏定义 429

17.8声明变量 430

17.9函数声明 430

17.10主要功能实现 430

17.10.1主函数 430

17.10.2开始游戏 432

17.10.3绘制棋盘 433

17.10.4绘制棋子 433

17.10.5清除棋子 434

17.10.6游戏过程 434

17.10.7判断胜负结果 440

17.11开发总结 442

第18章 商品信息管理系统(txt) 443

18.1概述 444

18.1.1需求分析 444

18.1.2功能结构图 444

18.2预处理 444

18.2.1文件引用 444

18.2.2宏定义 445

18.3声明结构体 445

18.4函数声明 445

18.5功能选择界面 446

18.5.1功能概述 446

18.5.2主函数 446

18.5.3自定义菜单功能函数 447

18.6录入商品信息 448

18.7查询商品信息 452

18.8 删除商品信息 454

18.9修改商品信息 456

18.10插入商品信息 458

18.11统计商品数 461

18.12开发总结 462

第19章 网络通信编程 463

19.1网络通信系统概述 464

19.1.1开发背景 464

19.1.2需求分析 464

19.1.3功能结构图 464

19.2技术攻关 465

19.2.1 TCP/IP协议 465

19.2.2 IP地址 466

19.2.3数据包格式 467

19.2.4建立连接 469

19.2.5套接字库函数 470

19.3网络通信系统主程序 473

19.4点对点通信 477

19.5服务器中转通信 484

19.6程序调试与错误处理 491

19.7开发总结 494

第20章 联系人管理系统(嵌入式) 497

20.1联系人管理系统概述 498

20.1.1系统分析 498

20.1.2总体设计 498

20.2技术攻关 499

20.2.1嵌入式 499

20.2.2超级终端通信 500

20.2.3烧写与编译 504

20.3联系人管理系统主程序 511

20.4添加联系人模块 516

20.5查找联系人模块 518

20.6删除联系人模块 521

20.7浏览联系人模块 523

20.8联系人详情 527

20.9程序调试与错误处理 529

20.10开发总结 533

第21章 图书管理系统(MySQL) 535

21.1概述 536

21.1.1需求分析 536

21.1.2开发工具选择 536

21.2系统设计 536

21.2.1系统目标 536

21.2.2系统功能结构 537

21.2.3系统预览 537

21.2.4开发及运行环境 540

21.3数据库设计 540

21.3.1安装MySQL数据库 540

21.3.2启动MySQL数据库 547

21.3.3创建数据库 548

21.3.4数据表结构 549

21.4 C语言开发数据库程序的流程 549

21.5 C语言操作MySQL数据库 552

21.5.1 MySQL常用数据库操作函数 552

21.5.2连接MySQL数据 554

21.5.3查询图书表记录 555

21.5.4插入图书表记录 557

21.5.5修改图书表记录 558

21.5.6删除图书表记录 560

21.6文件引用 560

21.7变量和函数定义 561

21.8主要功能模块设计 562

21.8.1显示主菜单信息 562

21.8.2显示所有图书信息 564

21.8.3添加图书信息 567

21.8.4修改图书信息 574

21.8.5删除图书信息 581

21.8.6查询图书信息 587

21.9程序调试及错误处理 590

21.9.1解决创建数据表为一个文件的问题 590

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

21.9.3无法启动MySQL服务 592

21.10项目开发总结 592