| 作者 |
| 金从军 |
| 丛书名 |
| 青少年编程 |
| 出版社 |
| 人民邮电出版社 |
| ISBN |
| 9787115489555 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 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 理解静态地图API 398 19.5.2 编写代码 400 19.6 搜索加油站 401 19.6.1 理解搜索API 401 19.6.2 编写搜索URL 401 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 |