第1篇 基础知识 2
第1章 步入C编程世界——认识C语言 2
本章教学微视频:9个 9分钟 2
1.1 了解C语言 2
1.1.1 C语言的特点 2
1.1.2 为什么要学习C语言 3
1.2 准备C语言程序编程 3
1.2.1 Visual C++6.0开发环境 3
1.2.2 Turbo C 2.0开发环境 10
1.3 C程序的编写和运行流程 11
1.4 编写第一个C程序——Hello,C 12
1.4.1 创建空工程 12
1.4.2 输入C语言源代码 14
1.4.3 运行C程序 14
1.5 C代码结构编写规范 15
1.6 就业面试技巧与解析 16
1.6.1 面试技巧与解析(一) 16
1.6.2 面试技巧与解析(二) 17
第2章 剖析C语言——第一个C程序结构 18
本章教学微视频:7个 7分钟 18
2.1 C语言源程序的构成 18
2.2 完整的C语言程序 19
2.3 程序的入口——main()函数 20
2.4 如何输出程序结果——输出函数 21
2.5 C程序的注释方法 21
2.6 #include预处理器指示符 21
2.7 数据变量 22
2.8 就业面试技巧与解析 22
2.8.1 面试技巧与解析(一) 22
2.8.2 面试技巧与解析(二) 22
第3章 数据的来龙去脉——常量与变量 23
本章教学微视频:17个 19分钟 23
3.1 标识符和关键字 23
3.1.1 标识符 23
3.1.2 关键字 24
3.2 常量的使用 25
3.2.1 什么是常量 25
3.2.2 数值常量 26
3.2.3 字符常量 26
3.2.4 字符串常量 28
3.2.5 符号常量 28
3.3 变量的使用 29
3.3.1 什么是变量 29
3.3.2 变量的声明 30
3.3.3 变量的定义 31
3.3.4 变量的分类 32
3.3.5 变量的赋值和初始化 34
3.4 变量的存储类型 35
3.4.1 auto变量 36
3.4.2 static变量 36
3.4.3 register变量 37
3.4.4 extern变量 38
3.5 综合案例——统计学生成绩 39
3.6 就业面试技巧与解析 40
3.6.1 面试技巧与解析(一) 40
3.6.2 面试技巧与解析(二) 41
第4章 数制与数据类型 42
本章教学微视频:22个 34分钟 42
4.1 数制的分类 42
4.1.1 二进制 43
4.1.2 八进制 43
4.1.3 十六进制 44
4.1.4 数制间的转换 45
4.2 数据类型的分类 46
4.3 整型数据类型 47
4.3.1 整型常量的表示方法 48
4.3.2 整型变量 48
4.3.3 整型变量的分类 48
4.3.4 整型变量的溢出 50
4.4 浮点型数据类型 51
4.4.1 浮点型常量的表示方法 52
4.4.2 浮点型变量 52
4.4.3 浮点型变量的类型 52
4.5 字符型数据类型 54
4.5.1 字符常量 55
4.5.2 字符变量 57
4.5.3 字符串常量 59
4.6 数据类型的转换 60
4.6.1 隐式转换 60
4.6.2 显式转换 61
4.7 使用typedef定义类型 62
4.7.1 促进跨平台开发 62
4.7.2 定义类型别名 63
4.7.3 定义复杂的声明别名 63
4.7.4 typedef与#define 64
4.8 综合案例——类型转换 65
4.9 就业面试技巧与解析 66
4.9.1 面试技巧与解析(一) 66
4.9.2 面试技巧与解析(二) 66
第5章 语句、表达式和运算符 67
本章教学微视频:21个 39分钟 67
5.1 基本语句 67
5.1.1 语句的概念 67
5.1.2 语句的使用 68
5.1.3 表达式语句 69
5.1.4 函数调用语句 69
5.1.5 控制语句 69
5.1.6 复合语句 70
5.1.7 空语句 70
5.2 表达式 70
5.2.1 表达式的概念 70
5.2.2 表达式的分类 70
5.3 运算符 71
5.3.1 运算符概述 71
5.3.2 运算符的分类 71
5.4 表达式与运算符 72
5.4.1 算术表达式与算术运算符 72
5.4.2 自增、自减表达式与自增、自减运算符 74
5.4.3 赋值表达式与赋值运算符 76
5.4.4 关系表达式与关系运算符 78
5.4.5 逻辑表达式与逻辑运算符 80
5.4.6 条件表达式与条件运算符 83
5.4.7 逗号表达式与逗号运算符 84
5.4.8 位运算符 85
5.5 优先级与结合性 89
5.6 综合案例——计算函数的结果 91
5.7 就业面试技巧与解析 92
5.7.1 面试技巧与解析(一) 92
5.7.2 面试技巧与解析(二) 92
第2篇 核心应用 94
第6章 程序设计的灵魂——算法与流程图 94
本章教学微视频:11个 15分钟 94
6.1 认识算法 94
6.2 算法的特性 95
6.3 算法的表示 95
6.3.1 自然语言表示法 95
6.3.2 伪代码表示法 96
6.3.3 流程图表示法 96
6.3.4 N-S流程图表示法 98
6.3.5 计算机语言表示法 100
6.4 流程图基础 101
6.4.1 流程图中的元素 101
6.4.2 流程图的绘制 102
6.5 结构化程序设计方法 103
6.6 综合案例——求一元二次方程的根 103
6.7 就业面试技巧与解析 106
6.7.1 面试技巧与解析(一) 106
6.7.2 面试技巧与解析(二) 106
第7章 C程序的运行轨迹——基本程序流程控制 108
本章教学微视频:13个 34分钟 108
7.1 程序流程概述 108
7.2 if条件选择语句 109
7.2.1 if语句的一般形式 109
7.2.2 if语句的嵌套 116
7.2.3 使用if语句注意事项 118
7.3 switch条件选择语句 119
7.4 循环结构 121
7.4.1 while语句 122
7.4.2 do-while语句 124
7.4.3 for语句 126
7.4.4 循环的嵌套 131
7.5 break、continue、goto语句 133
7.5.1 break语句 134
7.5.2 continue语句 136
7.5.3 goto语句 138
7.6 综合案例——简单计算器 139
7.7 就业面试技巧与解析 142
7.7.1 面试技巧与解析(一) 142
7.7.2 面试技巧与解析(二) 142
第8章 数组与字符串 143
本章教学微视频:14个 31分钟 143
8.1 认识数组 143
8.2 一维数组 144
8.2.1 定义一维数组 144
8.2.2 引用一维数组 145
8.2.3 初始化一维数组 146
8.3 二维数组 150
8.3.1 定义二维数组 150
8.3.2 引用二维数组 151
8.3.3 初始化二维数组 152
8.4 多维数组 154
8.4.1 定义多维数组 154
8.4.2 多维数组的应用实例 155
8.5 字符数组与字符串 157
8.5.1 字符数组的说明与初始化 157
8.5.2 字符串和字符数组 159
8.5.3 字符串的处理函数 160
8.5.4 字符数组的实例解析 166
8.6 综合案例——杨辉三角 168
8.7 就业面试技巧与解析 169
8.7.1 面试技巧与解析(一) 169
8.7.2 面试技巧与解析(二) 170
第9章 函数与函数中的变量 171
本章教学微视频:17个 51分钟 171
9.1 函数的概述 171
9.1.1 函数的概念 171
9.1.2 函数的分类 172
9.1.3 函数定义的一般形式 173
9.2 函数的调用 175
9.2.1 函数的类型 175
9.2.2 函数的返回值 178
9.2.3 函数调用的方式 180
9.2.4 对被调用函数的声明和函数原型 182
9.3 函数的嵌套调用 184
9.4 函数的递归调用 185
9.5 函数的参数 192
9.5.1 函数参数的传递 192
9.5.2 数组元素作为函数参数 193
9.5.3 数组名作为函数参数 194
9.6 内部函数和外部函数 199
9.6.1 内部函数 199
9.6.2 外部函数 200
9.7 局部变量和全局变量 202
9.7.1 局部变量 202
9.7.2 全局变量 204
9.8 综合案例——求方程的根 206
9.9 就业面试技巧与解析 208
9.9.1 面试技巧与解析(一) 208
9.9.2 面试技巧与解析(二) 208
第10章 人机交互——数据的输入与输出 209
本章教学微视频:8个 16分钟 209
10.1 标准输入与输出 209
10.2 键盘输入 210
10.2.1 字符输入 210
10.2.2 字符串输入 211
10.3 屏幕输出 212
10.3.1 字符输出 212
10.3.2 字符串输出 213
10.4 格式化输入输出 213
10.4.1 格式化输出函数 213
10.4.2 格式控制字符 214
10.4.3 格式化输入 217
10.5 就业面试技巧与解析 221
10.5.1 面试技巧与解析(一) 221
10.5.2 面试技巧与解析(二) 222
第3篇 核心技术 224
第11章 指针 224
本章教学微视频:27个 65分钟 224
11.1 什么是指针 224
11.1.1 指针的概念 225
11.1.2 指针的类型 225
11.1.3 指针的值 226
11.1.4 运算符&和* 226
11.2 指针的使用 228
11.2.1 指针变量的使用 228
11.2.2 指针变量作为函数参数 232
11.3 指针与数组 236
11.3.1 数组指针 236
11.3.2 通过指针引用数组元素 237
11.3.3 用数组名作为函数参数 241
11.3.4 指针与数组的关系 244
11.3.5 一维数组指针 245
11.3.6 指向多维数组的指针 246
11.3.7 二维数组指针 248
11.4 指针的运算 249
11.5 字符串指针 253
11.5.1 字符串的表示与引用 253
11.5.2 字符串指针作为函数参数 255
11.5.3 字符数组和字符串指针处理字符串时的区别 257
11.6 指针数组和指向指针的指针 259
11.6.1 指针数组 259
11.6.2 指针数组的应用 260
11.6.3 指向指针的指针 264
11.6.4 指向指针的指针应用 266
11.6.5 带形式参教的main()函数 266
11.7 指针与函数 268
11.7.1 怎样定义和使用指向函数的指针变量 268
11.7.2 用指向函数的指针作为函数参数 270
11.7.3 指针函数 271
11.8 void指针类型 272
11.9 综合案例——报数游戏 274
11.10 就业面试技巧与解析 275
11.10.1 面试技巧与解析(一) 275
11.10.2 面试技巧与解析(二) 275
第12章 位操作 277
本章教学微视频:11个 15分钟 277
12.1 位的概念 277
12.2 二进制数 278
12.3 位运算符 278
12.3.1 按位或运算 279
12.3.2 按位异或运算 280
12.3.3 按位取反运算 281
12.3.4 左移运算 281
12.3.5 右移运算 281
12.3.6 位复合赋值运算 282
12.4 位段 282
12.4.1 位段的定义 282
12.4.2 位段中数据的引用 283
12.5 综合案例——数制转换 284
12.6 就业面试技巧与解析 285
12.6.1 面试技巧与解析(一) 285
12.6.2 面试技巧与解析(二) 285
第13章 结构体、共用体和枚举类型 287
本章教学微视频:19个 29分钟 287
13.1 结构体 287
13.1.1 结构体类型的概念 287
13.1.2 结构体类型的定义 288
13.1.3 结构体类型变量的定义 289
13.1.4 结构体变量的初始化 290
13.1.5 结构体变量的引用 291
13.2 结构体数组 293
13.2.1 结构体数组的定义 293
13.2.2 结构体数组的初始化 295
13.2.3 结构体数组的引用 296
13.2.4 结构体数组的应用实例 297
13.3 指向结构体指针 298
13.3.1 指向结构体变量的指针 298
13.3.2 指向结构体数组的指针 299
13.3.3 结构体变量作为函数参数 300
13.3.4 利用结构体指针变量作为函数参数 301
13.3.5 结构体作为函数的返回值 302
13.4 共用体 304
13.4.1 共用体的定义 304
13.4.2 共用体变量的定义、初始化和引用 304
13.5 枚举类型 308
13.5.1 枚举类型概述 308
13.5.2 枚举变量 308
13.6 综合案例——计算学生成绩 312
13.7 就业面试技巧与解析 313
13.7.1 面试技巧与解析(一) 313
13.7.2 面试技巧与解析(二) 314
第14章 C语言文件操作 315
本章教学微视频:12个 26分钟 315
14.1 文件概述 315
14.1.1 文件类型 315
14.1.2 文件缓冲区 316
14.2 C语言如何操作文件——文件指针 316
14.3 打开与关闭文件 317
14.3.1 文件的打开 317
14.3.2 文件的关闭 318
14.4 文件的顺序读写 319
14.4.1 字符读写函数fgetc()和fputc() 319
14.4.2 字符串读写函数fgets()和fputs() 320
14.4.3 数据块读写函数fread()和fwrite() 323
14.4.4 格式化读写函数fprintf()和fscanf() 326
14.5 文件定位与随机读写 328
14.6 文件检测函数 329
14.7 综合案例——编制课程表 330
14.8 就业面试技巧与解析 332
14.8.1 面试技巧与解析(一) 332
14.8.2 面试技巧与解析(二) 332
第15章 编译与预处理指令 334
本章教学微视频:12个 22分钟 334
15.1 什么是预处理指令 334
15.2 宏定义 335
15.2.1 变量式宏定义 335
15.2.2 宏定义嵌套 340
15.2.3 宏定义范围 341
15.2.4 带参数的宏定义 342
15.2.5 多行宏定义 344
15.3 文件包含 345
15.3.1 什么是文件包含 345
15.3.2 文件包含的使用 346
15.4 条件编译 347
15.4.1 条件编译形式 347
15.4.2 调试中使用条件编译 350
15.4.3 文件嵌套包含和条件编译 351
15.4.4 assert()宏 351
15.5 就业面试技巧与解析 351
15.5.1 面试技巧与解析(一) 352
15.5.2 面试技巧与解析(二) 352
第4篇 高级应用 354
第16章 常用库函数 354
本章教学微视频:23个 30分钟 354
16.1 C语言标准库函数 354
16.2 数学函数 355
16.2.1 绝对值函数 355
16.2.2 平方根函数和幂函数 357
16.2.3 指数函数和对数函数 357
16.2.4 三角函数 358
16.2.5 取整函数和取余函数 358
16.3 字符串处理函数 359
16.3.1 字符串长度函数 359
16.3.2 字符串连接函数 359
16.3.3 字符串复制函数 360
16.3.4 字符串比较函数 361
16.3.5 字符串查找函数 362
16.3.6 字符串填充函数 363
16.4 字符处理函数 364
16.4.1 字符类型判断函数 364
16.4.2 字符大小写转换函数 366
16.5 转换和动态存储管理函数 366
16.5.1 转换函数 366
16.5.2 动态存储管理函数 367
16.6 随机函数 369
16.6.1 初识随机函数 369
16.6.2 使用随机函数 369
16.7 日期和时间处理函数 370
16.8 命令行参数 372
16.9 其他函数 373
16.9.1 exit()函数 373
16.9.2 qsort()函数 374
16.10 综合案例——猜数字游戏 375
16.11 就业面试技巧与解析 377
16.11.1 面试技巧与解析(一) 378
16.11.2 面试技巧与解析(二) 378
第17章 动态数据结构 380
本章教学微视频:19个 31分钟 380
17.1 动态存储分配概述 380
17.1.1 分配内存空间函数malloc() 381
17.1.2 分配内存空间函数calloc() 381
17.1.3 释放内存空间函数free() 381
17.2 链表概述 382
17.2.1 链表的建立 383
17.2.2 链表的遍历 384
17.3 创建结点 385
17.3.1 链表结点的插入 386
17.3.2 链表结点的删除 388
17.4 数据结构概述 389
17.5 线性表 390
17.6 栈 390
17.6.1 栈的基本运算 391
17.6.2 顺序栈的定义 391
17.6.3 链式栈 392
17.7 队列 394
17.7.1 队列的基本运算 394
17.7.2 顺序队列 395
17.7.3 链式队列 396
17.8 二叉树 400
17.9 查找 401
17.9.1 顺序查找 401
17.9.2 折半查找 403
17.10 综合实例——求解迷宫问题 405
17.11 就业面试技巧与解析 410
17.11.1 面试技巧与解析(一) 410
17.11.2 面试技巧与解析(二) 410
第18章 C语言经典排序法 412
本章教学微视频:9个 6分钟 412
18.1 排序的概述 412
18.2 交换类排序法 413
18.2.1 冒泡排序 413
18.2.2 快速排序 416
18.3 插入类排序法 419
18.3.1 希尔排序 419
18.3.2 直接插入排序 421
18.4 选择类排序法 423
18.4.1 简单选择排序 423
18.4.2 堆排序 428
18.5 归并排序 430
18.6 链表基数排序 433
18.7 就业面试技巧与解析 439
18.7.1 面试技巧与解析(一) 439
18.7.2 面试技巧与解析(二) 439
第19章 C语言高级编程——网络编程技术 440
本章教学微视频:18个 20分钟 440
19.1 网络的构成 440
19.2 Internet套接字的类型 441
19.2.1 TCP 441
19.2.2 UDP 441
19.3 网络架构 442
19.4 打包过程结构体 442
19.5 网络与本机地址 443
19.6 IP地址的处理 444
19.7 网络编程函数 445
19.7.1 socket()函数 445
19.7.2 bind()函数 445
19.7.3 connect()函数 447
19.7.4 listen()函数 448
19.7.5 accept()函数 449
19.7.6 WSAStartup()函数与WSACleanup()函数 452
19.7.7 send()函数与recv()函数 452
19.7.8 sendto()函数与recvfrom()函数 454
19.7.9 closesocket()函数与shutdown()函教 456
19.8 基于TCP协议的网络程序 458
19.9 基于UDP协议的聊天室程序 462
19.10 就业面试技巧与解析 465
19.10.1 面试技巧与解析(一) 465
19.10.2 面试技巧与解析(二) 466
19.10.3 面试技巧与解析(三) 466
第20章 程序异常处理——纠错与调试 467
本章教学微视频:25个 27分钟 467
20.1 认识程序异常 467
20.2 程序异常的分类 468
20.2.1 程序语法错误 468
20.2.2 程序逻辑错误 468
20.2.3 程序内存错误 469
20.3 程序调试 470
20.3.1 程序纠错助手 470
20.3.2 程序调试步骤 470
20.4 程序异常处理原则 471
20.5 C语言常见典型错误解析 472
20.5.1 缺少分号或分号位置错误 472
20.5.2 路径使用的错误 473
20.5.3 误把“=”作为“等于”比较符用 473
20.5.4 遗漏花括号 473
20.5.5 括号配对错误 474
20.5.6 大小写字母的区别 474
20.5.7 忘记定义变量 474
20.5.8 错误使用指针 475
20.5.9 循环语句中忘记中断语句 475
20.5.10 混淆字符和字符串的表示形式 476
20.5.11 程序自加(++)和自减(--)运用错误 476
20.5.12 忘记使用地址符 477
20.5.13 数组及数组下标 477
20.5.14 int型数据的数值范围 478
20.5.15 函数的错误使用 478
20.5.16 混淆数组名及指针变量 481
20.5.17 混淆结构体类型和结构体变量 482
20.5.18 使用文件时忘记打开文件或打开文件方式不对 482
20.6 就业面试技巧与解析 483
20.6.1 面试技巧与解析(一) 483
20.6.2 面试技巧与解析(二) 483
第5篇 行业应用 486
第21章 C语言在游戏开发中的应用 486
本章教学微视频:3个 7分钟 486
21.1 系统功能描述 486
21.2 系统功能分析及实现 486
21.2.1 功能分析 487
21.2.2 功能实现 488
21.2.3 程序运行 500
第22章 C语言在ATM系统开发中的应用 503
本章教学微视频:3个 7分钟 503
22.1 系统功能描述 503
22.2 系统功能分析及实现 503
22.2.1 功能分析 504
22.2.2 功能实现 504
22.2.3 程序运行 513
第23章 C语言在航空管理开发中的应用 517
本章教学微视频:2个 7分钟 517
23.1 系统功能描述 517
23.2 系统功能分析及实现 517
23.2.1 功能分析 518
23.2.2 功能实现 519
23.2.3 程序运行 525
第24章 C语言在银行业务开发中的应用 528
本章教学微视频:3个 8分钟 528
24.1 系统功能描述 528
24.2 系统功能分析及实现 528
24.2.1 功能分析 529
24.2.2 功能实现 529
24.2.3 程序运行 534
第6篇 项目实践篇 538
第25章 软件工程师必备素养与技能 538
本章教学微视频:29个 30分钟 538
25.1 软件工程师的基本素养 538
25.1.1 计算机基础能力 539
25.1.2 至少熟练掌握一门编程语言 539
25.1.3 熟悉计算机数据存储过程 539
25.1.4 较强的英语阅读和写作能力 539
25.1.5 软件开发与测试环境搭建能力 539
25.1.6 软件测试基本理论及任务分配 540
25.2 个人素质必修课 540
25.2.1 语言表达及沟通能力 540
25.2.2 过硬的心理素质 541
25.2.3 责任心与自信心 541
25.2.4 团队协作能力 541
25.3 项目开发流程 541
25.3.1 策划阶段 542
25.3.2 需求分析阶段 542
25.3.3 开发阶段 543
25.3.4 编码阶段 543
25.3.5 系统测试阶段 544
25.3.6 系统验收阶段 544
25.3.7 系统维护阶段 544
25.4 项目开发团队 544
25.4.1 项目团队构建 544
25.4.2 项目团队要求 545
25.5 项目的实际运作 546
25.5.1 可行性分析 546
25.5.2 项目风险评估 546
25.5.3 项目过程定义 547
25.5.4 确定项目开发工具和技术 547
25.5.5 项目开发阶段 547
25.5.6 项目测试验收 547
25.5.7 项目过程总结 547
25.6 项目规划常见问题及解决方案 547
25.6.1 如何满足客户的需求 548
25.6.2 如何控制项目进度 548
25.6.3 如何控制项目预算 549
第26章 项目实践入门阶段1——图书管理系统 550
本章教学微视频:4个 9分钟 550
26.1 系统开发背景 550
26.2 需求及功能分析 551
26.2.1 总体功能分析 551
26.2.2 各模块功能分析 551
26.3 系统功能的实现 552
26.3.1 建立相关类及属性 552
26.3.2 系统选择菜单的实现 553
26.3.3 图书上架功能的实现 555
26.3.4 图书下架功能的实现 556
26.3.5 查找图书功能的实现 558
26.3.6 借书功能的实现 559
26.3.7 还书功能的实现 560
26.3.8 主函数功能的实现 562
26.4 系统运行与测试 563
26.5 开发过程常见问题及解决办法 564
第27章 项目实践入门阶段2——通讯录管理系统 565
本章教学微视频:4个 8分钟 565
27.1 系统开发背景 565
27.2 需求及功能分析 566
27.2.1 总体功能分析 566
27.2.2 各模块功能分析 567
27.3 系统功能的实现 567
27.3.1 建立联系人结构 567
27.3.2 系统选择菜单的实现 568
27.3.3 添加联系人功能的实现 569
27.3.4 插入联系人功能的实现 569
27.3.5 删除联系人功能的实现 570
27.3.6 显示联系人功能的实现 571
27.3.7 查找联系人功能的实现 571
27.3.8 主函数功能的实现 572
27.4 系统运行与测试 572
27.5 开发过程常见问题及解决办法 574
第28章 项目实践入门阶段3——网络通信系统 575
本章教学微视频:3个 7分钟 575
28.1 网络通信系统分析 575
28.2 功能分析及实现 576
28.3 开发过程常见问题及解决办法 579
第29章 项目实践提高阶段1——学生成绩管理系统 580
本章教学微视频:3个 7分钟 580
29.1 学生成绩管理系统分析 580
29.2 功能分析及实现 581
29.3 开发过程常见问题及解决办法 592
第30章 项目实践提高阶段2——酒店管理系统 594
本章教学微视频:3个 7分钟 594
30.1 酒店管理系统分析 594
30.2 功能分析及实现 595
30.3 开发常见问题及解决办法 604
第31章 项目实践高级阶段1——代码注释处理器 605
本章教学微视频:2个 5分钟 605
31.1 代码注释处理器分析 605
31.2 功能实现 606
31.3 系统运行与测试 616
第32章 项目实践高级阶段2——开发记忆大师游戏 621
本章教学微视频:2个 4分钟 621
32.1 记忆大师游戏分析 621
32.2 功能实现 622
32.3 系统运行与测试 633
第33章 项目实践高级阶段3——商品信息管理系统 636
本章教学微视频:4个 9分钟 636
33.1 商品信息管理系统分析 636
33.2 必备知识点 637
33.2.1 结构体的使用 637
33.2.2 结构体数组的使用 638
33.3 功能实现 639
33.3.1 商品结构体定义 639
33.3.2 界面显示 639
33.3.3 登录功能 640
33.3.4 系统主界面 641
33.3.5 保存商品信息 642
33.3.6 创建商品信息 643
33.3.7 打印商品信息 643
33.3.8 查询商品信息 644
33.3.9 修改商品信息 644
33.3.10 删除商品信息 646
33.3.11 按商品价格进行排序 646
33.4 系统运行与测试 647