《C#面向对象程序设计 第2版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:邵鹏鸣编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:7302266341
  • 页数:497 页
图书介绍:本书使用VisualC#2010详细介绍了如何以C#语言进行面向对象编程。

第1章 认识C# 1

1.1 场景引入 1

1.2 什么是.NET 1

1.3 .NET应用程序的编译 2

1.3.1 从用户代码到机器代码 2

1.3.2 中间语言介绍 3

1.4 .NET Framework平台体系结构 3

1.5 C#语言 4

1.6 第一个简单的控制台应用程序 4

1.6.1 任务1.1:打印客户信息 4

1.6.2 独立实践:打印邮寄地址 6

1.7 创建简单的Windows应用程序 7

1.7.1 任务1.2:在对话框中显示客户信息 7

1.7.2 任务1.3:显示图像 8

1.7.3 任务1.4:在文本框中显示客户信息 10

1.7.4 独立实践:显示当前时间 15

1.8 认识使用程序逻辑解决问题 15

1.8.1 程序开发的步骤 15

1.8.2 描述算法的工具 17

任务1.5:计算门票收益和捐款额 17

1.8.3 算法实例 19

任务1.6:数的排序 20

任务1.7:投资计算 20

1.8.4 独立实践:画活动图和指出伪代码 21

1.9 项目实践 21

第2章 基本数据的存储与运算 24

2.1 场景引入 24

2.2 变量与常数 25

2.2.1 变量的含义和作用 25

2.2.2 标识符 25

2.2.3 变量声明 26

任务2.1:计算路程 26

2.2.4 常数 29

2.2.5 独立实践:计算多项式的值 29

2.3 基本数据类型 29

2.3.1 整型 30

任务2.2:产品销售 30

2.3.2 字符数据类型 33

任务2.3:字符检查 33

2.3.3 非整型 36

任务2.4:贷款计算器 37

2.3.4 格式化输出 40

2.3.5 算术运算 41

2.3.6 基本数据类型的相互转换 41

任务2.5:隐式和强制数值转换 43

2.3.7 算术溢出及显式转换溢出 44

任务2.6:算术溢出及显式转换溢出 44

2.3.8 布尔类型 45

任务2.7:数值比较 46

2.3.9 独立实践 46

2.4 项目实践 47

第3章 使用对象存储数据及完成任务 49

3.1 场景引入 49

3.2 类和对象 49

3.3 消息和方法 50

3.4 使用现有的类 51

3.4.1 Form类 51

任务3.1:以编程方式创建窗体 51

3.4.2 Form类的常用属性及方法 53

3.4.3 StringBuilder类 54

任务3.2:文字游戏 54

3.4.4 StringBuilder类的常用属性及方法 57

3.5 创建自己的类 57

3.5.1 创建圆类 57

任务3.3:使用圆类计算圆的面积(版本1) 58

3.5.2 使用set方法和get方法访问字段 63

任务3.4:使用圆类计算圆的面积(版本2) 63

3.5.3 使用可实例化类的贷款计算器 66

任务3.5:贷款计算器(版本2) 66

3.5.4 独立实践 72

3.6 项目实践 72

第4章 程序流控制 73

4.1 场景引入 73

4.2 选择语句 73

4.2.1 if语句 74

任务4.1:计时工人工资的计算(版本1) 74

4.2.2 if…else语句 76

任务4.2:猜数游戏 76

4.2.3 条件运算符 78

任务4.3:显示时间(版本1) 78

4.2.4 if…else if…else语句 80

任务4.4:工资发放(版本1) 81

4.2.5 if语句的嵌套 83

任务4.5:求数的绝对值 83

4.2.6 switch语句 85

任务4.6:计算器(版本1) 86

4.2.7 复合赋值运算符 89

4.2.8 条件逻辑运算符和逻辑运算符 89

4.2.9 独立实践 89

4.3 循环语句 91

4.3.1 while语句 91

任务4.7:计算复利存款(版本1) 91

4.3.2 do...while语句 94

任务4.8:计算复利存款(版本2) 94

4.3.3 for语句 95

任务4.9:打印字母表及对应的ASCII码(版本1) 96

4.3.4 嵌套循环 98

任务4.10:计算销售额 98

4.3.5 独立实践 100

4.4 跳转语句 100

4.4.1 goto语句 100

4.4.2 break语句 103

4.4.3 continue语句 104

4.4.4 运算符的优先级 105

4.5 项目实践 105

第5章 使用数组存储一系列数据 107

5.1 情景引入 107

