新書推薦:
《
关键改变:如何实现自我蜕变
》
售價:NT$
352.0
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:NT$
454.0
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:NT$
286.0
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:NT$
265.0
《
明式家具三十年经眼录
》
售價:NT$
2387.0
《
敦煌写本文献学(增订本)
》
售價:NT$
1010.0
《
耕读史
》
售價:NT$
500.0
《
地理计算与R语言
》
售價:NT$
551.0
|
編輯推薦: |
软件编程不单单是编程技巧的训练,还需要建立一种世界观、价值观,这些对中小学生来说是极其重要的课程,但是现在的教学体系中恰恰缺少这些训练,因此本书的出现恰逢其时。 孔华威,中科院计算所上海分所所长,上海张江科技创业投资有限公司科学家,起点创投合伙人 金从军老师对推动国内的App Inventor编程起了重要的作用。本书汇集了她近些年来研究AI编程的心得,是中小学教师研究计算思维的重要参考资料,也是青少年学习编程的入门教材。 谢作如,温州中学教师,中国电子学会创客教育专家委员会主任 ● 为什么要学习编程? 随着信息技术的飞速发展,编程也从一门计算机专业人员所掌握的技术,演变为信息时代所需的生存技能之一。学习应用开发只是一方面,真正重要的是,通过学习编程,锻炼动手动脑的能力。 ● 何时可以开始学习编程? 本书的观点是,学习编程只需具备两个条件:会使用如果则否则造句;会运用四则运算解简单的应用题。也就是说,小学高年级学生就可以开始学习编程了。 ● 编程会不会很难? 本书采用可视化编程工具App Inventor,用拼图的方式轻松构建Android应用,大大降低了编程的门槛。书中实例均为中文项目
|
內容簡介: |
App Inventor的出现大大降低了编程门槛,没有程序设计经验的编程爱好者可以在短时间内创建出炫目的安卓手机应用。本书带领读者通过动手实践数个编程实例来了解程序开发的逻辑。书中内容共分为21章,包含15个完整的应用,覆盖了游戏、教学、工具、信息管理以及网络应用等。本书不仅详细介绍了应用开发的步骤和要点,还针对每种应用的特征给出了进一步优化的建议,忠实还原了应用开发过程中遇到的问题和解决方法,是一本的编程技术与理念并重的实践指南。
|
關於作者: |
金从军:一个半路出家的程序员,用物理的方法解读事物,用数学的方法描述事物,用程序的方法模拟事物,醉心于将抽象的思想外化为有形的工具,以工具为教具,实现自我学习。
|
目錄:
|
第 1章 水果配对1
1.1 游戏描述1
1.2 界面设计2
1.2.1 界面布局2
1.2.2 组件属性设置3
1.2.3 上传资源文件3
1.3 编写程序屏幕初始化4
1.3.1 创建按钮列表4
1.3.2 让按钮显示背面图案5
1.3.3 创建图片列表7
1.3.4 为按钮指定正面图案7
1.3.5 随机显示正面图案9
1.4 编写程序处理按钮点击事件11
1.4.1 流程图11
1.4.2 判断两个按钮图案的异同12
1.4.3 处理两个按钮图案相同的情况13
1.4.4 处理两个按钮图案不同的情况14
1.4.5 代码的复用改进按钮点击事件处理程序14
1.4.6 代码的规整16
1.4.7 改造闪现计时器的计时事件处理程序17
1.4.8 测试17
1.5 编写程序控制游戏时长21
1.5.1 控制游戏时长21
1.5.2 显示剩余时间21
1.5.3 将剩余时间计入总成绩22
1.6 编写程序设计游戏结尾22
1.6.1 显示游戏得分22
1.6.2 保存游戏得分24
1.6.3 处理对话框的按钮选择25
1.6.4 创建游戏初始化过程25
1.7 程序的测试与修正26
1.7.1 选取列表项错误26
1.7.2 重新开始游戏时点击按钮无响应29
1.7.3 重新开始游戏时图案排列不变30
1.7.4 快速点击按钮时系统提示错误31
1.8 代码整理32
第 2章 计算器35
2.1 功能描述35
2.1.1 符号及术语35
2.1.2 具体功能36
2.2 用户界面设计36
2.3 编写程序实现常规操作37
2.3.1 输入数字37
2.3.2 点击算符38
2.3.3 点击等号39
2.3.4 代码测试及说明40
2.4 编写程序实现连续运算40
2.4.1 代码修改40
2.4.2 测试及代码修正40
2.5 编写程序实现小数输入41
2.5.1 编写按钮点击程序41
2.5.2 代码测试及程序修正42
2.6 编写程序实现辅助功能43
2.6.1 求相反数43
2.6.2 删除末尾数字43
2.6.3 清除后数44
2.6.4 清除全部信息44
2.7 代码回顾44
2.7.1 要素关系图44
2.7.2 关键环节的状态分析44
第3章 九格拼图46
3.1 游戏描述46
3.2 界面设计47
3.2.1 界面布局47
3.2.2 资源文件规格48
3.3 难点分析49
3.3.1 程序的主流程49
3.3.2 术语解释49
3.3.3 难点分析51
3.4 编写程序初始化52
3.4.1 初始化全局变量52
3.4.2 初始化组件属性55
3.4.3 屏幕初始化事件处理程序55
3.4.4 跟踪程序的执行过程56
3.5 编写程序移动碎片56
3.6 编写程序判断拼图是否成功59
3.7 编写程序计算游戏得分60
3.7.1 统计游戏耗时60
3.7.2 统计碎片移动次数60
3.7.3 计算游戏得分60
3.8 编写程序游戏结束61
3.8.1 提取历史记录61
3.8.2 更新历史记录62
3.8.3 处理对话框的完成选择事件63
3.8.4 添加重新开始按钮64
3.9 代码整理64
3.9.1 代码清单64
3.9.2 要素关系图65
第4章 天气预报基础版67
4.1 功能描述67
4.2 预备知识68
4.2.1 Web API简介68
4.2.2 HTTP协议69
4.2.3 Web客户端组件72
4.2.4 JSON数据简介73
4.2.5 将JSON数据转为列表数据74
4.2.6 App Inventor处理键值对列表75
4.3 请求数据76
4.3.1 用户界面设计76
4.3.2 请求数据77
4.3.3 将数据保存为文件79
4.4 数据结构分析80
4.4.1 城市信息81
4.4.2 七日预报81
4.4.3 小时预报82
4.4.4 生活指数83
4.4.5 天气实况83
4.4.6 数据状态83
4.4.7 数据更新时间84
4.5 呈现一组简单的数据城市信息84
4.5.1 提取分类信息84
4.5.2 显示单项信息85
4.5.3 规范信息的显示格式86
4.6 选择显示各类信息87
4.6.1 基础数据准备87
4.6.2 显示分类信息90
4.7 程序的改进95
4.7.1 判断请求数据的结果95
4.7.2 为数据添加单位95
4.7.3 显示当前数据类型96
第5章 天气预报图片版98
5.1 功能描述98
5.2 用户界面设计98
5.2.1 页面布局98
5.2.2 添加并设置组件100
5.3 编写程序请求并整理数据101
5.3.1 请求数据101
5.3.2 数据整理102
5.4 呈现有图标的数据七日天气预报106
5.4.1 设置用户界面组件的可视属性106
5.4.2 图标文件的获取107
5.4.3 图标的呈现107
5.4.4 显示文字信息110
5.5 显示其他种类信息113
5.5.1 显示城市基本信息113
5.5.2 显示生活指数信息114
5.5.3 显示天气实况信息116
5.5.4 显示小时预报118
5.6 其他功能120
5.6.1 选择显示分类信息121
5.6.2 默认设置与数据保存121
5.7 功能完善与小结123
5.7.1 诊断网络连接123
5.7.2 项目小结123
第6章 打地鼠125
6.1 游戏描述125
6.2 素材准备126
6.3 界面设计126
6.4 编写程序地鼠的闪现127
6.4.1 难点分析128
6.4.2 编写代码128
6.5 编写程序命中地鼠与得分131
6.5.1 显示击打次数131
6.5.2 命中地鼠131
6.6 编写程序时间控制与游戏结束132
6.6.1 显示游戏剩余时间132
6.6.2 编写游戏结束程序134
6.6.3 回应用户的选择135
6.7 代码整理136
第7章 幼儿加法启蒙138
7.1 功能描述138
7.2 素材准备139
7.2.1 素材清单139
7.2.2 素材规格140
7.3 技术要点140
7.3.1 用图片组件显示数字140
7.3.2 用画布组件绘制图形140
7.3.3 用随机数合成颜色140
7.3.4 用计时器组件控制应用的节奏140
7.4 界面设计140
7.5 编写程序应用初始化143
7.5.1 按钮初始化143
7.5.2 动态设置屏幕的标题属性144
7.5.3 动态组件初始化144
7.5.4 出题并显示题目145
7.5.5 测试145
7.6 编写程序题目图示145
7.6.1 画圆遇到的问题146
7.6.2 绘制数量合适的彩色圆形147
7.6.3 添加加号147
7.6.4 阶段测试148
7.7 编写程序答题148
7.7.1 显示输入的数值149
7.7.2 清除错误答案150
7.7.3 判断对错150
7.7.4 显示下一题151
7.7.5 禁用选择时长功能152
7.7.6 隐藏图示 153
7.7.7 阶段测试 153
7.8 编写程序时间控制及得分153
7.8.1 控制练习时长 153
7.8.2 计算并显示得分 154
7.8.3 选择练习时长 154
7.9 编写程序游戏结束与重新开始155
7.9.1 提取、显示及保存历史记录155
7.9.2 处理用户选择156
7.9.3 最终测试157
7.10 代码整理157
7.10.1 代码清单157
7.10.2 要素关系图158
第8章 简易家庭账本登录160
8.1 概念解释160
8.1.1 什么是应用160
8.1.2 什么是数据库161
8.2 App Inventor中的数据库组件163
8.2.1 数据的组织163
8.2.2 新增数据项(记录)164
8.2.3 数据的查询165
8.2.4 删除数据项166
8.2.5 修改数据项167
8.2.6 数据的请求与保存167
8.3 家庭账本应用的功能模块设置168
8.4 登录页面的功能描述169
8.4.1 预设选项功能169
8.4.2 密码保护功能170
8.5 数据模型170
8.5.1 对象模型170
8.5.2 变量模型171
8.5.3 列表的文本表示171
8.5.4 登录页面的数据模型 171
8.5.5 界面设计172
8.6 页面逻辑174
8.6.1 加载保存预设选174
8.6.2 密码设置174
8.6.3 登录功能174
8.7 编写程序175
8.7.1 屏幕初始化175
8.7.2 文件管理器收到文本175
8.7.3 开始按钮点击程序177
8.8 测试177
8.9 附录:代码背包功能简介178
第9章 简易家庭账本导航菜单与收入记录179
9.1 导航菜单屏幕179
9.1.1 数据模型179
9.1.2 界面设计179
9.1.3 页面逻辑180
9.1.4 编写程序180
9.1.5 测试181
9.2 收入记录的功能描述182
9.3 收入记录的数据模型182
9.3.1 对象模型182
9.3.2 变量模型183
9.3.3 预设项列表184
9.4 界面设计184
9.5 页面逻辑185
9.6 编写程序187
9.6.1 发现过程187
9.6.2 屏幕初始化188
9.6.3 新增数据189
9.6.4 修改数据190
9.6.5 删除数据193
9.6.6 永久保存数据193
9.6.7 返回主菜单194
9.7 测试与改进195
9.8 附录:计时器组件中的时间信息197
9.8.1 什么是时间点197
9.8.2 设置日期格式198
9.8.3 创建毫秒时间点199
第 10章 简易家庭账本系统设置200
10.1 功能描述200
10.2 数据模型201
10.2.1 支出二级分类201
10.2.2 支出专项202
10.2.3 家庭成员与支付方式202
10.2.4 重置密码202
10.3 界面设计202
10.3.1 页面布局202
10.3.2 组件属性设置203
10.4 界面逻辑204
10.4.1 屏幕初始化204
10.4.2 设置预设项204
10.4.3 重置密码205
10.4.4 恢复默认设置205
10.5 编写程序选择设置项205
10.5.1 屏幕初始化205
10.5.2 设置组件的显示与隐藏206
10.5.3 原始数据的绑定207
10.5.4 组件初始化208
10.5.5 设置选择框的完成选择事件208
10.6 设置支出二级分类208
10.6.1 选择支出一级分类208
10.6.2 修改二级分类209
10.6.3 删除二级分类210
10.6.4 新增二级分类210
10.6.5 测试211
10.7 设置支出专项212
10.7.1 选中某个支出专项213
10.7.2 新增与修改213
10.7.3 删除216
10.7.4 测试217
10.7.5 测试中的问题218
10.8 设置家庭成员及支付方式220
10.8.1 选择设置项220
10.8.2 新增与修改简单项220
10.8.3 删除简单项221
10.8.4 测试222
10.9 完善新增与修改功能223
10.10 其他设置及返回主菜单224
10.10.1 密码重置224
10.10.2 恢复默认设置225
10.10.3 返回主菜单226
第 11章 简易家庭账本支出记录227
11.1 功能描述227
11.2 数据模型228
11.2.1 对象模型228
11.2.2 变量模型229
11.2.3 预设项列表230
11.3 界面设计230
11.4 界面逻辑231
11.5 编写程序233
11.5.1 编写过程233
11.5.2 屏幕初始化236
11.5.3 选择一级分类237
11.5.4 新增及修改支出记录237
11.5.5 选择已输入项及删除选中项238
11.5.6 输入信息的永久保存238
11.5.7 返回主菜单239
11.6 测试与改进239
11.6.1 屏幕初始化240
11.6.2 新增支出记录241
11.6.3 修改及删除241
11.6.4 保存与返回242
11.6.5 改进242
第 12章 简易家庭账本收支查询244
12.1 功能描述244
12.1.1 收入查询244
12.1.2 支出查询245
12.2 数据模型245
12.2.1 对象模型245
12.2.2 动态变量模型246
12.3 界面设计247
12.4 技术准备绘制动态表格248
12.4.1 表格的属性249
12.4.2 绘制单页数据表格251
12.4.3 绘制多页表格254
12.4.4 选中一行数据257
12.4.5 选中行的闪烁效果257
12.4.6 显示页码260
12.5 界面逻辑261
12.6 编写程序声明全局变量并创建过程263
12.6.1 名副其实的变量263
12.6.2 不变的变量264
12.6.3 可以充当变量的过程有返回值的过程264
12.6.4 改变世界的过程无返回值过程269
12.7 编写程序事件处理272
12.7.1 屏幕初始化272
12.7.2 日期选择事件273
12.7.3 筛选条件选择程序273
12.7.4 主筛选项选择程序274
12.7.5 查询按钮点击程序274
12.7.6 划屏翻页事件274
12.7.7 选中单行数据程序275
12.7.8 与删除单行数据相关的程序275
12.7.9 数据导出277
12.7.10 批量删除277
12.7.11 返回主菜单278
12.8 测试与改进278
12.8.1 收入查询测试278
12.8.2 支出查询测试282
12.8.3 功能改进提供操作反馈289
第 13章 简易家庭账本年度收支汇总292
13.1 功能描述292
13.2 数据模型293
13.2.1 表格数据293
13.2.2 折线图数据294
13.2.3 全局变量295
13.3 技术准备绘制折线图296
13.3.1 绘制坐标轴297
13.3.2 绘制图例298
13.3.3 写标注文字299
13.3.4 绘制折线图301
13.4 用户界面设计303
13.5 页面逻辑304
13.5.1 屏幕初始化304
13.5.2 选中汇总项目305
13.5.3 数据筛选与汇总305
13.5.4 返回主菜单305
13.6 编写程序创建过程305
13.6.1 可以充当变量的过程有返回值过程305
13.6.2 与绘图相关的过程无返回值过程308
13.7 编写程序事件处理程序312
13.7.1 屏幕初始化312
13.7.2 汇总按钮点击程序313
13.7.3 汇总项目选择程序313
13.7.4 返回按钮点击程序314
13.8 测试与改进314
13.8.1 测试314
13.8.2 改进315
第 14章 简易家庭账本分类汇总及其他318
14.1 技术准备绘制饼状图319
14.1.1 数据模型319
14.1.2 绘图方法320
14.2 年度收入分类汇总324
14.2.1 数据模型324
14.2.2 页面逻辑325
14.2.3 编写代码过程与事件处理程序325
14.3 年度个人收入汇总331
14.4 年度支出分类汇总333
14.5 年度专项支出汇总336
14.6 月度收入、支出分类汇总338
14.7 使用手册341
14.7.1 用户界面设计341
14.7.2 编辑并上传HTML 文档342
14.7.3 测试342
14.8 开发心得及改进思路343
14.8.1 开发心得343
14.8.2 改进方法及思路346
第 15章 数学实验室(一):鸡兔同笼350
15.1 鸡兔同笼解法之一手动枚举法350
15.1.1 功能说明351
15.1.2 用户界面设计351
15.1.3 页面逻辑353
15.1.4 编写代码353
15.1.5 测试355
15.1.6 讨论355
15.2 鸡兔同笼解法之二程序枚举法356
第 16章 数学实验室(二):素数问题358
16.1 N是否为素数358
16.1.1 最笨的算法358
16.1.2 算法的改进359
16.2 N以内的素数360
16.2.1 求N以内的素数 360
16.2.2 改造N是素数过程361
第 17章 数学实验室(三):公约数与公倍数363
17.1 求M与N的最大公约数363
17.1.1 概念陈述363
17.1.2 概念的数学表示363
17.1.3 概念的程序表示364
17.1.4 求任意两个整数的最大公约数365
17.2 求M与N的最小公倍数370
17.2.1 问题的数学表示370
17.2.2 问题的程序表示370
17.3 小结372
第 18章 数学实验室(四):绘制函数曲线373
18.1 坐标变换373
18.1.1 画布坐标系统373
18.1.2 平面直角坐标系375
18.1.3 两个坐标系之间的坐标变换377
18.2 绘制坐标轴377
18.2.1 界面设计378
18.2.2 编写代码379
18.3 绘制二次函数曲线382
18.3.1 绘制最简单的二次曲线382
18.3.2 绘制任意系数的二次曲线384
18.3.3 连续改变系数值386
18.4 绘制三角函数曲线388
18.4.1 坐标轴的位置389
18.4.2 编写过程绘制正弦函数389
18.5 小结391
第 19章 寻找加油站392
19.1 概述392
19.1.1 功能描述392
19.1.2 数据来源393
19.1.3 术语393
19.1.4 开发步骤393
19.2 用户界面394
19.3 应用逻辑设计395
19.4 编写程序:设置地图尺寸395
19.4.1 画布宽度的计算公式396
19.4.2 用代码实现对画布宽度的设定396
19.4.3 对代码的解释397
19.5 获取一张地图398
19.5.1 理解静态地图API398
19.5.2 编写代码400
19.6 搜索加油站401
19.6.1 理解搜索API401
19.6.2 编写搜索URL401
19.6.3 为搜索URL编写代码401
19.6.4 执行搜索操作401
19.6.5 接收服务器返回的信息402
19.6.6 为列表选择框设置可选项404
19.6.7 在地图上显示选中的加油站405
19.7 中心点的定位406
19.7.1 GPS定位 406
19.7.2 地址定位408
19.8 显示全部加油站412
19.8.1 为名称列表添加选项412
19.8.2 拼接全部加油站的经纬度字串412
19.9 地图的左右移动414
19.10 功能完善及代码整理414
19.10.1 隐藏地址布局414
19.10.2 保存当前地址信息414
19.10.3 代码清单415
第 20章 贪吃蛇416
20.1 功能说明416
20.2 用户界面417
20.3 绘制背景418
20.3.1 画线与画方块418
20.3.2 行列与坐标之间的转换418
20.3.3 绘制方块419
20.3.4 绘制背景420
20.4 蛇头的受控移动420
20.4.1 描述蛇头的位置420
20.4.2 描述蛇头的方向420
20.4.3 蛇头的移动421
20.4.4 蛇头的转向422
20.5 果子的生成422
20.6 蛇吃果子422
20.6.1 记录蛇身位置423
20.6.2 蛇身加长423
20.6.3 果子再生与得分增加424
20.7 碰壁与自吃425
20.8 附属功能426
20.8.1 暂停与继续426
20.8.2 重新开始426
20.8.3 防止自毁427
20.8.4 出果位置避开蛇身428
20.8.5 退出游戏428
20.9 代码整理428
20.9.1 常量428
20.9.2 变量429
20.9.3 有返回值的过程429
20.9.4 无返回值的过程430
20.9.5 事件处理程序431
第 21章 因式分解之十字相乘432
21.1 功能说明432
21.1.1 名词解释432
21.1.2 功能描述432
21.2 用户界面433
21.2.1 首页433
21.2.2 答题页434
21.3 为首页编写程序436
21.3.1 屏幕初始化436
21.3.2 选择难度与题量436
21.3.3 查看历史记录437
21.3.4 开始答题及退出437
21.4 答题页页面逻辑437
21.5 答题页初始化439
21.5.1 显示状态信息439
21.5.2 下拉框数据绑定440
21.5.3 草纸提示文字440
21.5.4 题目的生成441
21.5.5 题目系数由数值转化为文本443
21.5.6 形式答案的显示444
21.5.7 题目的显示444
21.6 答题445
21.6.1 选择答案446
21.6.2 提交答案447
21.6.3 出下一题449
21.6.4 可擦写草纸450
21.7 交卷450
21.7.1 显示答题结果451
21.7.2 显示正确答案453
21.7.3 保存成绩453
21.7.4 返回首页或再来一次455
21.8 区分题目难度456
21.9 应用功能评估458
21.10 代码整理459
21.10.1 全局变量459
21.10.2 过程459
21.10.3 事件处理程序460
后记461
附录A 开发工具、测试方案与学习资源462
附录B 不同的App Inventor汉化版本468
|
|