《C#語言程序設計》PPT課件.ppt

上傳人:w****2 文檔編號:15597700 上傳時間:2020-08-23 格式:PPT 頁數(shù):362 大小:3.08MB
收藏 版權申訴 舉報 下載
《C#語言程序設計》PPT課件.ppt_第1頁
第1頁 / 共362頁
《C#語言程序設計》PPT課件.ppt_第2頁
第2頁 / 共362頁
《C#語言程序設計》PPT課件.ppt_第3頁
第3頁 / 共362頁

下載文檔到電腦,查找使用更方便

19.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C#語言程序設計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《C#語言程序設計》PPT課件.ppt(362頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、C# 語 言 程 序 設 計C# Language Programing,杜進;Enterdu TEL:13871340263 ,課程簡介,信息素養(yǎng)教育是大學生通識教育的重要內容之一。 C#是一種優(yōu)秀的面向對象語言,它繼承了C++和Java等語言的優(yōu)點,并與現(xiàn)代軟件工程相適應。C#語言利用.NET作為運行平臺,使得它在Windows圖形用戶界面、Web應用、數(shù)據(jù)庫等方面有強大的功能。 本課程的目標是: 學習和掌握C#語言的原理和方法,以及C#在常見的各類信息的處理以及企業(yè)信息化的應用,以此來提高信息意識和信息化素養(yǎng),更深入地理通過程序設計來處理信息的原理和方法,更自如地應用計算機來為專業(yè)工作服

2、務,為服務于企業(yè)信息化打下基礎。 本課程要求在先修課程大學計算機基礎(下)或VFP數(shù)據(jù)庫中已經(jīng)有程序設計的基礎知識。,C#語言程序設計,2,課程目錄,第0章 C#語言學習前的準備 第1章 Visual C#簡介 第2章 C#簡單程序編寫 第3章 C#程序設計基礎 第4章 C#控制語句 第5章 數(shù)組和集合 第6章 面向對象程序設計 第7章 繼承和接口設計 第8章 Windows窗體應用程序設計 第9章 用戶界面設計,3,C#語言程序設計,第0章 C#語言學習前的準備,計算機基礎知識測試題: 將下列項目歸類為硬件或軟件: CPU、編譯器、輸入單元、字處理程序、Java程序 填空題: 計算機編程語言

3、包括:機器語言、 和 。 計算機只能直接理解其本身的 語言,這種語言是由1和0構成的。 計算機處理數(shù)據(jù)時由一組指令控制,這組指令稱為計算機 。 將高級語言程序變成機器語言的程序稱為 。,4,C#語言程序設計,第0章 C#語言學習前的準備,計算機基礎知識測試題: 寫出計算機網(wǎng)絡相關縮略語的全稱: W3C、HTML、XML、HTTP、SOAP,5,C#語言程序設計,可以開始進入C#課程學習了!,課程的重點、難點 重點:C#應用程序的架構、程序調試、數(shù)據(jù)類型(值類型、引用類型)、流程控制語句(條件分支語句、循環(huán)語句、異常處理)、常用類操作和數(shù)據(jù)處理、封裝、繼承、多態(tài)、接口 難點:

4、C#應用程序的架構、應用類型、循環(huán)語句、異常處理、面向對象的程序設計、繼承、接口 課時安排 總課時:48(課內)+32(課外) 周課時:2(課堂)+1(實驗)+2(課后),C#語言程序設計,6,可以開始進入C#課程學習了!,參考資料 ftp://dzsw:dzsw221.232.141.195 書籍: P.J.Deital等著.Visual C# 2008 大學教程(第3版).電子工業(yè)出版社 karli Watson等著.C#入門經(jīng)典(第4版).清華大學出版社 網(wǎng)絡: www.mono- Mono開源項目 創(chuàng)建Linux、Windows與Mac OS X平臺上的.NET程序; www.ecma

5、-international.org/publications/standards/Ecma-334.htm ECMA-334標準:C#語言規(guī)范; 微軟開發(fā)人員聯(lián)機庫,C#語言程序設計,7,第1章 Visual C#簡介,本章目錄 運行一個運用C#編寫的應用程序實例 C C++ Java Visual C# OOP(面向對象編程)技術 .NET框架與CLR(公共語言運行環(huán)境) Visual Studio IDE介紹,8,C#語言程序設計,第1章 Visual C#簡介,一個應用程序實例 Examplesch01AdvancedPainter.exe,C#語言程序設計,9,第1章 Visual

6、C#簡介,C C++ Java Visual C#發(fā)展歷史 C語言 1973年由貝爾實驗室的Dennis Ritchie開發(fā)的,最初作為UNIX操作系統(tǒng)的開發(fā)語言; C++ 20世紀80年代初由貝爾實驗室的Bjarne Stroustrup開發(fā)的,在C語言的基礎上提供了面向對象編程的特性; 人們需要迅速地、正確地、經(jīng)濟地建立軟件,部分可以利用對象,來復用軟件組件;,C#語言程序設計,10,第1章 Visual C#簡介,C C++ Java Visual C#發(fā)展歷史 Java Sun于1991年開始的一個內部公司研究項目:開發(fā)一個基于C++的語言,即Java; Sun于1995年正式推出Ja

