《C#語言程序設(shè)計(jì)》PPT課件.ppt

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

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

19.9 積分

下載資源

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

資源描述:

《《C#語言程序設(shè)計(jì)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C#語言程序設(shè)計(jì)》PPT課件.ppt(362頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

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

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

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

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

5、-international.org/publications/standards/Ecma-334.htm ECMA-334標(biāo)準(zhǔn):C#語言規(guī)范; 微軟開發(fā)人員聯(lián)機(jī)庫(kù),C#語言程序設(shè)計(jì),7,第1章 Visual C#簡(jiǎn)介,本章目錄 運(yùn)行一個(gè)運(yùn)用C#編寫的應(yīng)用程序?qū)嵗?C C++ Java Visual C# OOP(面向?qū)ο缶幊蹋┘夹g(shù) .NET框架與CLR(公共語言運(yùn)行環(huán)境) Visual Studio IDE介紹,8,C#語言程序設(shè)計(jì),第1章 Visual C#簡(jiǎn)介,一個(gè)應(yīng)用程序?qū)嵗?Examplesch01AdvancedPainter.exe,C#語言程序設(shè)計(jì),9,第1章 Visual

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20、種轉(zhuǎn)換時(shí)編譯器將對(duì)轉(zhuǎn)換進(jìn)行溢出檢測(cè)。如果有溢出說明轉(zhuǎn)換失敗,就表明源類型不是一個(gè)合法的目標(biāo)類型,轉(zhuǎn)換就無法進(jìn)行。 (2)對(duì)于從float、double、decimal到整型數(shù)據(jù)的轉(zhuǎn)換,將通過舍入得到最接近的整型值,如果這個(gè)整型值超出目標(biāo)類型的范圍,則出現(xiàn)轉(zhuǎn)換異常。,【例3.1】 設(shè)計(jì)一個(gè)控制臺(tái)程序說明類型轉(zhuǎn)換的應(yīng)用。,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; //強(qiáng)制類型轉(zhuǎn)換 d1 = i;//隱式類型轉(zhuǎn)換 c1 = (char)i;//強(qiáng)制類型轉(zhuǎn)換 Console.WriteLine(i1=0:d5,d1=1:f,c1=2, i1, d1, c1); i2 = c; //隱式類型轉(zhuǎn)換 d2 = (int)d; //強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為double類型 c2 = (char)d; //強(qiáng)制類型轉(zhuǎn)換 Console.WriteLine(i2=0

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

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

24、某個(gè)值類型的變量時(shí),C#會(huì)首先創(chuàng)建這個(gè)值的一個(gè)拷貝,然后把這個(gè)拷貝放在變量名所標(biāo)記的存儲(chǔ)位置上。 例如: int x; int y=2; x=y;,3. 理解引用類型的變量 引用表示所使用的是變量或?qū)ο蟮牡刂范皇亲兞炕驅(qū)ο蟊旧?。?dāng)聲明引用類型變量時(shí),程序只是分配了存放這個(gè)引用的存儲(chǔ)空間。要想創(chuàng)建對(duì)象并把對(duì)象的存儲(chǔ)地址賦給該變量,就需要使用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 //浮點(diǎn)型直接常量,2. 符號(hào)常量 符號(hào)常量是通過關(guān)鍵字const聲明的常量,包括常量的名稱和它的值。常量聲明的格式如下: const 數(shù)據(jù)類型 常量名=初始值; 其中,“常量名”必須是C#的合法標(biāo)識(shí)符,在程序中通過常量名來訪問該常量。“類型標(biāo)識(shí)符”指示了所定義的常量的數(shù)據(jù)類型,而“初始值”是所定義的常量的值。 例如: const double PI=3.14159265;,3

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

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

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

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

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

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

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

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

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