5.2 数组 107

任务5.1:计算月平均降雨量 108

5.2.1 数组初始化 112

任务5.2:显示月名称 112

5.2.2 可变长度的数组的声明 113

任务5.3:创建可变长度的数组 114

5.2.3 独立实践 115

5.3 多维数组 116

5.3.1 多维数组的声明和创建 117

5.3.2 多维数组初始化 117

5.3.3 实例研究 117

任务5.4:测试二维数组 117

任务5.5:数据查询 119

任务5.6:学生考试成绩统计 121

5.3.4 独立实践 122

5.4 值类型与引用类型 123

5.5 独立实践 126

5.6 项目实践 126

第6章 使用方法完成任务 128

6.1 场景引入 128

6.2 传值方式 129

6.2.1 以传值方式传递值类型参数 129

任务6.1:移动矩形 129

6.2.2 以传值方式传递引用类型参数 134

任务6.2:以传值方式传递数组 134

6.2.3 独立实践 137

6.3 传引用方式 138

6.4 以传引用方式传递值类型参数 138

6.4.1 引用参数(ref参数) 138

任务6.3:调用方法获得多个值(使用ref参数) 139

6.4.2 输出参数(out参数) 140

任务6.4:调用方法获得多个值(使用out参数) 140

6.4.3 ref参数与out参数的比较 142

任务6.5:改变矩形位置 142

6.4.4 独立实践 143

6.5 以传引用方式传递引用类型参数 144

任务6.6:调用方法为实参创建新的对象 144

6.6 独立实践 146

6.7 命名实参 146

任务6.7:投资计算(版本1) 146

6.8 给参数指定默认值 147

任务6.8:投资计算(版本2) 147

6.9 使用可变数目的参数 148

任务6.9平均成绩 149

6.10 项目实践 151

第7章 使用类与对象设计程序 152

7.1 场景引入 152

7.2 类、对象和封装 153

7.3 字段 154

任务7.1:贷款计算器(版本3) 154

7.3.1 常数和只读字段 157

7.3.2 成员访问控制 157

7.4 属性 158

任务7.2:贷款计算器(版本4) 158

7.4.1 类作用域 163

7.4.2 索引器 163

任务7.3:贷款分析 163

7.4.3 属性与字段、属性和方法的比较 168

7.4.4 使用this关键字 169

任务7.4:雇员税金计算 169

7.4.5 独立实践 171

7.5 实例构造函数 171

7.5.1 默认实例构造函数 171

任务7.5:定义Person类 172

7.5.2 默认初始化字段 173

7.5.3 显式初始化字段 173

7.5.4 实例构造函数声明 174

任务7.6:定义矩形(版本1) 174

7.5.5 独立实践 177

7.6 实例构造函数重载 177

7.6.1 使用重载的实例构造函数 177

任务7.7:定义矩形(版本2) 177

7.6.2 调用同类中的其他构造函数 179

任务7.8:定义矩形(版本3) 179

7.6.3 独立实践 180

7.7 静态成员与实例成员 180

7.7.1 静态字段和实例字段 180

任务7.9:自动编号 180

7.7.2 静态构造函数 182

任务7.10:自动编号从随机整数开始 182

7.7.3 静态方法 183

7.7.4 静态成员和实例成员的特征 183

7.7.5 独立实践 184

7.8 以对象为参数与以返回值为对象 185

7.8.1 以对象为参数 185

任务7.11:放大矩形 185

任务7.12:以传引用方式传递对象参数 187

7.8.2 以返回值为对象 187

任务7.13:放大矩形的副本 187

7.8.3 独立实践 189

7.9 方法的重载 189

7.9.1 任务7.14:定义矩形(版本4) 189

7.9.2 独立实践:查找数据 191

7.10 使用ArrayList类 191

任务7.15:地址簿 191

7.10.1 ArrayList类的常用属性 196

7.10.2 ArrayList类的常用方法 196

7.11 项目实践 197

第8章 使用继承重用代码 199

8.1 场景引入 199

8.2 直接基类与派生类 200

8.2.1 任务8.1:定义基类Person 200

8.2.2 任务8.2:定义派生类Student(版本1) 201

8.2.3 独立实践 203

8.3 派生类实例构造函数声明 203

任务8.3:复数加法 203

8.3.1 运算符重载 204

任务8.4:复数减法 205

8.3.2 显式调用直接基类实例构造函数 208

任务8.5:调用基类实例构造函数 209

8.3.3 独立实践 209

8.4 隐藏从基类继承的成员 210

