講稿文字規(guī)范 網(wǎng)絡(luò)教育資源共享課上海交通大學(xué)-5390_第1頁
講稿文字規(guī)范 網(wǎng)絡(luò)教育資源共享課上海交通大學(xué)-5390_第2頁
講稿文字規(guī)范 網(wǎng)絡(luò)教育資源共享課上海交通大學(xué)-5390_第3頁
講稿文字規(guī)范 網(wǎng)絡(luò)教育資源共享課上海交通大學(xué)-5390_第4頁
講稿文字規(guī)范 網(wǎng)絡(luò)教育資源共享課上海交通大學(xué)-5390_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第2章 基本數(shù)據(jù)類型王德俊 上海交通大學(xué)繼續(xù)教育學(xué)院第2章 基本數(shù)據(jù)類型2.1 一個(gè)簡單的程序 2.2 基本數(shù)據(jù)類型2.3 變量與常量2.4 基本運(yùn)算2.5 數(shù)組的定義和使用 (數(shù)組類與數(shù)組列表類 結(jié)構(gòu) 枚舉)選擇排序過程:(1)首先通過n-1次比較,從n個(gè)數(shù)中找出最小的,將它與第一個(gè)數(shù)交換-第一趟選擇排序,結(jié)果最小的數(shù)被安置在第一個(gè)元素位置上(2)再通過n-2次比較,從剩余的n-1個(gè)數(shù)中找出關(guān)鍵字次小的記錄,將它與第二個(gè)數(shù)交換-第二趟選擇排序(3)重復(fù)上述過程,共經(jīng)過n-1趟排序后,排序結(jié)束用簡單選擇法對n個(gè)數(shù)排序數(shù)組類與數(shù)組列表類 static void Main(string args)

2、 const int n = 10; int a=new intn; int i,j,k,x; Console.WriteLine(Input 10 numbers:); for(i=0;i=n-1;i+) ai=int.Parse(Console.ReadLine(); Console.WriteLine(); /輸入數(shù)組元素 數(shù)組類與數(shù)組列表類(續(xù)) for(i=0;i=n-2;i+) k=i; /記錄最小的數(shù)所在的位置 for(j=i+1;j=n-1;j+) if(ajak) k=j; if(i!=k) x=ai;ai=ak;ak=x; /簡單選擇排序 Console.WriteLine

3、(The sorted numbers:); for(i=0;i=n-1;i+) Console.Write(0 , ai); Console.WriteLine(); Console.ReadLine(); /輸出數(shù)組元素?cái)?shù)組類與數(shù)組列表類(續(xù))C#通過.NET框架中的數(shù)組類來支持?jǐn)?shù)組,因此,可以使用該類的屬性與方法操作數(shù)組數(shù)組列表類(ArrayList)是一個(gè)集合類,由該類聲明的對象也可以當(dāng)做數(shù)組來使用數(shù)組類與數(shù)組列表類(續(xù))類類提供創(chuàng)建、操作、搜索和排序數(shù)組的方法,因而在CLR中用作所有數(shù)組的基類。列舉常用屬性和方法如下:1)Length屬性2)IsReadOnly屬性3)Clone方法

4、4)CopyTo方法5)Sort方法6)Reverse方法類(續(xù))Length屬性: 是數(shù)組對象的一個(gè)只讀屬性,表示數(shù)組包含多少個(gè)元素在操作數(shù)組時(shí),可利用Length屬性避免下標(biāo)越界,例如:int A=new int10;for(int i=0;i;i=i+1) Ai=i;IsReadOnly屬性,此屬性對于所有數(shù)組總是 false。Clone方法實(shí)現(xiàn)克隆數(shù)組功能,使用格式:目標(biāo)數(shù)組名=(數(shù)組類型名)源數(shù)組名.Clone( );例如:int A=new int510,8,6,4,2;/ 聲明并初始化數(shù)組A,該數(shù)組將作為源數(shù)組int B;/ 聲明數(shù)組B,該數(shù)組將作為目標(biāo)數(shù)組B=(int )A.C

5、lone();/ 使用Clone方法使用克隆方法時(shí),將得到一個(gè)與源數(shù)組一模一樣的數(shù)組,且目標(biāo)數(shù)組不需要再實(shí)例化Clone方法創(chuàng)建 Array的淺表副本。即僅復(fù)制 Array的元素(無論它們是引用類型還是值類型),但不復(fù)制這些引用所引用的對象。 CopyTo方法實(shí)現(xiàn)數(shù)組拷貝功能,使用格式:源數(shù)組名.CopyTo(目標(biāo)數(shù)組名,起始位置);例如:int A=new int56,7,8,9,10; / 聲明并初始化數(shù)組A,該數(shù)組將作為源數(shù)組int B=new int101,2,3,4,5,1,2,3,4,5;/ 聲明并初始化數(shù)組B,該數(shù)組將作為目標(biāo)數(shù)組A.CopyTo(B,5);將數(shù)組A中的各元素值6

