0%

基本信息

名称: Arduino机器人权威指南
作者信息: 作者: John-David Warren(约翰-戴维.沃伦) [ 英文 pdf ]

简单介绍

《Arduino机器人权威指南》(外版书名《Arduino Robotics》)是目前使用Arduino做机器人的最权威指导图书,在国内人工智能领域是唯一一本。其姊妹篇《Arduino从基础到实践》之前问世时就受到创客们的一致好评。无论你是只会摆弄Arduino的初学者,还是一个制作小工具的专家,《Arduino机器人权威指南》都会帮助你制作出意想不到的机器人作品。

目录

1
2
3
目    录 

第1章 基础 1 1.1 电学 2 1.1.1 电模拟 3 1.1.2 电的基础知识 4 1.1.3 电路 6 1.1.4 电信号测量 7 1.1.5 万用表 7 1.1.6 电压测量 8 1.1.7 电流强度测量 9 1.1.8 电容测量 9 1.1.9 电阻测量 10 1.1.10 使用欧姆定律计算电阻功率 11 1.1.11 示波器 12 1.1.12 负载 13 1.1.13 电路连接 14 1.2 电子学 15 1.2.1 半导体 16 1.2.2 技术手册 17 1.2.3 集成电路 18 1.2.4 通孔元件 19 1.3 Arduino初级读本 20 1.3.1 Arduino变体 21 1.3.2 Arduino集成开发环境 24 1.3.3 草稿 24 1.3.4 信号 28 1.4 构建电路 38 1.4.1 电路设计 38 1.4.2 原理图 39 1.4.3 原型 41 1.5 搭建机器人 47 1.5.1 硬件 47 1.5.2 材料 49 1.5.3 工作区域 50 1.6 总结 51 第2章 基于Arduino的机器人 52 2.1 Arduino接口 52 2.1.1 继电器 53 2.1.2 晶体管 59 2.1.3 电机控制器的接口 66 2.2 用户控制 69 2.2.1 连线(有线)控制 70 2.2.2 红外控制(IR) 70 2.2.3 无线电控制系统 71 2.3 传感器导航 74 2.3.1 接触式感知 75 2.3.2 距离和反射式感知 75 2.3.3 方向(定位) 78 2.3.4 非自主传感器 81 2.4 总结 84 第3章 让机器人动起来 85 3.1 电机 85 3.1.1 有刷直流电机(永久磁铁型) 86 3.1.2 无刷直流电机 87 3.1.3 步进电机 88 3.1.4 齿轮减速电机 90 3.1.5 伺服舵机 91 3.1.6 线性制动器 92 3.1.7 功率计算 93 3.1.8 驱动 93 3.1.9 寻找合适的电机 94 3.2 H桥 95 3.2.1 产生制动 96 3.2.2 实现 97 3.2.3 H桥集成电路 100 3.2.4 更改PWM频率 101 3.2.5 反电动势 103 3.2.6 电流检测 105 3.2.7 基于H桥的商品(电机控制器) 106 3.3 电池 109 3.3.1 镍镉电池(NiCad) 110 3.3.2 镍氢电池(NiMH) 110 3.3.3 锂聚合物电池(LiPo) 111 3.3.4 铅酸蓄电池 112 3.3.5 充电 114 3.4 材料 115 3.4.1 木材 115 3.4.2 金属 116 3.4.3 螺栓和螺母 116 3.4.4 塑料 117 3.4.5 链条和链轮齿 117 3.4.6 车轮 118 3.5 总结 118 第4章 莱纳斯寻线机器人 120 4.1 莱纳斯的零件清单 121 4.2 如何使莱纳斯工作 123 4.2.1 轨道 123 4.3 制作红外传感器电路板 124 4.4 改装成连续旋转的伺服舵机 132 4.4.1 方法1:带有外部速度控制器的直接直流驱动 132 4.4.2 方法2:带有内部电机驱动电路的伺服脉冲驱动 135 4.5 合适的驱动轮 137 4.6 制作框架 141 4.7 制作连接 146 4.8 电池安装 147 4.8.1 安装电源开关 148 4.9 加载代码 148 4.10 制作轨道 155 4.11 测试 156 4.12 附加组件 157 4.12.1 LED指示灯 157 4.12.2 喷漆 159 4.12.3 添加速度调节器(电位器) 162 4.13 总结 164 第5章 墙追踪机器人Wally 166 5.1 如何让Wally工作 167 5.2 Wally的零件清单 169 5.3 电机控制器 171 5.3.1 高侧开关 171 5.3.2 低侧开关 171 5.3.3 电路制作 173 5.4 制作框架 178 5.5 安装传感器 182 5.6 安装电池和电源开关 185 5.6.1 电源开关安装 186 5.7 代码 187 5.7.1 代码目标 189 5.8 总结 198 第6章 制作PCB板 199 6.1 PCB基础 199 6.2 你需要什么来开始 200 6.3 电路设计 202 6.3.1 搜索开源设计 203 6.3.2 制作你自己的设计 204 6.3.3 使用Eagle原理图编辑器工作 207 6.3.4 使用Eagle电路板编辑器工作 211 6.4 转印设计 219 6.4.1 让我们制作一块Arduino克隆板——Jduino 219 6.4.2 开始转印 221 6.5 腐蚀 227 6.5.1 测量腐蚀液 227 6.5.2 腐蚀(方法1) 228 6.5.3 腐蚀(方法2) 230 6.5.4 清除墨粉 232 6.6 钻孔 234 6.7 焊接 235 6.7.1 制作Arduino克隆板 235 6.7.2 制作BJT H-桥 238 6.8 测试 240 6.9 总结 243 第7章 昆虫机器人 244 7.1 通过Arduino读取开关 245 7.2 如何使昆虫机器人工作 246 7.2.1 天线传感器 246 7.2.2 碰撞传感器 247 7.3 昆虫机器人的零件清单 247 7.4 电机 249 7.4.1 改装伺服舵机 249 7.4.2 控制伺服舵机 251 7.4.3 将脉冲值转换为角度值 252 7.4.4 将车轮安装到伺服舵机 253 7.5 制作框架 255 7.5.1 标记有机玻璃 255 7.5.2 切割有机玻璃 256 7.5.3 安装电机 258 7.5.4 安装脚轮 258 7.5.5 安装Arduino 260 7.5.6 安装电池 260 7.6 制作传感器 262 7.6.1 前置天线传感器 262 7.6.2 后置碰撞传感器 263 7.7 制作连线 266 7.8 加载代码 267 7.8.1 创建一个延迟 267 7.8.2 变量 268 7.8.3 代码 269 7.9 制作一顶帽子 277 7.10 总结 280 第8章 探险者机器人 281 8.1 如何使探险者机器人工作 282 8.1.1 R/C控制 282 8.1.2 强大的电机 283 8.1.3 电流检测 283 8.1.4 启动视频 283 8.1.5 启动Xbee 284 8.2 探险者机器人的零件清单 284 8.3 制作框架 286 8.3.1 规格 286 8.3.2 添加电池支架 287 8.3.3 切割底部框架支架 289 8.3.4 切割顶部框架支架 289 8.3.5 切割和弯曲主框架板 290 8.3.6 添加横杆和安装脚轮 291 8.3.7 有机玻璃甲板(任选) 293 8.4 制作电机控制器 293 8.4.1 电流检测和限流 293 8.4.2 H桥设计 294 8.5 设置Arduino 298 8.5.1 连接H桥 299 8.6 设置Xbee 300 8.6.1 测试Xbee 302 8.7 添加摄像头 303 8.7.1 二自由度云台 304 8.7.2 制作第一个支架 305 8.7.3 制作第二个支架 306 8.8 加载代码 307 8.9 总结 316 第9章 机器船 318 9.1 开场白 319 9.2 机器船的零件清单 319 9.2.1 聚苯乙烯泡沫塑料 321 9.2.2 环氧树脂 322 9.2.3 手套 323 9.2.4 玻璃纤维布 323 9.2.5 胶水 324 9.2.6 泡沫塑料切割机和美工刀 325 9.2.7 杂项 325 9.3 机器船设计 325 9.4 组装机器船 327 9.4.1 模板 327 9.4.2 将模板胶合到EPS/ XPS板上 329 9.4.3 切出分段 330 9.4.4 把分段胶合在一起 332 9.4.5 插入泡沫锚 333 9.4.6 涂层 334 9.4.7 涂抹成品 335 9.4.8 鳍 336 9.4.9 上色 336 9.4.10 甲板 336 9.4.11 完成组装 337 9.5 推进装置 338 9.5.1 底板 340 9.5.2 枢轴 340 9.5.3 管子 341 9.5.4 舵角 342 9.5.5 电机 343 9.5.6 舵机 344 9.5.7 推杆 344 9.6 电子设备 344 9.6.1 系统的核心——ArduPilot PCB 345 9.6.2 GPS模块 346 9.6.3 电子调速器(ESC) 346 9.6.4 电机 347 9.6.5 舵机 347 9.6.6 电池组 347 9.6.7 安装电子设备 348 9.7 软件和任务规划 351 9.7.1 GPS接收器 351 9.7.2 软件 352 9.7.3 安装软件 372 9.7.4 任务规划 377 9.8 全部放在一起 380 9.8.1 集成系统 381 9.8.2 船,欢呼吧! 383 9.9 故障排除 383 9.9.1 电机/螺旋桨的推力不够 384 9.9.2 电机不启动 385 9.10 总结 385 第10章 草地机器人400 386 10.1 如何使草地机器人400工作 387 10.1.1 割草机甲板 388 10.1.2 大容量电池 388 10.1.3 钢框架 389 10.1.4 卸料斗 389 10.1.5 充气轮胎 390 10.1.6 前灯 390 10.1.7 失效保护 390 10.2 工具和零件列表 391 10.2.1 割草机 391 10.2.2 零件清单 391 10.3 轮子 392 10.3.1 前脚轮 393 10.3.2 后驱动轮 393 10.3.3 安装链轮 394 10.4 框架 395 10.5 传动系统 402 10.5.1 安装电机支架 403 10.5.2 安装链条 406 10.6 电机控制器 408 10.6.1 选购一个电机控制器 408 10.6.2 散热风扇 410 10.6.3 电机控制器反馈 411 10.7 Arduino 413 10.7.1 固定好连接以防行驶颠簸 413 10.8 失效保护 417 10.8.1 无线电遥控拨动开关 418 10.8.2 功率继电器 420 10.8.3 避免无线电遥控本身的失效保护 421 10.9 连接电路 422 10.10 代码 423 10.11 美化和添加附件 429 10.11.1 喷漆 429 10.11.2 前灯 430 10.11.3 卸料斗 430 10.11.4 割草机安全开关 432 10.12 总结 432 第11章 赛格威机器人 434 11.1 如何使赛格威机器人工作 435 11.1.1 惯性测量单元 435 11.1.2 转向和增益 436 11.1.3 啮合器 436 11.2 赛格威机器人的零件清单 436 11.3 选择合适的传感器 438 11.3.1 3.3V电源 439 11.3.2 加速度计 440 11.3.3 陀螺仪 442 11.3.4 陀螺仪和加速度计的总结 443 11.3.5 角度滤波 444 11.4 制作惯性测量单元适配板 445 11.5 选择电机 446 11.5.1 卸掉电力制动器 448 11.5.2 电机安装位置 450 11.6 选择电机控制器 451 11.6.1 SoftwareSerial库 452 11.6.2 Sabertooth控制器的简化串口 453 11.7 电池 454 11.7.1 密封铅酸蓄电池 455 11.7.2 充电 456 11.7.3 12V供电 456 11.8 框架 456 11.8.1 框架设计 458 11.8.2 制作框架 458 11.9 输入装置 462 11.9.1 转向 462 11.9.2 增益 462 11.9.3 啮合器 463 11.9.4 水平启动 463 11.9.5 安装输入装置到框架上 463 11.10 安装电子设备 467 11.10.1 焊接输入装置 470 11.10.2 连接线路 470 11.11 分析代码 471 11.11.1 sample_accel()函数 472 11.11.2 sample_gyro()函数 473 11.11.3 检查角度读数 474 11.11.4 calculate_angle() 函数 475 11.11.5 read_pots()函数 476 11.11.6 auto_level()函数 477 11.11.7 update_motor_speed() 函数 479 11.11.8 time_stamp()函数 482 11.11.9 serial_print_stuff()函数 482 11.11.10 完整代码 484 11.12 测试 491 11.13 总结 493 11.14 参考资料 493 第12章 格斗机器人 494 12.1 机器人格斗的诞生 496 12.1.1 格斗机器人的规章制度 496 12.1.2 没有价格限制 497 12.2 格斗机器人零件清单 498 12.3 输入控制 500 12.3.1 Fly Sky CT-6:32美元、5通道、2.4GHz无线控制器备选方案 501 12.4 电子设备 504 12.4.1 Arduino 504 12.4.2 电机控制器 505 12.5 框架 507 12.5.1 是买,还是做 508 12.5.2 改装轮子 509 12.5.3 制作框架 510 12.6 传动系统 513 12.6.1 齿轮传动装置 514 12.6.2 链条张力调整螺母 515 12.7 电池 520 12.8 安装电子设备 522 12.8.1 保护好你的大脑 522 12.8.2 连接线路 524 12.9 代码 526 12.10 盔甲 532 12.11 武器 534 12.12 附加信息 540 12.13 总结 541 第13章 其他控制方式 542 13.1 用Processing来解码信号 543 13.2 其他控制方式所用零件清单 543 13.3 选择输入设备 544 13.4 Processing必备文件 545 13.5 遵照协议 546 13.6 检查Processing的代码 546 13.6.1 代码解析 549 13.6.2 测试Processing 551 13.7 检查Arduino的代码 553 13.8 总结 560

