內容簡介
本書以零基礎講解為宗旨,用實例引導讀者深入學習,采取“基礎入門→核心技術→高級應用→項目開發實戰”的講解模式,深入淺出地講解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