7、va,由于Java可用在Web頁面中增加動態(tài)內容(即交互性、動畫等),因此一經(jīng)推出,立刻引起了企業(yè)界的興趣;,C#語言程序設計,11,第1章 Visual C#簡介,C C++ Java Visual C#發(fā)展歷史 C# 2000年微軟推出;由Anders Hejlsberg和Scott Wilramuth領導的小組開發(fā); 為什么要開發(fā)C#呢?,C#語言程序設計,12,第1章 Visual C#簡介,OOP(面向對象編程)技術 對象(object) 對象技術是一種包裝機制,可以創(chuàng)建有意義的軟件單元; 對象具有屬性(property或attribute); 對象要進行操作(也稱為行為或方法);

8、類(class)是一類相關對象。類指定對象的一般格式,對象的屬性與操作取決于所屬的類;,C#語言程序設計,13,第1章 Visual C#簡介,.NET框架與CLR(公共語言運行環(huán)境),C#語言程序設計,14,第1章 Visual C#簡介,Visual Studio IDE介紹 VS IDE界面介紹 VS IDE可視化編程程序示例,C#語言程序設計,15,,第1章 Visual C#簡介,小節(jié) 本章專業(yè)術語 CLR(Common Language Runtime)公共語言運行環(huán)境 GUI(Graphical User Interface)圖形用戶界面 IDE(Integrated Devel

9、opment Environment)集成開發(fā)環(huán)境 OOP(Object-Oriented Programming)面向對象編程 練習題 練習把工具箱中的控件放到窗體上,熟悉每個控件的模樣。 記事本GUI;日歷與提醒GUI 計算器GUI;鬧鐘GUI 收音機GUI,C#語言程序設計,16,第1章結束,C#語言程序設計,17,THANKS!,See you next time!,第2章 C#簡單程序編寫,本章目錄 代碼遍歷一個C#控制臺程序 程序解讀 C#程序創(chuàng)建 一個Windows程序示例,C#語言程序設計,18,第2章 C#簡單程序編寫,代碼遍歷一個C#控制臺程序,C#語言程序設計,19,第2

10、章 C#簡單程序編寫,程序解讀 注釋:用來說明程序和提高程序的可讀性; 單行注釋語句 // 界定注釋可以跨多行 /* This is a delimited comment. It can be split over many lines */ using指令(注意大小寫):幫助編譯器找到程序使用的類; C#有豐富的預定義類,這些類組織成名字空間(namespace,即相關類的集合),.NET的名字空間統(tǒng)稱為.NET的框架類庫(FCL); 對使用的每個新.NET類,要指定類所在的名字空間;,C#語言程序設計,20,第2章 C#簡單程序編寫,程序解讀 用戶定義類 每個程序至少要有一個用戶定義類

11、(即程序員定義的類); 注意:class關鍵字要小寫,C#中的關鍵字(保留字)都必須小寫;但所有類名都是以大寫字母開頭(即Pascal規(guī)則); Main方法 Main后面的括號是個程序塊,被稱為方法; 在每個程序,類中有一個Main方法,否則這個程序無法執(zhí)行;,C#語言程序設計,21,第2章 C#簡單程序編寫,程序解讀 Console類 Console類提供標準輸入/輸出功能,使程序可以在執(zhí)行時讀取和現(xiàn)實文本; Console.WriteLine(Welcome to C# Programming!); Console.Read(); WriteLine方法用來在控制臺輸出變量; Read方法

12、用來在控制臺輸入信息; ; 是每個語句結束的符號;,C#語言程序設計,22,第2章 C#簡單程序編寫,C#程序創(chuàng)建 IDE的代碼顏色模式 IDE使用過的代碼顏色模式為語法顏色高亮度顯示,有助于區(qū)別不同程序元素;例如,關鍵字顯示為藍色,注釋文本顯示為綠色; 行號 利于程序閱讀和修改; ToolsOptions對話框Text EditorLine Numbers,C#語言程序設計,23,第2章 C#簡單程序編寫,C#程序創(chuàng)建 代碼縮進 將代碼縮進設置為每層3格,也可以使用Tab鍵; 程序文件名 程序默認的文件名是Program.cs,可以在屬性窗口中修改; IntelliSense特性 Intel

13、liSense(智能感應)可在輸入程序時列出類的成員和方法名,方便輸入;,C#語言程序設計,24,第2章 C#簡單程序編寫,C#程序創(chuàng)建 程序保存、編譯與運行 F5:啟動調試 常見編程錯誤 注意留意常見的錯誤; 一個錯誤可能產(chǎn)生多個錯誤消息;,C#語言程序設計,25,第2章 C#簡單程序編寫,C#程序創(chuàng)建 良好編程習慣 習慣上,類名應該以大寫字母開頭,其中每個單詞首字母用大寫; 習慣上,包含一個公用類的文件命名時應于類同名,包括拼寫和大小寫,這樣命名有助于程序員確定程序的類所在的位置; 在分隔類體的左右括號之間將內容縮進一級,這種格式有利于顯示類聲明結構,增加可讀性; 設置縮進量,采用一致的習

14、慣; 和類一樣,在定義方法時體的左右括號之間將每個方法聲明的整體縮進一層;,C#語言程序設計,26,第2章 C#簡單程序編寫,一個Windows程序示例,C#語言程序設計,27,第2章 C#簡單程序編寫,小節(jié) 本章專業(yè)術語 .NET FCL(.NET Framework Class Library).NET框架類庫 練習題 按照例子2.1編寫并運行控制臺程序 將例子2.1的代碼故意“破壞”,如缺括號或將關鍵字拼寫錯誤,看看編譯器產(chǎn)生語法錯誤的消息,并分析錯誤消息產(chǎn)生的原因。,C#語言程序設計,28,第2章 結束,C#語言程序設計,29,THANKS!,See you next time!,第3