35、ng類,string類型是.NET Framework中的String類的別名。string類型定義了相等運(yùn)算符(==和!=)用于比較兩個(gè)string對(duì)象,叧外,+運(yùn)算符用于連接字符串,運(yùn)算符可以用來訪問string中的各個(gè)字符。,【例3.7】 設(shè)計(jì)一個(gè)控制臺(tái)程序求用戶輸入的子串在主串中位置。,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(主串長(zhǎng)度=0,子串長(zhǎng)度=1, mstr.Length, sstr.Length); if (String.Compare(mstr, sstr) != 0) //使用靜態(tài)方法 Console.WriteLine(位置:0, mstr.IndexOf(sstr)); else Console.WriteLine(兩個(gè)字符串相同); ,3.6.2Math類 Math類位于System命名空間中

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

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

39、ateTime d1 = DateTime.Now; //定義當(dāng)前日期時(shí)間變量 DateTime d2 = new DateTime(2009, 10, 1); //定義一個(gè)日期時(shí)間變量 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的時(shí) int m = d1.Minute;//求d1的分 int s = d1.Second;//求d1的秒,Conso

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

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

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

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

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

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

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

47、arse(Console.ReadLine()); Console.Write( 反向顯示結(jié)果:); while (num!=0) digit=num % 10; //依次求個(gè)位、十位、上的數(shù)字digit num=num / 10; Console.Write(digit); Console.WriteLine(); ,4.2.2 do-while語句 do-while語句的一般語法格式如下: do 語句; while (條件表達(dá)式);,【例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(輸入一個(gè)整數(shù):); num=int.Parse(Console.ReadLine()); Console.Write(反向顯示結(jié)果:); do digit=num % 10; num=num/10; Console.Write(digit); while (num!=0); Console.WriteLine(); ,4.2.3 for語句

49、 for語句通常用于預(yù)先知道循環(huán)次數(shù)的情況,其一般語法格式如下: for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句;,【例4.8】 編寫一個(gè)程序,輸出如圖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 跳 轉(zhuǎn) 語 句 4.3.1 break語句 break語句使程序從當(dāng)前的循環(huán)語句(do、while和for)內(nèi)跳轉(zhuǎn)出來,接著執(zhí)行循環(huán)語句后面的語句。,【例4.9】 編寫一個(gè)程序,判斷從鍵盤輸入的大于3的正整數(shù)是否為素?cái)?shù)。,using System; namespace Proj4_9 class Program static void Main(string args) int n, i; bool prime = true; Console.Write(輸入一個(gè)大于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是素?cái)?shù), n); else Console.WriteLine(0不是素?cái)?shù), n); ,4.3.2 continue語句 continue語句也用于循環(huán)語句,它類似于break,但它不是結(jié)束循環(huán),而是結(jié)束循環(huán)語句的當(dāng)前一次循環(huán),接著執(zhí)行下一次循環(huán)。 在while和do-while循環(huán)結(jié)構(gòu)中,執(zhí)行控制權(quán)轉(zhuǎn)至對(duì)“