任务8.6:隐藏继承字段 210

8.5 含直接基类构造函数的构造函数声明 211

8.5.1 任务8.7:定义派生类Student(版本2) 211

8.5.2 独立实践 212

8.6 虚拟方法与重写方法 213

任务8.8:销售员工资系统(版本1) 213

8.6.1 继承中构造函数的执行过程 223

8.6.2 重载、重写和隐藏的比较 224

8.6.3 独立实践 225

8.7 垃圾回收和析构函数 225

8.7.1 使用析构函数 226

任务8.9:保存状态信息 226

8.7.2 声明派生类的析构函数 227

任务8.10:保存雇员状态信息 227

8.8 项目实践 228

第9章 实现多态性 230

9.1 场景引入 230

9.2 抽象方法与抽象类 231

9.2.1 抽象方法和抽象属性 231

任务9.1:雇员工资系统 231

9.2.2 抽象类继承 237

任务9.2:多态性及实现 237

9.2.3 独立实践:绘制图形 242

9.3 接口 243

9.3.1 声明和实现接口 243

任务9.3:创建和使用接口 244

9.3.2 独立实践:比较对象 247

9.3.3 接口成员的显式实现 248

任务9.4:用接口实现不同的度量衡系统 248

9.3.4 接口和抽象类 249

任务9.5:薪水发放系统 250

9.3.5 接口与抽象类的比较 255

9.4 使用委托封装方法 256

9.4.1 使用委托 256

任务9.6:使用委托处理数据 256

9.4.2 组合委托 259

任务9.7:使用组合委托实现运算 260

9.4.3 独立实践:配送系统 261

9.4.4 实例研究 262

任务9.8:用委托排序数组 262

9.5 使用匿名函数创建委托 265

9.5.1 使用匿名方法创建委托 265

任务9.9:使用匿名方法改写程序 265

9.5.2 使用Lambda创建委托 268

任务9.10:使用匿名表达式改写程序 268

9.5.3 独立实践:存货清单 272

9.6 实例研究 272

任务9.11:停销产品处理 272

9.7 事件 277

9.7.1 自定义事件 278

任务9.12:密码监听器 278

9.7.2 声明持有事件数据的类 281

9.7.3 使用匿名函数创建事件处理程序 283

9.7.4 逆变和协变 284

9.7.5 独立实践:监视库存量 285

9.8 项目实践 286

第10章 创建GUI程序和数据库应用程序 287

10.1 场景引入 287

10.2 滚动条 287

任务10.1:调色板 288

10.2.1 滚动条常用属性 290

10.2.2 滚动条常用事件 291

10.2.3 用户定义的颜色 291

10.2.4 独立实践 292

10.3 事件及事件处理程序 292

任务10.2:计算器 293

10.3.1 Button按钮的常用属性 298

10.3.2 Button按钮的常用事件 299

10.3.3 独立实践 299

10.4 复选框和单选按钮 299

任务10.3:Font程序 299

10.4.1 如何设置字体 302

10.4.2 复选框的常用属性 302

10.4.3 复选框的常用事件 303

10.4.4 单选按钮的常用属性 303

10.4.5 单选按钮的常用事件 303

10.4.6 独立实践 303

10.5 Connection对象和Command对象 303

10.5.1 Connection对象 304

任务10.4:创建并打开一个到SQL Server的连接 304

10.5.2 Command对象 306

任务10.5:操作数据库 306

10.5.3 独立实践:修改库存量 307

10.6 使用SqlDataReader 307

10.6.1 任务10.6:雇员信息管理 308

10.6.2 独立实践:浏览产品表 319

10.7 创建三层应用程序 319

10.7.1 任务10.7:增强雇员信息管理程序 320

10.7.2 独立实践:修改产品表 325

10.8 PictureBox图片框控件 325

10.8.1 任务10.8:雇员相片管理 326

10.8.2 PictureBox的常用属性 329

10.8.3 PictureBox的常用事件 329

10.8.4 Image.FromFile方法 329

10.8.5 独立实践:图片幻灯机 330

10.9 组合框控件和文本框控件 330

任务10.9:登录程序 330

10.9.1 ComboBox的常用属性和方法 334

10.9.2 组合框控件的常用事件 337

10.9.3 TextBox的常用属性 337

10.9.4 TextBox的常用事件 339

10.9.5 独立实践:产品的查询 339

10.10 列表框 339

任务10.10:产品信息管理 340

10.10.1 列表框控件的常用属性 355