15、章 C#程序設計基礎,本章目錄 標識符 C#中數(shù)據(jù)類型 C#中的變量和常量 結構類型和枚舉類型 C#運算符和表達式 C#中常用類和結構,C#語言程序設計,30,3.1 標識符,C#的標識符名稱必須遵守以下規(guī)則: (1)所有的標識符只能由字母、數(shù)字和下劃線這3類字符組成,且第一個字符必須為字母或下劃線。 (2)標識符中不能包含空格、標點符號、運算符等其他符號。 (3)標識符嚴格區(qū)分大小寫。 (4)標識符不能與C#關鍵字名相同。 (5)標識符不能與C#中的類庫名相同。,a12_c ,1abc ,3.2 C#中數(shù)據(jù)類型,,C#中數(shù)據(jù)類型分類圖,3.2.1值類型 值類型的變量內含變量值本身,C#的值

16、類型可以分為簡單類型、結構類型和枚舉類型。下面僅介紹簡單類型。,1. 整數(shù)類型,2. 實數(shù)類型,3 字符類型,例如,可以采用如下方式字符變量賦值: char c=H ; // 字符H char c=x0048; // 字符H,十六進制轉義符(前綴為x) char c=u0048; // 字符H,Unicode表示形式(前綴為u) char c=r; // 回車,轉義字符 在表示一個字符常數(shù)時,單引號內的有效字符數(shù)量必須且只能是一個,而且不能是單引號或者反斜杠()。,4. 布爾類型 布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的類型標識符是bool。,3.2.2 引用類型 引用類型也

17、稱為參考類型。和值類型相比,引用類型的變量不直接存儲所包含的值,而是指向它所要存儲的值。類似C中的指針。,1. object類 object是C#中所有類型(包括所有的值類型和引用類型)的基類,C#中的所有類型都直接或間接地從object類中繼承而來。因此,對一個object的變量可以賦予任何類型的值。 float f=1.23; object obj1; //定義obj1對象 obj1=f; object obj2=China;//定義obj2對象并賦初值,2. string類 C#還定義了一個string類,表示一個Unicode字符序列,專門用于對字符串的操作。同樣,這個類

18、也是在.NET Framework的命名空間System中定義的,是類System.String的別名。 字符串在實際中應用非常廣泛,利用string類中封裝的各種內部操作,可以很容易完成對字符串處理。例如: string str1=123+abc; //+運算符用于連接字符串 char c=Hello World!2; //運算符可以訪問string中的單個字符,c=e string str2=China; string str3=China; // 字符串的另一種表示形式,用引起來。 bool b=(str2==str3); //==運算符用于兩個字符串比較,b=true,3.2.3

19、類型轉換 數(shù)據(jù)類型在一定條件下是可以相互轉換的,如將int型數(shù)據(jù)轉換成double型數(shù)據(jù)。C#允許使用兩種轉換的方式:隱式轉換和顯式轉換。 1. 隱式轉換 隱式轉換是系統(tǒng)默認的、不需要加以聲明就可以進行的轉換。,2. 顯式轉換 顯式轉換又叫強制類型轉換,與隱式轉換相反,顯式轉換需要用戶明確地指定轉換類型,一般在不存在該類型的隱式轉換時才使用。格式如下: (類型標識符)表達式 其作用是將“表達式”值的類型轉換為“類型標識符”的類型。例如: (int)1.23 //把double類型的1.23轉換成int類型,結果為1 需要提醒注意以下幾點: (1)顯式轉換可能會導致錯誤。進行這

20、種轉換時編譯器將對轉換進行溢出檢測。如果有溢出說明轉換失敗,就表明源類型不是一個合法的目標類型,轉換就無法進行。 (2)對于從float、double、decimal到整型數(shù)據(jù)的轉換,將通過舍入得到最接近的整型值,如果這個整型值超出目標類型的范圍,則出現(xiàn)轉換異常。,【例3.1】 設計一個控制臺程序說明類型轉換的應用。,using System; namespace Proj3_1 class Program static void Main(string args) int i=65,i1,i2; double d = 66.3456,d1,d2; char c =

21、A,c1,c2; Console.WriteLine(i=0:d5,d=1:f,c=2, i, d, c); i1 = (int)d; //強制類型轉換 d1 = i;//隱式類型轉換 c1 = (char)i;//強制類型轉換 Console.WriteLine(i1=0:d5,d1=1:f,c1=2, i1, d1, c1); i2 = c; //隱式類型轉換 d2 = (int)d; //強制類型轉換,轉換成整數(shù)后再隱式轉為double類型 c2 = (char)d; //強制類型轉換 Console.WriteLine(i2=0

