当前位置:主页 > 书籍配套资源 > 程序设计配套资源
《斯坦福程序设计入门课:JavaScript实现》代码+ppt+参考答案

《斯坦福程序设计入门课:JavaScript实现》代码+ppt+参考答案

  • 更新:2022-01-06
  • 大小:42 MB
  • 类别:程序设计
  • 作者:埃里克S.罗伯茨
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书通过使用一门叫JavaScript的语言,教会你如何编写程序,引导你走上奇妙的计算机科学的旅程。JavaScript语言是基于Web的应用程序的核心语言。书中所有示例代码都可以在任何浏览器上运行,包括你手机上的浏览器。虽然本书是使用JavaScript来演示,然而,更重要的是,本书着重讲解的是编程基本原则,其中的道理可以用在任何其他语言中。本书旨在用于大学课程中的第一门编程课。它覆盖了传统计算机科学首门课程(通常称为CS1)的所有内容。

封面图

目录

  • 译者序
  • 写给学生的话
  • 写给教师的话
  • 致谢
  • 第1章轻松入门 …… 1
  • 1.1Karel介绍 …… 2
  • 1.1.1Karel的编程 …… 2
  • 1.1.2Karel的世界 …… 3
  • 1.1.3Karel的内置函数 …… 3
  • 1.2教Karel解决问题 …… 4
  • 1.2.1开始起步 …… 4
  • 1.2.2定义函数 …… 5
  • 1.2.3完善程序 …… 6
  • 1.2.4使用库函数 …… 7
  • 1.2.5分解策略 …… 7
  • 1.3控制语句 …… 9
  • 1.3.1条件语句 …… 9
  • 1.3.2循环语句 …… 11
  • 1.3.3解决通用问题 …… 13
  • 1.4逐步求精法 …… 15
  • 1.4.1一个逐步求精法的练习 …… 15
  • 1.4.2自上而下设计的原则 …… 15
  • 1.4.3求精第一个子问题 …… 16
  • 1.4.4编写下一层代码 …… 17
  • 1.4.5完成 …… 18
  • 1.5Karel世界里的算法 …… 19
  • 总结 …… 20
  • 复习题 …… 22
  • 练习题 …… 22
  • 第2章JavaScript简介 …… 34
  • 2.1数据和类型 …… 35
  • 2.2数值数据 …… 35
  • 2.2.1JavaScript中数字的表示 …… 36
  • 2.2.2算术表达式 …… 36
  • 2.2.3优先级 …… 38
  • 2.3变量 …… 38
  • 2.3.1变量声明 …… 39
  • 2.3.2赋值 …… 39
  • 2.3.3自增和自减操作符 …… 40
  • 2.3.4命名约定 …… 41
  • 2.3.5常量 …… 41
  • 2.3.6顺序计算 …… 42
  • 2.4函数 …… 42
  • 2.4.1用JavaScript实现函数 …… 43
  • 2.4.2库函数 …… 45
  • 2.5字符串数据 …… 46
  • 2.5.1字符串操作 …… 47
  • 2.5.2编写简单的字符串函数 …… 48
  • 2.6在浏览器中运行JavaScript …… 49
  • 2.6.1“Hello World”程序 …… 49
  • 2.6.2 JavaScript和Web …… 51
  • 2.6.3 JavaScript程序的HTML模板 …… 51
  • 2.7测试和调试 …… 53
  • 2.7.1防御式编程 …… 54
  • 2.7.2 成为一名优秀的调试者 …… 54
  • 2.7.3 编程的各个阶段 …… 54
  • 2.7.4 心理障碍的一个例子 …… 57
  • 2.7.5 编写有效的测试程序 …… 58
  • 2.8 软件维护 …… 60
  • 总结 …… 61
  • 复习题 …… 63
  • 练习题 …… 65
  • 第3章控制语句 …… 68
  • 3.1 布尔数据 …… 69
  • 3.1.1 关系操作符 …… 69
  • 3.1.2 逻辑操作符 …… 70
  • 3.1.3短路求值 …… 72
  • 3.2if语句 …… 73
  • 3.2.1 if语句的其他形式 …… 74
  • 3.2.2 “?:”操作符 …… 75
  • 3.3 switch语句 …… 76
  • 3.4 while语句 …… 78
  • 3.5 for语句 …… 81
  • 3.5.1for和while的关系 …… 84
  • 3.5.2嵌套的for语句 …… 84
  • 3.6 算法编程 …… 86
  • 3.6.1 早期的平方根算法 …… 87
  • 3.6.2 寻找最大的公约数 …… 89
  • 3.6.3 欧几里得算法 …… 90
  • 3.7避免使用模糊的真假值 …… 92
  • 总结 …… 93
  • 复习题 …… 94
  • 练习题 …… 95
  • 第4章简单图形 …… 100
  • 4.1图形版“Hello World” …… 101
  • 4.2 类、对象和方法 …… 102
  • 4.2.1 创建对象 …… 102
  • 4.2.2向对象发送消息 …… 103
  • 4.2.3 引用 …… 104
  • 4.2.4 封装 …… 105
  • 4.3 图形对象 …… 105
  • 4.3.1 GRect类 …… 105
  • 4.3.2 GOval类 …… 108
  • 4.3.3 GLine类 …… 109
  • 4.3.4 GLabel类 …… 109
  • 4.4 图形窗口 …… 114
  • 4.5 创建图形化应用程序 …… 115
  • 4.5.1 指定坐标和大小 …… 115
  • 4.5.2 使用简单的分解策略 …… 117
  • 4.5.3在图形应用程序中使用控制语句 …… 119
  • 4.5.4返回图形对象的函数 …… 121
  • 总结 …… 122
  • 复习题 …… 123
  • 练习题 …… 124
  • 第5章函数 …… 132
  • 5.1快速回顾函数 …… 133
  • 5.1.1函数定义的语法 …… 133
  • 5.1.2传递参数 …… 134
  • 5.1.3可选参数 …… 134
  • 5.1.4 谓词函数 …… 135
  • 5.2程序库 …… 136
  • 5.2.1创建自己的程序库 …… 136
  • 5.2.2信息隐藏原则 …… 137
  • 5.2.3接口概念 …… 138
  • 5.3 一个支持随机选择的程序库 …… 138
  • 5.3.1 设计RandomLib.js库的接口 …… 139
  • 5.3.2实现RandomLib.js库 …… 140
  • 5.3.3使用RandomLib.js库 …… 142
  • 5.4函数调用的机制 …… 144
  • 5.4.1调用函数的步骤 …… 144
  • 5.4.2组合函数 …… 145
  • 5.4.3跟踪组合函数 …… 146
  • 5.5递归函数 …… 149
  • 5.5.1fact的递归公式 …… 149
  • 5.5.2?跟踪递归过程 …… 150
  • 5.5.3递归的信仰之跃 …… 153
  • 5.5.4斐波那契函数 …… 153
  • 5.5.5计算斐波那契序列中的项 …… 154
  • 5.5.6在递归实现中获得信心 …… 155
  • 5.5.7递归实现的效率 …… 155
  • 总结 …… 158
  • 复习题 …… 159
  • 练习题 …… 160
  • 第6章编写交互式程序 …… 164
  • 6.1一等函数 …… 165
  • 6.1.1将函数声明为数据值 …… 165
  • 6.1.2传递函数作为参数 …… 166
  • 6.2一个简单的交互式示例 …… 167
  • 6.3控制对象的属性 …… 169
  • 6.4响应鼠标事件 …… 170
  • 6.4.1简单的画线程序 …… 171
  • 6.4.2在画布上拖动对象 …… 173
  • 6.5 基于计时器的动画 …… 175
  • 6.5.1 setTimeout和setInterval函数 …… 175
  • 6.5.2 动画的简单示例 …… 176
  • 6.5.3跟踪动画的状态 …… 177
  • 6.6 扩展图形库 …… 179
  • 6.6.1GArc类 …… 179
  • 6.6.2 GPolygon类 …… 181
  • 6.6.3GCompound类 …… 184
  • 总结 …… 186
  • 复习题 …… 188
  • 练习题 …… 189
  • 第7章字符串 …… 197
  • 7.1二进制表示法 …… 198
  • 7.1.1二进制记数法 …… 198
  • 7.1.2将整数存储为位序列 …… 199
  • 7.1.3十六进制记数法 …… 200
  • 7.1.4表示非数值数据 …… 201
  • 7.1.5表示字符 …… 202
  • 7.2字符串操作 …… 203
  • 7.2.1确定字符串的长度 …… 205
  • 7.2.2从字符串中选择字符 …… 205
  • 7.2.3提取字符串的一部分 …… 206
  • 7.2.4在字符串中搜索 …… 206
  • 7.2.5大小写转换 …… 207
  • 7.2.6startsWith、endsWith和trim方法 …… 207
  • 7.2.7数字和字符串之间的转换 …… 208
  • 7.3字符分类 …… 209
  • 7.4字符串常见的代码模式 …… 210
  • 7.4.1遍历字符串中的字符 …… 210
  • 7.4.2拼接字符串 …… 211
  • 7.4.3遍历和拼接的组合模式 …… 212
  • 7.5字符串应用程序 …… 212
  • 7.5.1检查回文 …… 212
  • 7.5.2生成缩写词 …… 213
  • 7.5.3将英语翻译成Pig Latin …… 214
  • 7.5.4实现简单的密码 …… 216
  • 7.6从控制台读取数据 …… 218
  • 总结 …… 220
  • 复习题 …… 221
  • 练习题 …… 222
  • 第8章数组 …… 229
  • 8.1数组介绍 …… 230
  • 8.1.1JavaScript数组表示法 …… 230
  • 8.1.2数组的元素选择 …… 231
  • 8.1.3数组作为引用传递 …… 233
  • 8.1.4访问数组边界之外的元素 …… 234
  • 8.2数组操作 …… 235
  • 8.2.1添加和移除数组元素 …… 236
  • 8.2.2重新给数组元素排序的方法 …… 239
  • 8.2.3字符串和数组互相转换 …… 240
  • 8.2.4ArrayLib.js库 …… 241
  • 8.3使用数组制表 …… 242
  • 8.4从文件中读取文本 …… 245
  • 8.5多维数组 …… 246
  • 8.6图像处理 …… 247
  • 8.6.1GImage类 …… 247
  • 8.6.2确定图像的属性 …… 248
  • 8.6.3图像的表示 …… 250
  • 8.6.4使用GImage类操作图像 …… 250
  • 总结 …… 254
  • 复习题 …… 254
  • 练习题 …… 256
  • 第9章对象 …… 261
  • 9.1JavaScript里的对象 …… 262
  • 9.1.1对象用作记录 …… 262
  • 9.1.2创建对象 …… 263
  • 9.1.3选择属性 …… 263
  • 9.1.4JavaScript对象表示法 …… 264
  • 9.2把对象当作映射来使用 …… 264
  • 9.2.1机场编码映射为城市名称 …… 265
  • 9.2.2初始化一个映射 …… 265
  • 9.2.3遍历映射中的键 …… 266
  • 9.3点的表示 …… 267
  • 9.3.1创建点的策略 …… 268
  • 9.3.2给Point对象添加方法 …… 269
  • 9.3.3toString方法 …… 270
  • 9.3.4在程序里面使用点 …… 272
  • 9.4有理数的表示 …… 274
  • 9.4.1定义新类的一般策略 …… 275
  • 9.4.2站在客户端视角 …… 276
  • 9.4.3指定Rational类的私有状态 …… 276
  • 9.4.4为Rational类定义工厂方法 …… 276
  • 9.4.5为Rational类定义方法 …… 277
  • 9.4.6实现Rational类 …… 278
  • 9.4.7定义类方法 …… 280
  • 9.5把对象连接起来 …… 280
  • 总结 …… 283
  • 复习题 …… 284
  • 练习题 …… 285
  • 第10章设计数据结构 …… 289
  • 10.1抽象数据类型 …… 289
  • 10.2实现token扫描器 …… 290
  • 10.2.1客户端想从token扫描器中得到什么 …… 290
  • 10.2.2JSTokenScanner类 …… 294
  • 10.3效率和表示 …… 296
  • 10.3.1在不使用封装的情况下实现词汇表 …… 296
  • 10.3.2基于数组的封装实现 …… 297
  • 10.3.3效率的实证测量 …… 298
  • 10.3.4使用映射实现词汇表 …… 299算法 …… 301
  • 10.3.6分治算法 …… 304
  • 10.4表示真实世界的数据 …… 305
  • 总结 …… 310
  • 复习题 …… 310
  • 练习题 …… 311
  • 第11章继承 …… 319
  • 11.1类层次结构 …… 320
  • 11.2定义雇员的类层次结构 …… 322
  • 11.3扩展图形类 …… 325
  • 11.3.1扩展GPolygon类 …… 326
  • 11.3.2扩展GCompound类 …… 327
  • 11.4分解和继承 …… 328
  • 11.5继承的替代方案 …… 332
  • 总结 …… 333
  • 复习题 …… 333
  • 练习题 …… 334
  • 第12章JavaScript与Web …… 341
  • 12.1一个简单的交互式示例 …… 342
  • 12.2HTML概览 …… 343
  • 12.2.1在Web页面中展示文本 …… 345
  • 12.2.2显示图片 …… 347
  • 12.2.3超链接 …… 348
  • 12.3使用CSS …… 350
  • 12.3.1CSS声明 …… 350
  • 12.3.2为元素指定样式 …… 352
  • 12.3.3设置外边距、边框、内边距和大小 …… 353
  • 12.4连接JavaScript和HTML …… 355
  • 12.4.1文档对象模型 …… 355
  • 12.4.2给HTML元素添加事件监听器 …… 357
  • 12.4.3可折叠列表 …… 359
  • 12.5将数据存储在index.html文件中 …… 363
  • 12.5.1使用XML表示数据 …… 364
  • 12.5.2打造一个教学机 …… 364
  • 12.5.3更改应用程序领域 …… 368
  • 总结 …… 369
  • 复习题 …… 370
  • 练习题 …… 371

资源下载

资源下载地址1:https://pan.baidu.com/s/1vhFRKhU_JOzDoHM7bYNrZQ

相关资源

网友留言