本书是关于C#语言程序设计的基础教材, 系统地讲解了C#语言的基础语法和高级应用, 以Visual Studio 2012为开发平台。针对每一部分知识点给出了应用案例, 最后通过综合应用案例加强读者的实践应用能力。内容包括: C#语法基础; 面向对象程序设计; windows程序设计; 文件操作、数据库操作、异常处理和多线程; 网络应用编程; 综合开发案例全程讲解; 课后习题; 实训指导。
1.在对实训式教学模式进行了探讨和实践的基础上,以实训为主线组织本书内容编写,将理论和实践成果更好地应用于教材建设中,对加强学生的应用实践能力和创新能力的培养提供有力支撑,为社会培养应用创新型人才做出贡献。
2.通过在网络课程建设中的应用,为本教材积累了相关的教学资源,使本教材更充实,本教材的编写也推动了网络课程更好地建设。
3.本书吸收了众多相关资源的精华,同时结合教学中的实践经验合理地进行内容的取舍,使整体内容既具备较新的技术知识,又满足教学的需要,易于为学生所理解。适合于普通本科院校、大专高职院校使用,据作者所知选用本教材*版的院校有沈阳师范大学、沈阳工业大学、广东科技学院、山东德州职业技术学院、山东商务职业学院。
C#语言是一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了它们的一些复杂特性(例如,没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程等特性成为.NET开发的首选语言。
C#增强了开发者的效率,同时也致力于消除编程中可能导致严重结果的错误。C#使C/C++程序员可以快速进行网络开发,同时也保持了开发者所需要的强大性和灵活性。
1.编写背景
国家中长期教育改革和发展规划纲要(2010—2020)指出:坚持能力为重。优化知识结构,丰富社会实践,强化能力培养。着力提高学生的学习能力、实践能力、创新能力,教育学生学会知识技能,学会动手动脑。
本教材就是按照构建创新型、应用型人才培养模式的要求,突出对学生实践应用能力的培养,适应社会需求。从问题开始,按照“提出问题”→“分析问题”→“明确目标”→“学习知识”→“解决问题”→“总结提高”的思路编写。激发学生学习的主动性,提高学生的思考能力和创新应用能力。
2.本书内容
在第一版的基础上,本书对原有的部分内容进行了精简,增加了部分习题。根据实际应用的需要,新增了LINQ集成查询和网络编程的内容,包括以下6部分。
(1)C#语法基础:包括基本语法、类型系统、表达式和流程控制。
(2)面向对象程序设计:包括类、接口、继承和多态性、泛型。
(3)Windows程序设计:包括各种常用控件的使用和GDI+编程。
(4)商业开发的知识:包括文件操作、数据库操作、异常处理、网络编程和多线程编程。
(5)综合开发案例全程讲解。
(6)实训指导。
3.本书特色
(1)充分研讨,适合教学。作者根据多年的实际教学经验,在内容深度、编程方法和案例选择等方面进行了深入的分析和研讨,使本书内容尽量满足高等院校学生的学习需要。
(2)由浅入深,通俗易懂。书中知识点的讲解尽量用简洁、形象的语言来表达,避免过于冗长和烦琐的表述。
(3)问题导入,以问开始。每一章的内容从一个问题开始,按照“提出问题”→“分析问题”→“明确目标”→“学习知识”→“解决问题”→“总结提高”的思路编写。
(4)案例丰富,以用促学。书中每一个知识点都有相应的应用案例,案例程序符合实际应用,减少理论知识的讲解,通过实践应用让读者来领悟知识的内涵。
(5)案例讲解,满足自学。对每一个案例的程序都进行了分析讨论,特别是涉及扩充知识的会详细说明,有利于读者很好地自我学习。
(6)校企合作,保证质量。本书的作者既有院校的一线授课教师,也有IT企业的资深技术人员,将教师的教学经验与工程技术人员的工程实践经验相结合,满足培养应用实践型人才的需要。
(7)代码详细,配套完善。书中每个案例都有详细的源代码,另外提供相应的PPT课件、实训指导、习题及参考答案、综合开发案例,满足课堂教学、课后练习、上机实验和课程设计的一体化需要。
4.读者对象
本书以问题导入知识的学习,通过丰富的案例和案例剖析,帮助读者在实践中体会知识的应用,通过问题的解决获得学习的成就感。综合案例是采用三层架构开发的Web应用程序,对开发工具、技术和开发过程进行了全面讲解,读者学习后可以举一反三。本书可作为高等院校C#程序设计相关课程的教材,也可供广大.NET开发人员学习和参考。
本书第3、4、6、7、9、12、13章由于世东编写,第1、2章由邵中编写,第10章由刘春颖编写,第8章由卜霄菲编写,第5、第11章由王艳编写。辽宁省信息中心高级工程师高山对第12、13章的编写进行了指导。杜庆东教授审阅了全稿并提出了许多有益的意见。沈阳工业大学牛连强教授在本书编写过程中给予了指点和帮助,在此谨向他们表示衷心的感谢。感谢清华大学出版社在本书的出版过程中给予的支持。
由于作者学识浅陋,见闻不广,书中必然存在不足之处,敬请读者批评、指正和建议。作者的Email地址是:ysd0510@sina.com,欢迎读者与作者进行交流和探讨。
编者
2017年3月
第1章概述
1.1Microsoft.NET技术
1.1.1Microsoft.NET概述
1.1.2Microsoft.NET框架
1.2C#语言简介
1.2.1C#的起源
1.2.2C#语言的特点
1.3VisualStudio2012开发环境
1.3.1安装VisualStudio2012
1.3.2熟悉VisualStudio2012开发环境
1.4*个C#程序
1.5程序的调试与规范
1.5.1断点设置与程序调试
1.5.2C#编写命名建议
小结
课后练习
第2章C#编程基础
2.0问题导入
2.1数据类型
2.1.1值类型和引用类型概述
2.1.2值类型
2.1.3引用类型
2.2常量与变量
2.2.1变量
2.2.2常量
2.2.3隐式类型的局部变量
2.3类型转换
2.3.1隐式转换
2.3.2显式转换
2.3.3使用Convert类转换
2.3.4装箱和拆箱
2.3.5数值和字符串之间的转换
2.4操作符和表达式
2.4.1算术操作符
2.4.2自增和自减操作符
2.4.3位操作符
2.4.4赋值操作符
2.4.5关系操作符
2.4.6逻辑操作符
2.4.7条件操作符
2.4.8运算符的优先级
2.5流程控制语句
2.5.1分支语句
2.5.2循环语句
2.5.3跳转语句
2.6数组和枚举
2.6.1数组的定义和使用
2.6.2Array类
2.6.3匿名数组
2.6.4枚举的定义和使用
2.7字符串
2.7.1字符串的创建与表示形式
2.7.2字符串比较
2.7.3字符串查找
2.7.4求子字符串
2.7.5字符串的插入、删除与替换
2.7.6移除首尾指定的字符
2.7.7字符串的合并与拆分
2.7.8字符串中字母的大小写转换
2.7.9String与StringBuilder的区别
2.8问题解决
小结
课后练习
第3章面向对象编程基础
3.0问题导入
3.1类的定义
3.1.1类的声明与成员组织
3.1.2字段和局部变量
3.1.3静态成员和实例成员
3.1.4访问修饰符
3.2构造函数和析构函数
3.2.1构造函数
3.2.2析构函数
3.3类的方法
3.3.1方法的声明
3.3.2方法中的参数传递
3.3.3方法重载
3.4属性与索引器
3.4.1属性
3.4.2索引器
3.5结构
3.5.1结构的定义及特点
3.5.2结构的使用
3.6操作符重载
3.7问题解决
小结
课后练习
第4章面向对象高级编程
4.0问题导入
4.1继承
4.1.1基类和派生类
4.1.2继承过程中的构造函数和析构函数
4.2多态
4.2.1成员的虚拟和重写
4.2.2成员隐藏
4.3抽象类
4.4密封类
4.5接口
4.5.1接口的声明与实现
4.5.2显式方式实现接口
4.6委托与事件
4.6.1委托
4.6.2事件
4.7泛型
4.7.1泛型的定义和使用
4.7.2可空类型的泛型
4.8泛型集合
4.8.1列表
4.8.2字典
4.9问题解决
小结
课后练习
第5章Windows程序设计
5.0问题导入
5.1Windows窗体
5.1.1Windows窗体简介
5.1.2创建简单的WindowsForm
5.2窗体控件
5.2.1文本输入类控件
5.2.2选择类控件
5.2.3列表控件
5.2.4容器
5.2.5菜单、状态栏和工具栏
5.2.6对话框
5.2.7其他常用控件
5.3多文档界面
5.3.1设置MDI窗体
5.3.2排列子窗体
5.4GDI+编程
5.4.1创建Graphics对象
5.4.2创建Pen对象
5.4.3创建Brush对象
5.4.4绘制基本图形
5.5问题解决
小结
课后练习
第6章目录与文件管理
6.0问题导入
6.1目录管理
6.1.1DirectoryInfo类
6.1.2Directory类
6.1.3Path类
6.2文件管理
6.2.1FileInfo类
6.2.2File类
6.3驱动器管理
6.4文件的读写
6.4.1文件编码
6.4.2Stream类
6.4.3StreamReader和StreamWriter类
6.4.4BinaryReader和BinaryWriter类
6.5问题解决
小结
课后练习
第7章数据库与ADO.NET
7.0问题导入
7.1ADO.NET简介
7.2数据源连接
7.2.1操作数据库的简单示例
7.2.2通过向导的方式建立数据库连接
7.2.3通过编程的方式建立数据库连接
7.2.4连接字符串
7.2.5连接池的使用
7.3Command对象与DataReader对象
7.3.1Command对象与DataReader对象简介
7.3.2建立SqlCommand对象
7.3.3使用SqlCommand执行SQL语句
7.4DataAdapter对象与DataSet对象
7.4.1SqlDataAdapter对象
7.4.2DataTable对象
7.4.3DataSet对象
7.5存储过程
7.6综合实例
7.7问题解决
小结
课后练习
第8章LINQ语言集成查询
8.0问题导入
8.1LINQ概述
8.2LINQ预备知识
8.2.1对象和集合初始化器
8.2.2Lambda表达式
8.2.3扩展方法
8.3LINQ查询
8.3.1查询步骤
8.3.2查询方法定义查询
8.3.3查询表达式定义查询
8.4LINQtoSQL
8.4.1创建对象映射模型
8.4.2设定DataContext
8.4.3LINQtoSQL查询和操作
小结
课后练习
第9章异常处理
9.0问题导入
9.1错误和异常
9.2C#中的异常处理结构
9.2.1使用trycatch语句捕捉异常
9.2.2使用trycatchfinally语句捕捉异常
9.2.3使用throw语句抛出异常
9.3C#中异常的层次结构
9.3.1异常传播
9.3.2Exception类和常见异常类型
9.4使用异常的原则和技巧
9.5问题解决
小结
课后练习
第10章网络编程
10.0问题导入
10.1网络编程基础
10.2主机的定义及管理
10.2.1IPAddress类
10.2.2IPEndPoint类
10.2.3Dns类
10.3Socket网络通信
10.3.1Socket连接原理
10.3.2Socket数据处理模式
10.3.3Socket类
10.4TcpClient类和TcpListener类
10.4.1TcpClient类
10.4.2TcpListener类
10.4.3TcpListener类和TcpClient类应用
10.5UdpClient类
小结
课后练习
第11章进程和线程技术
11.0问题导入
11.1进程与线程
11.2进程
11.3线程概述
11.3.1线程的定义和分类
11.3.2多线程的使用
11.3.3线程的生命周期和状态
11.3.4线程对象和属性
11.4线程调度
11.4.1创建线程
11.4.2线程休眠
11.4.3终止线程
11.5线程优先级
11.6线程同步
11.6.1线程同步机制
11.6.2使用lock关键字实现线程同步
11.6.3使用Monitor驱动对象实现线程同步
11.6.4使用Mutex类实现线程同步
11.7问题解决
小结
课后练习
第12章综合实例——图书馆管理系统
12.1开发背景
12.2需求分析
12.3系统设计
12.3.1系统目标
12.3.2业务流程图
12.3.3系统功能结构
12.3.4系统预览
12.3.5数据库设计
12.4系统架构的设计与实现
12.5数据访问层的设计与实现
12.5.1数据实体类的设计与实现
12.5.2数据访问类的设计与实现
12.5.3其他问题说明
12.6业务逻辑层的设计与实现
12.7呈现层的设计与实现
12.7.1母版页的设计
12.7.2系统首页的设计
12.7.3典型模块的设计
12.8发布和部署应用
小结
第13章实训指导
13.1实训1熟悉C#开发环境
13.1.1实训目的和要求
13.1.2题目1如何运行和中断程序
13.1.3题目2模拟邮箱注册
13.1.4题目3创建和调用C#类库程序
13.2实训2C#数据类型与数组
13.2.1实训目的和要求
13.2.2题目1定义用户结构体
13.2.3题目2数组的统计运算
13.2.4题目3使用DateTime结构
13.3实训3表达式和流程控制
13.3.1实训目的和要求
13.3.2题目1计算购物金额
13.3.3题目2计算*小公倍数和*大公约数
13.3.4题目3冒泡排序算法的实现
13.4实训4类和结构
13.4.1实训目的和要求
13.4.2题目1圆类
13.4.3题目2用户注册登录模型
13.4.4题目3按销量对图书排序
13.5实训5继承和多态
13.5.1实训目的和要求
13.5.2题目1顾客类的派生
13.5.3题目2汽车类的派生与多态
13.5.4题目3管理学生信息
13.6实训6接口和泛型
13.6.1实训目的和要求
13.6.2题目1接口定义和实现
13.6.3题目2泛型方法
13.6.4题目3泛型集合
13.7实训7Windows应用程序
13.7.1实训目的和要求
13.7.2题目1计算器的设计
13.7.3题目2菜单设计
13.7.4题目3多文档界面设计
13.7.5题目4控件综合应用
13.8实训8GDI+编程
13.8.1实训目的和要求
13.8.2题目1基本图形绘制
13.8.3题目2绘制实体图形
13.8.4题目3绘制图形和文字
13.9实训9文件和流
13.9.1实训目的和要求
13.9.2题目1目录的管理
13.9.3题目2文件的管理
13.10实训10数据库应用
13.10.1实训目的和要求
13.10.2题目1数据库显示
13.10.3题目2数据库操作
13.10.4题目3学生信息的管理
13.11实训11异常处理
13.11.1实训目的和要求
13.11.2题目1处理运算溢出异常
13.11.3题目2自定义异常及处理
参考文献