22、:d5,d2=1:f,c2=2, i2, d2, c2); ,3.2.4 裝箱和拆箱 1. 裝箱轉換 裝箱轉換是指將一個值類型的數(shù)據(jù)隱式地轉換成一個對象類型的數(shù)據(jù)。例如,下面語句就執(zhí)行了裝箱轉換: int i=8; object obj=i; 或 object obj=(object)i; 2. 拆箱轉換 拆箱轉換是指將一個對象類型的數(shù)據(jù)顯式地轉換成一個值類型數(shù)據(jù)。例如,下面語句就執(zhí)行了拆箱轉換: object obj=2; int i=(int)obj; 拆箱轉換需要(而且必須)執(zhí)行顯式轉換,這是它與裝箱轉換的不同之處。,3.3 C#中的變量和常量 3.3.1 變量 1. 變量定義

23、 在C#程序里使用某個變量之前,必須要告訴編譯器它是一個什么樣的變量,因此要對變量進行定義。定義變量的方法如下: 訪問修飾符 數(shù)據(jù)類型 變量名 = 初始值; 例如: string name=王華; int age=20; 也可以同時聲明一個或多個給定類型的變量,例如: int a=1,b=2,c=3;,2. 理解值類型的變量 如果一個變量的值是普通的類型,那么這個C#變量就是值類型的變量。值類型的變量直接把值存放在變量名標記的存儲位置上。 當定義一個值類型變量并且給它賦值的時候,這個變量只能存儲相同類型的數(shù)據(jù)。所以,一個int類型的變量就只能存放int類型的數(shù)據(jù)。另外,當把值賦給

24、某個值類型的變量時,C#會首先創(chuàng)建這個值的一個拷貝,然后把這個拷貝放在變量名所標記的存儲位置上。 例如: int x; int y=2; x=y;,3. 理解引用類型的變量 引用表示所使用的是變量或對象的地址而不是變量或對象本身。當聲明引用類型變量時,程序只是分配了存放這個引用的存儲空間。要想創(chuàng)建對象并把對象的存儲地址賦給該變量,就需要使用new操作符。例如: MyClass var; //MyClass是已定義的類或類型 var=new MyClass(); 數(shù)組示例: int a = new int3 1, 2, 3; for (int i = 0; i < 3; i++

25、) Console.Write(0 ,ai);,3.3.2 常量 1. 直接常量 直接常量是指把程序中不變的量直接硬編碼為數(shù)值或字符串值,例如,以下都是直接常量: 100 //整型直接常量 1.23e5 //浮點型直接常量,2. 符號常量 符號常量是通過關鍵字const聲明的常量,包括常量的名稱和它的值。常量聲明的格式如下: const 數(shù)據(jù)類型 常量名=初始值; 其中,“常量名”必須是C#的合法標識符,在程序中通過常量名來訪問該常量。“類型標識符”指示了所定義的常量的數(shù)據(jù)類型,而“初始值”是所定義的常量的值。 例如: const double PI=3.14159265;,3

26、.4 結構類型和枚舉類型 3.4.1 結構類型 1. 結構類型的聲明 結構類型由若干“成員”組成的。數(shù)據(jù)成員稱為字段,每個字段都有自已的數(shù)據(jù)類型。聲明結構類型的一般格式如下: struct 結構類型名稱 字段訪問修飾符 數(shù)據(jù)類型 字段1; 字段訪問修飾符 數(shù)據(jù)類型 字段2; ... 字段訪問修飾符 數(shù)據(jù)類型 字段n; ;,例如,以下聲明一個具有姓名和年齡的結構體類型Student: struct Student//聲明結構類型Student public int xh;//學號 public string xm;//姓名 public string xb;//性別 public in

27、t nl;//年齡 public string bh;//班號 ;,2. 結構類型變量的定義 聲明一個結構類型后,可以定義該結構類型的變量(簡稱為結構變量)。定義結構變量的一般格式如下: 結構類型 結構變量; 例如,在前面的結構類型Student聲明后,定義它的兩個變量如下: Student s1,s2;,3. 結構變量的使用 1)訪問結構變量字段 訪問結構變量字段的一般格式如下: 結構變量名.字段名 例如,s1.xh表示結構變量s1的學號,s2.xm表示結構變量s2的姓名。 結構體變量的字段可以在程序中單獨使用,與普通變量完全相同。 2)結構變量的賦值 結構變量的賦值有兩種方

28、式。 結構變量的字段賦值:使用方法與普通變量相同。 結構變量之間賦值:要求賦值的兩個結構變量必須類型相同。例如: s1=s2; 這樣s2的所有字段值賦給s1的對應字段。,【例3.2】 設計一個控制臺程序說明結構類型的應用。,using System; namespace Proj3_2 class Program struct Student //結構類型聲明應放在Main函數(shù)的外面 public int xh; //學號 public string xm; //姓名 public string xb; //性別 public int nl; //年齡

29、 public string bh; //班號 ,static void Main(string args) Student s1,s2;//定義兩個結構類型變量 s1.xh = 101; s1.xm = 李明; s1.xb = 男; s1.nl = 20; s1.bh = 07001; Console.WriteLine(學號:0,姓名:1,性別:2,年齡:3, 班號:4, s1.xh, s1.xm, s1.xb, s1.nl, s1.bh); s2 = s1;//將結構變量s1賦給s2 s2.xh = 108; s2.x

