《探秘C# 如何像计算机科学家一样思考》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:张平编
  • 出 版 社:杭州:浙江大学出版社
  • 出版年份:2005
  • ISBN:7308041425
  • 页数:461 页
图书介绍:本书1至14章为C#语言基础部分,循序渐进地介绍C#语言的各种要素,15至21章为数据结构部分,第22章简单介绍了图形编程和窗口编程。

第1章 按部就班的方式 1

1.1 什么是程序语言 1

1.2 什么是程序 4

1.3 什么是调试 5

1.4 形式化语言和自然语言 7

1.5 第一个程序 9

1.6 术语 10

1.7 练习 12

第2章 变量和类型 14

2.1 再打印一些东西 14

2.2 变量 16

2.3 赋值 17

2.4 打印变量 18

2.5 关键字 20

2.6 操作符 21

2.7 操作符的执行顺序 22

2.8 对字符串的操作 23

2.9 组合句 23

2.10 术语 24

2.11 练习 25

第3章 方法 27

3.1 浮点数 27

3.2 把double类型转换成int类型 29

3.3 数学函数 30

3.4 组合 31

3.5 自己编写新方法 31

3.6 类和方法 34

3.7 具有多个方法的程序 35

3.8 形式参数和实际参数 36

3.9 堆栈状态图 38

3.10 具有多个参数的方法 38

3.11 具有结果的方法 39

3.12 术语 40

3.13 练习 40

第4章 条件和递归 43

4.1 模除运算 43

4.2 条件执行 44

4.3 选择执行 45

4.4 链式条件 46

4.5 嵌套条件 46

4.6 返回语句 47

4.7 类型转换 48

4.8 递归 48

4.9 递归调用方法的堆栈图 50

4.10 惯例和神圣规则 51

4.11 术语 52

4.12 练习 53

第5章 “开花结果”的方法 56

5.1 返回值 56

5.2 逐渐“生长”的程序 58

5.3 组合 61

5.4 重载 62

5.5 布尔函数 63

5.6 逻辑运算符 64

5.7 布尔方法 65

5.8 递归的例子 66

5.9 确信跳跃 69

5.10 另一个递归例子 69

5.11 术语 70

5.12 练习 71

第6章 重复 76

6.1 变量的多次赋值 76

6.2 重复 77

6.3 while语句 78

6.4 表格 79

6.5 两维表 82

6.6 封装和泛化 82

6.7 方法 84

6.8 进一步封装 84

6.9 局部变量 85

6.10 进一步泛化 86

6.11 术语 88

6.12 练习 89

第7章 字符串和其他 92

7.1 字符串类型 92

7.2 从字符串中提取字符 93

7.3 长度 94

7.4 遍历 95

7.5 运行错误 96

7.6 阅读说明文档 96

7.7 IndexOf方法 97

7.8 循环和计数 98

7.9 加一和减一操作符 99

7.10 字符的算术 100

7.11 不可更改的字符串 102

7.12 字符串之间的比较 103

7.13 术语 104

7.14 练习 105

第8章 结构 110

8.1 乏味的字符串 110

8.2 组合数据 110

8.3 点(Point)结构 111

8.4 对实例变量的存取 112

8.5 把对象作为参数 113

8.6 参数的值传递 114

8.7 参数的引用传递 115

8.8 矩形(Rectangle)结构 117

8.9 从方法中返回结构 118

8.10 以引用传递的方式传递其他类型的参数 119

8.11 程序执行时的输入 120

8.12 术语 123

8.13 练习 124

第9章 更多的结构 127

9.1 时间(Time)结构 127

9.2 构造器 128

9.3 生成新对象 130

9.4 打印结构 131

9.5 数据封装与属性成员 131

9.6 方法作用的分类 135

9.7 无瑕作用 135

9.8 改动作用 137

9.9 填入作用 138

9.10 哪一种更好 139

9.11 发展型风格vs规划型风格 139

9.12 进一步思考时间结构 141

9.13 更好的Time结构 141

9.14 算法 144

9.15 结构与简单类型 144

9.16 术语 147

9.17 练习 147

第10章 数组 152

10.1 数组元素的存取 154

10.2 数组的拷贝 155

10.3 空引用与垃圾回收机制 156

10.4 for循环 158

10.5 数组长度 159

10.6 随机数 159

10.7 随机数数组 160

10.8 计数 162

10.9 频率直方图 163

10.10 一次遍历解决问题 164

10.11 素数 165

10.12 快速获得素数 166

10.13 哥德巴赫猜想 169

10.14 二维数组 172

10.15 扫雷游戏中的数组 173

10.16 扫雷游戏的初始化(1) 175

10.17 扫雷游戏的初始化(2) 177

10.18 扫雷游戏的初始化(3) 181

10.19 扫雷游戏过程的分步模拟 184

10.20 扫雷游戏过程的合成 189

10.21 锯齿数组与哥德巴赫猜想 195

10.22 术语 198

10.23 练习 198

第11章 对象数组 203

11.1 各种组合 203

11.2 扑克牌对象 203

11.3 PrintCard方法 205

11.4 IsSameCard方法 207

11.5 CompareCard方法 208

11.6 扑克牌数组 210

11.7 寻找和搜索 211

11.8 一整副牌和一部分牌 215

11.9 术语 216

11.10 练习 216

第12章 数组对象 218

12.1 枚举(Enumerate)类型的纸牌 218

12.2 选择(switch)语句 221

12.3 类的定义和对象类型 223

