书籍详情

You Can Do It!

You Can Do It!

作者:(英)Francis Glassborow,(英)Roberta Allen著;徐波译

出版社:人民邮电出版社

出版时间:2005-04-01

ISBN:9787115132529

定价:¥45.00

购买这本书可以去
内容简介
  在本书中,作者把握住了以下3个要点,能够确保你获得的良好的学习效果:·根据不同学习目的,采取不同的代码引入方法。·精心设置“任务”帮助你掌握必需的技巧和知识。·提供丰富练习,培养编程能力和检验学习效果。本书具有以下几个特色:·Roberta的评论:Roberta在学习过程中的反馈意见和疑问,你在阅读的时候可能会感同身受。·提示:帮助你完成任务和练习。·解决方案:Francis对你提出的要求是,搞清楚他所提供的解决方案为什么有效,为什么和你的有所不同。·总结:总结独立于语言的重要编程概念、标准C++的知识要点,以及Francis为你灌输的额外的C++的知识要点。这些特色绝不仅仅是多样化的形式,更重要的是,它们能够切实地确保你的学习质量。随书光盘中包含所需软件、本书附录和词汇表。本书采用互动的教学方式,使用C++语言来教授新手学习程序设计。全书共17章。第1章是对编程概念和工具的简单介绍,第2章到第6章介绍了C++编程中的循环、函数、通信、类型创建和使用等技巧技能。第7章总结了编程的思路和技巧。接下来的6章(第8章到第13章)中,每一章都作为一个单元,在前17章的基础上添加了一些新的材料和一些新的思路。第14到第16章的主要目标是巩固所学的知识和技巧,并显示如何用所掌握的知识实现一些看上去难度很大的任务。第17章再次对常见编程问题进行了分类分析和论述。随书光盘中带有所需软件、附录和术语表。本书适合于缺乏经验但却对学习计算机编程充满兴趣的读者,尤其适合作为高等院校学生学习编程的入门指南。
作者简介
  Francis Glassborow是C++方面的权威,有着30年的编程和教学经验,是C++标准委员会的一名重要成员。作为ACCU的前任主席,他曾审阅了3000多本专业书籍,并且总是能够给出准确犀利、切中肯綮的意见,使无数的读者受益匪浅。正是由于他的这些阅历,他抱着严谨、认真的态度和科学的方法来编写这本书,力图为初学者打造一本切合实际、学以致用的编程指南。