30、m = 王華; Console.WriteLine(學號:0,姓名:1,性別:2,年齡:3, 班號:4, s2.xh, s2.xm, s2.xb, s2.nl, s2.bh); ,3.4.2 枚舉類型 枚舉類型也是一種自定義數(shù)據(jù)類型,它允許用符號代表數(shù)據(jù)。枚舉是指程序中某個變量具有一組確定的值,通過“枚舉”可以將其值一一列出來。 1. 枚舉類型的聲明 枚舉類型使用enum關鍵字聲明,其一般語法形式如下: enum 枚舉名枚舉成員1,枚舉成員2, 其中,enum是結構類型的關鍵字。例如,以下聲明一個名稱為color的表示顏色的枚舉類型: enum Color Red,Gree

31、n,Blue,White,Black 在聲明枚舉類型后,可以通過枚舉名來訪問枚舉成員,其使用語法如下: 枚舉名.枚舉成員,2. 枚舉成員的賦值 在聲明的枚舉類型中,每一個枚舉成員都有一個相對應的常量值,默認情況下C#規(guī)定第1個枚舉成員的值取0,它后面的每一個枚舉成員的值按加1遞增。例如,前面Color中,Red值為0,Green值為1,Blue值為2,依次類推。 可以為一個或多個枚舉成員賦整型值,當某個枚舉成員賦值后,其后的枚舉成員沒有賦值的話,自動在前一個枚舉成員值之上加1作為其值。例如: enum Color Red=0, Green, Blue=3, White, Black=1

32、; 則這些枚舉成員的值分別為0、1、3、4、1。,3. 枚舉類型變量的定義 聲明一個枚舉類型后,可以定義該枚舉類型的變量(簡稱為枚舉變量)。定義枚舉變量的一般格式如下: 枚舉類型 枚舉變量; 例如,在前面的枚舉類型Color聲明后,定義它的兩個變量如下: Color c1,c2;,1)枚舉變量的賦值 枚舉變量賦值的語法格式如下: 枚舉變量=枚舉名.枚舉成員 例如: c1=Color.Red; 2)枚舉變量的訪問 枚舉變量像普通變量一樣直接訪問。,3.5 C#運算符和表達式,3.5.1 算術運算符,3.5.2 字符串運算符 字符串運算符只有一個,就是加號(+)。它除了作為算術運算符之外

33、,還可以將字符串連接起來,變成合并的新字符串。例如: string s=Hello; s=s+, World.; Console.WriteLine(s); //輸出:Hello, World.,3.5.3 賦值運算符 賦值運算符(=)用于改變變量的值,它先求出右側表達式的結果,然后再將結果賦給左側的變量。,3.5.4 關系運算符,3.5.5 邏輯運算符,3.5.6 位運算符,3.5.7 條件運算符 條件運算符是一個三元運算符,每個操作數(shù)同時又是表達式的值。由條件運算符構成的表達式稱為條件表達式。條件運算符的使用格式如下: 表達式1 ? 表達式2 : 表達式3 它的計算方式為,先計算“

34、表達式1”(必須為布爾值)的值,如果其值true,則“表達式2”的值作為整個表達式的最終結果;否則“表達式3”的值作為整個表達式的值。 例如,以下表達式返回a和b中的最大值: max=ab ? a : b 計算過程是,當ab,max= a; 否則max=b。,3.5.9 運算符的優(yōu)先級 運算符的優(yōu)先級是指在表達式中哪一個運算符應該首先計算。 C#根據(jù)運算符的優(yōu)先級確定表達式的求值順序:優(yōu)先級高的運算先做,優(yōu)先級低的操作后做,相同優(yōu)先級的操作從左到右依次做,同時用小括號控制運算順序,任何在小括號內的運算最優(yōu)先進行。,3.6 C#中常用類和結構,C#中一切都是對象 。,3.6.1 Stri

35、ng類,string類型是.NET Framework中的String類的別名。string類型定義了相等運算符(==和!=)用于比較兩個string對象,叧外,+運算符用于連接字符串,運算符可以用來訪問string中的各個字符。,【例3.7】 設計一個控制臺程序求用戶輸入的子串在主串中位置。,using System; namespace Proj3_6 class Program static void Main(string args) String mstr,sstr; Console.Write(輸入主串:); mstr = Console.ReadLine()

36、; Console.Write(輸入子串:); sstr = Console.ReadLine(); Console.WriteLine(主串長度=0,子串長度=1, mstr.Length, sstr.Length); if (String.Compare(mstr, sstr) != 0) //使用靜態(tài)方法 Console.WriteLine(位置:0, mstr.IndexOf(sstr)); else Console.WriteLine(兩個字符串相同); ,3.6.2Math類 Math類位于System命名空間中

37、,它包含了實現(xiàn)C#中常用算術運算功能的方法,這些方法都是靜態(tài)方法,可通過“Math.方法名(參數(shù))”來使用。,3.6.3 Convert類 Convert類位于System命名空間中,用于將一個值類型轉換成另一個值類型。這些方法都是靜態(tài)方法,可通過“Convert.方法名(參數(shù))”來使用。,3.6.4 DateTime結構 DateTime結構類位于System命名空間中,DateTime值類型表示值范圍在公元0001年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59之間的日期和時間。 可以通過以下語法格式定義一個日期時間變量: DateTime 日期時間變量 =

38、 new DateTime(年,月,日,時,分,秒); 例如,以下語句定義了2個日期時間變量: DateTime d1 = new DateTime(2009,10,1); DateTime d2 = new DateTime(2009,10,1,8,15,20); 其中,d1的值為2009年10月1日零點零分零秒,d2的值為2009年10月1日8點15分20秒。,【例3.8】 設計一個控制臺程序說明DataTime結構的使用。,using System; namespace Proj3_7 class Program static void Main(string args) D