亚马逊链接

基本信息

名称: Android编程权威指南
作者信息: 作者: 菲利普斯 (Brian Hardy) [ 中文 pdf ]

简单介绍

Amazon榜首畅销书
全面覆盖Android开发知识点
全真示例、循循善诱、轻松上手

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
第1章 Android应用初体验
1.1 应用基础
1.2 创建Android项目
1.3 Eclipse工作区导航
1.4 用户界面设计
1.4.1 视图层级结构
1.4.2 组件属性
1.4.3 创建字符串资源
1.4.4 预览界面布局
1.5 从布局XML到视图对象
1.6 组件的实际应用
1.6.1 类包组织导入
1.6.2 引用组件
1.6.3 设置监听器
1.7 使用模拟器运行应用
1.8 Android编译过程
第2章 Android与MVC设计模式
2.1 创建新类
2.2 Android与MVC设计模式
2.3 更新视图层
2.4 更新控制层
2.5 在设备上运行应用
2.5.1 连接设备
2.5.2 配置设备用于应用开发
2.6 添加图标资源
2.6.1 向项目中添加资源
2.6.2 在XML文件中引用资源
2.7 关于挑战练习
2.8 挑战练习一:为TextView添加监听器
2.9 挑战练习二:添加后退按钮
2.10 挑战练习三:从按钮到图标按钮
第3章 Activity的生命周期
3.1 日志跟踪理解Activity生命周期
3.1.1 输出日志信息
3.1.2 使用 LogCat
3.2 设备旋转与Activity生命周期
3.3 设备旋转前保存数据
3.4 再探Activity生命周期
3.5 深入学习:测试onSaveInstanceState—(Bundle)方法
3.6 深入学习:日志记录的级别与方法
第4章 Android应用的调试
4.1 DDMS应用调试透视图
4.2 异常与栈跟踪
4.2.1 诊断应用异常
4.2.2 记录栈跟踪日志
4.2.3 设置断点
4.2.4 使用异常断点
4.3 文件浏览器
4.4 Android特有的调试工具
4.4.1 使用Android Lint
4.4.2 R类的问题
第5章 第二个activity
5.1 创建第二个activity
5.1.1 创建新布局
5.1.2 创建新的activity子类
5.1.3 在manifest配置文件中声明activity
5.1.4 为QuizActivity添加cheat按钮
5.2 启动activity
5.3 activity间的数据传递
5.3.1 使用intent extra
5.3.2 从子activity获取返回结果
5.4 activity的使用与管理
5.5 挑战练习
第6章 Android SDK版本与兼容
6.1 Android SDK版本
6.2 Android编程与兼容性问题
6.2.1 全新的系统版本——Honeycomb
6.2.2 SDK最低版本
6.2.3 SDK目标版本
6.2.4 SDK编译版本
6.2.5 安全添加新版本API中的代码
6.3 使用Android开发者文档
6.4 挑战练习:报告编译版本
第7章 UI fragment与fragment管理器
7.1 UI设计的灵活性需求
7.2 fragment的引入
7.3 着手开发CriminalIntent
7.3.1 创建新项目
7.3.2 fragment与支持库
7.3.3 创建Crime类
7.4 托管UI fragment
7.4.1 fragment的生命周期
7.4.2 托管的两种方式
7.4.3 定义容器视图
7.5 创建UI fragment
7.5.1 定义CrimeFragment的布局
7.5.2 创建CrimeFragment类
7.6 添加UI fragment到FragmentManager
7.6.1 fragment事务
7.6.2 FragmentManager与fragment生命周期
7.7 activity使用fragment的理由
7.8 深入学习:Honeycomb、ICS、Jelly Bean以及更高版本系统上的应用开发
第8章 使用布局与组件创建用户界面
8.1 升级Crime类
8.2 更新布局
8.3 生成并使用组件
8.4 深入探讨XML布局属性
8.4.1 样式、主题及主题属性
8.4.2 dp、sp以及屏幕像素密度
8.4.3 Android开发设计原则
8.4.4 布局参数
8.4.5 边距与内边距
8.5 使用图形布局工具
8.5.1 添加新组件
8.5.2 属性视图中编辑组件属性
8.5.3 在框架视图中重新组织组件
8.5.4 更新子组件的布局参数
8.5.5 android:layout_weight属性的工作原理
8.5.6 图形布局工具使用总结
8.5.7 组件ID与多种布局
8.6 挑战练习:日期格式化
第9章 使用ListFragment显示列表
9.1 更新CriminalIntent应用的模型层
9.2 创建ListFragment
9.3 使用抽象activity托管fragment
9.3.1 通用的fragment托管布局
9.3.2 抽象activity类
9.4 ListFragment、ListView及ArrayAdapter
9.4.1 创建ArrayAdapter(T)类实例
9.4.2 响应列表项的点击事件
9.5 定制列表项
9.5.1 创建列表项布局
9.5.2 创建adapter子类
第10章 使用fragment argument
10.1 从fragment中启动activity
10.1.1 附加extra信息
10.1.2 获取extra信息
10.1.3 使用Crime数据更新CrimeFragment视图
10.1.4 直接获取extra信息方式的缺点
10.2 fragment argument
10.2.1 附加argument给fragment
10.2.2 获取argument
10.3 重新加载显示列表项
10.4 通过fragment获取返回结果
第11章 使用ViewPager
11.1 创建CrimePagerActivity
11.1.1 以代码的方式定义并产生布局
11.1.2 ViewPager与Pager—Adapter
11.1.3 整合配置并使用CrimePagerActivity
11.1.4 FragmentStatePager—Adapter与Fragment—PagerAdapter
11.2 深入学习:ViewPager的工作原理
第12章 对话框
12.1 创建DialogFragment
12.1.1 显示DialogFragment
12.1.2 设置对话框的显示内容
12.2 fragment间的数据传递
12.2.1 传递数据给DatePicker—Fragment
12.2.2 返回数据给CrimeFragment
12.3 挑战练习:更多对话框
第13章 使用MediaPlayer播放音频
13.1 添加资源
13.2 定义HelloMoonFragment布局文件
13.3 创建HelloMoonFragment
13.4 使用布局fragment
13.5 音频播放
13.6 挑战练习:暂停音频播放
13.7 深入学习:播放视频
13.8 挑战练习:在HelloMoon应用中播放视频
第14章 fragment的保留
14.1 保留fragment实例
14.2 设备旋转与保留的fragment
14.3 保留的fragment:一切都完美了吗
14.4 设备旋转处理与onSaveInstance—State(Bundle)方法
14.5 深入学习:fragment引入前的设备旋转问题
第15章 应用本地化
15.1 本地化资源
15.2 配置修饰符
15.2.1 可用资源优先级排定
15.2.2 多重配置修饰符
15.2.3 寻找最匹配的资源
15.3 更多资源使用原则及控制
15.3.1 资源命名
15.3.2 资源目录结构
15.4 测试备选资源
第16章 操作栏
16.1 选项菜单
16.1.1 在XML文件中定义选项菜单
16.1.2 创建选项菜单
16.1.3 响应菜单项选择
16.2 实现层级式导航
16.2.1 启用应用图标的导航功能
16.2.2 响应向上按钮
16.3 可选菜单项
16.3.1 创建可选菜单XML文件
16.3.2 切换菜单项标题
16.3.3 “还有个问题”
16.4 挑战练习:用于列表的空视图
第17章 存储与加载本地文件
17.1 CriminalIntent应用的数据存取
17.1.1 保存crime数据到JSON文件
17.1.2 从文件中读取crime数据
17.2 挑战练习:使用外部存储
17.3 深入学习:Android文件系统与Java I/O
第18章 上下文菜单与上下文操作模式
18.1 定义上下文菜单资源
18.2 实施浮动上下文菜单
18.2.1 创建上下文菜单
18.2.2 为上下文菜单登记视图
18.2.3 响应菜单项选择
18.3 实施上下文操作模式
18.3.1 实现列表视图的多选操作
18.3.2 列表视图中的操作模式回调方法
18.3.3 改变已激活视图的显示背景
18.3.4 实现其他视图的上下文操作模式
18.4 兼容性问题:回退还是复制
18.5 挑战练习:在CrimeFragment视图中删除crime记录
18.6 深入学习:ActionBarSherlock
18.7 挑战练习:使用ActionBarSherlock
18.7.1 CriminalIntent应用中ABS的基本整合
18.7.2 ABS的深度整合
18.7.3 ABS的完全整合
第19章 相机Ⅰ:取景器
19.1 创建Fragment布局
19.2 创建CrimeCameraFragment
19.3 创建CrimeCameraActivity
19.4 使用相机API
19.4.1 打开并释放相机
19.4.2 SurfaceView、Surface—Holder与Surface
19.4.3 确定预览界面大小
19.4.4 启动CrimeCamera—Activity
19.5 深入学习:以命令行的方式运行activity
第20章 相机Ⅱ:拍摄并处理照片
20.1 拍摄照片
20.1.1 实现相机回调方法
20.1.2 设置图片尺寸大小
20.2 返回数据给CrimeFragment
20.2.1 以接收返回值的方式启动CrimeCameraActivity
20.2.2 在CrimeCameraFragment中设置返回值
20.2.3 在CrimeFragment中获取照片文件名
20.3 更新模型层
20.3.1 新增Photo类
20.3.2 为Crime添加photo属性
20.3.3 设置photo属性
20.4 更新CrimeFragment的视图
20.4.1 添加ImageView组件
20.4.2 图像处理
20.5 在DialogFragment中显示大图片
20.6 挑战练习:Crime照片的显示方向
20.7 挑战练习:删除照片
20.8 深入学习:Android代码的废弃处理
第21章 隐式intent
21.1 添加按钮组件
21.2 添加嫌疑人信息至模型层
21.3 使用格式化字符串
21.4 使用隐式intent
21.4.1 典型隐式intent的组成
21.4.2 发送陋习报告
21.4.3 获取联系人信息
21.4.4 检查可以响应的activity
21.5 挑战练习:又一个隐式intent
第22章 Master—Detail用户界面
22.1 增加布局灵活性
22.1.1 修改SingleFragment—Activity
22.1.2 创建包含两个fragment容器的布局
22.1.3 使用别名资源
22.2 Activity:fragment的托管者
22.3 深入学习:设备屏幕尺寸的确定
第23章 深入学习intent和任务
23.1 创建NerdLauncher项目
23.2 解析隐式intent
23.3 在运行时创建显式intent
23.4 任务与后退栈
23.5 使用NerdLauncher应用作为设备主屏幕
23.6 挑战练习:应用图标与任务重排
23.7 进程与任务
第24章 样式与include标签的使用
24.1 创建RemoteControl项目
24.1.1 编码实现RemoteControl—Activity
24.1.2 创建RemoteControl—Fragment
24.2 使用样式消除重复代码
24.3 完善布局定义
24.4 深入学习:使用include与merge标签
24.5 挑战练习:样式的继承
第25章 XML Drawable与9—Patches
25.1 XML drawable
25.2 state list drawable
25.3 layer list与inset drawable
25.4 使用9—patch图像
第26章 HTTP与后台任务
26.1 创建PhotoGallery应用
26.2 网络连接基本
26.3 使用AsyncTask在后台线程上运行代码
26.4 线程与主线程
26.5 获取Flickr XML数据
26.6 从AsyncTask回到主线程
26.7 深入学习:再探AsyncTask
26.8 挑战练习:分页
第27章 Looper、Handler与HandlerThread
27.1 设置GridView以显示图片
27.2 批量下载缩略图
27.3 与主线程通信
27.4 创建并启动后台线程
27.5 Message与message Handler
27.5.1 消息的剖析
27.5.2 Handler的剖析
27.5.3 使用handler
27.5.4 传递handler
27.6 深入学习:AsyncTask与Thread
27.7 挑战练习:预加载以及缓存
第28章 搜索
28.1 搜索Flickr网站
28.2 搜索对话框
28.2.1 创建搜索界面
28.2.2 可搜索的activity
28.2.3 物理搜索键
28.2.4 搜索的工作原理
28.2.5 启动模式与新的intent
28.2.6 使用shared preferences实现轻量级数据存储
28.3 在Android 3.0以后版本的设备上使用SearchView
28.4 挑战练习
第29章 后台服务
29.1 创建IntentService
29.2 服务的作用
29.3 查找最新返回结果
29.4 使用AlarmManager延迟运行服务
29.4.1 PendingIntent
29.4.2 使用PendingIntent管理定时器
29.5 控制定时器
29.6 通知信息
29.7 深入学习:服务细节内容
29.7.1 服务的能与不能
29.7.2 服务的生命周期
29.7.3 non—sticky服务
29.7.4 sticky服务
29.7.5 绑定服务
第30章 broadcast Intent
30.1 随设备重启而重启的定时器
30.1.1 配置文件中的broadcast receiver
30.1.2 如何使用receiver
30.2 过滤前台通知消息
30.2.1 发送broadcast intent
30.2.2 动态broadcast receiver
30.2.3 使用私有权限
30.2.4 使用ordered broadcast接收结果
30.3 receiver与长时运行任务
第31章 网页浏览
31.1 最后一段Flickr数据
31.2 简单方式:使用隐式intent
31.3 较难方式:使用WebView
31.3.1 使用WebChromeClient优化WebView的显示
31.3.2 处理WebView的设备旋转问题
31.4 深入学习:注入JavaScript对象
第32章 定制视图与触摸事件
32.1 创建DragAndDraw项目
32.1.1 创建DragAndDraw—Activity
32.1.2 创建DragAndDraw—Fragment
32.2 创建定制视图
32.3 处理触摸事件
32.4 onDraw(…)方法内的图形绘制
32.5 挑战练习:设备旋转问题
第33章 跟踪设备的地理位置
33.1 启动RunTracker项目
33.1.1 创建RunActivity
33.1.2 创建RunFragment
33.2 地理位置与LocationManager
33.3 接收定位数据更新broadcast
33.4 使用定位数据刷新UI显示
33.5 快速定位:最近一次地理位置
33.6 在物理和虚拟设备上测试地理位置定位
第34章 使用SQLite本地数据库
34.1 在数据库中存储旅程和地理位置信息
34.2 查询数据库中的旅程列表
34.3 使用CursorAdapter显示旅程列表
34.4 创建新旅程
34.5 管理现有旅程
34.6 挑战练习:识别当前跟踪的旅程
第35章 使用Loader加载异步数据
35.1 Loader与LoaderManager
35.2 在RunTracker应用中使用Loader
35.3 加载旅程列表
35.4 加载单个旅程
35.5 加载旅程的最近一次地理位置
第36章 使用地图
36.1 添加Maps API给RunTracker应用
36.1.1 使用物理设备测试地图
36.1.2 安装使用Google Play services SDK
36.1.3 获取Google Maps API key
36.1.4 更新RunTracker应用的manifest配置文件
36.2 在地图上显示用户的地理位置
36.3 显示旅程路线
36.4 为旅程添加开始和结束地图标注
36.5 挑战练习:实时数据更新
第37章 编后语
37.1 终极挑战
37.2 关于我们
37.3 致谢

