《C#開發手冊:基礎·案例·應用》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內容全面,以理論聯系實際、能學到并做到為宗旨,以技術為核心,以案例為輔助,引領讀者全面學習基礎技術、代碼編寫方法和具體應用項目,旨在為想要進入相應領域或者已經在該領域深耕多年的技術人員提供新而全的技術性內容及案例。 本書是側重編程基礎+實踐的C#程序開發圖書,為了保證讀者可以學以致用,在實踐方面循序漸進地進行了3個層次的講解:基礎知識實踐、進階案例實踐和綜合應用實踐。本書全面介紹了使用C#進行窗體程序開發的必備知識,以幫助讀者快速掌握C#開發的技能,拓寬職場的道路。本書通過各種示例將學習與應用相結合,打造輕松學習、零壓力學習的環境,通過案例對所學知識進行綜合應用,通過開發實際項目將C#開發的各項技能應用到實際工作中。 本書提供豐富的資源,包含實例87個、實戰練習20個、案例12個、項目2個,力求為讀者打造一本基礎+案例+應用一體化的、精彩的C#開發實例圖書。 本書不僅適合初學者、編程愛好者、準備畢業設計的學生、參加實習的程序員,而且適合初中級程序開發人員以及程序測試和維護人員使用。
從工業4.0到“十四五”規劃,我國信息時代正式踏上新的階梯,電子設備已經普及,在人們的日常生活中隨處可見。信息社會給人們帶來了極大的便利,信息捕獲、信息處理分析等在各個行業得到普遍應用,推動整個社會向前穩固發展。 計算機設備和信息數據的相互融合,對各個行業來說都是一次非常大的進步,已經滲入到工業、農業、商業、軍事等領域,同時其相關應用產業也得到一定發展。就目前來看,各類編程語言的發展、人工智能相關算法的應用、大數據時代的數據處理和分析都是計算機科學領域各大高校、各個企業在不斷攻關的難題,是挑戰也是機遇。因此,我們策劃編寫了“計算機科學與技術手冊系列”圖書,旨在為想要進入相應領域的初學者或者已經在該領域深耕多年的從業者提供新而全的技術性內容,以及豐富、典型的實戰案例。 本書從初學者的角度出發,為想要學習C#程序開發、想要進行Windows窗體開發的初中級開發人員、編程愛好者、大學師生精心策劃。所講內容從技術應用的角度出發,結合實際應用深入淺出地循序漸進。 本書內容 全書共分為32章,主要通過“基礎篇(18章)+ 案例篇(12章)+應用篇(2章)”3大維度一體化的講解方式,具體的知識結構如下圖所示。 本書特色 1.突出重點、學以致用 書中每個知識點都結合了簡單易懂的示例代碼以及非常詳細的注釋信息,力求讀者能夠快速理解所學知識,提高學習效率,縮短學習路徑。 2.提升思維、綜合運用 本書以知識點綜合運用的方式,帶領讀者學習各種趣味性較強的應用案例,讓讀者不斷提升編寫C#程序的思維,還可以快速提升對知識點的綜合運用能力,讓讀者能夠回顧以往所學的知識點,并結合新的知識點進行綜合應用。 3.綜合技術、實際項目 本書在應用篇中提供了兩個貼近實際應用的項目,力求通過實際應用使讀者更容易地掌握C#技術與對應業務的需求。兩個項目都是根據實際開發經驗總結而來,包含了在實際開發中所遇到的各種問題。項目結構清晰、擴展性強,讀者可根據個人需求進行擴展開發。 4.精彩欄目、貼心提示 本書根據實際學習的需要,設置了“注意”“說明”“指點迷津”等許多貼心的小欄目,輔助讀者輕松理解所學知識,規避編程陷阱。 本書由明日科技的.NET開發團隊策劃并組織編寫,主要編寫人員有王小科、李菁菁、張鑫、何平、申小琦、趙寧、周佳星、李磊、王國輝、高春艷、李再天、賽奎春、葛忠月、李春林、宋萬勇、張寶華、楊麗、劉媛媛、龐鳳、譚暢、依瑩瑩等。在編寫本書的過程中,我們本著科學、嚴謹的態度,力求精益求精,但疏漏之處在所難免,敬請廣大讀者批評斧正。 感謝您閱讀本書,希望本書能成為您編程路上的領航者。 祝您讀書快樂! 編著者
第1篇 基礎篇 第1章 C#開發準備 1.1 C#語言入門 3 1.1.1 C#是什么 3 1.1.2 認識.NET Framework 3 1.1.3 C#與.NET Framework 4 1.1.4 C#的應用領域 4 1.2 Visual Studio 2019的安裝與卸載 4 1.2.1 安裝Visual Studio 2019必備條件 4 1.2.2 下載Visual Studio 2019 4 1.2.3 安裝Visual Studio 2019 5 1.3 熟悉Visual Studio 2019開發環境 6 1.3.1 創建第一個C#程序 6 1.3.2 菜單欄 7 1.3.3 工具欄 7 1.3.4 解決方案資源管理器 8 1.3.5 “工具箱”窗口 8 1.3.6 “屬性”窗口 9 1.3.7 “錯誤列表”窗口 9 1.4 C#程序結構預覽 10 1.4.1 命名空間 10 1.4.2 類 11 1.4.3 關鍵字與標識符 11 1.4.4 Main方法 12 1.4.5 C#語句 13 1.4.6 注釋 15 1.4.7 一個完整的C#程序 16 【實例1.1】輸出名人名言 16 1.5 綜合案例——打印美團外賣單據 17 1.5.1 案例描述 17 1.5.2 實現代碼 17 1.6 實戰練習 18 第2章 C#語言基礎 2.1 數據類型及變量 20 2.1.1 變量是什么 20 2.1.2 變量的聲明和命名規則 20 2.1.3 簡單數據類型 21 2.1.4 變量的初始化 24 2.1.5 變量的作用域 25 【實例2.1】使用變量記錄用戶登錄名 25 2.2 引用類型和值類型與引用類型的區別 26 2.2.1 引用類型 26 2.2.2 值類型與引用類型的區別 27 2.3 常量 27 2.3.1 常量是什么 27 2.3.2 常量的分類 27 2.4 數據類型轉換 28 2.4.1 隱式類型轉換 28 2.4.2 顯式類型轉換 29 2.4.3 使用Convert類進行轉換 29 2.4.4 裝箱和拆箱 30 2.5 運算符 31 2.5.1 算術運算符 31 2.5.2 自增自減運算符 31 2.5.3 賦值運算符 32 2.5.4 關系運算符 34 【實例2.2】使用關系運算符比較大小關系 34 2.5.5 邏輯運算符 34 2.5.6 位運算符 35 2.5.7 移位運算符 36 2.5.8 條件運算符 37 2.5.9 運算符優先級與結合性 38 2.6 綜合案例——記錄你的密碼 39 2.6.1 案例描述 39 2.6.2 實現代碼 39 2.7 實戰練習 40 第3章 流程控制 3.1 選擇語句 42 3.1.1 if語句 42 【實例3.1】根據輸入年齡輸出相應信息提示 45 【實例3.2】判斷輸入的年份是不是閏年 47 3.1.2 switch語句 48 【實例3.3】查詢高考錄取分數線 49 3.2 循環語句 49 3.2.1 while語句 50 【實例3.4】計算1到100的累加和 50 3.2.2 do…while語句 50 3.2.3 for語句 51 3.2.4 foreach語句 53 3.3 跳轉語句 54 3.3.1 break語句 54 【實例3.5】使用break跳出循環 54 3.3.2 continue語句 55 【實例3.6】使用continue語句實現1到100之間的偶數和 55 3.3.3 goto語句 55 3.3.4 return語句 56 【實例3.7】使用return設置返回值 56 3.4 綜合案例——猜數字游戲 56 3.4.1 案例描述 56 3.4.2 實現代碼 56 3.5 實戰練習 57 第4章 字符與字符串 4.1 字符 59 4.1.1 Char類的使用 59 【實例4.1】字符類Char的常用方法應用 60 4.1.2 轉義字符 60 【實例4.2】輸出Windows系統目錄 61 4.2 字符串 61 4.2.1 聲明字符串 61 4.2.2 字符串的初始化 62 4.2.3 獲取字符串長度 63 4.2.4 獲取指定位置的字符 63 4.2.5 獲取子字符串索引位置 64 4.2.6 判斷字符串首尾內容 65 4.2.7 字符串的拼接 66 4.2.8 比較字符串 66 4.2.9 字符串的大小寫轉換 67 4.2.10 格式化字符串 67 【實例4.3】格式化不同的數值類型數據 69 【實例4.4】輸出不同形式的日期時間 70 4.2.11 截取字符串 70 4.2.12 分隔字符串 71 4.2.13 填充字符串 71 【實例4.5】對字符串進行填充 72 4.2.14 去除空白內容 72 4.2.15 替換字符串 73 4.3 可變字符串 73 4.3.1 StringBuilder類的定義 74 4.3.2 StringBuilder類的使用 74 【實例4.6】StringBuilder類方法的使用 75 4.3.3 StringBuilder類與String類的區別 75 4.4 綜合案例——模擬郵件發送 76 4.4.1 案例描述 76 4.4.2 實現代碼 76 4.5 實戰練習 77 第5章 數組與集合 5.1 數組概述 79 5.2 一維數組的聲明和使用 79 5.2.1 一維數組的聲明 79 5.2.2 一維數組的使用 80 【實例5.1】遍歷一維數組中的所有元素 80 5.3 二維數組的聲明和使用 81 5.3.1 二維數組的聲明 81 5.3.2 二維數組的使用 81 【實例5.2】輸出二維數組的所有元素 81 5.3.3 不規則數組的定義 82 5.4 數組的基本操作 82 5.4.1 遍歷數組中的元素 82 5.4.2 使用排序算法對數組進行排序 83 【實例5.3】冒泡排序法 83 【實例5.4】選擇排序法 84 5.5 ArrayList集合的使用 85 5.5.1 ArrayList集合概述 85 5.5.2 添加ArrayList集合元素 86 5.5.3 刪除ArrayList集合元素 87 5.5.4 遍歷ArrayList集合 88 【實例5.5】使用集合存儲數據 88 5.5.5 查找ArrayList集合元素 89 5.6 綜合案例——模擬淘寶購物車場景 90 5.6.1 案例描述 90 5.6.2 實現代碼 90 5.7 實戰練習 90 第6章 面向對象編程基礎 6.1 面向對象概念 92 6.1.1 對象、類、實例化 92 6.1.2 面向對象程序設計語言的三大原則 93 6.2 類 95 6.2.1 類的概念 95 6.2.2 類的聲明 95 6.2.3 類的成員 96 【實例6.1】用set訪問器對年齡進行判斷 98 6.2.4 構造函數和析構函數 98 【實例6.2】構造函數的使用 98 6.2.5 對象的創建及使用 99 【實例6.3】使用對象調用類成員 100 6.2.6 this關鍵字 102 6.2.7 類與對象的關系 103 6.3 方法 103 6.3.1 方法的聲明 103 6.3.2 方法的參數 104 【實例6.4】值參數的使用 104 【實例6.5】ref引用參數的使用 105 【實例6.6】out參數的使用 105 【實例6.7】使用params向方法參數傳遞多個值 106 6.3.3 靜態方法與實例方法 106 【實例6.8】使用類名調用靜態方法 107 【實例6.9】實例方法的調用 107 6.3.4 方法的重載 108 【實例6.10】使用重載方法計算不同類型數據的和 108 6.4 綜合案例——輸出庫存商品信息 108 6.4.1 案例描述 108 6.4.2 實現代碼 109 6.5 實戰練習 110 第7章 面向對象核心技術 7.1 類的繼承與多態 112 7.1.1 繼承 112 【實例7.1】模擬進銷存管理系統的進貨信息并輸出 112 7.1.2 多態 114 【實例7.2】不同交通工具的形態 114 【實例7.3】重寫抽象方法輸出進貨信息和銷售信息 116 7.2 結構與接口 117 7.2.1 結構 117 7.2.2 接口 118 【實例7.4】通過繼承接口輸出進貨信息和銷售信息 119 7.3 索引器 121 【實例7.5】定義操作字符串數組的索引器 121 7.4 委托和匿名方法 122 7.4.1 委托 122 【實例7.6】自定義委托并使用 122 7.4.2 匿名方法 123 【實例7.7】分別調用匿名方法和命名方法 123 7.5 事件 124 7.5.1 委托的發布和訂閱 124 【實例7.8】通過委托使學生們對鈴聲作出響應 124 7.5.2 事件的發布和訂閱 126 7.5.3 EventHandler類 127 7.6 泛型 128 7.6.1 類型參數T 128 7.6.2 泛型接口 129 7.6.3 泛型方法 129 【實例7.9】通過泛型方法計算商品銷售額 129 7.7 綜合案例——輸出進銷存管理系統中的每月銷售明細 130 7.7.1 案例描述 130 7.7.2 實現代碼 130 7.8 實戰練習 132 第8章 Windows編程基礎 8.1 Form窗體 134 8.1.1 添加和刪除窗體 134 8.1.2 多窗體的使用 134 8.1.3 窗體的屬性 135 8.1.4 窗體的顯示與隱藏 137 8.1.5 窗體的事件 137 8.2 MDI窗體 139 8.2.1 MDI窗體的概念 139 8.2.2 如何設置MDI窗體 139 8.2.3 排列MDI子窗體 140 8.3 綜合案例——自定義最大化、最小化和關閉按鈕 140 8.3.1 案例描述 140 8.3.2 實現代碼 140 8.4 實戰練習 141 第9章 Windows控件的使用 9.1 控件基礎 143 9.1.1 控件概述 143 9.1.2 控件的相關操作 143 9.2 文本類控件 144 9.2.1 Label:標簽 144 9.2.2 TextBox:文本框 144 9.2.3 RichTextBox:有格式文本框 145 9.3 按鈕類控件 147 9.3.1 Button:按鈕 147 9.3.2 RadioButton:單選按鈕 147 【實例9.1】選擇用戶登錄身份 147 9.3.3 CheckBox:復選框 148 【實例9.2】設置用戶操作權限 148 9.4 列表類控件 149 9.4.1 ComboBox:下拉組合框 149 【實例9.3】選擇員工的職位 149 9.4.2 NumericUpDown:數值選擇 150 9.4.3 ListBox:列表 150 9.4.4 ListView控件:列表視圖 151 9.5 圖片類控件 154 9.5.1 PictureBox:圖片 154 9.5.2 ImageList:圖片列表 154 9.6 容器控件 155 9.6.1 GroupBox:分組框 155 9.6.2 Panel:容器 155 9.6.3 TabControl:選項卡 156 9.7 TreeView:樹控件 157 9.8 Timer:定時器 158 【實例9.4】模擬雙色球選號 158 9.9 ProgressBar:進度條 159 9.10 菜單、工具欄和狀態欄 160 9.10.1 MenuStrip:菜單 160 9.10.2 ToolStrip:工具欄 160 9.10.3 StatusStrip:狀態欄 161 【實例9.5】在狀態欄中顯示登錄用戶及時間 161 9.11 消息框 162 9.12 對話框 163 9.12.1 打開對話框 163 9.12.2 另存為對話框 163 9.12.3 瀏覽文件夾對話框 164 9.13 綜合案例——在控件中實現關鍵字描紅 164 9.13.1 案例描述 164 9.13.2 實現代碼 165 9.14 實戰練習 166 第10章 ADO.NET數據訪問技術 10.1 ADO.NET概述 168 10.1.1 ADO.NET對象模型 168 10.1.2 數據訪問命名空間 168 10.2 Connection數據連接對象 169 10.2.1 熟悉Connection對象 169 10.2.2 數據庫連接字符串 169 10.2.3 應用SqlConnection對象連接數據庫 170 10.3 Command命令執行對象 171 10.3.1 熟悉Command對象 171 10.3.2 應用Command對象操作數據 172 10.3.3 應用Command對象調用存儲過程 172 【實例10.1】使用存儲過程向數據表中添加信息 172 10.4 DataReader數據讀取對象 173 10.4.1 DataReader對象概述 173 10.4.2 使用DataReader對象檢索數據 174 10.5 DataSet對象和DataAdapter操作對象 175 10.5.1 DataSet對象 175 10.5.2 DataAdapter對象 175 10.5.3 填充DataSet數據集 177 10.5.4 DataSet對象與DataReader對象的區別 177 10.6 DataGridView控件的使用 177 【實例10.2】DataGridView表格的使用 178 10.7 綜合案例——分頁顯示信息 179 10.7.1 案例描述 179 10.7.2 實現代碼 179 10.8 實戰練習 180 第11章 LINQ編程 11.1 LINQ基礎 182 11.1.1 LINQ概述 182 11.1.2 LINQ查詢 182 【實例11.1】使用LINQ查詢數組中指定長度的項 183 11.1.3 使用var創建隱型局部變量 183 11.1.4 Lambda表達式的使用 183 【實例11.2】查找數組中包含指定字符的字符串 184 11.2 LINQ查詢表達式 185 11.2.1 獲取數據源 185 11.2.2 篩選 185 11.2.3 排序 185 11.2.4 分組 186 11.2.5 連接 186 11.3 LINQ操作SQL Server數據庫 186 11.3.1 使用LINQ查詢SQL Server數據庫 186 【實例11.3】多條件查詢商品信息 187 11.3.2 使用LINQ更新SQL Server數據庫 188 【實例11.4】添加庫存商品信息 189 【實例11.5】修改庫存商品信息 190 【實例11.6】刪除庫存商品信息 191 11.4 綜合案例——分頁查看庫存商品信息 191 11.4.1 案例描述 191 11.4.2 實現代碼 192 11.5 實戰練習 193 第12章 文件流 12.1 System.IO命名空間 195 12.2 文件與目錄類 196 12.2.1 File和FileInfo文件類 196 【實例12.1】使用File類創建文件并獲取文件的詳細信息 197 12.2.2 Directory和DirectoryInfo目錄類 197 【實例12.2】遍歷驅動器中的文件及文件夾 198 12.2.3 Path路徑類 199 12.2.4 DriveInfo驅動器類 200 12.3 數據流基礎 201 12.3.1 流操作類介紹 201 12.3.2 文件流 201 【實例12.3】使用不同的方式打開文件 202 12.3.3 文本文件的讀寫 202 【實例12.4】模擬記錄進銷存管理系統的登錄日志 203 12.3.4 二進制文件的讀寫 205 12.4 綜合案例——復制文件時顯示復制進度 205 12.4.1 案例描述 205 12.4.2 實現代碼 206 12.5 實戰練習 207 第13章 GDI+繪圖 13.1 GDI+繪圖基礎 209 13.2 繪圖 210 13.2.1 畫筆 210 13.2.2 畫刷 211 13.2.3 繪制圖形 211 【實例13.1】繪制驗證碼 211 13.2.4 填充圖形 212 【實例13.2】繪制并利用餅型圖分析產品市場占有率 213 13.3 顏色 213 13.4 文本輸出 214 13.4.1 字體 214 13.4.2 輸出文本 215 13.5 圖像處理 215 13.5.1 繪制圖像 215 13.5.2 刷新圖像 216 13.6 綜合案例——十字光標定位 216 13.6.1 案例描述 216 13.6.2 實現代碼 217 13.7 實戰練習 217 第14章 網絡編程 14.1 IP地址封裝 219 【實例14.1】訪問同一局域網中的主機的名稱 220 14.2 TCP程序設計 221 14.2.1 Socket類 221 14.2.2 TcpClient類和TcpListener類 222 14.2.3 TCP網絡程序實例 223 【實例14.2】客戶端/服務器的交互 223 14.3 UDP程序設計 225 14.3.1 UdpClient類 225 14.3.2 UDP網絡程序實例 226 【實例14.3】廣播數據報程序 226 14.4 綜合案例——點對點聊天室 228 14.4.1 案例描述 228 14.4.2 實現代碼 228 14.5 實戰練習 230 第15章 多線程編程 15.1 線程概述 232 15.1.1 多線程工作方式 232 15.1.2 何時使用多線程 232 15.2 線程的基本操作 232 15.2.1 線程的創建與啟動 232 15.2.2 線程的掛起與恢復 234 15.2.3 線程休眠 235 15.2.4 終止線程 235 15.2.5 線程的優先級 236 15.3 線程同步 237 15.3.1 lock關鍵字 237 【實例15.1】模擬賬戶轉賬操作 237 15.3.2 線程監視器——Monitor 238 【實例15.2】Monitor同步監視器的使用 238 15.3.3 子線程訪問主線程的控件 239 15.4 線程池和定時器 240 15.4.1 線程池 240 15.4.2 定時器 241 15.5 互斥對象——Mutex 241 15.6 綜合案例——設置同步塊模擬售票系統 242 15.6.1 案例描述 242 15.6.2 實現代碼 243 15.7 實戰練習 244 第16章 程序調試與異常處理 16.1 程序調試 246 16.1.1 Visual Studio編輯器調試 246 16.1.2 Visual Studio調試器調試 246 16.2 異常處理 248 16.2.1 try…catch語句 249 【實例16.1】未將對象引用設置到對象實例的異常 249 16.2.2 try…catch…finally語句 251 【實例16.2】捕捉將字符串轉換為整型數據時的異常 251 16.2.3 throw語句 252 【實例16.3】拋出除數為0的異常 252 16.2.4 異常的使用原則 253 16.3 綜合案例——數組索引超出范圍引發的異常 253 16.3.1 案例描述 253 16.3.2 實現代碼 253 16.4 實戰練習 254 第17章 注冊表應用 17.1 注冊表基礎 256 17.1.1 Windows注冊表概述 256 17.1.2 Registry和RegistryKey類 256 17.2 在C#中操作注冊表 258 17.2.1 讀取注冊表中信息 258 【實例17.1】讀取注冊表信息 259 17.2.2 創建和修改注冊表信息 259 【實例17.2】創建注冊表項 260 【實例17.3】修改注冊表項 261 17.2.3 刪除注冊表中信息 261 17.3 綜合案例——限制軟件的使用次數 262 17.3.1 案例描述 262 17.3.2 實現代碼 262 17.4 實戰練習 264 第18章 系統打包部署 18.1 創建打包項目 266 18.2 添加項目輸出 266 18.3 添加內容文件 267 18.4 創建桌面快捷方式 267 18.5 添加注冊表項 268 18.6 生成Windows安裝程序 269 第2篇 案例篇 第19章 二維碼生成器——C#+ZXing.Net組件實現 19.1 案例效果預覽 272 19.2 案例準備 272 19.3 業務流程 272 19.4 實現過程 272 19.4.1 設計窗體 272 19.4.2 引入ZXing.Net組件 273 19.4.3 自定義生成二維碼的方法 273 19.4.4 設置是否包含圖片 275 19.4.5 實現二維碼的生成 275 第20章 語音與文本的相互轉換——Baidu.AI+ffmpeg多媒體框架實現 20.1 案例效果預覽 277 20.2 案例準備 277 20.3 業務流程 277 20.4 實現過程 277 20.4.1 準備百度云AI的SDK開發包 277 20.4.2 設計窗體 280 20.4.3 創建語音合成與識別對象 281 20.4.4 將文本合成為語音文件 281 20.4.5 將語音識別為文本 283 第21章 根據人臉推測其年齡性別——C#+Baidu.AI框架+人臉識別技術實現 21.1 案例效果預覽 286 21.2 案例準備 286 21.3 業務流程 286 21.4 實現過程 286 21.4.1 設計窗體 286 21.4.2 初始化人臉識別對象 287 21.4.3 識別人臉并推測年齡性別 287 第22章 AI圖像識別工具——Baidu.AI框架+圖像識別技術+文字識別技術實現 22.1 案例效果預覽 292 22.2 案例準備 292 22.3 業務流程 292 22.4 實現過程 292 22.4.1 設計窗體 292 22.4.2 初始化圖像及文字識別對象 294 22.4.3 植物識別 294 22.4.4 動物識別 295 22.4.5 車型識別 296 22.4.6 車牌識別 297 22.4.7 菜品識別 298 第23章 從文檔中提取所有圖片——Sprie.PDF組件+文件流+Image圖片類實現 23.1 案例效果預覽 301 23.2 案例準備 301 23.3 業務流程 301 23.4 實現過程 301 23.4.1 設計窗體 301 23.4.2 選擇PDF文檔 302 23.4.3 從PDF文檔中提取圖片并保存 302 第24章 為圖片批量添加水印——C#+GDI+繪圖技術實現 24.1 案例效果預覽 305 24.2 案例準備 305 24.3 業務流程 305 24.4 實現過程 306 24.4.1 設計窗體 306 24.4.2 加載圖片 306 24.4.3 設置水印類型 307 24.4.4 為圖片添加水印 309 第25章 語音計算器——系統API函數+INI文件讀寫+語音播放技術實現 25.1 案例效果預覽 314 25.2 案例準備 314 25.3 業務流程 314 25.4 實現過程 315 25.4.1 設計窗體 315 25.4.2 獲取并播放語音 315 25.4.3 數字鍵輸入 316 25.4.4 點輸入 317 25.4.5 其他符號輸入 317 25.4.6 實現計算及語音播放功能 319 25.4.7 語音設置的實現 320 第26章 Word與PDF轉換工具——C# + Spire.PDF組件 + Spire.Doc組件實現 26.1 案例效果預覽 323 26.2 案例準備 323 26.3 業務流程 323 26.4 實現過程 324 26.4.1 設計窗體 324 26.4.2 設置轉換文件及格式 324 26.4.3 Word轉換為PDF的實現 325 26.4.4 PDF轉換為Word的實現 326 第27章 EXE文件加密器——WMI+文件流+注冊表+異或加密算法實現 27.1 案例效果預覽 329 27.2 案例準備 329 27.3 業務流程 329 27.4 實現過程 330 27.4.1 獲取加密字符串的信息 330 27.4.2 對生成后的數據進行加密 333 27.4.3 對EXE文件進行加密 335 27.4.4 解密文件的設置 337 第28章 365桌面提醒器——多線程+數據庫+注冊表技術實現 28.1 案例效果預覽 343 28.2 案例準備 343 28.3 業務流程 344 28.3.1 提醒設置流程 344 28.3.2 計劃錄入流程 344 28.3.3 計劃查詢流程 344 28.3.4 計劃統計流程 345 28.4 數據庫設計 345 28.5 公共類設計 345 28.5.1 封裝數據值和顯示值的類 345 28.5.2 綁定和顯示數據的類 346 28.6 提醒設置模塊設計 346 28.6.1 提醒設置功能概述 346 28.6.2 提醒設置界面設計 347 28.6.3 打開提醒設置界面 347 28.6.4 保存提示設置 347 28.7 計劃錄入模塊設計 348 28.7.1 計劃錄入功能概述 348 28.7.2 計劃錄入界面設計 348 28.7.3 打開計劃錄入界面 349 28.7.4 添加計劃任務 349 28.7.5 保存計劃任務 350 28.7.6 刪除計劃任務 351 28.8 計劃查詢模塊設計 352 28.8.1 計劃查詢功能概述 352 28.8.2 計劃查詢界面設計 352 28.8.3 打開計劃查詢界面 353 28.8.4 查詢計劃信息 353 28.8.5 處理計劃 354 28.9 計劃統計模塊設計 354 28.9.1 計劃統計功能概述 354 28.9.2 計劃統計界面設計 354 28.9.3 統計計劃信息 355 第29章 《華容道》游戲——C#+鼠標鍵盤處理技術實現 29.1 案例效果預覽 357 29.2 案例準備 357 29.3 業務流程 357 29.4 實現過程 358 29.4.1 設計窗體 358 29.4.2 初始化各位置可用狀態 358 29.4.3 設置人物選中狀態 358 29.4.4 游戲邏輯的實現 359 29.4.5 重新開始游戲 363 第30章 貪吃蛇大作戰——C#+GDI+技術+鍵盤處理實現 30.1 案例效果預覽 365 30.2 案例準備 365 30.3 業務流程 365 30.4 實現過程 366 30.4.1 創建項目并導入資源文件 366 30.4.2 設計窗體 367 30.4.3 初始化游戲場景及蛇身 368 30.4.4 控制游戲的開始、暫停和結束 369 30.4.5 移動貪吃蛇并控制其速度 371 第3 篇 應用篇 第31章 網絡多任務下載器——C#+Thread多線程+斷點續傳技術實現 31.1 系統需求分析 374 31.1.1 系統概述 374 31.1.2 系統可行性分析 374 31.1.3 系統用戶角色分配 374 31.1.4 功能性需求分析 374 31.1.5 非功能性需求分析 375 31.2 系統功能設計 375 31.2.1 系統功能結構 375 31.2.2 系統業務流程 375 31.2.3 系統預覽 375 31.3 系統開發必備 376 31.3.1 系統開發環境 376 31.3.2 文件夾組織結構 376 31.4 公共類設計 377 31.4.1 Set系統設置類 377 31.4.2 DownLoad文件下載類 379 31.4.3 xuchuan斷點續傳類 382 31.5 主窗體設計 383 31.5.1 主窗體概述 383 31.5.2 主窗體的業務流程 384 31.5.3 設計主窗體 384 31.5.4 初始化控件及下載任務狀態 385 31.5.5 打開新建下載任務窗體 391 31.5.6 開始、暫停、刪除及續傳操作 391 31.5.7 網絡速度實時監控 393 31.5.8 退出程序時保存續傳文件 393 31.5.9 打開系統設置窗體 394 31.6 新建下載任務窗體設計 395 31.6.1 新建下載任務概述 395 31.6.2 新建下載任務的業務流程 395 31.6.3 設計新建下載任務界面 395 31.6.4 顯示默認下載路徑 396 31.6.5 選擇下載文件保存位置 396 31.6.6 自動獲取下載文件名 396 31.6.7 確認下載文件信息 397 31.7 系統設置窗體設計 398 31.7.1 系統設置窗體概述 398 31.7.2 系統設置的業務流程 398 31.7.3 設計系統設置窗體 398 31.7.4 顯示用戶的默認設置 399 31.7.5 切換設置界面 400 31.7.6 保存用戶設置 401 第32章 明日ERP管理系統——WinForm+SQL Server+事務處理技術實現 32.1 系統需求分析 404 32.1.1 系統概述 404 32.1.2 系統可行性分析 404 32.1.3 系統用戶角色分配 404 32.1.4 功能性需求分析 404 32.1.5 非功能性需求分析 405 32.2 系統功能設計 405 32.2.1 系統功能結構 405 32.2.2 系統業務流程 406 32.2.3 系統預覽 406 32.3 系統開發必備 406 32.3.1 系統開發環境 406 32.3.2 文件夾組織結構 407 32.4 數據庫設計 407 32.4.1 數據庫概要說明 407 32.4.2 數據庫邏輯設計 408 32.5 公共類設計 411 32.5.1 DataBase類 412 32.5.2 CommonUse類 414 32.6 物料清單模塊設計 418 32.6.1 物料清單模塊概述 418 32.6.2 物料清單模塊的業務流程 418 32.6.3 設計物料清單窗體 418 32.6.4 獲取所有母件信息 419 32.6.5 獲取指定母件的子件信息 419 32.6.6 打開物料清單編輯窗體 420 32.6.7 添加/修改物料清單 421 32.7 銷售收款單模塊設計 422 32.7.1 銷售收款單模塊概述 422 32.7.2 銷售收款單模塊的業務流程 423 32.7.3 設計銷售收款單窗體 423 32.7.4 查看已審核的銷售出庫單 424 32.7.5 查看指定出庫單的詳細信息 424 32.8 操作權限模塊設計 425 32.8.1 操作權限模塊概述 425 32.8.2 操作權限模塊的業務流程 425 32.8.3 設計操作權限窗體 425 32.8.4 初始化用戶及其權限列表 426 32.8.5 查看操作員的權限 428 32.8.6 修改操作員權限 429
ISBN:978-7-122-40197-7
語種:漢文
開本:16
出版時間:2022-02-01
裝幀:平
頁數:430