39、ateTime d1 = DateTime.Now; //定義當前日期時間變量 DateTime d2 = new DateTime(2009, 10, 1); //定義一個日期時間變量 Console.WriteLine(d1:0,d1); int i = d1.Year;//求d1的年 int j = d1.Month;//求d1的月 int k = d1.Day;//求d1的日 int h = d1.Hour;//求d1的時 int m = d1.Minute;//求d1的分 int s = d1.Second;//求d1的秒,Conso

40、le.WriteLine(d1:0年1月2日3時4分5秒, i,j,k,h,m,s); Console.WriteLine(d2:0,d2); Console.WriteLine(相距時間:0,d2 - d1); DateTime d3 = d1.AddDays(100); //d3為d1的100天后的日期 Console.WriteLine(d3:0,d3); Console.WriteLine(DateTime.IsLeapYear(i));//靜態(tài)方法調用 Console.WriteLine(DateTime.IsLeapYear(d2.Year));

41、 ,第3章 C#程序設計基礎,小節(jié) 本章專業(yè)術語 練習題 課后練習,C#語言程序設計,77,第3章 結束,C#語言程序設計,78,THANKS!,See you next time!,第4章 C#控制語句,本章目錄 選擇語句 循環(huán)語句 跳轉語句,C#語言程序設計,79,4.1 選擇控制語句,4.1.1 if語句 基本語法格式如下: if (條件表達式) 語句; 其中,“條件表達式”是一個關系表達式或邏輯表達式,當“條件表達式”為true時,執(zhí)行后面的“語句”。,4.1.2 ifelse語句 語法形式如下: if (條件表達式) 語句1; else 語句2; 其中的“條件表達式”是一個

42、關系表達式或邏輯表達式。當“條件表達式”為true時執(zhí)行“語句1”;當“條件表達式”為false時執(zhí)行“語句2”。,4.1.3 ifelse if語句 ifelse if語句用于進行多重判斷,其語法形式如下: if (條件表達式1) 語句1; else if (條件表達式2) 語句2; else if (條件表達式n) 語句n; else 語句n+1;,【例4.4】 編寫一個程序,將用戶輸入的分數(shù)轉換成等級。,using System; namespace Proj4_4 class Program static void Main(string args) float x;

43、 Console.Write(分數(shù):); x=float.Parse(Console.ReadLine()); if (x=90) Console.WriteLine(等級為A); else if (x = 80) Console.WriteLine(等級為B); else if (x = 70) Console.WriteLine(等級為C); else if (x = 60) Console.WriteLine(等級為D); else Console.WriteLine(等級為E); ,4.1.4 switch語句 switch語句也稱為開關

44、語句,用于有多重選擇的場合測試某一個變量具有多個值時所執(zhí)行的動作。switch語句的語法形式為: switch (表達式) case 常量表達式1: 語句1; case 常量表達式2: 語句2; case 常量表達式n: 語句n; default:語句n+1; ,【例4.5】 編寫一個程序,要求輸入課程后顯示相應的學分:數(shù)學(代號為m,8學分)、物理(代號為p,5學分)、化學(代號為c,5學分)、語文(代號為w,8學分)、英語(代號為e,6學分)。,using System; namespace Proj4_5 class Program static void Main(str

45、ing args) char ch; Console.Write(課程代號:); ch=(char)Console.Read(); switch (ch) case m: case M: case w: case W: Console.WriteLine(8學分); break; case p: case P: case c: case C: Console.WriteLine(5學分); break; case e: case E: Console.WriteLine(6學分); brea

46、k; default: Console.WriteLine(輸入的課程代號不正確); break; ,4.2 循環(huán)控制語句,4.2.1 while語句 while語句的一般語法格式如下: while (條件表達式) 語句;,【例4.6】 編寫一個程序,將用戶輸入的整數(shù)反向顯示出來。,using System; namespace Proj4_6 class Program static void Main(string args) int digit,num; Console.Write( 輸入一個整數(shù):); num=int.P

47、arse(Console.ReadLine()); Console.Write( 反向顯示結果:); while (num!=0) digit=num % 10; //依次求個位、十位、上的數(shù)字digit num=num / 10; Console.Write(digit); Console.WriteLine(); ,4.2.2 do-while語句 do-while語句的一般語法格式如下: do 語句; while (條件表達式);,【例4.7】 采用do-while語句重新編寫例4.6的程序。 using System; name

48、space Proj4_7 class Program static void Main(string args) int digit,num; Console.Write(輸入一個整數(shù):); num=int.Parse(Console.ReadLine()); Console.Write(反向顯示結果:); do digit=num % 10; num=num/10; Console.Write(digit); while (num!=0); Console.WriteLine(); ,4.2.3 for語句

49、 for語句通常用于預先知道循環(huán)次數(shù)的情況,其一般語法格式如下: for (表達式1;表達式2;表達式3) 語句;,【例4.8】 編寫一個程序,輸出如圖4.12所示的乘法表。,using System; namespace Proj4_8 class Program static void Main(string args) int i,j; for (i = 1; i <= 9; i++) for (j = 1; j <= i; j++) Console.Write(01=2 , i, j, i * j); Console.WriteLine();