6、、7、8、9、10合并到數(shù)組B中,合并后數(shù)組B中的各元素值為1、2、3、4、5、6、7、8、9、10利用“起始位置”參數(shù),可以將一個(gè)元素較少的數(shù)組中的元素值合并到一個(gè)元素較多的數(shù)組中Sort方法實(shí)現(xiàn)數(shù)組排序功能,使用格式為: Array.Sort(數(shù)組名);例如: int A=new int510,8,6,4,2; Array.Sort(A);排序后,數(shù)組A中各元素值的排列順序?yàn)椋?、4、6、8、10Reverse方法將數(shù)組名對應(yīng)的數(shù)組元素順序反轉(zhuǎn),格式如下: Array.Reverse(數(shù)組名);例如: Array. Reverse(A);如果數(shù)組A中各元素值原來為:2、46、6、8、10,

7、則反轉(zhuǎn)后為:10、8、6、46、2示例ArraySort例1 創(chuàng)建Windows應(yīng)用程序在程序中聲明包含10個(gè)元素的雙精度型數(shù)組為數(shù)組元素賦值為0100之間的隨機(jī)實(shí)數(shù)單擊“升序”按鈕,數(shù)組按升序排序單擊“降序”按鈕,數(shù)組按降序排序輸出排序前后數(shù)組的元素值在Form1類定義中聲明一個(gè)double類型的數(shù)組和一個(gè)string類型的變量:double A=new double10;string s;窗體的Load事件代碼:private void Form1_Load(object sender, System.EventArgs e)Random rn=new Random( ); / 聲明一個(gè)隨

8、機(jī)數(shù)生成對象for(int i=0;i;i=i+1) Ai=Math.Round(rn.NextDouble( )*100,1); / 賦予數(shù)組各元素隨機(jī)值 s+=Ai+ ; / 將數(shù)組元素值的原順序保存為一個(gè)字符串s+=nn;label1.Text=數(shù)組原順序?yàn)椋簄+s;“升序”按鈕的Click事件代碼:private void button1_Click(object sender, e) / 升序 Array.Sort(A);label1.Text=數(shù)組原順序?yàn)椋簄+s;label1.Text+=數(shù)組升序排序:n;for(int i=0;i;i+) label1.Text+=Ai+ ;

9、/ 升序處理結(jié)束“降序”按鈕的Click事件代碼:private void button2_Click(object sender, System.EventArgs e) / 降序Array.Sort(A);Array.Reverse(A);label1.Text=數(shù)組原順序?yàn)椋簄+s;label1.Text+=數(shù)組降序排序:n;for(int i=0;iA.Length;i+) label1.Text+=Ai+ ; / 降序處理結(jié)束在程序代碼中使用了隨機(jī)數(shù)生成對象rn的NextDouble方法,該方法能夠生成一個(gè)之間的實(shí)數(shù)為了使生成的隨機(jī)數(shù)只保留一位小數(shù),使用了Math(數(shù)學(xué))類中的Rou

10、nd方法以確定小數(shù)點(diǎn)后保留幾位小數(shù)Round方法的使用格式為:Math.Round(雙精度類型數(shù)據(jù),需要保留的小 數(shù)位數(shù)).ArrayList類ArrayList是動(dòng)態(tài)數(shù)組,它的好處:可動(dòng)態(tài)增加和減少元素,可靈活設(shè)置數(shù)組的大小。ArrayList類屬于命名空間ArrayList類常用的方法和屬性1) Count屬性2) IsReadOnly屬性3) Clone與CopyTo方法4) Add 方法5) BinarySearch 方法6) Sort方法和Reverse方法類在聲明ArrayList類對象時(shí),可以用一個(gè)已經(jīng)實(shí)例化的數(shù)組來初始化,其格式為:ArrayList 對象名=new Array

11、List(數(shù)組名);其中,“數(shù)組名”為已經(jīng)實(shí)例化的數(shù)組例如:int A=new int5;/ 聲明并實(shí)例化數(shù)組ArrayList AL=new ArrayList(A); / 聲明并實(shí)例化數(shù)組列表這樣,AL相當(dāng)于包含5個(gè)元素的整型數(shù)組類1 ) ArrayList類的Count屬性在數(shù)組列表ArrayList類中,表示包含元素個(gè)數(shù)的屬性為Count,其性質(zhì)與用法與數(shù)組的Length屬性相同2) IsReadOnly屬性數(shù)組列表均具有IsReadOnly屬性,利用該屬性可以獲知數(shù)組列表中的元素是否為只讀的IsReadOnly屬性值默認(rèn)為false(假)3) Clone與CopyTo方法克?。–lo

12、ne)與拷貝(CopyTo)方法的功能均為數(shù)組復(fù)制操作:使用格式如下:目標(biāo)數(shù)組列表名=(ArrayList)源數(shù)組列表名.Clone( );源數(shù)組列表名. CopyTo(目標(biāo)數(shù)組名)/ Array必須具有從零開始的索引。 4 )Add 方法將對象添加到 ArrayList的結(jié)尾處。使用格式:數(shù)組列表名.Add(object對象);如: ArrayList myAL = new ArrayList(); for (int i = 0; i = 4; i+) myAL.Add(i * 2);5)BinarySearch 方法使用默認(rèn)的比較器在整個(gè)已排序的 ArrayList中搜索元素,并返回該元素