亚马逊链接

基本信息

名称: Practical C++ Programming
作者信息: 作者: Steve Oualline [ 英文 pdf ]

简单介绍

目录

1
Preface  Part I. The Basics  1. What Is C++?  A Brief History of C++  C++ Organization  How to Learn C++  2. The Basics of Program Writing  Programs from Conception to Execution  Creating a Real Program  Getting Help in Unix  Getting Help in an IDE Programming Exercises  3. Style  Comments  C++ Code  Naming Style  Coding Religion  Indentation and Code Format  Clarity Simplicity  Consistency and Organization  Further Reading Summary  4. Basic Declarations and Expressions  Basic Program Structure  Simple Expressions  The std::cout Output Object Variables and Storage  Variable Declarations  Assignment Statements  Floating-Point Numbers  Floating-Point Divide Versus Integer Divide  Characters  Wide Characters  Boolean Type Programming Exercises  Answers to Chapter Questions  5. Arrays, Qualifiers, and Reading Numbers  Arrays  Strings  Reading Data Initializing Variables  Multidimensional Arrays  C-Style Strings Types of Integers  Types of Floats  Constant and Reference Declarations  Qualifiers  Hexadecimal and Octal Constants Operators for Performing Shortcuts  Side Effects  Programming Exercises  Answers to Chapter Questions  6. Decision and Control Statements  if Statement  else Statement  How Not to Use std::strcmp  Looping Statements  while Statement  break Statement continue Statement  The Assignment Anywhere Side Effect  Programming Exercises  Answers to Chapter Questions  7. The Programming Process  Setting Up Your Work Area  The Specification Code Design  The Prototype  The Makefile  Testing  Debugging Maintenance  Revisions  Electronic Archaeology  Mark Up the Program  Use the Debugger  Use the Text Editor as a Browser Add Comments  Programming Exercises  Part II. Simple Programming 8. More Control Statements  for Statement  switch Statement switch, break, and continue  Programming Exercises  Answers to Chapter Questions  9. Variable Scope and Functions  Scope and Storage Class  Namespaces  Functions  Summary of Parameter Types Recursion  Structured Programming Basics  Real-World Programming Programming Exercises  Answers to Chapter Questions  10. The C++ Preprocessor  define Statement  Conditional Compilation include Files  Parameterized Macros  Advanced Features Summary  Programming Exercises  Answers to Chapter Questions 11. Bit Operations  Bit Operators  The AND Operator (&)  Bitwise OR (|)  The Bitwise Exclusive OR (^)  The Ones Complement Operator (NOT) (~)  The Left and Right Shift Operators (>)  Setting, Clearing, and Testing Bits  Bitmapped Graphics  Programming Exercises  Answers to Chapter Questions  Part III. Advanced Types and Classes  12. Advanced Types  Structures  Unions  typedef  enum Type  Bit Members or Packed Structures  Arrays of Structures Programming Exercises  Answers to Chapter Questions  13. Simple Classes  Stacks  Improved Stack  Using a Class  Introduction to Constructors and Destructors  Automatically Generated Member Functions  Shortcuts  Style  Structures Versus Classes  Programming Exercises  14. More on Classes  Friends  Constant Functions  Constant Members  Static Member Variables  Static Member Functions  The Meaning of static  Programming Exercises 15. Simple Pointers  const Pointers  Pointers and Printing Pointers and Arrays  The reinterpret_cast  Pointers and Structures Command-Line Arguments  Programming Exercises  Answers to Chapter Questions  Part IV. Advanced Programming Concepts  16. File Input/Output  C++ File I/O  Conversion Routines  Binary and ASCII Files  The End-of-Line Puzzle  Binary I/O  Buffering Problems Unbuffered I/O  Designing File Formats  C-Style I/O Routines C-Style Conversion Routines  C-Style Binary I/O  C- Versus C++- Style I/O  Programming Exercises  Answers to Chapter Questions 17. Debugging and Optimization  Code Reviews  Serial Debugging Going Through the Output  Interactive Debuggers  Debugging a Binary Search  Interactive Debugging Tips and Tricks  Runtime Errors  Optimization  How to Optimize  Case Study: Inline Functions Versus Normal Functions  Case Study: Optimizing a Color-Rendering Algorithm  Programming Exercises  Answers to Chapter Questions  18. Operator Overloading  Creating a Simple Fixed-Point Class  Operator Functions  Operator Member Functions  Warts Full Definition of the Fixed-Point Class  Programming Exercises Answers to Chapter Questions  19. Floating Point  Floating-Point Format  Floating Addition/Subtraction  Multiplication and Division  Overflow and Underflow  Roundoff Error  Accuracy Minimizing Roundoff Error  Determining Accuracy  Precision and Speed  Power Series  Programming Exercises  20. Advanced Pointers  Pointers, Structures, and Classes  delete Operator Linked Lists  Ordered Linked Lists  Doubly Linked Lists  Trees Printing a Tree  The Rest of the Program  Data Structures for a Chess Program  Programming Exercises  Answers to Chapter Questions 21. Advanced Classes  Derived Classes  Virtual Functions Virtual Classes  Function Hiding in Derived Classes  Constructors and Destructors in Derived Classes  The dynamic_cast Operator Summary  Programming Exercises  Answers to Chapter Questions Part V. Other Language Features  22. Exceptions  Adding Exceptions to the Stack Class  Exceptions Versus assert  Programming Exercises 23. Modular Programming  Modules  Public and Private  The extern Storage Class  Headers  The Body of the Module  A Program to Use Infinite Arrays  The Makefile for Multiple Files  Using the Infinite Array  Dividing a Task into Modules  Module Design Guidelines  Programming Exercises  24. Templates  What Is a Template?  Templates: The Hard Way  Templates: The C++ Way Function Specialization  Class Templates  Class Specialization Implementation Details  Advanced Features  Summary  Programming Exercises  25. Standard Template Library  STL Basics  Class List-A Set of Students  Creating a Waiting List with the STL List Storing Grades in a STL Map  Putting It All Together  Practical Considerations When Using the STL  Getting More Information Exercises  26. Program Design  Design Goals  Design Factors Design Principles  Coding  Objects  Real-World Design  echniques  Conclusion  27. Putting It All Together  Requirements Code Design  Coding  Functional Description  Testing  Revisions A Final Warning  Program Files  Programming Exercises  28. From C to C++  K&R-Style Functions  struct  malloc and free  Turning Structures into Classes  setjmp and longjmp  Mixing C and C++ Code Summary  Programming Exercise  29. C++’s Dustier Corners  do/while goto  The ? : Construct  The Comma Operator  Overloading the (  ) Operator  Pointers to Members  The asm Statement  The mutable Qualifier  Run Time Type Identification  Trigraphs  Answers to Chapter Questions  30. Programming Adages  General  Design Declarations  switch Statement  Preprocessor  Style  Compiling The Ten Commandments for C++ Programmers  Final Note  Answers to Chapter Questions  Part VI. Appendixes  A. ASCII Table  B. Ranges C. Operator Precedence Rules  D. Computing Sine Using a Power Series E. Resources Index

