|
編輯推薦: |
学习C#语言的经典教材之一:
*提供了很多的基础的、覆盖面很广的实例。
*各类性能提示与编程提示。
*介绍C#6中的新功能,函数式编程。
*介绍了C11标准的功能。
|
內容簡介: |
本书是一本C#编程方面的优秀教材。在第五版的基础上,全书根据*的C# 6规范进行了更新。除了讲解面向对象编程的类与对象、方法、控制语句、数组、继承、多态、异常处理、GUI、字符串和字符、文件和流、搜索与排序、泛型、集合、数据库等基本概念,还重点介绍了C# 6中新包含的功能,比如字符串插值、索引初始值设定项、null条件运算符等,并且专门讲解了函数式编程的相关特点。
|
關於作者: |
Paul Deitel和Harvey Deitel是全球畅销的编程语言教材和专业图书作家,How to Program系列是其最负盛名的一套计算机编程教材,已经销售近40年,并被翻译成中文在内的十几种语言。他们成立的Deitel & Associates公司是一家国际知名的企业培训和写作公司,专门进行计算机编程语言、对象技术、移动应用开发及Internet和Web软件技术方面的培训和写作,出版了一流的编程专业的大学教材、 专业图书以及LiveLessons视频课程。
张君施,北京工商大学数理系副教授,党支部书记。研究方向为概率论与数理统计、计算机语言,翻译过多部经典编程教材。
|
目錄:
|
目录
第1章计算机、Internet和Visual C#简介1
1.1简介1
1.2在行业和研究领域的计算机与Internet2
1.3硬件和软件3
1.4数据层次4
1.5机器语言、汇编语言和高级语言6
1.6对象技术7
1.7Internet和WWW9
1.8C#10
1.9Microsoft的 .NET13
1.10Windows操作系统14
1.11Visual Studio集成开发环境15
1.12在Visual Studio Community中测试Painter程序15
自测题17
自测题答案18
练习题19
挑战题20
与挑战题相关的资源21
第2章Visual Studio和可视化编程简介22
2.1简介22
2.2Visual Studio Community 2015 IDE概述22
2.3菜单栏和工具栏26
2.4Visual Studio IDE概览27
2.5Help菜单与上下文相关帮助30
2.6可视化编程:创建显示文本和图像的简单程序30
2.7小结36
2.8Web资源36
摘要37
术语表38
自测题38
自测题答案39
练习题39
第3章C#编程入门43
3.1简介44
3.2一个简单程序:显示一行文本44
3.3在VIsual Studio中创建简单的程序48
3.4修改C#程序52
3.5字符串插值54
3.6另一个C#程序:整数相加54
3.7内存概念57
3.8算术运算58
3.9判断:相等性运算符与关系运算符60
3.10小结64
摘要64
术语表66
自测题67
自测题答案68
练习题70
挑战题73
第4章类、对象、方法和string简介74
4.1简介75
4.2测试一个Account类75
4.3包含实例变量、Set方法和Get方法的Account类77
4.4创建、编译和运行带两个类的Visual C#项目81
4.5包含Set方法和Get方法的软件工程82
4.6具有属性而不是Set方法和Get方法的Account类82
4.7自动实现的属性85
4.8Account类:用构造函数初始化对象86
4.9具有余额的Account类以及货币值处理88
4.10小结92
摘要93
术语表96
自测题97
自测题答案97
练习题98
挑战题99
第5章算法设计与控制语句1100
5.1简介101
5.2算法101
5.3伪代码101
5.4控制结构102
5.5if单选择语句103
5.6ifelse双选择语句104
5.7Student类:嵌套ifelse语句107
5.8while循环语句109
5.9形成算法:计数器控制循环110
5.10形成算法:标记控制循环113
5.11形成算法:嵌套控制语句118
5.12复合赋值运算符121
5.13增量运算符和减量运算符122
5.14简单类型124
5.15小结124
摘要125
术语表127
自测题128
自测题答案129
练习题130
挑战题135
第6章控制语句2137
6.1简介138
6.2计数器控制循环的实质138
6.3for循环语句139
6.4使用for语句的示例141
6.5程序:对偶数求和142
6.6程序:复利计算143
6.7dowhile循环语句145
6.8switch多选择语句146
6.9AutoPolicy类案例分析:switch语句中的字符串150
6.10break和continue语句152
6.11逻辑运算符153
6.12结构化编程小结158
6.13小结161
摘要161
术语表163
自测题164
自测题答案165
练习题166
挑战题169
第7章方法:深入探究170
7.1简介171
7.2C#的代码包装171
7.3静态方法、静态变量和Math类172
7.4声明多参数方法174
7.5关于方法使用的说明177
7.6实参提升与强制转换178
7.7.NET Framework类库179
7.8案例分析:随机数生成方法181
7.9案例分析:机会游戏引入枚举184
7.10声明的作用域188
7.11方法调用栈与活动记录190
7.12方法重载193
7.13可选参数194
7.14命名参数195
7.15C# 6的表达式方法和属性196
7.16递归196
7.17值类型与引用类型199
7.18按值与按引用传递实参199
7.19小结202
摘要202
术语表207
自测题207
自测题答案209
练习题210
挑战题215
第8章数组以及异常处理简介216
8.1简介217
8.2数组217
8.3声明和创建数组218
8.4数组使用示例219
8.5用数组分析汇总结果以及异常处理226
8.6案例分析:模拟洗牌和发牌228
8.7将数组和数组元素传入方法232
8.8案例分析:GradeBook类用数组保存成绩233
8.9多维数组237
8.10案例分析:使用矩形数组的GradeBook类241
8.11变长实参表245
8.12使用命令行实参246
8.13选修按值与按引用传递数组248
8.14小结251
摘要251
术语表254
自测题254
自测题答案255
练习题256
拓展内容:建立自己的计算机262
挑战题267
第9章LINQ和List集合简介268
9.1简介268
9.2用LINQ查询int数组269
9.3用LINQ查询Employee对象数组272
9.4集合276
9.5用LINQ查询泛型List集合279
9.6小结281
9.7Deitel的LINQ资源中心282
摘要282
术语表284
自测题284
自测题答案284
练习题284
第10章类与对象:深入探究286
10.1简介286
10.2Time类案例分析以及抛出异常287
10.3控制对成员的访问290
10.4用this引用访问当前对象的成员290
10.5Time类案例分析:重载构造函数292
10.6默认构造函数和无参数构造函数296
10.7组合297
10.8垃圾回收与析构函数299
10.9静态类成员300
10.10只读实例变量302
10.11Class View与Object Browser303
10.12对象初始值设定项304
10.13运算符重载以及struct简介305
10.14Time类案例分析:扩展方法308
10.15小结310
摘要310
术语表313
自测题313
自测题答案313
练习题314
第11章面向对象编程:继承316
11.1简介316
11.2基类与派生类317
11.3protected成员318
11.4基类与派生类的关系319
11.5派生类的构造函数333
11.6继承与软件工程333
11.7object类334
11.8小结334
摘要335
术语表336
自测题336
自测题答案337
练习题337
第12章面向对象编程:多态与接口339
12.1简介339
12.2多态示例340
12.3演示多态行为341
12.4抽象类和抽象方法343
12.5案例分析:使用多态的工资系统345
12.6sealed方法和类355
12.7案例分析:创建和使用接口356
12.8小结362
摘要362
术语表364
自测题364
自测题答案364
练习题365
挑战题366
第13章异常处理:深入探究367
13.1简介368
13.2示例:除数为0不用异常处理368
13.3示例:处理DivideByZeroException和FormatException异常370
13.4.NET的Exception层次374
13.5finally语句块375
13.6using语句380
13.7Exception属性381
13.8用户定义异常类384
13.9检验空引用以及C# 6的?.运算符387
13.10异常过滤器与C# 6的when子句389
13.11小结389
摘要389
术语表392
自测题392
自测题答案393
练习题393
第14章图形用户界面与Windows窗体1395
14.1简介395
14.2Windows窗体396
14.3事件处理398
14.4控件的属性和布局403
14.5标签、文本框和按钮406
14.6组框和面板408
14.7复选框和单选钮410
14.8图形框416
14.9工具提示418
14.10数字上下控件419
14.11鼠标事件处理420
14.12键事件处理422
14.13小结424
摘要424
术语表428
自测题429
自测题答案429
练习题430
挑战题431
第15章图形用户界面与Windows窗体2433
15.1简介433
15.2菜单434
15.3MonthCalendar控件440
15.4DateTimePicker控件441
15.5LinkLabel控件443
15.6ListBox控件446
15.7CheckedListBox控件449
15.8ComboBox控件450
15.9TreeView控件453
15.10ListView控件457
15.11TabControl控件462
15.12多文档界面MDI窗口465
15.13可视化继承470
15.14用户定义的控件474
15.15小结476
摘要476
术语表479
自测题480
自测题答案480
练习题481
第16章字符串和字符:深入探究483
16.1简介483
16.2字符和字符串基础484
16.3string构造函数484
16.4string索引器、Length属性和CopyTo方法485
16.5字符串比较487
16.6查找字符串中的字符和子串489
16.7抽取字符串中的子串491
16.8拼接字符串492
16.9其他的string方法492
16.10StringBuilder类493
16.11StringBuilder类的Length属性、Capacity属性、EnsureCapacity方法 以及索引器494
16.12StringBuilder类的Append和AppendFormat方法495
16.13StringBuilder类的Insert、Remove和Replace方法497
16.14几个Char方法499
16.15在线正则表达式处理简介501
16.16小结501
摘要501
术语表503
自测题503
自测题答案504
练习题504
挑战题504
第17章文件和流506
17.1简介5
|
內容試閱:
|
译 者 序
本书是全球知名的计算机编程语言作家Deitel父子编写的讲解Visual C#编程的一部著作。在上一版的基础上,全书根据C# 6规范进行了更新,重点突出规范中涉及的新功能,以充分利用C#强大的编程能力。本书以作者独有的活代码方法,详细讲解了面向对象编程和Visual C#编程。在介绍每一项功能时,都以一个能在真实环境下执行的程序体现,并且每一个程序都给出了最终的执行结果。这就是活代码的精髓所在。对于初学者而言,这种眼见为实的方式,能极大地加深对Visual C#编程的理解。
本书内容根据Microsoft的Visual Studio Community 2015 版本进行了更新,以体现其新增加的功能和特性。同时,书中各章的组织结构安排非常合理,以适应从初学者到中高级C#程序员的学习需求。
从大的模块来看,本书可分为几个部分,具体为:Visual C#简介共2章,C#基础知识共6章,面向对象编程共5章,Windows 窗体GUI共2章,字符串与文件共2章,搜索、排序和泛型数据结构共4章、数据库操作共1章,异步编程共1章。为了缩减篇幅,其中的一些高级内容放在了本书的配套网站上。
具体到每一章,则讲解了面向对象编程和Visual C#编程所涉及的类、对象、方法、字符串与字符、控制语句、数组、继承、多态、异常处理、UML、Windows 窗体与GUI 设计、文件处理、数据搜索与排序、数据结构、泛型、集合、LINQPLINQ函数式编程、数据库、异步编程等。书中给出的示例带有很强的趣味性,比如纸牌游戏程序、学生成绩统计程序等,使读者在学习过程中不会感到枯燥。挑战题部分给出的习题则具有很强的现实性,比如肥胖问题、全球变暖问题、碳排放问题等,从而让学生逐渐适应将所学知识应用于现实生活中。
书中关于C# 6新功能的讲解,穿插在常规内容的介绍中。这些新功能包括:字符串插值、表达式方法、自动属性初始值设定项、nameof运算符、null条件运算符?.和?[ ]、捕获异常的when子句、using static指令、用于具有Add扩展方法的任何集合的集合初始值设定项、索引初始值设定项等,它们是实现快速编程的利器,应充分掌握。
本书的译者有着多年程序开发和数据库系统设计、管理、维护工作的经验。全书的相关术语,尤其是一些专业术语的译法,由北京工商大学张君施副教授负责制订标准。具体的翻译分工如下:前言及中英文术语对照表由张君施翻译,第1~4章由李剑渊翻译,第5~9章由卜静翻译,第10~15章由隆冬翻译,第16~20章由洛基山翻译,第21~23章及附录由张君施翻译。全书最后由洛基山负责统稿。
由于本书翻译时间紧且由多人共同完成,再加上许多新出现的专业术语还没有公认的译法,因此译稿中如有不妥之处,恳请广大读者批评指正。译者的联系方式为bambo.zhang@gmail.com。
译 者
2018 年10月于加拿大
前 言
欢迎进入采用Microsoft的Visual C#编程语言来开发桌面、移动和Web程序的世界。本书以C# 6以及相关的Microsoft软件技术为基础 ,利用 .NET平台以及Visual Studio集成开发环境,可以方便地编写、测试和调试程序,并让它们在Windows设备上运行。Windows操作系统可运行于台式机和笔记本电脑、移动电话、平板电脑、游戏系统以及与物联网相关的大量设备上。
我们相信,本书以及为学生和教师提供的配套资料,将使Visual C#的讲解变得内容丰富、全面、充满挑战且具娱乐性。全书讲解的前沿计算技术,适合相关专业的大学课程体系,它们是两个主要的专业组织ACM和IEEE推荐的课程体系 。
书中讲解了当前最流行的4种编程思想:
? 面向对象编程
? 结构化编程
? 泛型编程
? 函数式编程这一版本新增
在阅读本书之前,可以先浏览一下业内人士对于本书的评价见本书封底,它们精确地概述了本书的精髓。随后通过本书将为学生、教师以及专业人士提供更多的详细信息。
本书的核心是作者独创的活代码方法C#中的编程思想是在完全可工作的程序环境下给出的,并且提供了运行结果,而不是使用代码片段。书中的示例程序和练习题取材广泛,它们来自计算机科学、商业、教育、社会问题、个人设备、体育运动、数学、拼图游戏、仿真、博弈游戏、图形、多媒体以及许多其他领域。本书还提供了大量的表格、线状图和UML类图,从而提供更为可视化的学习体验。
前言后面的学前准备部分,给出了如何将计算机设置成能够运行书中数百个代码示例的说明,并指导如何自己开发C#程序。书中的代码示例可从如下网站下载 :
和
利用这些源代码,可编译和运行每一个程序这有助于读者更快、更深入地精通Visual C#以及相关的Microsoft技术。书中的大多数示例,都能够运行于Windows 7810没有9系统的Visual Studio下。本书在线章节中的通用Windows平台UWP和XAML的代码示例,则要求运行于Windows 10系统下。
联系作者
在学习本书的过程中,如果有任何问题,可发邮件至
我们会及时回复。
加入Deitel & Associates公司的社交圈
关于本书的更新,可访问:
还可以订阅作者的Deitel Buzz Online新闻组:
作者的社交媒体如下:
? Facebookhttp:facebook.comDeitelFan
? LinkedInhttp:linkedin.comcompanydeitel-&-associates
? YouTubehttp:youtube.comDeitelTV
? Twitterhttp:twitter.comDeitel
? Instagramhttp:instagram.comDeitelFan
? Google http:google.com DeitelFan
尽早讲解对象
本书在第1章就讲解了面向对象编程的基本概念和术语。在第2章就允许读者可视化地操纵对象,比如标签和图形。第3章介绍C#编程,将编写操作已有对象的Visual C#程序。第4章中则会首次创建定制化的类和对象。尽早讲解对象和类,可以使读者立即以对象的思维进行思考,并且能更全面地理解这些概念。
这种尽早讲解对象的思想,一直持续到第5~9章,它们给出了各种简单直接的案例分析。第10~12章中,将深入探究类和对象,讲解继承、接口和多态,然后将这些概念应用于接下来的各章中。
C# 6新的语言特性
全书都会讲解C# 6新的语言特性见图1只要涉及一个新特性,本书页边会以文本6进行标注,如本段左侧所示。
C# 6新的语言特性 相关章节
字符串插值 3.5节
表达式方法和get访问器 7.15节
自动属性初始值设定项 8.6.1节
只读自动实现的属性 8.6.1节
nameof运算符 10.5.1节
Null条件运算符?. 13.9.1节
捕获异常的when子句 13.10节
using static指令 21.3.1节
null条件运算符?[ ] 21.6节
用于具有Add扩展方法的任何集合的集合初始值设定项 21.7节
索引初始值设定项 21.7节
图1 C# 6新的语言特性
充满趣味性、娱乐性和挑战性的练习题
本书包含数百个练习题,用于实践所学技巧。为便于自学,书中给出了大量的自测题以及答案。每一章都包含相当数量的练习题,通常的形式包括:
? 简单回顾重要的术语和概念
? 找出代码示例中的错误
? 编写一条程序语句
? 编写执行某项任务的方法
? 编写C#类
? 编写完整的程序
? 完成几个重要的项目
图2中给出了本书中数百个练习题的一小部分,其中包括一些挑战题。挑战题鼓励读者利用计算机和Internet来研究并解决重大的社会问题。希望读者能用自己的价值观、策略和信念找出它们的解决之道。有关书中练习题的答案,只提供给采用本书作为教材的大学教师 。
书中的一些练习题
碳足迹计算器
体重指数计算器
混合动力汽车的特性
性别中性化
记事本GUI
日历和约会GUI
计算器GUI
闹钟GUI
收音机GUI
显示形状
奇偶性判断
数字倍数关系判断
拆分整数中的数字
平方表和立方表
Account类
Invoice类
Employee类
Date类
删除重复代码
目标心率计算器
健康记录的计算机化
信用额度计算器
销售佣金计算器
薪水计算器
找出最大的两个数
悬垂else问题
回文
与二进制数等价的十进制数
直角三角形的边
阶乘
无穷序列:数学常量e
全球人口增长
用密码强制保护隐私
条形图显示
质数
销售情况统计
拼车省钱计算器 汽车油耗计算器
计算值
勾股数组
关于全球变暖问题的小测验
另一种税务规划:FairTax
保留指定小数位
直角三角形的斜边长
显示由任意字符组成的正方形
分离数字
温度转换
完数
质数
颠倒数字
将平均成绩转换成4个等级
抛硬币
猜数游戏
两点间的距离
带赌注的掷骰子游戏
汉诺塔
计算机辅助教学
销售佣金
消除重复值
掷骰子游戏
航空订位系统
骑士旅行国际象棋游戏
八皇后国际象棋游戏
Eratosthenes筛选法
龟兔赛跑
洗牌与发牌
建立自己的计算机虚拟机
投票
查询Invoice对象数组
删除重复的单词
Rectangle类
储蓄账户类
整数集
RationalNumber类 HugeInteger类
Tic-Tac-Toe游戏
ComplexNumber类
Shape继承层次
工资系统
应付款程序
多态银行程序
CarbonFootprint接口:多
|
|