10.10.2 列表框控件的常用方法 356

10.10.3 列表框控件的常用事件 357

10.10.4 独立实践:客户信息管理 357

10.11 带复选框的列表框 358

任务10.11:购买产品 358

10.11.1 复选列表框控件的常用属性 361

10.11.2 复选列表框控件的常用方法和事件 361

10.12 项目实践 361

第11章 使用ADO.NET进行数据库编程 363

11.1 场景引入 363

11.2 数据表DataTable 364

任务11.1:客户信息管理 365

11.3 数据集和数据适配器 374

11.3.1 通过数据集更新数据源 374

任务11.2:客户信息管理(版本1) 375

11.3.2 将数据集绑定到DataGridView控件 389

任务11.3:以浏览方式管理客户信息 389

11.3.3 行状态与行版本 391

11.3.4 独立实践:产品信息管理 392

11.4 Windows窗体中的数据绑定 392

11.4.1 简单绑定控件属性 392

任务11.4:类别信息管理(版本1) 392

11.4.2 使用CurrencyManager 398

11.4.3 独立实践:客户信息管理(版本2) 399

11.5 创建和使用数据视图 399

11.5.1 使用数据视图查询数据 399

任务11.5:类别信息管理(版本2) 399

11.5.2 数据视图的常用属性及方法 404

11.5.3 独立实践:客户及其订单管理(版本1) 405

11.6 DataRelation对象 405

11.6.1 创建DataRelation对象 406

11.6.2 导航表间的关系 409

11.6.3 独立实践:客户及其订单管理(版本2) 410

11.7 项目实践 410

第12章 与用户交互 411

12.1 场景引入 411

12.2 菜单 411

12.2.1 创建菜单 411

任务12.1:随机画矩形 412

12.2.2 Timer控件 415

12.2.3 ToolStripMenuItem的常用属性 416

12.2.4 快捷菜单 416

任务12.2:实现快捷菜单 417

12.2.5 独立实践:数学学习工具 418

12.3 鼠标事件 418

任务12.3:用鼠标画直线和画矩形 418

12.3.1 鼠标事件 422

12.3.2 鼠标事件发生顺序 423

12.3.3 独立实践:创建迷宫游戏 423

12.4 键盘事件处理 423

12.4.1 任务12.4:用箭头键移动字符 424

12.4.2 独立实践 427

12.5 通用对话框 427

12.5.1 打开文件对话框 427

任务12.5:打开文件 427

12.5.2 保存文件对话框 430

任务12.6:保存文件 430

12.5.3 字体对话框 432

任务12.7:改变文本的字体 432

12.5.4 颜色对话框 433

任务12.8:改变文本颜色 433

12.5.5 独立实践:图片查看器(版本1) 434

12.6 编写多文档界面应用程序 434

12.6.1 任务12.9:字处理器 435

12.6.2 独立实践:图片查看器(版本2) 444

12.7 项目实践 444

第13章 用流进行文件输入和输出 445

13.1 场景引入 445

13.2 文件与流 446

13.2.1 FileStream 446

任务13.1:使用FileStream 446

任务13.2:将图像文件存入数据库 448

任务13.3:从数据库读取Image类型数据并保存为图像文件 450

13.2.2 随机访问文件 451

任务13.4:定位操作 452

13.2.3 向文件追加数据 453

任务13.5:向文件追加数据 453

13.2.4 独立实践:文件复制 454

13.3 内存和缓冲流 454

任务13.6:显示图像 454

13.4 StreamReader和StreamWriter 456

13.4.1 任务13.7:电话号码簿 456

13.4.2 独立实践:处理成绩(版本1) 459

13.5 二进制读取器和写出器 459

13.5.1 任务13.8:学生名册 459

13.5.2 独立实践:处理成绩(版本2) 462

13.6 序列化对象 462

13.6.1 任务13.9:序列化对象 462

13.6.2 独立实践:贷款计算 464

13.7 可视化继承 464

任务13.10:创建基窗体 464

任务13.11:创建可视继承窗体 466

13.8 顺序访问文件 467

13.8.1 任务13.12:产品类别管理程序 467

13.8.2 独立实践:联系人信息管理(版本1) 478

13.9 随机存取文件 478

13.9.1 任务13.13:产品供应商管理程序 478

13.9.2 独立实践:联系人信息管理(版本2) 487

13.10 使用序列化对象存储数据 487

13.10.1 任务13.14:产品管理程序 487

13.10.2 独立实践:联系人信息管理(版本3) 497

13.11 项目实践 497