本書是關于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自定義異常及處理
參考文獻