图书介绍

C语言宝典PDF|Epub|txt|kindle电子书版本网盘下载

C语言宝典
  • 迟剑,刘艳飞等编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121083075
  • 出版时间:2009
  • 标注页数:694页
  • 文件大小:140MB
  • 文件页数:712页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C语言宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 基础篇1

第1章 认识C语言2

1.1 计算机语言及程序的发展2

1.1.1 计算机语言的历史2

1.1.2 C语言的特点3

1.2 从Hello程序认识C程序4

1.3 程序的实例解析与升华5

1.3.1 简单例题的引申5

1.3.2 C语言程序的组成6

1.3.3 常见的错误解析与解决办法7

1.4 C语言基本组成10

1.4.1 常见的语法规范10

1.4.2 代码编写规范11

1.5 C语言程序的调试过程12

1.5.1 Turbo C 2.0集成开发环境介绍及使用12

1.5.2 Turbo C 2.0运行程序的步骤15

1.5.3 程序编译中常见问题16

1.6 本章的问与答17

1.6.1 编译和运行有什么不同17

1.6.2 如何评价一个程序的好坏17

1.7 小结18

第2章 数据类型、常量和变量19

2.1 数据及数据类型19

2.1.1 C语言常见的数据类型介绍19

2.1.2 常量20

2.1.3 变量21

2.2 常量及常量的应用22

2.2.1 整型常量22

2.2.2 实型常量24

2.2.3 字符常量26

2.2.4 字符串常量27

2.2.5 常量使用时的错误分析28

2.3 变量及变量的应用30

2.3.1 整型变量30

2.3.2 实型变量32

2.3.3 字符型变量34

2.3.4 变量的使用规范36

2.3.5 变量常见错误分析方法37

2.4 本章的问与答38

2.4.1 编写程序的风格很重要吗38

2.4.2 数据结构与数据类型是一回事吗39

2.4.3 main是关键字吗39

2.4.4 说明一个变量和定义一个变量有什么区别39

2.4.5 用const说明常量有什么好处39

2.5 小结40

第3章 运算符与表达式41

3.1 C语言中的运算符及表达式41

3.1.1 运算符及其学习要点41

3.1.2 表达式及其求值顺序43

3.2 运算中的数据类型转换44

3.2.1 强制类型转换44

3.2.2 隐含类型转换45

3.3 算术运算符与算术表达式46

3.3.1 基本算术运算符46

3.3.2 特殊的算术运算符——自加和自减48

3.3.3 常见错误分析与解决方法50

3.4 赋值运算符和赋值表达式52

3.4.1 简单的赋值运算符52

3.4.2 复合赋值运算符53

3.4.3 赋值表达式的运算54

3.4.4 常见错误分析与解决方法56

3.5 逗号运算符和逗号表达式56

3.6 关系运算符和关系表达式57

3.6.1 C语言中的真值和假值58

3.6.2 关系运算符58

3.6.3 关系表达式58

3.6.4 常见错误分析60

3.7 逻辑运算符和逻辑表达式60

3.7.1 逻辑运算符60

3.7.2 逻辑表达式61

3.7.3 常见错误分析64

3.8 条件运算符和条件表达式64

3.9 sizeof运算符65

3.10 取地址运算符66

3.11 几种运算符混合运用与常见的问题分析67

3.12 本章的问与答68

3.12.1 什么是左值(Ivaule),什么是右值(rvaule)68

3.12.2 运算符的优先级总能保证“自左至右”或“自右至左”的顺序吗69

3.12.3 表达式和语句有区别吗69

3.12.4 什么时候应该使用类型强制转换69

3.12.5 对不同类型的变量进行算术运算会有问题吗69

3.13 小结70

第4 章顺序程序设计71

4.1 C程序基本结构71

4.2 C语句概述72

4.2.1 表达式语句72

4.2.2 流程控制语句74

4.2.3 跳转语句74

4.2.4 复合语句74

4.2.5 空语句75

4.3 库函数的调用与输入输出的关系76

4.4 格式化输出77

4.4.1 printf函数的一般格式77

4.4.2 printf函数中的格式控制说明78

4.4.3 整型数据的输出79

4.4.4 字符型数据的输出81

4.4.5 实型数据的输出82

4.4.6 字符串的输出83

4.4.7 格式化输出的使用实例分析与常见错误84

4.5 字符输出85

