内容简介
本书以零基础讲解为宗旨,用实例引导读者深入学习,采取“基础入门→核心技术→高级应用→项目开发实战”的讲解模式,深入浅出地讲解C#的各项技术及实战技能。
本书第1篇“基础入门”主要内容包括揭开C#神秘面纱、C#基本语法、C#程序结构、面向对象入门、面向对象的重要特征、集合与泛型;第2篇“核心技术”主要内容包括常用窗体控件、高级窗体控件、C#文件流、多线程操作、语言集成查询LINQ、异常和调试;第3篇“高级应用”主要内容包括ADO.NET操作数据库、GDI+技术、开发网络应用程序、在C#中操作注册表、水晶报表、应用程序打包;第4篇“项目开发实战”主要内容包括开发图书管理系统、开发社区互助系统、开发电影票预订系统和开发人事管理系统。
本书适合任何想学习C#编程语言的人员,无论您是否从事计算机相关行业,无论您是否接触过C#语言,通过学习均可快速掌握C#在项目开发中的知识和技巧。
前 言
“程序开发案例课堂”系列图书是专门为软件开发和数据库初学者量身定做的一套学习用书,整套书涵盖软件开发、数据库设计等方面。整套书具有以下特点。
前沿科技
无论是软件开发还是数据库设计,我们都精选较为前沿或者用户群最大的领域推进,帮助大家认识和了解最新动态。
权威的作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度提升学习效率。
为什么要写这样一本书
微软产品以其简单易用特点取得了大量用户的喜爱,作为NET平台的核心语言,C#是开发中的主力军。目前学习和关注C#的人越来越多,而很多C#的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,大学生可以很快地上手流行的工具,提高职业化能力,从而帮助解决公司与学生的双重需求问题。
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C#编程语言,都能从本书中找到最佳起点。
超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习C#编程技术的先后过程,从C#的基本语法开始,带领大家逐步深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
每章首页中,均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节最后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
专业创作团队和技术支持
本书由千谷高新教育中心编著和提供技术支持。
若您在学习过程中遇到任何问题,可加入QQ群(案例课堂VIP)451102631进行提问,专家会在线答疑。
超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。比看书更轻松地掌握书中所有的C#编程语言知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量王牌资源大放送
赠送大量王牌资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、Visual Studio 2017常用快捷键、C#类库查询手册、C#控件查询手册、C#程序员面试技巧、C#常见面试题、C#常见错误代码及解决方案、C#开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)451102631获取赠送资源,还可以进入http://www.apecoding.com/下载赠送资源。
读者对象
没有任何C#编程基础的初学者。
有一定的C#编程基础,想精通C#开发的人员。
有一定的C#基础,没有项目经验的人员。
正在进行毕业设计的学生。
大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂和李琪编著,参加编写的人员还有蒲娟、刘玉萍、裴雨龙、展娜娜、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们竭尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习中遇到困难或疑问,或有何建议,可写信至信箱357975357@qq.com。
编 者
目 录
第1篇 基础入门第1章 揭开C#的神秘面纱——我的第一个C#程序 31.1 C#简介 41.2 NET框架 51.3 Visual C#的开发环境 51.3.1 安装Visual Studio 2017的条件 51.3.2 安装Visual Studio 2017 61.4 熟悉开发环境 71.4.1 创建项目 81.4.2 菜单栏 91.4.3 工具栏 111.4.4 工具箱面板 111.4.5 属性面板 121.4.6 错误列表 121.4.7 输出面板 131.5 创建第一个简单的Visual C#应用程序 131.6 如何学好C# 141.7 大神解惑 151.8 跟我学上机 16第2章 零基础开始学习 ——C#基本语法 172.1 C#的程序结构 182.1.1 注释 182.1.2 命名空间 182.1.3 类 202.1.4 Main方法 202.1.5 标识符与关键字 212.1.6 C#语句 222.2 程序的编写规范 222.2.1 代码书写规则 222.2.2 命名规范 222.3 数据类型 232.3.1 变量 232.3.2 常量 242.3.3 值类型 242.3.4 引用类型 322.3.5 值类型和引用类型的区别 342.3.6 类型转换 362.4 运算符和表达式 402.4.1 表达式 412.4.2 运算符 412.4.3 运算符优先级 492.5 大神解惑 502.6 跟我学上机 50第3章 控制程序运行方向 ——C#程序结构 513.1 顺序结构 523.2 选择结构 523.2.1 if语句 523.2.2 if…else语句 533.2.3 选择嵌套语句 543.2.4 switch分支结构语句 553.3 循环结构 573.3.1 while语句 573.3.2 do…while语句 583.3.3 for语句 593.3.4 循环语句的嵌套 603.4 其他语句 613.4.1 break语句 613.4.2 continue语句 623.4.3 goto语句 633.4.4 return语句 633.5 大神解惑 643.6 跟我学上机 65第4章 主流软件开发方法——面向对象入门 674.1 面向对象编程思想 684.1.1 面向对象概述 684.1.2 面向对象编程解决问题的方法 684.1.3 面向对象编程的特点 694.2 C#中的类 704.2.1 类的概念 714.2.2 类的声明 714.2.3 类的成员:属性、方法 724.2.4 构造函数和析构函数 784.3 C#中的对象 814.3.1 对象的概念 814.3.2 对象与类的关系 814.3.3 对象的创建 814.4 分部类 824.5 结构与类 834.5.1 结构的定义和使用 834.5.2 结构与类的区别 854.6 大神解惑 864.7 跟我学上机 86第5章 深入了解面向对象——面向对象的重要特征 875.1 类的封装性 885.2 类的继承性 885.2.1 继承性概述 895.2.2 继承性的规则 905.3 类的多态性 915.3.1 覆盖性重写 915.3.2 多态性重写 925.4 接口 955.4.1 接口的概念及声明 955.4.2 接口的实现 965.4.3 继承多个接口 975.5 抽象类与抽象方法 995.5.1 抽象类 995.5.2 抽象方法 1005.5.3 抽象类与接口 1015.6 委托 1015.6.1 委托的声明 1025.6.2 实例化委托 1025.6.3 调用委托 1025.7 事件 1035.7.1 定义事件 1035.7.2 订阅事件 1045.7.3 触发事件 1045.8 大神解惑 1055.9 跟我学上机 106第6章 特殊的类——集合与泛型 1076.1 数组概述 1086.2 一维数组的声明和使用 1086.2.1 一维数组的定义 1086.2.2 一维数组的使用 1106.3 二维数组的声明和使用 1116.3.1 二维数组的定义 1116.3.2 二维数组的使用 1126.4 数组的基本操作 1146.4.1 遍历数组 1146.4.2 数组Array类的常用操作 1156.5 ArrayList集合 1176.5.1 ArrayList概述 1176.5.2 ArrayList的操作 1196.5.3 Array与ArrayList的区别 1226.6 HashTable集合 1226.6.1 HashTable概述 1226.6.2 HashTable的操作 1246.7 泛型 1256.7.1 泛型概述 1266.7.2 泛型集合 1286.7.3 泛型接口 1306.7.4 泛型类 1316.7.5 泛型方法 1346.8 大神解惑 1356.9 跟我学上机 136第2篇 核心技术第7章 Windows应用程序开发初步——常用窗体控件 1397.1 Windows窗体简介 1407.1.1 WinForm窗体的概念 1407.1.2 窗体的常用属性 1407.1.3 窗体的常用事件 1427.1.4 添加和删除窗体 1427.2 常用Windows窗体控件 1447.2.1 控件的分类和作用 1447.2.2 添加控件 1447.2.3 排列控件 1457.2.4 删除控件 1467.3 文本类控件和消息框 1467.3.1 标签(Label)控件 1467.3.2 按钮(Button)控件 1477.3.3 文本框(TextBox)控件 1497.3.4 消息框(MessageBox) 1517.4 Windows应用程序的结构和开发步骤 1547.4.1 Windows应用程序的结构 1547.4.2 Windows应用程序开发步骤 1557.5 大 神 解 惑 1557.6 跟我学上机 156第8章 Windows应用程序开发进阶——高级窗体控件 1578.1 菜单与工具栏控件 1588.1.1 菜单控件 1588.1.2 工具栏(toolStrip)控件 1608.2 列表视图和树视图控件 1618.2.1 列表视图控件(ListView) 1618.2.2 树视图控件(TreeView) 1678.3 选项卡控件(TabControl) 1728.4 通用对话框控件 1758.4.1 打开文件对话框(OpenFileDialog) 1758.4.2 保存文件对话框(SaveFileDialog) 1778.4.3 选择目录对话框(FolderBrowserDialog) 1798.5 多文档编程(MDI窗体) 1818.6 大神解惑 1848.7 跟我学上机 184第9章 文件操作的利器——C#文件流 1859.1 文件 1869.1.1 System.IO命名空间 1869.1.2 文件类File的使用 1889.1.3 文件夹Directory类的使用 1899.1.4 FileInfo类和DirectoryInfo类的使用 1919.1.5 文件与文件夹的相关操作 1939.2 数据流 1989.2.1 流操作介绍 1989.2.2 文件流类 1999.3 文本文件的读写操作 2029.3.1 StreamReader类 2029.3.2 StreamWriter类 2039.4 读写二进制文件 2059.4.1 BinaryReader类 2059.4.2 BinaryWriter类 2069.5 读写内存流 2089.6 大神解惑 2099.7 跟我学上机 210第10章 任务同时进行——多线程操作 21110.1 进程 21210.1.1 进程简介 21210.1.2 进程的基本操作 21210.2 线程 21310.2.1 线程简介 21310.2.2 单线程与多线程 21410.2.3 线程的基本操作 21510.2.4 创建线程 21510.2.5 线程的控制 21610.2.6 线程优先级 21910.3 多线程同步 22110.3.1 多线程同步概述 22110.3.2 用Lock语句实现互斥线程 22210.3.3 用Monitor类实现互斥线程 22310.3.4 用Mutex类实现互斥线程 22410.4 线程池 22610.5 大神解惑 22810.6 跟我学上机 228第11章 数据查询新模型——语言集成查询LINQ 22911.1 LINQ简介 23011.1.1 隐式类型化变量(var) 23011.1.2 查询操作简介 23011.1.3 数据源 23111.1.4 查询 23111.1.5 执行查询 23211.2 LINQ和泛型类型 23311.2.1 LINQ查询中的IEnumerable变量 23311.2.2 通过编译器处理泛型类型声明 23311.3 基本LINQ查询操作 23411.3.1 获取数据源 23411.3.2 筛选 23411.3.3 排序 23511.3.4 分组 23611.3.5 联接 23811.4 大 神 解 惑 24111.5 跟我学上机 242第12章 解决问题的法宝 ——异常和调试 24312.1 异常处理 24412.1.1 异常处理的概念 24412.1.2 典型的try…catch异常处理语句 24512.1.3 使用finally块 24612.1.4 使用throw关键字显式抛出异常 24712.2 程序调试 24912.2.1 程序错误分类 24912.2.2 基本调试概念——断点 25012.2.3 程序调试信息 25212.3 大神解惑 25512.4 跟我学上机 256第3篇 高级应用第13章 C#的数据库编程 ——ADO.NET操作数据库 25913.1 数据库基本知识 26013.1.1 数据库基本概念 26013.1.2 数据库系统的特点 26013.1.3 数据模型简介 26113.1.4 SQL语言简介 26113.2 数据库相关操作 26213.2.1 数据库的创建 26213.2.2 删除数据库 26313.2.3 数据表相关操作 26413.2.4 常用SQL语句的应用 26513.3 ADO.NET 简介和数据库的访问 26813.3.1 ADO.NET特点 26813.3.2 ADO.NET组件及结构 26813.3.3 连接数据库 27013.3.4 执行SQL语句:Command对象 27213.3.5 读取数据:DataReader对象 27713.3.6 数据适配器:DataAdapter对象 28013.4 数据集(DataSet对象)简介 28613.4.1 DataSet对象简介 28613.4.2 DataSet对象中的常用属性与方法 28713.4.3 使用DataSet对象的步骤 28713.5 使用DataGridView控件显示和操作数据 28813.5.1 DataGridView控件列 28913.5.2 行高与列宽的设置 29113.5.3 DataGridView选中单元格时的样式 29113.5.4 编辑DataGridView与绑定属性 29213.5.5 数据集(DataSet)与DataGridView的结合使用 29313.6 大神解惑 29513.7 跟我学上机 298第14章 图形界面设计——GDI+技术 29914.1 GDI+介绍 30014.2 Graphics类 30114.3 Pen类和Brush类的使用 30114.3.1 创建Pen类对象 30214.3.2 Brush类的使用 30314.4 基本绘图 31014.4.1 绘制直线和矩形 31114.4.2 绘制椭圆、圆弧和扇形 31414.4.3 绘制多边形 31914.5 使用GDI+绘制柱形图、饼形图、折线图 32014.5.1 使用GDI+绘制柱形图 32114.5.2 使用GDI+绘制饼形图 32414.5.3 使用GDI+绘制折线图 32714.6 大神解惑 32914.7 跟我学上机 330第15章 融入互联网时代 ——开发网络应用程序 33115.1 网络编程基础 33215.1.1 通信协议 33215.1.2 标识资源 33315.1.3 套接字编程 33315.2 网络编程类 33415.2.1 Dns类 33415.2.2 IPAddress类 33615.2.3 IPEndPoint类 33815.2.4 WebClient类 34015.3 Socket网络编程相关类 34215.3.1 Socket类 34215.3.2 TcpListener类和TcpClient类 34315.3.3 UdpClient类 35215.4 System.Net.Mail简介 35615.4.1 MailMessage类 35615.4.2 MailAddress类 35715.4.3 Attachment类 35815.4.4 SmtpClient类 36015.5 大神解惑 36215.6 跟我学上机 362第16章 注册表技术——在C#中操作注册表 36316.1 注册表简介 36416.1.1 Registry类 36416.1.2 RegistryKey类 36516.2 注册表的相关操作 36616.2.1 注册表信息的读取 36616.2.2 注册表信息的创建与修改 36816.2.3 注册表信息的删除 37016.3 注册表的应用 37316.4 大神解惑 37516.5 跟我学上机 376第17章 互动式报表——水晶报表 37717.1 水晶报表插件的下载与安装 37817.2 水晶报表插件的使用 37917.3 水晶报表的基本操作 38217.3.1 报表数据分组 38217.3.2 报表数据排序 38317.3.3 报表数据筛选 38417.3.4 图表的使用 38817.4 大神解惑 38917.5 跟我学上机 390第18章 程序开发收尾工作——应用程序打包 39118.1 Visual Studio Installer简介 39218.2 Visual Studio Installer工具的下载安装 39218.3 Visual Studio Installer工具的使用 39418.3.1 创建Windows安装项目 39418.3.2 输出文件的添加 39518.3.3 内容文件的添加 39618.3.4 快捷方式的创建 39618.3.5 注册表项的添加 39718.3.6 生成Windows安装程序 39818.4 大神解惑 39818.5 跟我学上机 398第4篇 项目开发实战第19章 经典系统应用 ——开发图书管理系统 40119.1 需求分析 40219.2 功能分析 40219.3 数据库设计 40419.4 开发前准备工作 40519.5 系统代码编写 40819.5.1 图书类(class Book) 40819.5.2 图书馆类(class Library) 40919.5.3 借书系统类(class BookSystem) 41019.5.4 Main类(class ManClass) 41319.6 系统运行 41419.7 项目总结 414第20章 流行系统应用——开发社区互助系统 41520.1 需求分析 41620.2 功能分析 41620.3 数据库设计 41820.4 开发前准备工作 41920.5 系统代码编写 42220.5.1 需求类(class Need) 42220.5.2 平台类(class Platform) 42320.5.3 系统类(class CommunityShare) 42520.5.4 Main类(class MainClass) 42820.6 系统运行 42820.7 项目总结 430第21章 娱乐影视应用——开发电影票预订系统 43121.1 需求分析 43221.2 功能分析 43221.3 数据库设计 43321.4 开发前准备工作 43421.5 系统代码编写 43721.5.1 座位类(class Seat) 43721.5.2 影厅类(class Hall) 43821.5.3 电影类(class Movie) 44021.5.4 订票系统类(class Ticket-System) 44121.5.5 Main类(class CinemaTicket) 44221.6 系统运行 44521.7 项目总结 446第22章 企业系统应用——开发人事管理系统 44722.1 需求分析 44822.2 系统功能结构 44822.2.1 构建开发环境 44822.2.2 系统功能结构 44822.3 数据库设计 44922.3.1 数据库分析 44922.3.2 数据库实体E-R图 44922.3.3 数据库表的设计 45222.4 开发前准备工作 45522.5 用户登录模块 46222.5.1 定义数据库连接方法 46222.5.2 防止窗口被关闭 46522.5.3 验证用户名和密码 46622.6 人事档案管理模块 46822.6.1 界面开发 46822.6.2 代码开发 46822.6.3 添加和编辑员工照片 48422.7 用户设置模块 48522.7.1 添加、修改用户信息 48522.7.2 删除用户基本信息 48822.7.3 设置用户权限 48922.8 数据库维护模块 49022.8.1 数据库备份功能 49122.8.2 数据库还原功能 49122.9 系统运行 49222.9.1 登录 49222.9.2 企业人事管理系统 49222.9.3 人事档案管理 49222.9.4 人事资料查询 49322.9.5 员工信息提醒 49322.9.6 员工通讯录 49422.9.7 日常记事 49422.9.8 用户设置 49522.9.9 基础信息维护管理 49522.10 项目总结 496