50、 ,4.3 跳 轉 語 句 4.3.1 break語句 break語句使程序從當前的循環(huán)語句(do、while和for)內跳轉出來,接著執(zhí)行循環(huán)語句后面的語句。,【例4.9】 編寫一個程序,判斷從鍵盤輸入的大于3的正整數(shù)是否為素數(shù)。,using System; namespace Proj4_9 class Program static void Main(string args) int n, i; bool prime = true; Console.Write(輸入一個大于3的正整數(shù):); n = int.Parse(Console.ReadL

51、ine()); for (i = 3; i <= Math.Sqrt(n); i++) if (n % i == 0) prime = false; break; if (prime) Console.WriteLine(0是素數(shù), n); else Console.WriteLine(0不是素數(shù), n); ,4.3.2 continue語句 continue語句也用于循環(huán)語句,它類似于break,但它不是結束循環(huán),而是結束循環(huán)語句的當前一次循環(huán),接著執(zhí)行下一次循環(huán)。 在while和do-while循環(huán)結構中,執(zhí)行控制權轉至對“

52、條件表達式”的判斷,在for結構中,轉去執(zhí)行“表達式2”。 【例4.10】 編寫一個程序,對用戶輸入的所有正數(shù)求和,如果輸入的是負數(shù),則忽略該數(shù)。程序每讀入一個數(shù),判斷它的正負,如果為負,則利用continue語句結束當前一次循環(huán),繼續(xù)下一次循環(huán),否則將該數(shù)加到總數(shù)上去。,using System; namespace Proj4_10 class Program static void Main(string args) int sum=0,n=1; while (n!=0) //循環(huán) Console.Write(輸入一個整數(shù)(以0表示結束):); n=int

53、.Parse(Console.ReadLine()); if (n<0) continue; //開始下一次循環(huán) sum+=n; Console.WriteLine(所有正數(shù)之和=0,sum); ,4.3.3 goto語句 goto語句也可以跳出循環(huán)和switch語句。goto語句用于無條件轉移程序的執(zhí)行控制,它總是與一個標號相匹配,其形式為: goto 標號; “標號”是一個用戶自定義的標識符,它可以處于goto語句的前面,也可以處于其后面,但是標號必須與goto語句處于同一個函數(shù)中。定義標號時,由一個標識符后面跟一冒號組成。,通常不要使用goto語

54、句!,第4章 C#控制語句,小節(jié) 本章專業(yè)術語 練習題 課后練習,C#語言程序設計,99,第4章 結束,C#語言程序設計,100,THANKS!,See you next time!,第5章 數(shù)組和集合,本章目錄 一維數(shù)組 二維數(shù)組 Array類 交錯數(shù)組 ArrayList類 List類,C#語言程序設計,101,5.1 一維數(shù)組,5.1.1 一維數(shù)組的定義 定義一維數(shù)組的語法格式如下: 數(shù)組類型 數(shù)組名; 例如,以下定義了3個一維數(shù)組,即整型數(shù)組a、雙精度數(shù)組b和字符串數(shù)組c。 int a; double b; string c; 在定義數(shù)組后,必須對其進行初始化才能使用。初

55、始化數(shù)組有兩種方法:動態(tài)初始化和靜態(tài)初始化。,5.1.2 一維數(shù)組的動態(tài)初始化 動態(tài)初始化需要借助new運算符,為數(shù)組元素分配內存空間,并為數(shù)組元素賦初值,數(shù)值類型初始化為0,布爾類型初始化為false,字符串類型初始化為null。 動態(tài)初始化數(shù)組的格式如下: 數(shù)組類型 數(shù)組名=new 數(shù)據(jù)類型n元素值0,元素值1,,元素值n-1; 其中,“數(shù)組類型”是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類型,n為“數(shù)組長度”,可以是整型常量或變量,后面一層大括號里為初始值部分。 1. 不給定初始值的情況 如果不給出初始值部分,各元素取默認值。例如: int a = new int10; 該數(shù)組在內存中各數(shù)組元素均

56、取默認值0。,2. 給定初始值的情況 如果給出初始值部分,各元素取相應的初值,而且給出的初值個數(shù)與“數(shù)組長度”相等。此時可以省略“數(shù)組長度”,因為后面的大括號中已列出了數(shù)組中的全部元素。例如: int a = new int101,2,3,4,5,6,7,8,9,10; 或 int a = new int1,2,3,4,5,6,7,8,9,10; 在這種情況下,不允許“數(shù)組長度”為變量,例如: int n = 5; //定義變量n int myarr = new intn 1,2,3,4,5;//錯誤 如果給出“數(shù)組長度”,則初始值的個數(shù)應與“數(shù)組長度”相等,否則出錯。例如:

57、 int mya = new int2 1,2;//正確 int mya = new int2 1,2,3;//錯誤 int mya = new int2 1;//錯誤,5.1.3 一維數(shù)組的靜態(tài)初始化 靜態(tài)初始化數(shù)組時,必須與數(shù)組定義結合在一起,否則會出錯。靜態(tài)初始化數(shù)組的格式如下: 數(shù)據(jù)類型 數(shù)組名=元素值0,元素值1,,元素值n-1; 用這種方法對數(shù)組進行初始化時,無需說明數(shù)組元素的個數(shù),只需按順序列出數(shù)組中的全部元素即可,系統(tǒng)會自動計算并分配數(shù)組所需的內存空間。 例如,以下是對整型數(shù)組myarr的靜態(tài)初始化: int myarr=1,2,3,4,5; 在這種情況下,不能將