4.6 格式化输入86

4.6.1 scanf函数的一般格式87

4.6.2 scanf函数中的格式控制说明88

4.6.3 格式化输入的使用实例分析与常见的错误89

4.7 字符输入92

4.7.1 getch()和getche()函数92

4.7.2 getchar函数93

4.8 变量如何得到正确的输入数据93

4.9 顺序结构程序典型例题分析与升华94

4.10 本章的问与答98

4.10.1 为什么有时不应该用scanf()来接收数据98

4.10 2 怎样用0补齐一个数字99

4.10.3 怎样判断一个字符是否是字母或数字100

4.11 小结100

第5章 选择程序设计102

5.1 典型的选择问题的程序设计思路102

5.2 用if语句设计选择程序102

5.2.1 if语句的形式:单条件单分支的if语句103

5.2.2 if语句的形式:单条件双分支的if语句104

5.3 if语句的嵌套108

5.3.1 单条件单分支if语句嵌套单条件单分支的if语句108

5.3.2 单条件单分支if语句嵌套单条件双分支的if语句109

5.3.3 单条件双分支if语句的嵌套110

5.3.4 嵌套时if与else的配对规则113

5.4 if语句的使用实例与升华117

5.5 if语句的常见错误与解决方法121

5.6 用switch分支设计选择程序123

5.6.1 switch分支介绍123

5.6.2 switch分支处理的程序特点127

5.6.3 switch分支的使用实例128

5.6.4 switch分支的常见错误与解决方法129

5.7 选择型问题实例的剖析与升华131

5.8 本章常见问题的问与答133

5.8.1 选择程序中如何加入注释133

5.8.2 switch语句的最后一个分支可以不要break语句吗134

5.8.3 共有几种退出switch分支的方法134

5.8.4 什么时候用一条switch语句比用多条if语句更好134

5.9 小结134

第6章 循环结构程序设计136

6.1 典型的循环问题程序设计思路136

6.2 while语句处理的循环137

6.2.1 while语句介绍137

6.2.2 while语句使用要求139

6.2.3 while语句的使用实例141

6.2.4 常见while语句典型程序分析143

6.2.5 while语句的常见错误与解决方法147

6.3 do…while循环148

6.3.1 do…while语句介绍148

6.3.2 do…while语句与while语句的联系与区别150

6.3.3 do…while语句的使用实例151

6.3.4 常见do…while语句的典型程序分析153

6.3.5 do…while语句的常见错误与解决方法156

6.4 for循环157

6.4.1 for语句介绍157

6.4.2 for语句的特点159

6.4.3 for语句的使用实例与升华160

6.4.4 常见for语句的典型程序分析162

6.4.5 for语句的常见错误与解决方法166

6.5 流程控制语句167

6.5.1 break语句168

6.5.2 continue语句171

6.5.3 break与continue常见的使用错误173

6.5.4 goto语句及其使用174

6.6 循环程序的分析方法176

6.6.1 while循环分析176

6.6.2 do…while循环分析176

6.6.3 for循环分析178

6.6.4 带break与continue语句的循环程序分析178

6.7 循环程序的例题181

6.8 多重循环——循环的嵌套183

6.8.1 循环嵌套的含义183

6.8.2 循环嵌套实例与升华184

6.8.3 循环嵌套的应用186

6.8.4 循环嵌套程序的易错点与程序分析191

6.9 循环实例分析193

6.10 本章常见问题的问与答195

6.10.1 如何为循环程序添加注释195

6.10.2 循环结构应该如何学习195

6.10.3 怎样才能知道循环是否提前结束195

6.10.4 空循环和无穷循环有什么区别196

6.11 小结196

第2部分 进阶篇197

第7章 数组198

7.1 认识数组198

7.2 一维数组199

7.2.1 一维数组的定义199

7.2.2 一维数组的引用200

7.2.3 一维数组的初始化202

7.3 一维数组的使用204

7.3.1 一维数组的使用实例与升华204

7.3.2 一维数组使用中的常见错误与解决方法207

7.3.3 常见一维数组典型程序分析208

7.4 二维数组213

7.4.1 二维数组的定义213

7.4.2 二维数组的引用214

7.4.3 二维数组的初始化216

7.5 二维数组的使用218

7.5.1 二维数组的使用实例与升华219

7.5.2 二维数组使用中的常见错误与解决方法221

