Linux环境C程序设计 第2版PDF电子书下载
- 电子书积分:18 积分如何计算积分?
- 作 者:徐诚等编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2014
- ISBN:9787302347927
- 页数:603 页
第1篇 Linux系统概述及开发环境搭建 2
第1章 Linux系统概述和安装 2
1.1 引言 2
1.1.1 GNU项目简介 2
1.1.2 Linux起源 2
1.1.3 Linux发展现状 3
1.1.4 免费软件与开源软件 4
1.2 Linux内核与版本 4
1.2.1 Linux内核介绍 4
1.2.2 Linux所支持的硬件平台 5
1.2.3 常用Linux版本 5
1.3 系统安装 6
1.3.1 安装前的准备 7
1.3.2 系统需求 7
1.3.3 硬盘分区 7
1.3.4 以图形方式安装Linux 8
1.3.5 升级最新内核 14
1.3.6 安装中文支持 14
1.4 小结 15
第2章 Linux基本操作 16
2.1 登录 16
2.1.1 shell程序 16
2.1.2 控制台 16
2.1.3 终端 17
2.2 文件和目录 18
2.2.1 文件系统 18
2.2.2 文件名 19
2.2.3 路径名 20
2.2.4 工作目录 20
2.2.5 起始目录 20
2.3 输入和输出 21
2.3.1 文件描述符 21
2.3.2 标准输入、标准输出和标准错误 21
2.3.3 标准输入输出函数 21
2.4 小结 22
第3章 Linux GCC/G++编译器与调试器 23
3.1 GCC/G++编译器 23
3.1.1 GCC/G++编译器的安装 23
3.1.2 GCC/G++编译命令 23
3.1.3 GCC/G++编译选项 24
3.1.4 GCC/G++编译器的执行过程 24
3.2 程序和进程 25
3.2.1 程序 25
3.2.2 进程和PID 25
3.3 ANSI C标准 26
3.3.1 函数原型 26
3.3.2 类属指针 26
3.3.3 原始系统数据类型 26
3.4 编译hello world 27
3.4.1 使用VI编写源代码 27
3.4.2 程序的编译与连接 28
3.4.3 使用终端运行程序 28
3.5 GDB调试器 28
3.5.1 GDB调试器概述 28
3.5.2 GDB调试器安装 29
3.5.3 GDB常用调试命令 29
3.5.4 在GDB下运行程序 29
3.5.5 检查数据 30
3.6 小结 30
第4章 Linux开发环境 31
4.1 文本编辑工具 31
4.1.1 VIM的使用方法 31
4.1.2 Emacs的使用方法 32
4.2 集成开发环境 33
4.2.1 Eclipse介绍 33
4.2.2 Kdevelop介绍 33
4.3 使用Eclipse开发C/C++语言程序 34
4.3.1 安装与配置Eclipse 34
4.3.2 Eclipse界面 35
4.3.3 编译与运行源代码 35
4.3.4 Debug源代码 36
4.4 小结 37
第2篇 C/C++语言基础 40
第5章 C语言编程基础 40
5.1 程序设计语言的发展 40
5.1.1 机器语言 40
5.1.2 汇编语言 40
5.1.3 高级语言 40
5.2 C语言的特点 41
5.2.1 C语言是中级语言 41
5.2.2 C语言是结构化语言 42
5.2.3 C语言是程序员的语言 42
5.3 C语言的程序结构 42
5.3.1 基本程序结构 43
5.3.2 函数库和链接 44
5.3.3 开发一个C语言程序 45
5.3.4 C语言的关键字 45
5.4 算法 46
5.4.1 流程图与算法的结构化描述 46
5.4.2 用N-S图描述算法 48
5.4.3 用PAD图描述算法 48
5.5 软件工程概览 48
5.5.1 认识软件工程 48
5.5.2 瀑布模型及其改进 50
5.5.3 迭代发布模型 51
5.5.4 朴素软件工程思想 51
5.6 小结 53
第6章 数据类型、运算符和表达式 54
6.1 C语言的数据类型 54
6.1.1 基本类型的字长与范围 54
6.1.2 聚合类型与修饰符 55
6.2 常量与变量 56
6.2.1 标识符命名 56
6.2.2 常量 56
6.2.3 变量 57
6.3 整型数据 57
6.3.1 整型常量 58
6.3.2 整型变量 58
6.4 浮点型数据 59
6.4.1 浮点型常量 59
6.4.2 浮点型变量 59
6.5 字符型数据 59
6.5.1 字符常量 60
6.5.2 字符串常量 60
6.5.3 转义字符 60
6.5.4 符号常量 61
6.5.5 字符变量 61
6.6 运算符 62
6.6.1 算术运算符 62
6.6.2 自增和自减 62
6.6.3 关系和逻辑运算符 63
6.6.4 位操作符 64
6.6.5 问号操作符 64
6.6.6 逗号操作符 65
6.6.7 优先级 65
6.7 表达式 65
6.7.1 表达式中的类型转换 66
6.7.2 构成符cast 66
6.7.3 空格与括号 66
6.7.4 C语言中的简写形式 67
6.8 C语言的预处理命令 67
6.8.1 宏替换命令 67
6.8.2 终止编译命令 68
6.8.3 文件包含命令 68
6.8.4 条件编译命令 69
6.8.5 修改行号命令 70
6.8.6 编译指示命令 71
6.8.7 预定义的宏名 71
6.8.8 注释 72
6.9 小结 72
第7章 程序控制结构 73
7.1 程序的3种基本结构 73
7.2 数据的输入与输出 73
7.2.1 scanf()函数 73
7.2.2 printf()函数 75
7.2.3 getchar()函数与putchar()函数 76
7.3 条件控制语句 77
7.3.1 if语句 77
7.3.2 switch语句 78
7.4 循环控制语句 79
7.4.1 while语句 79
7.4.2 do-while语句 80
7.4.3 for语句 81
7.4.4 break与continue语句 81
7.5 媒体播放器——建立程序结构 82
7.5.1 编写伪代码 83
7.5.2 建立媒体播放器的程序结构 83
7.6 小结 86
第8章 数组与指针 87
8.1 一维数组 87
8.1.1 一维数组的一般形式 87
8.1.2 字符串使用的一维数组 89
8.2 二维数组 90
8.2.1 二维数组的一般形式 90
8.2.2 二维字符串数组 90
8.3 多维数组 91
8.4 指针与指针变量 92
8.5 指针变量的定义与引用 93
8.5.1 指针变量的定义 93
8.5.2 指针变量的引用 94
8.6 指针与数组 95
8.6.1 指针与一维数组 95
8.6.2 指针与二维数组 96
8.6.3 指针与字符串数组 97
8.7 指针的地址分配 97
8.8 指针数组 98
8.9 指向指针的指针 98
8.10 媒体播放器——建立播放列表 99
8.10.1 建立一个播放列表 99
8.10.2 对播放列表排序 104
8.11 小结 105
第9章 函数 106
9.1 函数说明与返回值 106
9.1.1 函数的类型说明 106
9.1.2 返回语句 107
9.2 函数的作用域规则 108
9.2.1 局部变量 108
9.2.2 全局变量 109
9.2.3 动态存储变量 110
9.2.4 静态存储变量 111
9.3 函数的调用与参数 111
9.3.1 形式参数与实际参数 111
9.3.2 赋值调用与引用调用 112
9.4 递归 112
9.5 实现问题 113
9.5.1 参数和通用函数 114
9.5.2 效率 114
9.6 函数库和文件 114
9.6.1 程序文件的大小 115
9.6.2 分类组织文件 115
9.6.3 函数库 116
9.7 main()函数的参数 117
9.8 媒体播放器——建立核心控制模块 118
9.8.1 通过函数传递参数 118
9.8.2 建立媒体播放器核心控制模块 121
9.9 小结 125
第10章 字符及字符串处理 126
10.1 字符编码 126
10.1.1 ASCII编码 126
10.1.2 Unicode编码 127
10.2 字符处理库 127
10.3 字符串转换函数 128
10.4 字符串处理函数 130
10.5 字符串比较函数 131
10.6 字符串查找函数 131
10.7 字符串内存函数 133
10.8 字符串的其他函数 134
10.9 媒体播放器——实现播放列表的检索功能 135
10.9.1 对播放列表中的整个字符串进行排序 135
10.9.2 在播放列表中查找字符串 135
10.10 小结 140
第11章 结构体与共用体 141
11.1 结构体类型变量的定义和引用 141
11.1.1 结构体类型变量的定义 141
11.1.2 结构体类型变量的引用 142
11.1.3 结构体类型变量的初始化 143
11.2 结构体数组的定义和引用 144
11.3 结构体指针的定义和引用 144
11.3.1 指向结构体类型变量的使用 145
11.3.2 指向结构体类型数组的指针的使用 145
11.4 共用体 146
11.4.1 共用体的定义 146
11.4.2 共用体变量的引用 147
11.5 媒体播放器——建立媒体库 148
11.5.1 设计媒体库中的数据结构 148
11.5.2 媒体库的基本操作 151
11.5.3 添加文件到媒体库 153
11.5.4 在媒体库中查找文件 155
11.5.5 从媒体库删除选定文件 157
11.5.6 从媒体库删除所有文件 158
11.6 小结 158
第12章 C++语言编程基础 159
12.1 类和数据抽象 159
12.1.1 用类实现数据抽象 159
12.1.2 类作用域和访问类成员 161
12.1.3 从实现中分离接口 161
12.1.4 控制访问成员 162
12.1.5 构造函数和析构函数 162
12.1.6 const对象和const成员函数 163
12.1.7 friend对象和friend类 163
12.1.8 this指针 165
12.1.9 动态内存分配 165
12.1.10 static类成员 165
12.2 C++的特性 166
12.2.1 运算符重载 166
12.2.2 继承 167
12.2.3 虚拟函数和多态性 168
12.2.4 流输入与输出 169
12.2.5 模板 169
12.2.6 异常处理 170
12.3 小结 170
第3篇 Linux系统编程 172
第13章 文件操作 172
13.1 文件的属性与权限 172
13.1.1 文件的属性 172
13.1.2 文件的权限 173
13.1.3 管理文件的权限 173
13.2 文件管理 174
13.2.1 系统调用的原理 174
13.2.2 打开文件、新建文件和关闭文件操作 174
13.2.3 文件状态和属性操作 177
13.2.4 目录操作 179
13.2.5 删除目录或文件操作 181
13.2.6 错误处理 182
13.3 媒体播放器——增强媒体库功能 182
13.3.1 添加目录到媒体库 183
13.3.2 搜索本地磁盘中的所有媒体文件 184
13.4 小结 184
第14章 文件I/O操作 185
14.1 非缓冲文件操作 185
14.1.1 使用read()读取文件 185
14.1.2 使用write()写入文件 186
14.1.3 随机读写文件 187
14.2 缓冲文件操作 188
14.2.1 打开与关闭文件流 188
14.2.2 读取与写入文件流 189
14.2.3 文件流的格式化输入与输出 191
14.2.4 文件流的定位操作 192
14.2.5 文件流操作的其他函数 193
14.2.6 文件流操作的错误处理 194
14.3 媒体播放器——完善播放列表 194
14.3.1 读取播放列表文件 194
14.3.2 将播放列表保存为文件 196
14.4 小结 197
第15章 进程控制 198
15.1 进程的基本概念 198
15.1.1 进程的状态和状态转换 199
15.1.2 进程控制 201
15.1.3 进程调度 202
15.2 进程的基本操作 202
15.2.1 fork系统调用 202
15.2.2 exec系统调用 204
15.2.3 exit系统调用 205
15.2.4 wait系统调用 206
15.2.5 sleep函数调用 206
15.3 进程的特殊操作 207
15.3.1 获得进程ID 207
15.3.2 setuid和setgid系统调用 208
15.3.3 setpgrp和setpgid系统调用 208
15.3.4 chdir系统调用 208
15.3.5 chroot系统调用 209
15.3.6 nice系统调用 209
15.4 小结 209
第16章 进程间通信 210
16.1 进程间使用管道通信 210
16.1.1 pipe系统调用 211
16.1.2 dup系统调用 212
16.2 进程间使用D-Bus通信 213
16.2.1 D-Bus的基本概念 213
16.2.2 D-Bus的用例 214
16.3 媒体播放器——完善退出和音量控制功能 217
16.3.1 媒体播放器在桌面环境退出时响应 217
16.3.2 调整系统音量 218
16.4 小结 220
第17章 线程控制 221
17.1 线程的基本概念 221
17.2 线程的实现 221
17.2.1 用户态线程 222
17.2.2 内核态线程 222
17.3 POSIX线程库 222
17.3.1 创建线程 222
17.3.2 结束线程 223
17.4 同步 226
17.4.1 用信号量进行同步 226
17.4.2 用互斥量进行同步 228
17.5 取消线程 230
17.6 多线程的实现 231
17.7 小结 233
第4篇 Linux网络编程与数据库开发 236
第18章 网络编程基础 236
18.1 计算机网络的组成 236
18.1.1 网络结构 236
18.1.2 OSI参考模型 238
18.1.3 TCP/IP参考模型 238
18.2 TCP/IP协议 240
18.2.1 IP协议与Internet 240
18.2.2 IP互联网协议地址 241
18.2.3 TCP协议 242
18.2.4 UDP协议 243
18.3 Socket套接字 244
18.3.1 Socket套接字简介 244
18.3.2 创建套接字 245
18.3.3 套接字地址 246
18.3.4 套接字的名字 247
18.3.5 创建套接字队列 247
18.3.6 接受连接 248
18.3.7 请求连接 248
18.3.8 关闭连接 249
18.3.9 套接字通信 249
18.4 网络通信 251
18.4.1 查询主机名称 251
18.4.2 Internet守护进程 253
18.5 小结 254
第19章 网络编程函数库 255
19.1 HTTP与FTP函数库 255
19.1.1 libcurl函数库简介 256
19.1.2 libcurl中的主要函数 256
19.1.3 使用libcurl实现简单的HTTP访问 258
19.2 SMTP、POP与IMAP函数库 259
19.2.1 使用libESMTP函数库实现电子邮件的发送 260
19.2.2 使用libspopc函数库实现POP访问 261
19.2.3 使用mailutils函数库实现IMAP访问 263
19.3 即时通信函数库 264
19.3.1 libpurple函数库简介 264
19.3.2 即时通信软件的工作机制 265
19.3.3 使用libpurple函数库接入服务器 266
19.4 小结 273
第20章 数据库 274
20.1 数据的存储与访问 274
20.1.1 使用数据文件 274
20.1.2 使用数据库 278
20.2 Berkeley DB数据包 280
20.2.1 Berkeley DB数据包简介 280
20.2.2 Berkeley DB数据包的连接和使用 283
20.2.3 Berkeley DB数据包的访问 288
20.2.4 Berkeley DB数据包中的游标 290
20.3 PostgreSQL数据库服务器介绍 293
20.3.1 PostgreSQL的基本概念 293
20.3.2 数据库连接函数 295
20.3.3 命令执行函数 300
20.3.4 检索查询结果函数 304
20.4 小结 308
第21章 Linux系统中的常用数据库及接口 309
21.1 SQLite数据库 309
21.1.1 SQLite简介 309
21.1.2 连接SQLite数据库 311
21.1.3 SQLite命令执行函数 314
21.1.4 SQLite检索查询结果函数 316
21.2 MySQL数据库 318
21.2.1 MySQL简介 319
21.2.2 连接MySQL数据库 321
21.2.3 查询MySQL数据库 324
21.2.4 处理MySQL查询结果 325
21.3 大型数据库与通用数据库接口 327
21.3.1 连接Oracle数据库 328
21.3.2 通用数据库接口 330
21.4 媒体播放器——媒体库的数据库实现 337
21.4.1 建立和连接数据库 337
21.4.2 建立媒体库数据表 338
21.4.3 管理媒体库数据表 339
21.5 小结 343
第5篇 Linux界面开发 346
第22章 界面开发基础 346
22.1 Linux常用桌面环境 346
22.1.1 GNOME桌面环境 346
22.1.2 KDE桌面环境 348
22.1.3 移动设备与HILDON桌面环境 349
22.2 GTK+图形环境介绍 351
22.3 GLib库介绍 352
22.3.1 基础类型 352
22.3.2 对核心应用的支持 353
22.3.3 实用功能 354
22.3.4 数据类型 355
22.4 GObject对象介绍 356
22.4.1 对象系统 357
22.4.2 GObject系统中的宏定义 358
22.4.3 GTypeInfo结构 360
22.4.4 信号机制 361
22.5 2D图形引擎Cairo介绍 361
22.6 多媒体库GStreamer介绍 363
22.6.1 过滤器 364
22.6.2 衬垫 365
22.6.3 箱柜 366
22.6.4 精灵衬垫 367
22.7 搭建GTK+开发环境 369
22.8 小结 372
第23章 界面构件开发 373
23.1 常用界面构件 373
23.1.1 按钮构件 373
23.1.2 调整对象 375
23.1.3 范围构件 376
23.1.4 标签构件 377
23.1.5 箭头构件 378
23.1.6 工具提示对象 379
23.1.7 进度条 379
23.1.8 对话框 380
23.1.9 标尺 381
23.1.10 状态栏 382
23.1.11 文本输入构件 383
23.1.12 微调按钮 385
23.1.13 组合输入框 388
23.1.14 日历 390
23.1.15 颜色选择 392
23.1.16 文件选择 394
23.2 复合构件 396
23.2.1 快捷标签 396
23.2.2 绘图区 399
23.2.3 字体选择对话框 407
23.2.4 消息对话框 410
23.2.5 图像构件 412
23.2.6 文本视区 416
23.3 菜单构件 416
23.3.1 菜单栏 417
23.3.2 菜单构件 417
23.3.3 菜单项 420
23.3.4 图形菜单项 423
23.3.5 复选菜单项 424
23.3.6 单选菜单项 426
23.3.7 分隔菜单项 427
23.4 RC文件 427
23.4.1 使用RC文件 428
23.4.2 RC文件格式 429
23.5 小结 432
第24章 界面布局 433
24.1 界面布局的基本概念 433
24.1.1 界面的宽度与高度 433
24.1.2 窗体的基本组成 435
24.1.3 布局约定 437
24.2 组装盒构件 439
24.2.1 组装盒的原理 439
24.2.2 组装盒示范程序 440
24.2.3 表组装的原理 441
24.2.4 表组装示例 443
24.3 容器 445
24.3.1 事件盒 445
24.3.2 对齐构件 446
24.3.3 固定容器 447
24.3.4 布局容器 448
24.3.5 框架构件 450
24.3.6 比例框架 452
24.3.7 分栏窗体构件 453
24.3.8 视角构件 455
24.3.9 滚动条窗体 455
24.3.10 按钮盒 457
24.3.11 工具栏 459
24.3.12 笔记本 462
24.4 媒体播放器——实现界面 466
24.4.1 使用原型法设计媒体播放器界面 466
24.4.2 编写媒体播放器界面代码 470
24.5 小结 478
第25章 信号与事件处理 479
25.1 信号函数与回调函数 479
25.1.1 信号函数 479
25.1.2 回调函数 483
25.2 常用GTK+信号与事件 485
25.2.1 GtkObject类信号 485
25.2.2 GtkWidget界面构件信号 486
25.2.3 GtkWindow窗体构件信号 495
25.2.4 GtkContainer容器构件信号 496
25.2.5 GtkCalendar日历构件信号 496
25.2.6 GtkTextView文本视区构件信号 497
25.3 小结 498
第26章 Glade设计程序界面 499
26.1 Glade简介 499
26.2 构造图形界面 500
26.2.1 添加窗体 500
26.2.2 添加容器 507
26.2.3 添加构件 514
26.2.4 设置构件属性 517
26.2.5 添加事件和回调 518
26.3 C语言代码联编 520
26.3.1 GTK+库使用Glade项目文件 520
26.3.2 使用GTK+多语言支持 522
26.4 小结 526
第6篇 Linux C编程项目实战 528
第27章 编程项目实战——媒体播放器 528
27.1 软件工程实战 528
27.1.1 项目需求分析 528
27.1.2 软件需求说明 529
27.1.3 项目视图的解决方案 530
27.2 软件设计 531
27.2.1 需求分析 531
27.2.2 制订开发计划 532
27.2.3 分工协作 533
27.3 版本控制 534
27.3.1 CVS服务器配置 534
27.3.2 CVS服务器管理 535
27.4 在Eclipse中使用CVS客户端 538
27.4.1 从CVS服务器签出模块并创建项目 539
27.4.2 签入文件 542
27.4.3 使用Eclipse项目创建CVS模块 543
27.4.4 比较文件 544
27.4.5 管理CVS服务器 545
27.4.6 断开项目与CVS服务器之间的关联 545
27.5 音量控制对话框 546
27.5.1 创建对话框 546
27.5.2 添加垂直比例尺 547
27.5.3 测试 548
27.6 播放列表对话框 549
27.6.1 创建对话框 549
27.6.2 创建工具条和工具条按钮 550
27.6.3 创建树视图 552
27.6.4 创建对话框按钮 552
27.6.5 测试 553
27.7 媒体库对话框 554
27.7.1 创建对话框 554
27.7.2 创建工具条和工具条按钮 555
27.7.3 创建分类部件和媒体信息显示部件 556
27.7.4 创建搜索部件 558
27.7.5 创建对话框按钮 559
27.7.6 测试 559
27.8 播放控制模块实现 562
27.8.1 播放控制模块程序结构 562
27.8.2 MP3播放功能的实现 563
27.8.3 播放中的回调处理 566
27.9 系统集成 568
27.10 主程序文件的实现 569
27.10.1 头文件和主函数入口 569
27.10.2 媒体库模块初始化 570
27.10.3 图形界面初始化 570
27.10.4 退出前清理 571
27.10.5 编译和运行 571
27.11 媒体库功能的集成 571
27.11.1 初始化 572
27.11.2 显示媒体库对话框 572
27.11.3 添加文件 579
27.11.4 添加目录 581
27.11.5 删除文件信息 582
27.11.6 删除所有文件信息 584
27.11.7 搜索本地文件 585
27.11.8 传递到播放列表 586
27.11.9 查找 587
27.12 播放列表功能的集成 589
27.12.1 初始化 589
27.12.2 显示播放列表对话框 589
27.12.3 添加文件 592
27.12.4 添加目录 593
27.12.5 打开文件 594
27.12.6 保存文件 596
27.12.7 删除文件 597
27.12.8 删除全部 598
27.12.9 排序 599
27.13 播放控制模块的集成 600
27.13.1 播放模式设置 600
27.13.2 开始播放 600
27.13.3 暂停播放 601
27.13.4 停止播放 602
27.13.5 播放上一首 602
27.13.6 播放下一首 603
27.14 小结 603
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《你好,生态环境部!》生态环境部编 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《断陷湖盆比较沉积学与油气储层》赵永胜等著 1996
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019