12.4 Deck(一副纸牌)类 224

12.5 洗牌 227

12.6 选择排序 228

12.7 一手牌(一部分牌) 229

12.8 洗牌和发牌 230

12.9 混合排序(Mergesort) 231

12.10 “配对”纸牌游戏 233

12.11 从一手牌中删除指定的一张牌 234

12.12 从一手牌中删除配对的两张牌 236

12.13 游戏的基本操作单元 239

12.14 由计算机来“玩”配对游戏 241

12.15 术语 244

12.16 练习 244

第13章 面向对象程序设计 247

13.1 程序设计语言及风格 247

13.2 对象方法和类方法 248

13.3 当前对象 248

13.4 介绍一种对象——复数对象 248

13.5 第一个复数方法 250

13.6 另一个复数方法 251

13.7 具有改动作用的方法 252

13.8 打印复数 253

13.9 引用类型的对象 253

13.10 别名和引用 255

13.11 空引用 258

13.12 相同 259

13.13 操作符重载:“==”和“+” 261

13.14 在对象方法里调用对象方法 262

13.15 小心无大错 262

13.16 引用类型的特点 263

13.17 术语 264

13.18 练习 265

第14章 继承 266

14.1 继承 266

14.2 从复数(Complex)继承 266

14.3 ComplexSon类 269

14.4 属性 270

14.5 复数的显示输出 271

14.6 复数的加法 272

14.7 复数的乘法 273

14.8 标志符的四种访问特性 275

14.9 程序(工程)与命名空间 277

14.10 类的层级 279

14.11 术语 280

14.12 练习 280

第15章 链表 281

15.1 对象的引用 281

15.2 节点(Node)类 281

15.3 链表是聚集器 284

15.4 链表与递归 286

15.5 无穷链表 287

15.6 原义含糊定理 288

15.7 针对节点的对象方法 289

15.8 改动链表 289

15.9 “外包装”和“内贤助” 291

15.10 IntList类 291

15.11 真实量 293

15.12 术语 294

15.13 练习 294

第16章 堆栈 296

16.1 抽象数据结构 296

16.2 抽象数据结构——堆栈 297

16.3 C#堆栈对象 297

16.4 装箱与拆箱 300

16.5 值类型数据进出堆栈 302

16.6 后缀表达式 303

16.7 语法分析 304

16.8 抽象数据结构的实施 308

16.9 运用数组来实施堆栈 309

16.10 变动数组大小 310

16.11 老鼠探迷宫 312

16.12 “建造”迷宫 313

16.13 在方格怎么“摸索”行走 315

16.14 怎样找到迷宫的通路 318

16.15 迷宫游戏的“序”与“跋” 320

16.16 术语 323

16.17 练习 324

第17章 队列和优先队列 327

17.1 队列抽象数据结构 328

17.2 装饰板 330

17.3 链接型队列 332

17.4 循环缓冲区 334

17.5 队列的应用——颜色区域的选择 338

17.6 优先队列 342

17.7 接口 343

17.8 优先队列的数组实施 343

17.9 使用优先队列 345

17.10 高尔夫球手记分类 347

17.11 术语 349

17.12 练习 350

第18章 树 352

18.1 树的节点 352

18.2 创建树对象 353

18.3 周游一棵树 354

18.4 表达式树 355

18.5 树的遍历 356

18.6 对象封装 359

18.7 定义IVisitable接口 360

18.8 IVisitable接口的实施 361

18.9 矢量类(ArrayList) 362

18.10 IEnumerator(巡流)类 364

18.11 多态性与虚方法 366

18.12 抽象类与封闭类 369

18.13 接口 372

18.14 建立表达式树 373

18.15 树、森林和二叉树 379

18.16 术语 382

18.17 练习 383

第19章 堆 385

19.1 用数组来实施树 386

19.2 算法占用资源的分析 390

19.3 混合排序的分析 392

19.4 附加消耗 394

19.5 优先队列的实施 395

19.6 堆的定义 396

19.7 从堆中删除元素 398

19.8 向堆中添加元素 399

19.9 堆中操作的时间特性 400

19.10 堆排序 401

19.11 术语 402

19.12 练习 402

第20章 映射表 404

20.1 数组、矢量与映射表 404

20.2 映射表抽象数据结构 405

20.3 内置的哈希表 405

20.4 用矢量实施映射表 409

20.5 映射表索引器 412

20.6 链表(IList)接口 413

20.7 哈希表的实施 413

20.8 哈希函数 414

20.9 哈希表的伸缩 416

20.10 哈希表伸缩的时间特性 417

20.11 术语 417

20.12 练习 418

第21章 哈夫曼码 421

21.1 变长码 421

21.2 字母频率表 422

21.3 哈夫曼树 424

21.4 base方法 427

21.5 解码 429

21.6 编码 430

21.7 术语 431

第22章 图形 433

22.1 画板和图形对象 433

22.2 调用各种作图方法 435

22.3 坐标系 437

22.4 米老鼠的脸 438

22.5 另外的绘图命令 439

22.6 分形的米老鼠 440

22.7 艺术图形作品——花边图案 442

22.8 练习 444

附录A 与C#环境混个脸熟 448

A.1 下载和安装C#语言 448

A.2 下载和安装SciTE 451

A.3 配置SciTE 451

A.4 SciTE的功能 453

A.5 下载安装和第一次使用SharpDevelop 455

附录B 练习分析与解答 460

附赠光盘内容 461