7.5.3 常见二维数组典型程序的分析与书写222

7.6 使用数组的程序分析226

7.7 数组实例的剖析与升华229

7.8 本章常见问题的问与答231

7.8.1 数组是基本数据类型吗231

7.8.2 定义数组以后,如果处理的元素超出了数组的范围,如何处理231

7.8.3 数组的下标总是从0开始吗231

7.8.4 为什么要小心使用数组不要越界231

7.8.5 数组可以是左值吗231

7.9 小结232

第8章 函数233

8.1 程序的模块化233

8.2 函数的定义236

8.2.1 C语言函数的简介236

8.2.2 函数的定义237

8.3 函数的调用240

8.3.1 函数调用的一般形式240

8.3.2 被调函数声明和函数原型241

8.4 数据在函数间的传递244

8.4.1 形式参数和实际参数244

8.4.2 函数的返回值246

8.5 数组作为函数的参数247

8.5.1 一维数组作为函数的参数248

8.5.2 二维数组作为函数的参数251

8.6 函数的嵌套调用252

8.6.1 嵌套调用的程序结构252

8.6.2 程序实例的应用253

8.7 函数的递归调用255

8.7.1 递归的含义255

8.7.2 递归程序的分析257

8.7.3 递归程序的实例构思259

8.8 函数使用的常见错误分析263

8.9 典型函数程序实例265

8.10 本章常见问题的问与答266

8.10.1 什么叫函数266

8.10.2 函数的说明与定义的区别267

8.10.3 什么是函数参数以及如何传递函数参数267

8.10.4 一个函数可以有多少个参数267

8.10.5 如果一个函数没有返回值,是否需要加入 return语句267

8.10.6 exit()和return有什么不同268

8.10.7 为什么要说明函数原型268

8.11 小结268

第9章 作用域与程序设计270

9.1 变量的作用域270

9.1.1 局部变量270

9.1.2 全局变量272

9.2 变量的存储属性276

9.3 局部变量的存储类别276

9.3.1 自动变量277

9.3.2 静态局部变量277

9.3.3 寄存器变量279

9.4 全局变量的存储类别280

9.4.1 外部全局变量280

9.4.2 静态全局变量281

9.5 常见变量存储的错误分析与解决282

9.6 应用不同存储属性的变量的程序例题分析284

9.7 函数的作用域285

9.7.1 外部函数285

9.7.2 内部函数286

9.7.3 函数的应用286

9.7.4 多个源程序文件的编译和连接288

9.8 简单的程序设计实验289

9.9 本章常见问题的问与答295

9.9 1 文件中增加了函数与变量的存储属性的时候,常见的注释风格是怎样的295

9.9.2 变量存储在内存中的什么地方295

9.9.3 所有变量必须初始化吗296

9.10 小结296

第10章 指针297

10.1 地址和指针的概念297

10.2 变量的指针299

10.2.1 指针变量的定义299

10.2.2 指针变量的赋值与引用300

10.3 指针变量的运算304

10.3.1 &和*运算304

10.3.2 ++和--运算以及加减整型常量的运算305

10.3.3 比较运算306

10.3.4 减法运算306

10.4 指针变量作为函数的参数308

10.4.1 以普通变量作为参数完成交换函数309

10.4.2 以指针变量作为参数实现数据的交换310

10.4.3 交换指针变量指向的内容310

10.5 指针变量实例中常见的错误分析与解决311

10.6 指针与一维数组312

10.6.1 指向一维数组元素的指针312

10.6.2 用指针访问一维数组元素314

10.6.3 一维数组作为函数参数317

10.6.4 一维数组作为函数参数的实例320

10.7 指针与二维数组322

10.7.1 处理二维数组中所有元素的指针变量324

10.7.2 使用指向一维数组的指针处理二维数组325

10.7.3 二维数组作为函数参数327

10.7.4 二维数组作为函数参数的实例328

10.8 指针与数组常见的错误分析与解决330

10.9 指针数组与二级指针331

10.9.1 指针数组的概念331

10.9.2 指针数组的应用333

10.9.3 二级指针336

10.9.4 指针数组作为主函数的参数338

10.9.5 指针数组与二级指针常见错误分析与解决339

10.10 指向函数的指针及返回指针的函数340

10.10.1 用函数指针调用函数340

10.10.2 用指向函数的指针作为函数的参数342

10.10.3 返回指针的函数344