亚马逊链接

基本信息

名称: C程序设计语言(第2版•新版)
作者信息: 作者: 克尼汉 [ 中文 pdf ]

简单介绍

《C程序设计语言(第2版•新版)》讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。《C程序设计语言(第2版•新版)》原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,world”程序就是由《C程序设计语言(第2版•新版)》首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
出版者的话
专家指导委员会
中文版序
译者序
校译者简介

第1版序
引言
第1章 导言
1.1 入门
1.2 变量与算术表态式
1.3 for语句
1.4 符号常量
1.5 字符输入/输出
1.5.1 文件复制
1.5.2 字符计算
1.5.3 行计数
1.5.4 单词计数
1.6 数组
1.7 函数
1.8 参数——传值调用
1.9 字符数组
1.10 外部变量与作用域
第2章 类型、运算符与表达式
2.1 变量名
2.2 数据类型及长度
2.3 常量
2.4 声明
2.5 算术运算符
2.6 关系运算符与逻辑运算符
2.7 类型转换
2.8 自增运算符与自减运算符
2.9 按位运算符
2.10 赋值运算符与表达式
2.11 条件表达式
2.12 运算符优先级与求值次序
第3章 控制流
3.1 语句与程序块
3.2 if-else语句
3.3 else-if语句
3.4 switch语句
3.5 whil循环与for特环
3.6 do-while循环
3.7 break语句与continue语句
3.8 goto语句与标号
第4章 涵数与程序结构
……