13、從零開始的索引,沒找到則返回小于零的值。使用格式:數(shù)組列表名. BinarySearch(object對象);如: int myIndex = myAL.BinarySearch(6); if (myIndex 0) Console.WriteLine(沒找到); else Console.WriteLine(找到0, myIndex);ArrayList方法使用例子 ArrayList myAL = new ArrayList(); for (int i = 0; i = 4; i+) myAL.Add(i * 2); ArrayList myBL = (ArrayList)myAL.Clo

14、ne(); int A=new int5; myAL.CopyTo (A); int myIndex = myBL.BinarySearch(6); if (myIndex 0) Console.WriteLine(沒找到); else Console.WriteLine(找到0, myIndex);Sort方法使用格式為:數(shù)組列表名稱.Sort( );Reverse方法使用格式為:數(shù)組列表名稱.Reverse( );例如:int A=new int55,4,3,2,1;ArrayList AL=new ArrayList(A);AL.Sort( );AL.Reverse();排序后,數(shù)組列表

15、AL中各元素值的排列順序?yàn)椋?、2、3、4、5反轉(zhuǎn)后,各元素值的排列順序?yàn)椋?、4、3、2、16) Sort方法和Reverse方法4 自定義數(shù)據(jù)類型自定義的數(shù)據(jù)類型包括結(jié)構(gòu)與枚舉結(jié)構(gòu)與枚舉都屬于值類型,而數(shù)組是引用類型(1) 結(jié)構(gòu)類型(2) 枚舉類型(1) 結(jié)構(gòu)類型結(jié)構(gòu)類型可以用來處理一組類型不同、內(nèi)容相關(guān)的數(shù)據(jù)1) 定義結(jié)構(gòu)2) 聲明結(jié)構(gòu)變量3) 訪問結(jié)構(gòu)變量1) 定義結(jié)構(gòu)結(jié)構(gòu)的定義需要使用struct關(guān)鍵字,格式如下:struct 結(jié)構(gòu)類型名public 類型名1 結(jié)構(gòu)成員名1;public 類型名2 結(jié)構(gòu)成員名2;.“結(jié)構(gòu)類型名”表示用戶定義的新數(shù)據(jù)類型名稱一對大括號(hào)之間定義結(jié)構(gòu)成員“

16、類型名”可以是基本數(shù)據(jù)類型,也可以是另一個(gè)已定義的結(jié)構(gòu)類型例如:struct datepublic uint year,month,day;struct employeepublic string name;public bool sex;public date birthday;public string phone;public decimal pay;2) 聲明結(jié)構(gòu)變量定義結(jié)構(gòu)后,可以用結(jié)構(gòu)來聲明變量例如:date d1;/ 聲明一個(gè)結(jié)構(gòu)變量d1可以在聲明結(jié)構(gòu)變量的同時(shí),為結(jié)構(gòu)變量賦值,實(shí)質(zhì)上是為結(jié)構(gòu)變量中的成員賦值,如: date d1 = new date(); d1.year =

17、2012; d1.month = 10; d1.day = 8; date d2 = d1; / 用結(jié)構(gòu)變量d1為d2賦值 又如:employee jerry;jerry=tom;/ 用結(jié)構(gòu)變量tom為結(jié)構(gòu)變量jerry賦值3) 訪問結(jié)構(gòu)變量使用結(jié)構(gòu)中的成員必須指出訪問的結(jié)構(gòu)變量方法是在結(jié)構(gòu)變量和成員之間通過運(yùn)算符“.”連接在一起:結(jié)構(gòu)變量名.成員名例如:=湯姆;tom.sex=true;tom.birthday.year=1980;tom.birthday.month=5;tom.birthday.day=26;tom.pay=1500;(2) 枚舉類型枚舉類型是由用戶定義的一組整型符號(hào)常量使用枚舉可以將一組相關(guān)的有限常量組織在一起,保證變量只能具有預(yù)定的值由于常量都有名稱,易于辨認(rèn),從而提高了程序的可讀性1) 定義枚舉類型2) 聲明與訪問枚舉變量1) 定義枚舉類型定義枚舉類型使用關(guān)鍵字enum,定義枚舉類型的一般格式為:enum 枚舉類型名符號(hào)常量1,符號(hào)常量2,枚舉類型的成員均為符號(hào)常量,常量名之間用逗號(hào)分隔例如:enum SolarSystemSun,Earth,Moon枚舉常量成員的默認(rèn)值為0、1、2,可以在定義枚舉類型時(shí)為成員賦予特定的整數(shù)值例如:enum SolarSystemSun=700000,/ 太陽半徑E

溫馨提示

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

最新文檔

評論

0/150

提交評論