10.11 应用例题及实验设计模板346

10.12 本章常见问题的问与答348

10.12.1 指针使用的常见形式有哪些348

10.12.2 什么是void指针348

10.12.3 什么时候使用void指针348

10.12.4 NULL总是被定义为0吗349

10.12.5 用指针作if语句的条件表达式意味什么349

10.12.6 NULL和 NUL有什么不同349

10.13 小结349

第11章 字符串351

11.1 字符串与字符串的结束标志351

11.2 字符数组与字符串351

11.2.1 字符数组的定义351

11.2.2 字符数组的初始化352

11.2.3 字符数组的输入输出355

11.2.4 字符数组处理字符串的应用实例357

11.2.5 字符数组处理字符串常见的错误分析与解决361

11.3 常用字符串处理函数362

11.3.1 strcpy(字符数组,字符串):字符串复制函数363

11.3.2 strcat(字符数组1,字符数组2):字符串连接函数364

11.3.3 strcmp(字符串1,字符串2):字符串比较函数365

11.3.4 strlen(字符串):求字符串长度函数366

11.4 指针与字符串367

11.4.1 字符串的表示形式367

11.4.2 字符串指针作为函数参数371

11.4.3 字符串常见错误分析373

11.5 典型例题分析与升华374

11.6 本章常见问题的问与答376

11.6.1 字符是带符号的还是无符号的376

11.6.2 字符串和数组有什么不同376

11.6.3 字符类型与整型的根本区别是什么376

11.6.4 可以将数字形式的字符串转换为数字吗377

11.7 小结377

第3部分 高级篇379

第12章 编译预处理380

12.1 预处理程序380

12.2 宏定义指令381

12.2.1 不带参数的宏定义382

12.2.2 带参数的宏定义386

12.2.3 常见的宏定义错误解析391

12.3 文件包含指令392

12.4 条件编译指令394

12.4.1 #if~#endif条件编译指令395

12.4.2 #if~#else~#endif条件编译指令395

12.4.3 #if~#elif~#else~#endif条件编译指令396

12.4.4 #ifdef格式397

12.4.5 #ifndef格式398

12.4.6 条件编译的应用398

12.5 本章常见问题的问与答400

12.5.1 都有哪些预处理命令400

12.5.2 下面程序的运行结果是什么400

12.5.3 可以用#include指令包含类型名不是“.h”的文件吗401

12.5.4 使用宏更好,还是使用函数更好401

12.5.5 用#define指令说明常量有什么好处401

12.6 小结402

第13章 程序设计与调试403

13.1 程序设计简介403

13.2 程序调试407

13.2.1 调试的概念407

13.2.2 调试程序407

13.2.3 查错409

13.2.4 常用的避免错误的方法413

13.3 程序的挂起415

13.3.1 未知原因的挂起415

13.3.2 死循环416

13.3.3 运行时间比期望的时间长417

13.3.4 等待正确的输入418

13.4 小结418

第14章 结构体和共用体419

14.1 结构体的概念及结构类型定义419

14.2 结构体变量421

14.2.1 结构体变量的定义421

14.2.2 结构体变量的引用424

14.2.3 结构体变量的初始化427

14.2.4 结构体变量作为函数的参数428

14.3 结构体数组432

14.3.1 结构体数组的定义及引用432

14.3.2 结构体数组的初始化435

14.3.3 结构体数组作为函数的参数436

14.4 结构体指针440

14.4.1 指向结构体变量的指针440

14.4.2 指向结构体数组的指针442

14.4.3 用指向结构体的指针作为函数参数445

14.5 结构体变量常见的错误分析与解决448

14.6 共用体450

14.6.1 共用体的概念450

14.6.2 共用体变量的定义和引用452

14.6.3 共用体应用456

14.7 枚举类型459

14.7.1 枚举类型简介459

14.7.2 枚举变量的定义与应用460

14.7.3 枚举类型常见的错误分析462

14.8 本章常见问题的问与答464

14.8.1 结构体变量的数据传到另外的函数中有几种方法464

14.8.2 用enum关键字说明常量有什么好处464

14.8.3 和用#define指令说明常量相比,用enum关键字说明常量有什么好处464

14.9 小结465

第15章 自定义类型与链表466

15.1 typedef自定义类型466

15.2 动态内存管理468

15.2.1 malloc函数469

15.2.2 calloc函数470

