版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“十三五”高等职业教育规划教材
C#程序设计案例教程
(第二版)
周庞荣易斌主编
王枭婷张红秀副主编
于训全主审
侯廷刚赵建华张军生曹剑英李向东副主编
内容简介
本书是适合“理论实践一体化”教学模式的教材,结合已开发的完整项目实例——学生成
绩管理系统,介绍了程序逻辑、C#程序设计基础、面向对象的编程。全书以项目为载体、以
案例为驱动,由浅入深、循序渐进地介绍了学生成绩管理系统项目开发的完整过程。在本书的
编写过程中,重要知识点和技能点,如C#语言基础、程序控制结构、数组、函数、类、对象、
继承、多态、委托与事件、异常处理、文件的输入与输出等都穿插在项目实现之中。这种做法
有利于读者快速掌握C#程序开发的基本知识、技巧和方法。
本书结构新颖,层次分明,内容丰富,充分考虑了高职高专学生的特点,具体案例与C#语
言的功能紧密结合。书中所有案例及课堂实训都选自编者多年积累的教学素材,具有很强的代表
性和实用性。
本书适合作为高职高专院校C#程序设计的教材,也可作为C#程序设计自学人员的参考书。
图书在版编目(CIP)数据
C#程序设计案例教程/周庞荣,易斌主编.—2版.—北京:
中国铁道出版社有限公司,2019.6
“十三五”高等职业教育规划教材
ISBN978-7-113-25798-9
Ⅰ.①C…Ⅱ.①周…②易…Ⅲ.①C语言-程序设计-高等
职业教育-教材Ⅳ.①TP312.8
中国版本图书馆CIP数据核字(2019)第093392号
书名:C#程序设计案例教程(第二版)
作者:周庞荣易斌
策划编辑:翟玉峰读者热线:(010)63550836
责任编辑:翟玉峰贾淑媛
封面设计:刘颖
封面校对:张玉华
责任印制:郭向伟
出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)
网址:/51eds/
印刷:三河市兴博印务有限公司
版次:2010年9月第1版2019年6月第2版2019年6月第1次印刷
开本:787mm×1092mm1/16印张:16.25字数:389千
书号:ISBN978-7-113-25798-9
定价:43.00元
版权所有侵权必究
凡购买铁道版图书,如有印制质量问题,请与本社教材图书营销部联系调换。电话:(010)63550836
打击盗版举报电话:(010)51873659
前言
(第二版)
PREFACE
本书第一版出版发行至今已接近十年,承蒙读者的厚爱,进行了两次重印。鉴于第一版依赖
的开发环境是VisualStudio.NET2005,但该版本的软件目前已经不再使用,本次修订,我们将
本书所依赖的环境升级为VisualStudio.NET2015,并对其中的一些小错误进行了更正。
C#是微软公司推出的一种面向对象的编程语言,是.NET开发平台的重要组成部分。它功
能强大、编程简洁明快,开发效率高,应用十分广泛。
本书围绕软件开发职业岗位设计,在能力目标上,重点培养学生的编程逻辑能力、面向对象
的分析和设计能力;在内容选择上,选取了C#语言基础、程序控制结构、数组、函数、类、对
象、继承、多态、委托与事件、异常处理、文件的输入和输出等;在内容组织上,以项目为载体,
以案例为驱动,将知识点、技能点的学习融合到具体的案例之中。本书的导航图如下:
本书具有以下特点:
1.面向应用,问题牵引
本书在编写的过程中,按照“提出问题—分析问题—解决问题”的思路编写,引导学生不断
思考,提高学生分析问题和解决问题的能力。
2.围绕项目,案例驱动
为了配合教材的编写,编者以一个具体的项目——学生成绩管理系统为载体,设计了一系列
案例,将知识点和技能点的学习融入到案例当中,提高学习者的兴趣。
3.编码规范,习惯良好
本书在对类、对象、方法、属性、文件等命名时,遵守统一的命名规则,使初学者一开始就
养成良好的编程习惯。
本书结构层次分明,内容丰富,充分考虑了高职高专学生的特点,具体案例与C#语言的功
能紧密结合。书中所有案例及课堂实训都选自编者多年积累的教学素材,具有很强的代表性和实
用性。使用本教材,读者可在轻松的氛围中掌握项目开发的基本知识、技巧和方法。
本书由湖南铁路科技职业技术学院信息技术系周庞荣、易斌任主编,王枭婷、张红秀任副主
编,于训全任主审。全书分为14章,其中第1~5章由周庞荣编写,第6章由武汉城市职业学院
张红秀编写,第7章由河北交通职业技术学院王枭婷编写,第8~14章由易斌编写。于训全对本
书进行了认真的审阅,并提出了宝贵意见。
由于编者水平有限,加之时间仓促,书中难免有疏漏之处,敬请读者批评指正。
编者
2019年3月
目录
CONTENTS
第1章编程逻辑····································11.8.3绘制次数固定的循环
1.1什么是程序·····································1结构流程图·······················15
1.2I-P-O周期·····································21.9绘制次数可变的循环结构
1.3绘制一个简单的程序流程图··········2流程图···········································15
1.3.1初步认识绘制程序1.9.1初步认识次数可变的
流程图的符号·····················2循环结构···························16
1.3.2认识绘制程序流程图的1.9.2绘制次数可变的循环
工具····································3结构流程图·······················16
1.3.3绘制程序流程图·················41.10绘制内嵌的循环结构流程图······17
1.4绘制顺序结构流程图·····················51.10.1初步认识内嵌的循环
1.4.1初步认识变量和常量··········5结构································17
1.4.2初步认识数据类型·············51.10.2绘制内嵌的循环结构
1.4.3声明变量·····························6流程图····························17
1.4.4初步认识运算符1.11绘制使用模块的流程图··············19
与表达式····························61.11.1初步认识模块·················19
1.4.5绘制顺序结构流程图··········81.11.2绘制使用模块的流程图····19
1.5绘制简单的选择结构流程图··········9思考与练习············································20
1.5.1选择结构·····························9第2章VisualC#概述··························21
1.5.2构造条件表达式···············102.1VisualStudio.NET和C#简介·······21
1.5.3绘制程序流程图···············102.2创建一个简单的C#应用程序·······22
1.6绘制嵌套的选择结构流程图········102.2.1编辑C#应用程序··············22
1.6.1嵌套的选择结构···············112.2.2编译C#应用程序··············24
1.6.2绘制程序流程图···············112.2.3运行C#应用程序··············24
1.7绘制复杂的选择结构流程图········12思考与练习············································25
1.7.1复杂的选择结构···············12
第3章变量和常量·······························27
1.7.2绘制程序流程图···············13
3.1数据类型·······································27
1.8绘制次数固定的循环结构
3.1.1初步认识C#中的数据
流程图···········································14
类型··································27
1.8.1初步认识循环结构···········14
3.1.2确定需要使用的数据
1.8.2构造循环结构的条件
类型··································30
表达式······························14
IIC#程序设计案例教程(第二版)
3.2变量··············································314.6.2预测程序的输出结果········62
3.2.1如何使用变量···················314.7条件运算符···································62
3.2.2确定需要使用的变量········324.7.1初步认识条件运算符········63
3.3使用控制台的输入/输出··············334.7.2预测程序的输出结果········63
3.3.1初步认识控制台的输入/4.8复合赋值运算符···························64
输出··································334.8.1初步认识复合赋值
3.3.2实现应用程序···················37运算符······························64
3.4变量的作用域和生存周期············394.8.2预测程序的输出结果········64
3.4.1确定变量的作用域···········394.9其他运算符···································65
3.4.2修改程序···························404.9.1is运算符···························65
3.4.3预测程序的输出结果········404.9.2as运算符···························65
3.5常量··············································414.9.3typeof运算符·····················66
3.5.1了解常量的类型···············424.9.4sizeof运算符·····················67
3.5.2输出程序的结果···············434.10运算符的优先级和结合性··········67
3.6实现数据类型转换·······················454.10.1初步认识运算符的
3.6.1初步认识类型转换···········45优先级和结合性·············68
3.6.2实现应用程序···················464.10.2预测程序的输出结果······68
3.7装箱与拆箱···································47思考与练习············································69
3.7.1初步认识装箱与拆箱········48第5章程序控制语句···························70
3.7.2预测程序的输出结果········49
5.1顺序结构·······································70
思考与练习············································49
5.1.1初步认识顺序结构············70
第4章运算符与表达式·······················515.1.2实现应用程序···················71
4.1C#运算符简介·······························515.2简单的选择结构···························72
4.2算术运算符···································525.2.1初步认识选择结构············72
4.2.1初步认识算术运算符········535.2.2实现应用程序···················74
4.2.2预测程序的输出结果········545.3嵌套的选择结构···························75
4.3自增/自减运算符··························555.3.1初步认识嵌套的选择
4.3.1初步认识自增/自减结构··································75
运算符······························565.3.2实现应用程序···················76
4.3.2预测程序的输出结果········565.4复杂的选择结构···························78
4.4关系运算符···································575.4.1初步认识复杂的选择
4.4.1初步认识关系运算符········58结构··································79
4.4.2预测程序的输出结果········585.4.2实现应用程序···················80
4.5逻辑运算符···································595.5switch语句····································81
4.5.1初步认识逻辑运算符········595.5.1初步认识switch语句········81
4.5.2预测程序的输出结果········605.5.2实现应用程序···················82
4.6位运算符·······································605.6while语句·····································83
4.6.1初步认识位运算符···········615.6.1初步认识while语句·········83
目录III
5.6.2实现应用程序···················84第7章函数········································110
5.7do…while语句······························857.1函数概述·····································110
5.7.1初步认识do…while7.2函数············································110
语句··································857.2.1定义函数·························111
5.7.2实现应用程序···················877.2.2调用函数·························112
5.8for语句·········································887.2.3实现应用程序·················113
5.8.1初步认识for语句·············887.3值类型参数·································114
5.8.2实现应用程序···················897.3.1初步认识值类型参数······115
5.9使用break语句终止循环·············917.3.2预测程序的输出结果······116
5.9.1初步认识break语句·········917.4引用类型参数·····························116
5.9.2实现应用程序···················937.4.1初步认识引用类型
5.10使用continue语句结束本次参数································117
循环·············································947.4.2预测程序的输出结果······117
5.10.1初步认识continue语句·····947.5输出型参数·································118
5.10.2实现应用程序·················957.5.1初步认识输出型参数······118
5.11内嵌的循环结构·························967.5.2预测程序的输出结果······119
5.11.1初步认识内嵌的循环7.6数组型参数·································119
结构································967.6.1初步认识数组型参数······120
5.11.2实现应用程序·················977.6.2预测程序的输出结果······120
思考与练习············································987.7递归············································121
第6章数组········································1007.7.1初步认识递归·················121
6.1数组概述·····································1007.7.2实现应用程序·················122
6.2一维数组·····································100思考与练习··········································123
6.2.1定义一维数组·················101第8章面向对象程序设计基础··········125
6.2.2初始化一维数组·············1018.1面向对象程序设计概述··············125
6.2.3引用一维数组·················1028.1.1对象·································125
6.2.4理解“冒泡”排序法的8.1.2类····································126
思路································1038.1.3消息和行为·····················126
6.2.5实现应用程序·················1038.1.4类的封装性·····················126
6.3二维数组·····································1048.2对象············································127
6.3.1定义二维数组·················1048.2.1定义类·····························127
6.3.2初始化二维数组·············1058.2.2定义类的成员字段··········128
6.3.3引用二维数组·················1058.2.3定义类的成员方法··········128
6.3.4实现应用程序·················1058.2.4加载访问修饰符·············130
6.4ArrayList······································1068.2.5创建对象并访问对象
6.4.1初步认识ArrayList·········107成员································131
6.4.2预测程序的输出结果······1088.2.6实现应用程序·················132
思考与练习··········································1098.3属性············································136
IVC#程序设计案例教程(第二版)
8.3.1声明属性·························1369.4派生类的构造函数和析构函数···169
8.3.2访问属性·························1389.5base关键字·································170
8.3.3实现应用程序·················139思考与练习··········································171
8.4索引器········································142第10章多态······································173
8.4.1初步认识索引器·············142
10.1多态性·······································173
8.4.2实现应用程序·················143
10.2使用虚方法实现多态················173
8.5方法重载·····································145
10.2.1初步认识虚方法···········174
8.5.1初步认识重载方法·········145
10.2.2实现应用程序···············176
8.5.2构造重载方法原型·········145
10.3使用抽象类实现多态················179
8.6构造函数·····································146
10.3.1定义抽象类···················179
8.6.1定义构造函数·················146
10.3.2定义抽象方法···············180
8.6.2实现应用程序·················147
10.3.3实现抽象方法···············180
8.7重载构造函数·····························148
10.3.4实现应用程序···············181
8.7.1定义重载构造函数·········149
10.4使用接口实现多态···················183
8.7.2预测程序的输出结果······149
10.4.1定义接口·······················183
8.8析构函数·····································150
10.4.2实现接口·······················184
8.8.1初步认识析构函数·········151
10.4.3实现应用程序···············186
8.8.2预测程序的输出结果······151
10.5密封类和密封方法···················187
8.9静态类········································152
10.5.1密封类···························187
8.10静态成员···································153
10.5.2密封方法·······················188
8.10.1初步认识静态成员········154
思考与练习··········································189
8.10.2预测程序的输出结果····154
第11章委托与事件···························191
思考与练习··········································155
11.1委托··········································191
第9章继承········································159
11.1.1初步认识委托···············192
9.1类的继承性·································159
11.1.2预测程序的输出结果····193
9.1.1继承的概念·····················159
11.2多路广播委托···························194
9.1.2继承的工作机制·············160
11.2.1初步认识多路广播
9.2继承············································160
委托······························195
9.2.1定义基类·························160
11.2.2预测程序的输出结果····196
9.2.2设置基类成员的访问
11.3事件··········································197
控制方式························160
11.3.1初步认识事件···············198
9.2.3设置派生类成员的访问
11.3.2定义事件·······················199
控制方式························162
11.3.3引发事件·······················199
9.2.4实现应用程序·················163
11.3.4预测程序的输出结果····200
9.3隐藏基类成员·····························166
思考与练习··········································201
9.3.1使用new关键字隐藏
第12章异常处理······························203
基类成员························166
9.3.2实现应用程序·················16612.1异常··········································203
目录V
12.1.1初步认识异常···············20413.3二进制文件的读/写··················220
12.1.2异常的处理机制···········20513.3.1读二进制文件···············220
12.1.3修改应用程序···············20713.3.2写二进制文件···············221
12.2自定义异常·······························20813.3.3实现应用程序···············222
12.2.1初次认识用户自定义思考与练习··········································225
异常······························210第14章学生成绩管理系统的设计
12.2.2预测程序的输出结果····211与实现··································226
思考与练习··········································211
14.1学生成绩管理系统的设计········226
第13章文件的输入和输出················21314.1.1系统概述·······················226
13.1文件与流···································21314.1.2系统功能模块设计········227
13.2读/写文本文件··························21414.1.3数据文件设计···············233
13.2.1读文本文件···················21414.2学生成绩管理系统的实现········234
13.2.2写文本文件···················216参考文献················································249
13.2.3实现应用程序···············217
第1章
第1章编程逻辑
本章主要介绍用图示法表示计算机程序的逻辑,为实现C#程序的基本结构奠定基础。学习
本章后要达到如下7个学习目标:
了解程序的概念。
熟悉程序流程图的符号。
熟悉绘制流程图的工具。
学习目标掌握绘制顺序结构流程图。
掌握绘制选择结构流程图。
掌握绘制循环结构流程图。
了解绘制使用模块的流程图。
1.1什么是程序
用计算机如何产生超市的购物清单?如何产生学生报到单?如何产生学生的成绩单?通过
计算机中的程序,就能解决上述问题。
计算机程序是一组指令的组合,这组指令依据既定的逻辑控制计算机运行。
1.什么是计算机指令
在我们参加军训的时候,经常听到教官大声喊“向左转”、“向右转”……,这里的“向左
转”和“向右转”就是教官发出的指令。指令就是一套符号,约定之后,大家都去遵守。
计算机指令就是计算机借以控制内部各单元及外部各部分协调工作的命令。通过这些命令,
计算机可以执行各种操作,产生用户所需要的各种结果。
2.程序=指令的逻辑组合
下面以生成超市的购物清单说明程序和指令的关系。要生成购物清单,实现该功能的程序
需要执行以下几个步骤:
①接受顾客购买的商品。
②计算所买商品的金额。
③接受顾客的付款。
④计算找零。
⑤打印购物清单。
2C#程序设计案例教程(第二版)
上述要实现的每一个步骤都可以看成是计算机指令,一系列指令的组合就可以看成是程序。
1.2I-P-O周期
计算机执行的活动遵循输入—处理—输出周期,又称I-P-O周期,如图1-1所示。计算机
一般包括键盘、鼠标、显示器、打印机、中央处理器以及存储器几个主要部件。键盘与鼠标用
于输入,中央处理器和存储器用于处理,显示器和打印机用于输出。
图1-1I-P-O周期
大家有过到超市买东西的经历,收银员用扫描枪扫入商品编号,利用键盘输入商品的数量,
这个过程称为输入阶段;然后计算机计算本次购买的金额,这个过程称为处理阶段;打印机输
出购买小票,这个过程称为输出阶段。
1.3绘制一个简单的程序流程图
【课堂案例1-1】绘制程序流程图:输入某种商品的单价和购买的数量,求解该商品的金额
并显示。
【案例学习目标】
掌握绘制程序流程图的符号。
了解绘制流程图的工具。
【案例知识要点】程序流程图的符号、绘制流程图的工具。
【案例完成步骤】
(1)初步认识绘制程序流程图的符号。
(2)认识绘制程序流程图的工具。
(3)绘制程序流程图。
1.3.1初步认识绘制程序流程图的符号
程序流程图是求解程序的图形表示。它由一组符号构成,每个符号表示一个特定的活动。
一个典型的问题包括数据输入、数据处理、数据输出以及处理过程涉及求解问题所采用的判定。
所要用的符号如表1-1所示。
表1-1程序流程图符号
名称符号说明
输入程序需要接收的值
处理对数据进行计算的过程
第1章编程逻辑3
续表
名称符号说明
输出显示处理后的结果
判定用于求解一个条件表达式
预定义过程程序的基本块
流线指出要执行的顺序,顺序应自顶向下或从左到右
开始/终结符指出流程图的开始或结束
页连接符用于同一页中流程图的一个步骤连接到另一个步骤
离页连接符用于不同页中流程图的一个步骤连接到另一个步骤
对于【课堂案例1-1】,根据对案例的分析,需要的流程图符号如表1-2所示。
表1-2所需的流程图符号
符号说明
用于表示程序流程图的开始或结束
用于接收商品的单价和数量
用于计算商品的金额
用于显示商品的金额
用于指出程序执行的顺序
1.3.2认识绘制程序流程图的工具
目前,绘制流程图的工具很多,如MicrosoftWord、SmartDraw和MicrosoftOfficeVisio等。
从工具使用的灵活性和方便性来考虑,后面两个工具更易于使用。
MicrosoftWord是一款文字编辑软件。在使用该工具绘制程序流程图时,如果没有出现“绘
图”工具栏,则需要选择“视图”→“工具”→“绘图”命令,“绘图”工具栏就会出现。选择
“绘图”工具栏中的“自选图形”→“流程图”命令,在弹出的级联菜单中就可以看到各种绘制
流程图的符号。使用的时候也是把流程图符号直接拖放到Word的编辑窗口中即可。
SmartDraw是一款专业图表设计、制作、管理和转换的软件。使用它可以轻松设计、制作、
管理和转换各种图表、剪辑画、实验公式和流程图等。附带的图库里包含数万个示例、符号和
形状供用户直接使用。其独特的连接器具有随机移动功能,不易断线。内含多种模型,可直接
套用或修改。
MicrosoftOfficeVisio是一款商用和科技图表制作软件,它能以图表的形式诠释用户的想法、
过程。
4C#程序设计案例教程(第二版)
对于【课堂案例1-1】,考虑到软件的使用方便性和占用的存储空间,我们使用SmartDraw
来绘制程序流程图。
1.3.3绘制程序流程图
绘制流程图的操作步骤如下:
(1)启动SmartDraw6.0,打开SmartDraw6.0启动窗口,如图1-2所示。
图1-2SmartDraw6.0启动窗口
(2)在“创建一个新绘图”对话框中,单击“流程图”按钮选择绘图类型(默认就是流程
图绘图类型),然后单击“创建空白绘图”按钮,就会出现绘制流程图的主窗体,如图1-3
所示。
(3)单击“绘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆管理制度2
- 电子支付行业安全支付技术创新规划方案
- 2025《鸿门宴》中樊哙粗中有细性格的具体表现课件
- 公共组织学试题及答案
- 模具初级工考试题及答案
- 2025年临床执业医师《临床医学》真题解析
- 药物外渗预防与处置试题及答案
- 医疗机构合理用药培训试题及答案
- 男科体检考试题及答案
- 医疗器械使用质量监督管理办法培训试题及答案
- 留园完整版本
- 三年级语文下册基础知识默写单(含答案)
- 建设工程工程量清单计价标准(2024版)
- 果林合股协议书
- 2025新热处理工程师考试试卷及答案
- 硬笔书法全册教案共20课时
- 《数智时代下的供应链管理:理论与实践》课件 第1-7章 理解供应链- 供应链经典的生产计划
- 知情同意告知培训
- 中药饮片培训课件
- 施工单位商务经理培训
- 病房规范化管理
评论
0/150
提交评论