亚马逊链接

基本信息

名称: CPrimerPlus(中文版)(第5版)
作者信息: 作者: 普拉塔 (Prata S.) [ 中文 pdf ]

简单介绍

《C Primer Plus(中文版)(第5版)》全面讲述了C语言编程的相关概念和知识。《C Primer Plus(中文版)(第5版)》适合希望系统学习C语言的读者,也适用于精通其他编程语言并希望进一步掌握和巩固C编程技术的程序员。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
第1章 概览
1.1 C语言的起源
1.2 使用C语言的理由
1.3 C语言的发展方向
1.4 计算机工作的基本原理
1.5 高级计算机语言和编译器
1.6 使用C语言的7个步骤
1.7 编程机制
1.8 语言标准
1.9 本书的组织结构
1.10 本书体例
1.11 总结
1.12 复习题
1.13 编程练习
第2章 C语言概述
2.1 C语言的一个简单实例
2.2 实例说明
2.3 一个简单程序的结构
2.4 使程序可读的技巧
2.5 更进一步
2.6 多个函数
2.7 调试
2.8 关键字和保留标识符
2.9 关键概念
2.10 总结
2.11 复习题
2.12 编程练习
第3章 数据和C
3.1 示例程序
3.2 变量与常量数据
3.3 数据:数据类型关键字
3.4 C数据类型
3.5 使用数据类型
3.6 参数和易犯的错误
3.7 另一个例子:转义序列
3.8 关键概念
3.9 总结
3.10 复习题
3.11 编程练习
第4章 字符串和格式化输入/输出
4.1 前导程序
4.2 字符串简介
4.3 常量和C预处理器
4.4 研究和利用printf()和scanf()
4.5 关键概念
4.6 总结
4.7 复习题
4.8 编程练习
第5章 运算符、表达式和语句
5.1 循环简介
5.2 基本运算符
5.3 其他运算符
5.4 表达式和语句
5.5 类型转换
5.6 带有参数的函数
5.7 一个示例程序
5.8 关键概念
5.9 总结
5.10 复习题
5.11 编程练习
第6章 C控制语句:循环
6.1 再探while循环
6.2 while语句
6.4 不确定循环与计数循环
6.5 for循环
6.6 更多赋值运算符:+=、-=、*=、/=和%=
6.7 逗号运算符
6.8 退出条件循环:do while
6.9 选择哪种循环
6.10 嵌套循环
6.11 数组
6.12 使用函数返回值的循环例子
6.13 关键概念
6.14 总结
6.15 复习题
6.16 编程练习
第7章 C控制语句:分支和跳转
7.1 if语句
7.2 在if语句中添加else关键字
7.3 获得逻辑性
7.4 一个统计字数的程序
7.5 条件运算符?:
7.6 循环辅助手段:continue和break
7.7 多重选择:switch和break
7.8 goto语句
7.9 关键概念
7.10 总结
7.11 复习题
7.12 编程练习
第8章 字符输入/输出和输入确认
8.1 单字符I/O:getchar()和putchar()
8.2 缓冲区
8.3 终止键盘输入
8.5 创建一个更友好的用户界面
8.6 输入确认
8.7 菜单浏览
8.8 关键概念
8.9 总结
8.10 复习题
8.11 编程练习
第9章 函数
9.1 函数概述
9.2 ANSI C的函数原型
9.3 递归
9.4 多源代码文件程序的编译
9.5 地址运算符:&
9.6 改变调用函数中的变量
9.7 指针简介
9.8 关键概念
9.9 总结
9.10 复习题
9.11 编程练习
第10章 数组和指针
10.1 数组
10.2 多维数组
10.3 指针和数组
10.4 函数、数组和指针
10.5 指针操作
10.6 保护数组内容
10.7 指针和多维数组
10.8 变长数组(VLA)
10.9 复合文字
10.10 关键概念
10.11 总结
10.12 复习题
10.13 编程练习
第11章 字符串和字符串函数
11.1 字符串表示和字符串I/O
11.2 字符串输入
11.3 字符串输出
11.4 自定义字符串输入/输出函数
11.5 字符串函数
11.6 字符串例子:字符串排序
11.7 ctype.h字符函数和字符串
11.8 命令行参数
11.9 把字符串转换为数字
11.10 关键概念
11.11 总结
11.12 复习题
11.13 编程练习
第12章 存储类、链接和内存管理
12.1 存储类
12.2 存储类说明符
12.3 存储类和函数
12.4 随机数函数和静态变量
12.5 掷骰子
12.6 分配内存:malloc()和free()
12.7 ANSI C的类型限定词
12.8 关键概念
12.9 总结
12.10 复习题
12.11 编程练习
第13章 文件输入/输出
13.1 和文件进行通信
13.2 标准I/O
13.3 一个简单的文件压缩程序
13.4 文件I/O:fprintf ( )、fscanf ( )、fgets ( )和fputs ( )函数
13.5 随机存取:fseek()和ftell()函数
13.6 标准I/O内幕
13.7 其他标准I/O函数
13.8 关键概念
13.9 总结
13.10 复习题
13.11 编程练习
第14章 结构和其他数据形式
14.1 示例问题:创建图书目录
14.2 建立结构声明
14.3 定义结构变量
14.4 结构数组
14.5 嵌套结构
14.6 指向结构的指针
14.7 向函数传递结构信息
14.8 把结构内容保存到文件中
14.9 结构:下一步是什么
14.10 联合简介
14.11 枚举类型
14.12 typedef简介
14.13 奇特的声明
14.14 函数和指针
14.15 关键概念
14.16 总结
14.17 复习题
14.18 编程练习
第15章 位操作
15.1 二进制数、位和字节
15.2 其他基数
15.3 C的位运算符
15.4 位字段
15.5 关键概念
15.6 总结
15.7 复习题
15.8 编程练习
第16章 C预处理器和C库
16.1 翻译程序的第一步
16.2 明显常量:#define
16.3 在#define中使用参数
16.4 宏,还是函数
16.5 文件包含:#include
16.6 其他指令
16.7 内联函数
16.8 C库
16.9 数学库
16.10 通用工具库
16.11 诊断库
16.12 string.h库中的memcpy()和memmove()
16.13 可变参数:stdarg.h
16.14 关键概念
16.15 总结
16.16 复习题
16.17 编程练习
第17章 高级数据表示
17.1 研究数据表示
17.2 从数组到链表
17.3 抽象数据类型(ADT)
17.4 队列ADT
17.5 用队列进行模拟
17.6 链表与数组
17.7 二叉搜索树
17.8 其他说明
17.9 关键概念
17.10 总结
17.11 复习题
17.12 编程练习
附录A 复习题答案
附录B 参考资料