15.2.3 free函数470

15.2.4 realloc函数471

15.3 链表473

15.3.1 链表简介473

15.3.2 建立单链表474

15.3.3 尾插法建立单链表475

15.3.4 头插法建立单链表478

15.3.5 单链表元素的遍历479

15.4 单链表中进行的基本操作480

15.4.1 单链表中查找元素481

15.4.2 按照序号查找481

15.4.3 按照指定值进行查找482

15.4.4 单链表中元素的插入和删除482

15.4.5 单链表中元素的合并487

15.5 单循环链表和双端链表简介490

15.5.1 单循环链表490

15.5.2 双向链表490

15.5.3 在双向链表中插入一个节点491

15.5.4 在双向链表中删除一个节点492

15.6 单链表设计实例与升华493

15.7 自定义类型与链表常见的错误分析与解决497

15.8 本章常见问题的问与答498

15.8.1 什么是线性结构,单链表是不是线性结构,为什么498

15.8.2 类型void*说明什么样的返回值498

15.8.3 本章中函数的参数类型已经是指针类型,为什么还通过返回值把链表的头指针的值返回,而不是通过参数直接改变呢499

15.8.4 NULL总是被定义为0吗499

15.8.5 用malloc()函数更好,还是用calloc()函数更好499

15.9 小结499

第4部分 底层开发篇501

第16章 位与字节502

16.1 数值数据的表示和编码502

16.1.1 数据进制502

16.1.2 数据存储504

16.2 位运算505

16.2.1 位运算简介505

16.2.2 按位与运算符“&”506

16.2.3 按位或运算符“|”508

16.2.4 按位异或运算符“^”510

16.2.5 按位取反运算符“~”511

16.2.6 按位左移运算符<<512

16.2.7 按位右移运算符“>>”513

16.2.8 位运算赋值运算符514

16.2.9 位运算符的使用情况和实例分析515

16.3 位运算的应用516

16.4 位段及应用520

16.4.1 位段的定义520

16.4.2 位段的应用522

16.5 位运算的常见错误分析与解决526

16.6 本章的问与答527

16.6.1 对位(bit)和字节(byte)的区分到底是什么527

16.6.2 用什么方法存储标志(flag)效率最高527

16.6.3 移位和乘以2这两种方式中哪一种更好528

16.6.4 什么是高位字节和低位字节528

16.6.5 16位和32位的数是怎样存储的528

16.7 小结529

第17章 文件530

17.1 文件系统概述530

17.2 文件指针533

17.3 文件打开与关闭535

17.3.1 打开文件535

17.3.2 关闭文件537

17.4 文件读写函数539

17.4.1 读写字符539

17.4.2 使用fgets()和fputs()处理字符串543

17.4.3 读写磁盘文件548

17.4.4 成组读写550

17.5 文件的定位553

17.5.1 定位到开头553

17.5.2 随机读写554

17.5.3 返回位置556

17.6 错误检测557

17.6.1 ferror()函数557

17.6.2 clearerr()函数557

17.7 文件使用常见错误分析558

17.8 文件例题分析与升华560

17.9 本章常见问题的问与答563

17.9.1 什么是C语言中的文件563

17.9.2 在对文件进行操作的时候,如果要求文件的位置回到文件的开头,应当用到哪个函数563

17.9.3 设fp为文件指针,如果打开一个已经存在的非空文件aa.txt进行修改,应该用什么语句实现564

17.9.4 文件的分类是什么,到底什么是流式文件,是不是文件分类的一种564

17.9.5 读文件和写文件是什么564

17.9.6 如何选择读写函数564

17.9.7 缓冲文件系统是什么565

17.10 小结565

第18章 屏幕和键盘的控制566

18.1 文本窗口566

18.1.1 文本方式566

18.1.2 文本窗口的使用567

18.1.3 窗口内文本的输入输出570

18.1.4 键盘的使用572

18.1.5 具体应用实例——下拉式菜单575

18.2 C语言绘图概述578

18.2.1 图形显示578

18.2.2 图形系统初始化579

18.2.3 图形屏幕的颜色设置582

18.2.4 清除屏幕583

18.3 C语言中绘图函数的使用585

18.3.1 绘图函数585

18.3.2 线型函数592

18.3.3 填充函数593

18.3.4 自定义窗口595

18.4 图形文本597

18.4.1 文本输出函数597