58、數(shù)組定義和靜態(tài)初始化分開,例如,以下是錯誤的。 int myarr; myarr=1,2,3,4,5;//錯誤的數(shù)組的靜態(tài)初始化,5.1.4 訪問一維數(shù)組中的元素 訪問一維數(shù)組中的某個元素:名稱下標或索引。 所有元素下標從0開始,到數(shù)組長度減1為止。例如,以下語句輸出數(shù)組myarr的所有元素值: for (i=0;i<5;i++) Console.Write(0 ,ai); Console.WriteLine(); C#還提供foreach語句。該語句提供一種簡單、明了的方法來循環(huán)訪問數(shù)組的元素。例如,以下代碼定義一個名稱為mya的數(shù)組,并用foreach語句循環(huán)訪問該數(shù)組。

59、 int mya = 1,2,3,4,5,6; foreach (int i in mya) System.Console.Write(0 ,i); Console.WriteLine(); 輸出為:1 2 3 4 5 6。,5.1.5 一組數(shù)組的越界 若有如下語句定義并初始化數(shù)組ca: int ca = new int101,2,3,4,5,6,7,8,7,9,10; 數(shù)組ca的合法下標為09,如果程序中使用ca10或ca50,則超過了數(shù)組規(guī)定的下標,因此越界了。C#系統(tǒng)會提示以下出錯信息。 未處理的異常: Syatem.IndexOutOfRangeException:索

60、引超出了數(shù)組界限。,【例5.1】設計一個控制臺應用程序,采用二分查找方法在給定的有序數(shù)組a中查找用戶輸入的值,并提示相應的查找結果。,using System; namespace Proj5_1 class Program static void Main(string args) double a=new double100,1.2,2.5,3.1,4.6,5.0,6.7,7.6,8.2,9.8; double k; int low=0,high=9,mid; Console.Write(k:); k=double.Parse(Console.ReadLine

61、()); while (low k) high = mid - 1; else low = mid + 1; Console.WriteLine(未找到0,k); ,5.2 二維數(shù)組,5.2.1 二維數(shù)組的定義 定義二維數(shù)組的語法格式如下: 數(shù)組類型, 數(shù)組名; 其中,“數(shù)據(jù)類型”為C#中合法的數(shù)據(jù)類型,“數(shù)組名”為C#中合法的標識符。 例如,以下語句定義了3個二維數(shù)組,即整型數(shù)組x、雙精度數(shù)組y和字符串數(shù)組z。 int, x; double, y; string, z; 對于多維數(shù)組,可以作類似的推廣,例如,以下語句定義了一個三維數(shù)組p。

62、 int,, p;,5.2.2 二維數(shù)組的動態(tài)初始化 動態(tài)初始化二維數(shù)組的格式如下: 數(shù)據(jù)類型, 數(shù)組名=new 數(shù)據(jù)類型mn 元素值0,0,元素值0,1,,元素值0,n-1, 元素值1,0,元素值1,1,,元素值1,n-1, 元素值m-1,0,元素值m-1,1,,元素值m-1,n-1 ; 其中,“數(shù)組類型”是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類型,m、n分別為行數(shù)和列數(shù),即各維的長度,可以是整型常量或變量。,1. 不給定初始值的情況 如果不給出初始值部分,各元素取默認值。例如: int, x = new int23; 該數(shù)組各數(shù)組元素均取默認值0。,2. 給定初始值

63、的情況 如果給出初始值部分,各元素取相應的初值,而且給出的初值個數(shù)與對應的“數(shù)組長度”相等。此時可以省略“數(shù)組長度”,因為后面的大括號中已列出了數(shù)組中的全部元素。例如: int, x = new int231,2,3,4,5,6; 或 int, x = new int,1,2,3,4,5,6;,5.2.3 二維數(shù)組的靜態(tài)初始化 靜態(tài)初始化數(shù)組時,必須與數(shù)組定義結合在一起,否則會出錯。靜態(tài)初始化數(shù)組的格式如下: 數(shù)據(jù)類型, 數(shù)組名=元素值0,0,元素值0,1,,元素值0,n-1, 元素值1,0,元素值1,1,,元素值1,n-1,

64、 元素值m-1,0,元素值m-1,1,,元素值m-1,n-1; 例如,以下語句是對整型數(shù)組myarr的靜態(tài)初始化。 int, myarr=1,2,3,4,5,6;,5.2.4 訪問二維數(shù)組中的元素 為了訪問二維數(shù)組中的某個元素,需指定數(shù)組名稱和數(shù)組中該元素的行下標和列下標。例如,以下語句輸出數(shù)組myarr的所有元素值。 for (i=0;i<2;i++) for (j=0;j<3;j++ Console.Write(0 ,myarri,j); Console.WriteLine(); 對于多維數(shù)組,也可以使用foreach語句來循環(huán)訪問每一個元素,例如。 int, m

65、yb = new int3, 2 1, 2, 3,4, 5,6; foreach (int i in myb) Console.Write(0 , i); Console.WriteLine(); 其輸出為:1 2 3 4 5 6。,【例5.2】 設計一個控制臺應用程序,輸出九行楊輝三角形。,using System; namespace Proj5_2 class Program const int N=10; static void Main(string args) int i,j; int, a=new intN,N; for (i=1;i

66、

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!