52、條件表達(dá)式”的判斷,在for結(jié)構(gòu)中,轉(zhuǎn)去執(zhí)行“表達(dá)式2”。 【例4.10】 編寫一個(gè)程序,對(duì)用戶輸入的所有正數(shù)求和,如果輸入的是負(fù)數(shù),則忽略該數(shù)。程序每讀入一個(gè)數(shù),判斷它的正負(fù),如果為負(fù),則利用continue語句結(jié)束當(dāng)前一次循環(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(輸入一個(gè)整數(shù)(以0表示結(jié)束):); 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語句用于無條件轉(zhuǎn)移程序的執(zhí)行控制,它總是與一個(gè)標(biāo)號(hào)相匹配,其形式為: goto 標(biāo)號(hào); “標(biāo)號(hào)”是一個(gè)用戶自定義的標(biāo)識(shí)符,它可以處于goto語句的前面,也可以處于其后面,但是標(biāo)號(hào)必須與goto語句處于同一個(gè)函數(shù)中。定義標(biāo)號(hào)時(shí),由一個(gè)標(biāo)識(shí)符后面跟一冒號(hào)組成。,通常不要使用goto語

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

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

56、取默認(rèn)值0。,2. 給定初始值的情況 如果給出初始值部分,各元素取相應(yīng)的初值,而且給出的初值個(gè)數(shù)與“數(shù)組長(zhǎng)度”相等。此時(shí)可以省略“數(shù)組長(zhǎng)度”,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(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ù)組長(zhǎng)度”為變量,例如: int n = 5; //定義變量n int myarr = new intn 1,2,3,4,5;//錯(cuò)誤 如果給出“數(shù)組長(zhǎng)度”,則初始值的個(gè)數(shù)應(yīng)與“數(shù)組長(zhǎng)度”相等,否則出錯(cuò)。例如:

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

58、數(shù)組定義和靜態(tài)初始化分開,例如,以下是錯(cuò)誤的。 int myarr; myarr=1,2,3,4,5;//錯(cuò)誤的數(shù)組的靜態(tài)初始化,5.1.4 訪問一維數(shù)組中的元素 訪問一維數(shù)組中的某個(gè)元素:名稱下標(biāo)或索引。 所有元素下標(biāo)從0開始,到數(shù)組長(zhǎng)度減1為止。例如,以下語句輸出數(shù)組myarr的所有元素值: for (i=0;i<5;i++) Console.Write(0 ,ai); Console.WriteLine(); C#還提供foreach語句。該語句提供一種簡(jiǎn)單、明了的方法來循環(huán)訪問數(shù)組的元素。例如,以下代碼定義一個(gè)名稱為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的合法下標(biāo)為09,如果程序中使用ca10或ca50,則超過了數(shù)組規(guī)定的下標(biāo),因此越界了。C#系統(tǒng)會(huì)提示以下出錯(cuò)信息。 未處理的異常: Syatem.IndexOutOfRangeException:索

60、引超出了數(shù)組界限。,【例5.1】設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,采用二分查找方法在給定的有序數(shù)組a中查找用戶輸入的值,并提示相應(yīng)的查找結(jié)果。,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#中合法的標(biāo)識(shí)符。 例如,以下語句定義了3個(gè)二維數(shù)組,即整型數(shù)組x、雙精度數(shù)組y和字符串?dāng)?shù)組z。 int, x; double, y; string, z; 對(duì)于多維數(shù)組,可以作類似的推廣,例如,以下語句定義了一個(gè)三維數(shù)組p。

62、 int,, p;,5.2.2 二維數(shù)組的動(dòng)態(tài)初始化 動(dòng)態(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ù),即各維的長(zhǎng)度,可以是整型常量或變量。,1. 不給定初始值的情況 如果不給出初始值部分,各元素取默認(rèn)值。例如: int, x = new int23; 該數(shù)組各數(shù)組元素均取默認(rèn)值0。,2. 給定初始值

63、的情況 如果給出初始值部分,各元素取相應(yīng)的初值,而且給出的初值個(gè)數(shù)與對(duì)應(yīng)的“數(shù)組長(zhǎng)度”相等。此時(shí)可以省略“數(shù)組長(zhǎng)度”,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(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í),必須與數(shù)組定義結(jié)合在一起,否則會(huì)出錯(cuò)。靜態(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; 例如,以下語句是對(duì)整型數(shù)組myarr的靜態(tài)初始化。 int, myarr=1,2,3,4,5,6;,5.2.4 訪問二維數(shù)組中的元素 為了訪問二維數(shù)組中的某個(gè)元素,需指定數(shù)組名稱和數(shù)組中該元素的行下標(biāo)和列下標(biāo)。例如,以下語句輸出數(shù)組myarr的所有元素值。 for (i=0;i<2;i++) for (j=0;j<3;j++ Console.Write(0 ,myarri,j); Console.WriteLine(); 對(duì)于多維數(shù)組,也可以使用foreach語句來循環(huán)訪問每一個(gè)元素,例如。 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】 設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,輸出九行楊輝三角形。,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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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