亚马逊链接

基本信息

名称: 数据结构C++语言描述:应用标准模板库STL(第2版)
作者信息: 作者: 福特 [ 中文 pdf ]

简单介绍

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
第一章   数据结构入门
第二章 对象设计技术
第三章 算法概述
第四章 向量容器
第五章 指针和动态内存
第六章 表容器和迭代器
第七章 栈
第八章 队列和优先级队列
第九章 链表
第十章 二叉树
第十一章 关联容器
第十二章 高级关联结构
第十三章 继承和抽象类
第十四章 堆、2进制文件和位组
第十五章 递归算法
第十六章 图

亚马逊链接

基本信息

名称: C专家编程ExpertCProgrammingDeepCSecrets
作者信息: 作者: Peter Van Der Linden [ 中文 pdf ]

简单介绍

《C专家编程Expert C Programming Deep C Secrets》撷取了几十个实例,细致、深入地讲解了C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及分析了如何进一步学习C++等问题。《C专家编程Expert C Programming Deep C Secrets》是一本ANSIC编程语言的高级读本。它适用于已经编写过C程序的人,以及那些想迅速获取一些专家观点和技巧的人。专家级的C编程指南展示优秀C程序员的编程技巧。即使你读过AndyKoneig的《C陷阱与缺陷》,你还是应该看看PeterVanDerLinden的书。我想,他们两人的书称都应该千方百计的搞到,如获至宝地捧读。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
第1章 C:穿越时空的迷雾
1.1 C语言的史前阶段
1.2 C语言的早期体验
1.3 标准I/O库和C预处理器
1.4 K&R C
1.5 今日之ANSI C
1.6 它很棒,但它符合标准吗
1.7 编译限制
1.8 ANSI C标准的结构
1.9 阅读ANSI C标准,寻找乐趣和裨益
1.10 “安静的改变”究竟有多少安静
1.11 轻松一下——由编译器定义的Pragmas效果