目录
第1章 初论编程 1
 1.1 什么是编程 1
 1.2 编程工具介绍 2
 1.3 我们的第一个程序 5
 1.3.1 创建源代码 5
 1.3.2 保存源代码 6
 1.3.3 编译源代码 6
 1.3.4 把程序添加到项目中 7
 1.3.5 创建和运行可执行文件 7
 1.3.6 详解Empty_Playpen源代码 8
 1.4 C++程序的元素 11
 1.5 Playpen窗口并不一定是白色的 12
 1.6 画点 14
 1.7 混合颜色 17
 1.8 现代艺术 17
 1.9 任务. 练习和乐趣 18
 1.10 Roberta的评论 19
 1.11 总结 20
 1.11.1 关键编程概念 20
 1.11.2 C++要点 20
 1.11.3 扩展要点 21
 第2章 循环 23
 2.1 绘制十字架 23
 2.2 for循环 24
 2.3 重新讨论绘制十字架 29
 2.4 练习循环 30
 2.5 简单算术操作符 31
 2.5.1 乘法操作符 31
 2.5.2 除法操作符 31
 2.5.3 负号和减法操作符 31
 2.6 Roberta的评论 33
 2.7 练习的解决方案 34
 2.8 总结 36
 2.8.1 关键编程概念 36
 2.8.2 C++要点 36
 第3章 编写函数 38
 3.1 绘制正方形 38
 3.2 函数的概念 39
 3.3 C++的函数 41
 3.4 编写函数 42
 3.4.1 使用函数 42
 3.4.2 声明函数 43
 3.4.3 定义函数 45
 3.4.4 声明和定义在什么地方 46
 3.5 头文件和实现文件 46
 3.5.1 创建头文件 46
 3.5.2 测试函数 48
 3.5.3 创建实现文件 48
 3.6 绘制直线 48
 3.6.1 设计函数 49
 3.6.2 测试函数 49
 3.6.3 定义函数 50
 3.7 绘制多条直线 53
 3.8 创建你自己的工具函数 56
 3.9 Roberta的评论 57
 3.10 练习解决方案 57
 3.11 总结 59
 3.11.1 关键编程概念 59
 3.11.2 C++要点 59
 3.11.3 扩展要点 60
 第4章 通信 61
 4.1 名字和名字空间 61
 4.2 交互 63
 4.3 char和int类型 63
 4.3.1 处理字符 63
 4.3.2 使用int类型 64
 4.4 流 66
 4.4.1 控制台流 67
 4.4.2 文件流 68
 4.4.3 字符串流 68
 4.5 string类型 68
 4.6 创建一个简单的对话框 69
 4.7 线性容器 71
 4.8 代码详解 73
 4.9 从键盘获取int值 78
 4.10 处理意外情况 80
 4.11 Roberta的评论 83
 4.12 练习解决方案 84
 4.12 练习解决方案 84
 4.13 总结 90
 4.13.1 关键编程概念 90
 4.13.2 C++要点 91
 4.13.3 扩展要点 92
 第5章 创建类型 93
 5.1 不要低估自己 93
 5.2 设计类型 94
 5.2.1 日期的概念 94
 5.2.2 抽象数据类型和C++ 95
 5.3 double类型 95
 5.3.1 double对象的I/O 96
 5.3.2 避免重复 97
 5.4 创建一个二维点类型 98
 5.4.1 坐标系统 99
 5.4.2 测量角度 99
 5.4.3 设计point2d类型 100
 5.4.4 实现point2d类型 106
 5.4.5 包装 113
 5.5 Roberta的评论 113
 5.6 练习解决方案 113
 5.7 总结 114
 5.7.1 关键编程概念 114
 5.7.2 C++要点 114
 5.7.3 扩展要点 115
 第6章 使用point2d类型 117
 6.1 用自由函数添加功能 117
 6.2 为point2d提供I/O支持 119
 6.2.1 写入point2d对象 119
 6.2.2 读取point2d对象 119
 6.2.3 使用库版本 121
 6.3 绘制直线和多边形 121
 6.3.1 表示shape类型 122
 6.3.2 绘制图形 123
 6.3.3 移动图形 123
 6.3.4 其他转换 124
 6.4 绘制规则多边形 127
 6.4.1 绘制圆形 128
 6.4.2 绘制椭圆形 128
 6.5 类型和原点 129
 6.6 Roberta的评论 129
 6.7 任务解决方案 131
 6.8 练习解决方案 137
 6.9 总结 139
 6.9.1 C++要点 139
 6.9.2 扩展要点 140
 第7章 寻找乐趣 141
 7.1 重视技巧 141
 7.2 只是为了寻找乐趣 141
 7.3 有趣的编程思路 145
 7.4 展望 145
 7.4.1 接下来干什么 146
 7.4.2 烦人的练习 146
 7.4.3 一个过去的任务 147
 7.4.4 挑战 148
 第8章 编写菜单 149
 8.1 提供一组选择 150
 8.1.1 另一种方式的循环:do...while 150
 8.1.2 一种新类型:bool 151
 8.1.3 知道什么时候停止 151
 8.1.4 函数声明和定义 153
 8.1.5 用switch实现多种选择 154
 8.2 处理依赖性 160
 8.2.1 另一种用户定义类型:枚举 161
 8.2.2 使用枚举提高可读性 162
 8.3 填充多边形的函数 165
 8.4 Roberta的评论 167
 8.5 任务解决方案 168
 8.6 总结 169
 8.6.1 关键编程概念 169
 8.6.2 C++要点 170
 8.6.3 扩展要点 170
 第9章 保存数据 172
 9.1 保存和恢复图像 172
 9.1.1 无损和有损压缩 172
 9.1.2 用于Playpen的PNG文件 174
 9.2 使用捕捉到的数据 175
 9.2.1 存储键盘数据 177
 9.2.2 恢复存储数据 178
 9.3 一个具有持久化功能的菜单驱动程序 179
 9.3.1 捕捉动作 182
 9.3.2 实现动作记录 183
 9.3.3 重复动作 184
 9.3.4 实现redo函数 186
 9.3.5 显示动作 186
 9.3.6 实现undo函数 187
 9.4 更多实践 188
 9.5 迭代器 188
 9.5.1 用迭代器查找数据 189
 9.5.2 C++的迭代器 190
 9.5.3 从列表中删除一个动作 191
 9.5.4 编辑动作 191
 9.6 学习下一章之前 193
 9.7 任务解决方案 193
 9.8 总结 201
 9.8.1 关键编程概念 201
 9.8.2 C++要点 202
 9.8.3 扩展要点 202
 第10章 抽彩. 密码和随机选择 203
 10.1 随机和伪随机序列 203
 10.2 随机数字的算法 204
 10.3 理解抽彩程序 205
 10.3.1 一个非常差的抽彩选择程序 205
 10.3.2 一个较差的抽彩选择程序 207
 10.3.3 一个更好的抽彩选择程序 208
 10.3.4 生成真正随机的数字 210
 10.3.5 其他程序可能性 215
 10.4 发送隐藏信息 216
 10.4.1 使用PRNG作为一次性的密码本 216
 10.4.2 对文件进行加密 217
 10.4.3 把信息加密成图像 220
 10.5 取决于你 221
 10.6 Roberta的评论 222
 10.7 任务解决方案 224
 10.8 总结 225
 10.8.1 关键编程概念 225
 10.8.2 C++要点 225
 10.8.3 扩展要点 226
 第11章 键盘和鼠标 227
 11.1 一种键盘类型 227
 11.1.1 fgw::keyboard类型 228
 11.1.2 忽略修饰键 229
 11.1.3 处理修饰键 232
 11.1.4 处理大小写 232
 11.2 使用鼠标 234
 11.2.1 把原始鼠标坐标转换为playpen坐标 235
 11.2.2 使用鼠标按钮 236
 11.2.3 持续更新显示 237
 11.3 对代码进行重构 239
 11.4 更多实践 242
 11.5 Roberta的评论 243
 11.6 练习解决方案 244
 11.7 总结 248
 11.7.1 关键编程概念 248
 11.7.2 C++要点 249
 11.7.3 扩展要点 249
 第12章 巧用bitset 251
 12.1 计算一个质数列表 251
 12.1.1 什么是质数 251
 12.1.2 Eratosthenes筛选法 252
 12.1.3 一种特殊的容器:bitset<n> 252
 12.1.4 实现Eratosthenes筛选法的程序 255
 12.2 编织模拟 258
 12.2.1 编织简介 258
 12.2.2 设置经线 259
 12.2.3 实现综片 260
 12.2.4 实现纬线 261
 12.2.5 寻找乐趣 262
 12.3 Conway博士的Life游戏 262
 12.3.1 确定未来的状态 264
 12.3.2 创建一个Life宇宙 265
 12.3.3 创建一个程序 265
 12.3.4 复制宇宙 266
 12.3.5 玩Life游戏 267
 12.3.6 修改Life游戏 268
 12.3.7 没有练习 269
 12.4 Roberta的评论 269
 12.5 任务解决方案 269
 12.6 总结 270
 12.6.1 C++总结 270
 12.6.2 扩展要点 271
 第13章 set和map的应用 272
 13.1 什么是关联容器 272
 13.2 什么是集合(set) 272
 13.3 什么是映射(map) 276
 13.3.1 std::map是如何工作的 277
 13.3.2 检查一个项目是否已经存在于std::map中 280
 13.4 Roberta的评论 281
 13.5 任务解决方案 282
 13.6 练习解决方案 283
 13.6 练习解决方案 283
 13.7 总结 285
 13.7.1 关键编程概念 285
 13.7.2 C++要点 286
 13.7.3 扩展要点 286
 第14章 获取. 存储和恢复图形项目 287
 14.1 准备编程 287
 14.2 图标. 精灵和相关的项目 288
 14.2.1 设计icon类型 288
 14.2.2 把数据载入到icon对象 290
 14.2.3 显示icon对象的数据 291
 14.2.4 从文件中将数据载入到icon对象 293
 14.2.5 为icon类型添加构造函数 293
 14.2.6 把icon数据存储到文件 294
 14.2.7 更多实践 296
 14.3 创建字体 296
 14.3.1 设计glyph类型 297
 14.3.2 实现glyph成员函数 298
 14.3.3 创建字体 298
 14.3.4 设计font类型 300
 14.3.5 实现font类型的成员函数 300
 14.3.6 显示font对象 302
 14.4 在Playpen窗口中显示字符串 303
 14.5 Roberta的评论 304
 14.6 任务解决方案 305
 14.7 练习解决方案 310
 14.8 总结 312
 14.8.1 关键编程概念 312
 14.8.2 C++要点 312
 第15章 函数对象和简单的动画 313
 15.1 具有记忆的函数 313
 15.1.1 实现一个具有记忆能力的函数 314
 15.1.2 传递函数 316
 15.1.3 使用缺省参数 318
 15.1.4 使用名字空间来传递信息 321
 15.2 迈向动画的第一步 323
 15.2.1 移动的点 323
 15.2.2 以前出现过吗 324
 15.2.3 移动的对象或sprite 325
 15.3 关于调色板 330
 15.4 更高级的动画 332
 15.5 Roberta的评论 335
 15.6 任务解决方案 336
 15.6 任务解决方案 336
 15.7 练习解决方案 339
 15.8 总结 341
 15.8.1 关键编程概念 341
 15.8.2 C++要点 341
 15.8.3 扩展要点 342
 第16章 海龟图形——另一种观察图形的方式 344
 16.1 一些历史知识 344
 16.2 设计turtle类型 345
 16.2.1 实现turtle类的行为 346
 16.2.2 实现turtle状态 347
 16.2.3 实现turtle成员函数 347
 16.3 探索海龟图形 351
 16.3.1 海龟还可以做什么 352
 16.3.2 隐藏和显示海龟 353
 16.4 递归 354
 16.5 扩展思路 357
 16.6 Roberta的评论 358
 16.7 任务解决方案 358
 16.7 任务解决方案 358
 16.8 总结 360
 16.8.1 关键编程概念 360
 16.8.2 C++要点 360
 第17章 再论编程 361
 17.1 我学故我用 361
 17.2 基于游戏的问题 362
 17.2.1 国际象棋 362
 17.2.2 其他形式的棋类游戏 364
 17.2.3 其他棋盘游戏 364
 17.2.4 纸牌游戏 365
 17.2.5 其他游戏 366
 17.3 分析性的问题 366
 17.3.1 词法分析 366
 17.3.2 语言分析 367
 17.3.3 查找隐藏信息 367
 17.3.4 体育分析 368
 17.3.5 可视化工具 368
 17.4 数学问题 368
 17.4.1 管理石油公司 369
 17.4.2 用图形的方式解方程式 369
 17.4.3 汉密尔顿路径 370
 17.4.4 双极坐标 370
 17.4.5 结论 371
 17.5 总结 371
 17.6 接下来干什么 372
 附录A 一些常见的错误 373
 术语表 375
猜您喜欢

读书导航