![]()
内容推荐 "本书内容涵盖了程序设计的基本概念和技术,通过对 C++ 语言进行全面介绍,帮助读者理解程序设计的原 理,并掌握实践知识。本书共分为五部分,第一部分(第 2 ~ 9 章)介绍了程序设计的基础知识;第二部分(第 10 ~ 16 章)介绍了输入输出相关知识,包括从键盘和文件获取数值与文本数据的方法,以及以图形化方 式表示数值数据、文本和几何图形;第三部分(第 17 ~21 章)介绍了算法和数据结构相关知识,包括向量容器、 链表和映射容器;第四部分(第 22 ~ 27 章)对 C++ 语言思想进行了更有广度的介绍;第五部分(附录 A ~附 录 E)是对书中正文的补充。 本书可作为高等院校计算机、电子信息及相关专业的本科生或研究生教材,也可供对程序设计感兴趣的研 究人员和工程技术人员阅读参考。 " 目录 目 录 引言 致读者 1 本书结构 2 讲授和学习本书的方法 5 程序设计和计算机科学 8 创造性和问题求解 9 反馈方法 9 作者简介 9 附言 11 第1章 计算、人和程序设计 12 1.1 介绍 13 1.2 软件 13 1.3 人 15 1.4 计算机科学 17 1.5 计算机无处不在 17 1.6 程序员的理想 23 回顾 25 术语 26 练习题 26 附言 27 第一部分 基 础 29 第2章 Hello, World! 30 2.1 程序 31 2.2 经典的第一个程序 31 2.3 编译 33 2.4 链接 35 2.5 程序设计环境 36 操作题 36 回顾 38 术语 38 练习题 38 附言 39 第3章 对象、类型和值 40 3.1 输入 41 3.2 变量 42 3.3 输入和类型 43 3.4 运算和运算符 45 3.5 赋值和初始化 47 3.6 复合赋值运算符 50 3.7 命名 52 3.8 类型和对象 53 3.9 类型安全 55 操作题 58 回顾 59 术语 59 练习题 60 附言 61 第4章 计算 62 4.1 计算的定义 63 4.2 目标和工具 64 4.3 表达式 65 4.4 语句 69 4.5 函数 79 4.6 向量容器 82 4.7 语言特性 87 操作题 87 回顾 88 术语 89 习题 89 附言 91 第5章 错误 92 5.1 介绍 93 5.2 错误的来源 94 5.3 编译时错误 95 5.4 链接时错误 97 5.5 运行时错误 97 5.6 异常 101 5.7 逻辑错误 107 5.8 估算 109 5.9 调试 110 5.10 前置条件和后置条件 113 5.11 测试 115 操作题 116 回顾 117 术语 118 练习题 118 附言 119 第6章 编写一个程序 120 6.1 一个问题 121 6.2 对问题的思考 122 6.3 回到计算器问题 124 6.4 语法 130 6.5 将语法转化为程序 135 6.6 尝试第一个版本 141 6.7 试验第二个版本 145 6.8 单词流 146 6.9 程序结构 150 操作题 151 回顾 151 术语 152 练习题 152 附言 153 第7章 完成一个程序 154 7.1 介绍 155 7.2 输入和输出 155 7.3 错误处理 157 7.4 负数 160 7.5 模运算:% 161 7.6 清理代码 162 7.7 错误恢复 168 7.8 变量 170 操作题 177 回顾 178 术语 178 练习题 178 附言 179 第8章 函数相关的技术细节 180 8.1 技术细节 181 8.2 声明和定义 182 8.3 头文件 186 8.4 作用域 188 8.5 函数调用和返回 192 8.6 求值顺序 205 8.7 命名空间 207 操作题 210 回顾 211 术语 212 练习题 212 附言 213 第9章 类相关的技术细节 214 9.1 用户自定义类型 215 9.2 类和成员 216 9.3 接口和实现 216 9.4 演化一个类 218 9.5 枚举类型 225 9.6 运算符重载 227 9.7 类接口 228 9.8 Date类 236 操作题 240 回顾 240 术语 240 练习题 241 附言 242 第二部分 输入和输出 243 第10章 输入和输出流 244 10.1 输入和输出的简介 245 10.2 I/O流模型 246 10.3 文件 247 10.4 打开文件 248 10.5 读写文件 249 10.6 I/O错误处理 251 10.7 读取单个值 253 10.8 用户自定义输出运算符 258 10.9 用户自定义输入运算符 259 10.10 一个标准的输入循环 259 10.11 读取结构化的文件 261 操作题 267 回顾 267 术语 268 练习题 268 附言 269 第11章 自定义输入与输出 270 11.1 有规律的和无规律的输入和输出 271 11.2 格式化输出 271 11.3 文件打开和定位 276 11.4 字符串流 280 11.5 面向行的输入 281 11.6 字符分类 282 11.7 使用非标准分隔符 284 11.8 还有很多未讨论的内容 289 操作题 290 回顾 290 术语 291 练习题 291 附言 292 第12章 一个显示模型 293 12.1 为什么要使用图形用户界面 294 12.2 一个显示模型:GUI库 295 12.3 第一个例子 296 12.4 使用GUI库 298 12.5 坐标系 299 12.6 Shape 299 12.7 使用形状类 300 12.8 让图形运行起来 308 操作题 309 回顾 309 术语 310 练习题 310 附言 311 第13章 图形类 312 13.1 图形类概览 313 13.2 Point和Line 315 13.3 Lines 316 13.4 Color 318 13.5 Line_style 320 13.6 Open_polyline 322 13.7 Closed_polyline 323 13.8 Polygon 324 13.9 Rectangle 325 13.10 管理未命名对象 328 13.11 Text 329 13.12 Circle 331 13.13 Ellipse 332 13.14 Marked_polyline 334 13.15 Marks 335 13.16 Mark 336 13.17 Images 337 操作题 340 回顾 340 术语 341 练习题 341 附言 342 第14章 设计图形类 343 14.1 设计原则 344 14.2 Shape类 347 14.3 基类和派生类 355 14.4 面向对象程序设计的好处 360 操作题 361 回顾 362 术语 362 练习题 363 附言 364 第15章 绘制函数图和数据图 365 15.1 介绍 366 15.2 绘制简单函数图 366 15.3 Function类 369 15.4 Axis类 373 15.5 近似 375 15.6 绘制数据图 379 操作题 385 回顾 385 术语 386 练习题 386 附言 387 第16章 图形用户界面 388 16.1 用户界面的选择 389 16.2 Next按钮 389 16.3 一个简单的窗口 390 16.4 Button和其他Widget 395 16.5 一个实例 398 16.6 控制流的反转 400 16.7 添加菜单 401 16.8 调试GUI代码 405 操作题 407 回顾 407 术语 407 练习题 408 附言 408 第三部分 数据结构和算法 409 第17章 向量容器和自由存储区 410 17.1 介绍 411 17.2 vector的基础知识 412 17.3 内存、地址和指针 413 17.4 自由存储区和指针 416 17.5 析构函数 422 17.6 访问元素 425 17.7 指向类对象的指针 426 17.8 类型混合:无类型指针和指针类型转换 427 17.9 指针和引用 428 17.10 this指针 434 操作题 437 回顾 438 术语 438 练习题 438 附言 439 第18章 向量容器和数组 440 18.1 介绍 441 18.2 初始化 442 18.3 拷贝 443 18.4 必要的操作 450 18.5 访问vector的元素 453 18.6 数组 455 18.7 示例:回文 462 操作题 465 回顾 466 术语 467 练习题 467 附言 468 第19章 向量容器、模板和异常 469 19.1 问题 470 19.2 改变向量容器大小 472 19.3 模板 477 19.4 范围检查和异常 487 19.5 资源和异常 490 操作题 497 回顾 498 术语 498 练习题 499 附言 500 第20章 容器和迭代器 501 20.1 存储和处理数据 502 20.2 STL理想设计 505 20.3 序列和迭代器 508 20.4 链表 511 20.5 再次泛化vector 514 20.6 示例:一个简单的文本编辑器 517 20.7 vector、list和string 522 20.8 使我们的vector适配STL 525 20.9 使内置数组适配STL 526 20.10 容器概述 527 操作题 530 回顾 530 术语 531 练习题 531 附言 532 第21章 算法和映射容器(map) 533 21.1 标准库算法 534 21.2 最简单的算法:find( ) 535 21.3 通用查找算法:find_if( ) 537 21.4 函数对象 539 21.5 数值算法 542 21.6 关联容器 547 21.7 拷贝操作 555 21.8 排序和查找 559 21.9 容器算法 561 操作题 562 回顾 562 术语 563 练习题 563 附言 564 第四部分 拓宽眼界 565 第22章 理念与历史 566 22.1 历史、理念和专业水平 567 22.2 程序设计语言历史概览 575 回顾 589 术语 590 练习题 591 附言 592 第23章 文本处理 593 23.1 文本 594 23.2 字符串 594 23.3 I/O流 597 23.4 映射容器 598 23.5 一个问题 604 23.6 正则表达式的思想 605 23.7 使用正则表达式进行查找 607 23.8 正则表达式语法 609 23.9 与正则表达式进行模式匹配 616 操作题 619 回顾 620 术语 620 练习题 621 附言 621 第24章 数值计算 622 24.1 介绍 623 24.2 大小、精度和溢出 623 24.3 数组 626 24.4 C风格的多维数组 627 24.5 Matrix库 628 24.6 示例:求解线性方程组 636 24.7 随机数 640 24.8 标准数学函数 642 24.9 复数 644 操作题 645 回顾 645 术语 646 练习题 646 附言 647 第25章 嵌入式系统程序设计 648 25.1 嵌入式系统 649 25.2 基本概念 651 25.3 内存管理 655 25.4 地址、指针和数组 660 25.5 位、字节和字 668 25.6 编码规范 683 操作题 688 回顾 689 术语 690 练习题 691 附言 692 第26章 测试 693 26.1 我们想要什么 694 26.2 证明 695 26.3 测试相关技术 695 26.4 测试方案设计 709 26.5 调试 709 26.6 性能 710 操作题 712 回顾 713 术语 713 练习题 714 附言 714 第27章 C语言 715 27.1 C和C++:兄弟 716 27.2 函数 720 27.3 微小的语言差异 726 27.4 自由存储区 731 27.5 C风格的字符串 733 27.6 输入/输出:stdio 736 27.7 常量和宏 739 27.8 宏 740 27.9 示例:侵入式容器 743 操作题 748 回顾 748 术语 749 练习题 749 附言 750 第五部分 附录 751 附录A 语言摘要 752 A.1 概述 753 A.2 字面值常量 755 A.3 标识符 758 A.4 作用域、存储类别和生命周期 759 A.5 表达式 762 A.6 语句 769 A.7 声明 771 A.8 内置类型 772 A.9 函数 775 A.10 用户自定义类型 777 A.11 枚举 778 A.12 类 778 A.13 模板 788 A.14 异常 791 A.15 命名空间 792 A.16 别名 793 A.17 预处理指令 793 附录B 标准库概要 795 B.1 概述 796 B.2 错误处理 800 B.3 迭代器 801 B.4 容器 804 B.5 算法 811 B.6 STL工具 818 B.7 I/O流 823 B.8 字符串操作 827 B.9 数值 831 B.10 时间 835 B.11 C标准库函数 836 B.12 其他库 842 附录C Visual Studio快速入门 843 C.1 让程序“跑”起来 844 C.2 安装Visual Studio 844 C.3 创建和运行程序 844 C.4 后续学习 846 附录D 安装FLTK 847 D.1 介绍 848 D.2 下载FLTK 848 D.3 安装FLTK 848 D.4 在Visual Studio中使用FLTK 849 D.5 测试是否正常工作 849 附录E GUI实现 851 E.1 回调实现 852 E.2 Widget实现 853 E.3 Window实现 854 E.4 Vector_ref 855 E.5 一个示例:操作Widget 855 术语表 859 |