18.4.2 设置图形文本属性599

18.5 绘图常见错误说明601

18.6 绘图典型例题分析603

18.7 本章的问与答604

18.7.1 什么是像素604

18.7.2 什么是分辨率605

18.7.3 怎样在屏幕上定位光标605

18.7.4 什么时候使用far指针605

18.8 小结606

第19章 系统调用607

19.1 DOS、BIOS与中断简介607

19.2 DOS下的设备控制608

19.2.1 软中断调用函数609

19.2.2 中断设置函数612

19.2.3 端口输入输出函数613

19.2.4 内存操作函数614

19.3 系统驻留程序简介616

19.4 系统函数调用常见错误解析617

19.5 利用中断实现多任务的实例分析619

19.6 本章常见问题的问与答621

19.6.1 DOS是什么621

19.6.2 如何获得具体信息的内存位置621

19.6.3 什么是缓冲区621

19.6.4 什么是环境621

19.7 小结621

第20章 从C到C++623

20.1 C++对C的扩充623

20.1.1 C++中输入/输出方式623

20.1.2 新增运算符和关键字简介625

20.1.3 引用627

20.1.4 函数重载629

20.1.5 函数内联631

20.2 面向对象语言的概念631

20.2.1 面向对象的概念632

20.2.2 类的定义632

20.2.3 对象的创建634

20.2.4 对象的继承637

20.2.5 多态性639

20.3 C++常见的基础错误解析640

20.4 本章的问与答641

20.4.1 C程序员为什么要学习C++641

20.4.2 “∥”是什么641

20.4.3 C++到底新增了什么知识点641

20.4.4 如何理解抽象641

20.4.5 什么是封装性642

20.4.6 什么是继承性642

20.4.7 什么是多态性642

20.5 小结643

第5部分 应用实例篇645

第21章 应用实例1——复杂表达式求值646

21.1 问题分析646

21.2 概要设计647

21.2.1 全局数据设计647

21.2.2 系统结构设计647

21.3 模块详细设计及实现649

21.3.1 isdelim(char c)函数的实现649

21.3.2 serror(int error)函数的实现649

21.3.3 get_exp()函数的实现649

21.3.4 atom(double*)函数的实现650

21.3.5 一系列计算函数的实现650

21.3.6 main()函数的实现652

21.4 程序的测试及维护653

第22章 应用实例2——简单的文本编辑器655

22.1 问题分析655

22.2 概要设计655

22.2.1 全局数据设计655

22.2.2 系统结构设计656

22.3 模块详细设计及实现657

22.3.1 opens(Line*head)函数的实现657

22.3.2 save(Line*head)函数的实现658

22.3.3 view(Line*head)函数的实现659

22.3.4 qview(Line*q)函数的实现660

22.3.5 color(Line*Hhead)函数的实现661

22.3.6 check(Line*head,int m,int n)函数的实现661

22.3.7 border(int x,int y,int width,int height)函数的实现661

22.3.8 draw_m()函数的实现662

22.3.9 drawmenu(int m,int n)函数的实现662

22.3.10 menuctrl(Line*Hhead,int key)函数的实现664

22.3.11 main()函数的实现665

22.4 程序的测试及维护668

第23章 应用实例3——图书管理系统671

23.1 问题分析671

23.2 概要设计671

23.2.1 全局数据设计672

23.2.2 系统结构设计673

23.3 模块详细设计及实现675

23.3.1 new_bk()函数和new_bl()函数的实现676

23.3.2 save_bk(Book*)函数和save_bl(Bk_lender*)函数的实现677

23.3.3 read_bk()函数和read_bl()函数的实现678

23.3.4 search_bk(Book*)函数的实现680

23.3.5 insert_bk(Book*)函数和insert_bl(Bk_lender*)函数的实现681

23.3.6 delete_bk(Book*)函数和delete_bl(Bk_lender*)函数的实现683

23.3.7 modify_bk(Book*)函数的实现685

23.3.8 lendbook(Bk_lender*,Book*)函数的实现686

23.3.9 returnbook(Bk_lender*,Book*)函数的实现687

23.3.10 disp_bk(Book*)函数和disp_bl(Bk_lender*)函数的实现688

23.3.11 3个菜单函数的实现689

23.3.12 main()函数的实现690

23.4 程序的测试及维护692

23.5 程序实现693

23.6 小结693

热门推荐