第2章 这不是Bug,而是语言特性 2.1 这关语言特性何事,在Fortran里这就是Bug呀 2.2 多做之过 2.3 误做之过 2.4 少做之过 2.5 轻松一下——有些特性确实就是Bug 2.6 参考文献

第3章 分析C语言的声明 3.1 只有编译器才会喜欢的语法 3.2 声明是如何形成的 3.3 优先级规则 3.4 通过图表分析C语言的声明 3.5 typedef可以成为你的朋友 3.6 typedef int x[10]和#define x int[10]的区别 3.7 typedef struct foo{ … foo; }的含义 3.8 理解所有分析过程的代码段 3.9 轻松一下——驱动物理实体的软件

第4章 令人震惊的事实:数组和指针并不相同 4.1 数组并非指针 4.2 我的代码为什么无法运行 4.3 什么是声明,什么是定义 4.4 使声明与定义相匹配 4.5 数组和指针的其他区别 4.6 轻松一下——回文的乐趣

第5章 对链接的思考 5.1 函数库、链接和载入 5.2 动态链接的优点 5.3 函数库链接的5个特殊秘密 5.4 警惕Interpositioning 5.5 产生链接器报告文件 5.6 轻松一下——看看谁在说话:挑战Turing测验

第6章 运动的诗章:运行时数据结构 6.1 a.out及其传说 6.2 段 6.3 操作系统在a.out文件里干了些什么 6.4 C语言运行时系统在a.out里干了些什么 6.5 当函数被调用时发生了什么:过程活动记录 6.6 auto和static关键字 6.7 控制线程 6.8 setjmp和longjmp 6.9 UNIX中的堆栈段 6.10 MS-DOS中的堆栈段 6.11 有用的C语言工具 6.12 轻松一下——卡耐基-梅隆大学的编程难题 6.13 只适用于高级学员阅读的材料

第7章 对内存的思考 7.1 Intel 80x86系列 7.2 Intel 80x86内存模型以及它的工作原理 7.3 虚拟内存 7.4 Cache存储器 7.5 数据段和堆 7.6 内存泄漏 7.7 总线错误 7.8 轻松一下——“Thing King”和“页面游戏”

