計算機程序設計語言是高校理工科本科生必修的一門核心課程。傳統上,高校主要教授C/C++,但C++既非純粹的面向對象語言,編程界面也需依賴外部工具。將大量時間投入在面向過程的程序設計上,限制了學生對面向對象和可視化界面編程的掌握。近年來,Python 和C#受到青睞,后者作為微軟推出的面向對象語言,為理工科應用軟件開發(fā)提供了全方位支持。本書作者根據多年教學經驗,編寫了這本以C#面向對象程序設計為核心的高校教材,并包含了習題練習,旨在系統地講解C#基本語法及其應用,并培養(yǎng)學生面向對象的程序設計能力。本書可作為高等院校電子信息類、計算機類、自動化類、機電類等專業(yè)的C#語言教材,也可作為相關技術培訓教材,還可供從事相關技術開發(fā)的工程技術人員參考。
。本書作者根據多年教學經驗,編寫了這本以C#面向對象程序設計為核心的高校教材,并包含了習題練習,旨在系統地講解C#基本語法及其應用,并培養(yǎng)學生面向對象的程序設計能力。
計算機程序設計語言是高校理工科本科生必修的且唯一(非計算機專業(yè)) 的一門信息類課程,對于處處離不開計算機的時代,這樣的學習機會顯得尤為珍貴。通過該課程的學習,可以掌握程序設計的方法以及一門設計語言的語法,同時也具備了開發(fā)小型計算應用軟件、管理軟件的能力,如機械優(yōu)化設計軟件、齒輪設計軟件、圖書與人事管理軟件等。近十多年來,高校非計算機類的理工科專業(yè)主要開設C/C++ 計算機程序設計語言課程。C/C++ 是一種介于低級語言和高級語言之間的中級語言,其為工業(yè)控制程序的設計以及底層應用程序的開發(fā)提供了便利,使控制程序的設計不再需要掌握匯編語言。但在程序設計方法上,C++ 不是純粹的面向對象的程序設計語言,且界面開發(fā)需要借助第三方工具或軟件如MFC,其界面開發(fā)糾錯難度大。另外,所有C++ 語言教學都是用面向過程的程序設計方法開展語句、語法的教學,然后再用面向對象的程序設計方法,介紹類、對象的概念及其高級編程技術,且在用面向過程程序設計方法進行C++ 語法學習與編程實踐訓練中花費的教學時數占總課程時數的70%,這是不可否認的事實。多年的教學經驗告訴我們,這樣的教學結果是學生僅掌握了C++ 面向過程的程序設計方法,可以開發(fā)簡單的控制臺界面下的應用程序,而對于C++ 面向對象的程序設計、可視化界面程序設計等基本無從下手。導致這種結果的原因是在面向過程的程序設計應用實踐上花費了太多的時間,雖然這是學習C++ 基本語法必須經歷的過程,但是制約了大學生計算機語言程序設計能力的培養(yǎng)。近年來,Python、C# 受到大學生的青睞和高校的關注。二者都是全面面向對象的程序設計語言,Python 具有開源式代碼,深受程序設計者喜愛,但主要面向人工智能領域,不太適用工業(yè)控制軟件的開發(fā)。C# 是微軟公司于2000 年推出的、為新一代技術平臺Micosoft.NET 提供的優(yōu)秀的編程開發(fā)語言之一。微軟對C# 的定義是:C# 是一種類型安全的、現代的、簡單的,由C 和C++ 衍生出來的面向對象的編程語言,其系統含有可視化界面設計模塊。這就為理工科類應用軟件的開發(fā)提供了全方位能力,編者認為這是非計算機類理工科大學生應該學習的最具價值的程序設計語言。編者從事計算機程序設計語言的教學二十多年,應用C++ 開發(fā)過機械優(yōu)化設計軟件,應用VB 在ANSYS、Fluent、SolidWorks 等后臺開發(fā)過相應的專業(yè)軟件,具備豐富的計算機語言教學經驗和程序設計經驗。編者在認真閱讀了目前出版的C# 書籍(含培訓教材) 后發(fā)現,目前還沒有一本以面向對象程序設計方法為程序架構、系統介紹C# 基本語法與程序訓練的高校教材。鑒于此,編者組織具有良好的程序設計實戰(zhàn)經驗和教學經驗的團隊編寫了本書。本書的特點包括:真正講清楚了面向對象的程序設計思想,真正講清楚了利用抽象獲取類成員的技術以及類的封裝、繼承與派生、多態(tài)等作用,真正系統介紹了C# 基本語法和應用案例,真正講清楚了類聲明中修飾符的作用與應用場合,每章配有一定數量的習題供讀者練習。編者對本書內容進行了全面的規(guī)劃,并得到了多所高校計算機課程負責人的認可。夏建芳教授負責全書各章節(jié)內容的策劃與編排,并編寫了第1 章、第7 章、第8 章、第9 章,盧知來博士(副教授) 編寫了第2 章、第3 章、第4 章,陳力銘博士(副教授) 編寫了第6 章、第10 章、第11 章,潘晴博士(副教授) 編寫了第5 章,宋佳楠博士和陳龍庭博士編寫了各章習題。夏建芳教授對本書進行了認真的統合。雖然團隊在本書的編寫過程中付出了很多的時間和精力,但難免有考慮不周的地方,敬請讀者批評指正,以在教學過程中及時糾正,再版時及時改正。
高等院校教師
目 錄前言第1 章 面向對象程序設計思維及C# 概述 11.1 面向對象思維如何模擬世界 11.2 NET 與C# 編程語言 41.3 開發(fā)環(huán)境的搭建 61.4 計算機語言中的標識符與關鍵字 91.5 類的定義與對象的建立 101.6 C# 的組織架構與項目創(chuàng)建 101.7 創(chuàng)建新項目 121.8 命名空間 161.9 控制臺程序中的標準輸入輸出 20習題 22第2 章 C# 的數據類型與表達式 252.1 計算機內存結構與管理 252.2 常量 262.3 變量 302.4 值類型變量與引用類型變量 362.5 變量的類型轉換 372.6 變量的作用域與生存期 402.7 運算符與表達式 412.8 運算符的優(yōu)先級與結合性 492.9 復雜表達式的計算實例 51習題 52第3 章 類的聲明與成員訪 543.1 類的概述 543.2 類的字段變量 603.3 類的方法聲明及構造、析構函數 713.4 方法深度學習 783.5 靜態(tài)類 963.6 Lambda 表達式——匿名函數 983.7 委托及其應用 983.8 C# 中常用的預定義類 1003.9 類庫文件(.dll) 的創(chuàng)建與引用操作 1063.10 含多個源程序的項目創(chuàng)建過程 107習題 108第4 章 C# 程序流程控制語句 1114.1 C# 程序常用語句概述 1114.2 賦值語句 1134.3 復合語句 1144.4 選擇結構語句 1144.5 循環(huán)結構 1194.6 跳轉語句 1234.7 using 語句 1274.8 選擇、循環(huán)結構的嵌套 1284.9 方法的遞歸調用 1304.10 綜合應用 132習題 136第5 章 字符及字符串操 1395.1 char 字符類 1395.2 string 字符串類型 1425.3 可變字符串類StringBuilder 153習題 155第6 章 結構體和枚 1586.1 結構體類型定義 1586.2 結構體變量及其使用 1626.3 枚舉及其應用 1686.4 綜合應用 170習題 174第7 章 數組和集 1777.1 數組概述與數組的聲明 1777.2 一維數組和二維數組的實例化與初始化 1787.3 數組元素的訪問 1807.4 數組常用屬性與方法 1817.5 數組的應用 1837.6 交錯數組 1937.7 Array 類 1967.8 泛型集合 2007.9 綜合應用 205習題 208第8 章 類的繼承與派 2118.1 基類與派生類 2118.2 抽象類及其派生類 2198.3 接口及其實現類 2218.4 接口和抽象類的區(qū)別 2258.5 虛方法的聲明及其在派生類中的重寫 2268.6 多態(tài) 2318.7 對象數組的聲明及其實例化與初始化 2378.8 設計范例 2388.9 綜合應用 241習題 243第9 章 文件操 2479.1 文本數據文件與二進制數據文件概述 2479.2 File 類和FileInfo 類 2529.3 Directory 類和DirectoryInfo 類 2579.4 FileStream 類及其數據文件讀寫 2629.5 StreamReader/StreamWriter 類讀寫文本數據文件 2739.6 BinaryReader/BinaryWriter 類讀寫二進制數據文件 2779.7 讀寫Excel 文件 2849.8 綜合應用 286習題 288第10 章 程序調試與異常處 29110.1 使用Visual Studio 調試C# 代碼 29110.2 異常處理 295第11 章 實踐安排 30211.1 實驗一:流程控制語句程序設 30211.2 實驗二:數組、方法及參數傳遞程序設 30311.3 實驗三:繼承與派生程序設 30311.4 實驗四:文件操作程序設 304附錄 ACSII 編碼表 305參考文 306