第8章 为什么程序员无法分清万圣节和圣诞节 8.1 Portzebie度量衡系统 8.2 根据位模式构筑图形 8.3 在等待时类型发生了变化 8.4 原型之痛 8.5 原型在什么地方会失败 8.6 不需要按回车键就能得到一个字符 8.7 用C语言实现有限状态机 8.8 软件比硬件更困难 8.9 如何进行强制类型转换,为何要进行类型强制转换 8.10 轻松一下——国际C语言混乱代码大赛

第9章 再论数组 9.1 什么时候数组与指针相同 9.2 为什么会发生混淆 9.3 为什么C语言把数组形参当作指针 9.4 数组片段的下标 9.5 数组和指针可交换性的总结 9.6 C语言的多维数组 9.7 轻松一下——软件/硬件平衡

第10章 再论指针 10.1 多维数组的内存布局 10.2 指针数组就是Iliffe向量 10.3 在锯齿状数组上使用指针 10.4 向函数传递一个一维数组 10.5 使用指针向函数传递一个多维数组 10.6 使用指针从函数返回一个数组 10.7 使用指针创建和使用动态数组 10.8 轻松一下——程序检验的限制

第11章 你懂得C,所以C++不在话下 11.1 初识OOP 11.2 抽象——取事物的本质特性 11.3 封装——把相关的类型、数据和函数组合在一起 11.4 展示一些类——用户定义类型享有和预定义类型一样的权限 11.5 访问控制 11.6 声明 11.7 如何调用成员函数 11.8 继承——复用已经定义的操作 11.9 多重继承——从两个或更多的基类派生 11.10 重载——作用于不同类型的同一操作具有相同的名字 11.11 C++如何进行操作符重载 11.12 C++的输入/输出(I/O) 11.13 多态——运行时绑定 11.14 解释 11.15 C++如何表现多态 11.16 新奇玩意——多态 11.17 C++的其他要点 11.18 如果我的目标是那里,我不会从这里起步 11.19 它或许过于复杂,但却是惟一可行的方案 11.20 轻松一下——死亡计算机协会 11.21 更多阅读材料 附录A 程序员工作面试的秘密 附录B 术语表

亚马逊链接

基本信息

名称: C陷阱与缺陷
作者信息: 作者: 凯尼格 [ 中文 pdf ]

简单介绍

《C陷阱与缺陷》适合有一定经验的C程序员阅读学习,即便你是C编程高手,《C陷阱与缺陷》也应该成为你的案头必备书籍。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
第0章  导读
第1章 词法“陷阱”
1.1 =不同于==
1.2 &和|不同于&&和||
1.3 词法分析中的“贪心法”
1.4 整型常量
1.5 字符与字符串

第2章 语法“陷阱” 2.1 理解函数声明 2.2 运算符的优先级问题 2.3 注意作为语句结束标志的分号 2.4 switch语句 2.5 函数调用 2.6 “悬挂”else引发的问题

第3章 语义“陷阱” 3.1 指针与数组 3.2 非数组的指针 3.3 作为参数的数组声明 3.4 避免“举隅法” 3.5 空指针并非空字符串 3.6 边界计算与不对称边界 3.7 求值顺序 3.8 运算符&&、||和! 3.9 整数溢出 3.10 为函数main提供返回值

第4章 连接 4.1 什么是连接器 4.2 声明与定义 4.3 命名冲突与static修饰符 4.4 形参、实参与返回值 4.5 检查外部类型 4.6 头文件

第5章 库函数 5.1 返回整数的getchar函数 5.2 更新顺序文件 5.3 缓冲输出与内存分配 5.4 使用ernlo检测错误 5.5 库函数signal

第6章 预处理器 6.1 不能忽视宏定义中的空格 6.2 宏并不是函数 6.3 宏并不是语句 6.4 宏并不是类型定义

第7章 可移植性缺陷 7.1 应对C语言标准变更 7.2 标识符名称的限制 7.3 整数的大小 7.4 字符是有符号整数还是无符号整数 7.5 移位运算符 7.6 内存位置0 7.7 除法运算时发生的截断 7.8 随机数的大小 7.9 大小写转换 7.10 首先释放,然后重新分配 7.11 可移植性问题的一个例子 第8章 建议与答案 8.1 建议 8.2 答案 附录A:PRINTF,VARARGS与STDARG 附录B:Koenig和Moo夫妇访谈

亚马逊链接

基本信息

名称: C和指针PointersOnC
作者信息: 作者: Kenneth A.Reek [ 中文 pdf ]

简单介绍

《C和指针 Pointers On C》适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
第1章 快速上手
1.1 简介
1.1.1 空白和注释
1.1.2 预处理指令
1.1.3 main函数
1.1.4 read_column_numbers函数
1.1.5 rearrange函数
1.2 补充说明
1.3 编译
1.4 总结
1.5 警告的总结
1.6 编程提示的总结
1.7 问题
1.8 编程练习
第2章 基本概念
2.1 环境
2.1.1 翻译
2.1.2 执行
2.2 词法规则
2.2.1 字符
2.2.2 注释
2.2.3 自由形式的源代码
2.2.4 标识符
2.2.5 程序的形式
2.3 程序风格
2.4 总结
2.5 警告的总结
2.6 编程提示的总结
2.7 问题
2.8 编程练习
第3章 数据
第4章 语句
第5章 操作符和表达式
第6章 指针
第7章 函数
第8章 数组
第9章 字符串、字符和字节
第10章 结构和联合
第11章 动态内存分配
第12章 使用结构和指针
第13章 高级指针话题
第14章 预处理器
第15章 输入/输出函数
第16章 标准函数库
第17章 经典抽象数据类型
第18章 运行时环境
附录 部分问题答案
索引
参考文献

亚马逊链接

基本信息

名称: C语言入门经典(第4版)
作者信息: 作者: 霍顿 (Ivor Horton) [ 中文 pdf ]

简单介绍

《C语言入门经典(第4版)》是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。《C语言入门经典(第4版)》集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界范围内广受欢迎,口碑极佳。书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
第1章 C语言编程.
1.1 创建C程序
1.1.1 编辑
1.1.2 编译
1.1.3 链接
1.1.4 执行
1.2 创建第一个程序
1.3 编辑第一个程序
1.4 处理错误
1.5 剖析一个简单的程序
1.5.1 注释
1.5.2 预处理指令
1.5.3 定义main()函数
1.5.4 关键字
1.5.5 函数体
1.5.6 输出信息
1.5.7 参数
1.5.8 控制符
1.6 用C语言开发程序
1.7 函数及模块化编程
1.8 常见错误
1.9 要点
1.10 小结
1.11 习题
第2章 编程初步
第3章 条件判断
第4章 循环
第5章 数组
第6章 字符串和文本的应用
第7章 指针
第8章 程序的结构
第9章 函数再探
第10章 基本输入和输出操作
第11章 结构化数据
第12章 处理文件
第13章 支持功能
附录

亚马逊链接