實(shí)驗(yàn)4 面向?qū)ο蟮木幊袒A(chǔ).doc_第1頁
實(shí)驗(yàn)4 面向?qū)ο蟮木幊袒A(chǔ).doc_第2頁
實(shí)驗(yàn)4 面向?qū)ο蟮木幊袒A(chǔ).doc_第3頁
實(shí)驗(yàn)4 面向?qū)ο蟮木幊袒A(chǔ).doc_第4頁
實(shí)驗(yàn)4 面向?qū)ο蟮木幊袒A(chǔ).doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章 面向?qū)ο蟮木幊袒A(chǔ) 實(shí)驗(yàn)1題目: 創(chuàng)建一個(gè)描述圖書信息的類并測(cè)試。類中應(yīng)保存有圖書的書號(hào)、標(biāo)題、作者、出版社、價(jià)格等信息。 實(shí)驗(yàn)?zāi)康模?) 熟悉類的定義和使用。2) 掌握創(chuàng)建對(duì)象的方法。3) 掌握只讀字段的聲明及使用。4) 學(xué)習(xí)定義和使用帶參數(shù)構(gòu)造函數(shù)。5) 熟悉訪問權(quán)限控制符。6) 掌握屬性的定義和使用。7) 掌握關(guān)鍵字this。 實(shí)驗(yàn)步驟:1) 定義圖書類Book,Book類中包含isbn(書號(hào))、title(標(biāo)題)、author(作者)、press(出版社)、price(價(jià)格)等私有字段。由于對(duì)一本書來說,書號(hào)是唯一的,因此,isbn字段應(yīng)聲明為只讀的。2) 為Book類中的每個(gè)字段定義相應(yīng)的屬性,由于isbn字段只讀的,其相應(yīng)屬性也應(yīng)該是只讀的。3) 為Book類定義兩個(gè)構(gòu)造函數(shù),其中,一個(gè)構(gòu)造函數(shù)將所有字段都初始化為用戶指定的值,另一個(gè)構(gòu)造函數(shù)只要求用戶指定有關(guān)書號(hào)的信息,它將調(diào)用上一個(gè)構(gòu)造函數(shù)初始化對(duì)象,初始化時(shí),價(jià)格取0,除書號(hào)的其他信息取“未知”。4) 為Book類定義方法Show,Show方法用于顯示圖書的所有信息。5) 編寫Main方法測(cè)試Book類,Main方法中分別使用上述兩個(gè)構(gòu)造函數(shù)創(chuàng)建Book對(duì)象。 參考答案:using System;class Book private readonly string isbn; /書號(hào) private string title; /標(biāo)題 private string author; /作者 private string press; /出版社 private int price; /價(jià)格 public Book(string isbn) : this(isbn, 未知, 未知, 未知, 0) public Book(string isbn, string title, string author, string press, int price) this.isbn = isbn; this.title = title; this.author = author; this.press = press; this.price = price; public string ISBN get return isbn; public string Title get return title; set title = value; public string Author get return author; set author = value; public string Press get return press; set press = value; public int Price get return price; set price = value; public void Show() Console.WriteLine(書號(hào): 0, isbn); Console.WriteLine(標(biāo)題: 0, title); Console.WriteLine(作者: 0, author); Console.WriteLine(出版社:0, press); Console.WriteLine(價(jià)格: 0, price); class Program static void Main() Book book1 = new Book(978-7-111-23423-4); book1.Show(); Console.WriteLine(); book1.Title = C#程序設(shè)計(jì)(C#2.0版); book1.Author = 劉慧寧; book1.Press = 機(jī)械工業(yè)出版社; book1.Price = 32; book1.Show(); Console.WriteLine(); book1 = new Book(978-7-302-15800-4, Java程序設(shè)計(jì), 溫秀梅, 清華大學(xué)出版社, 29); book1.Show(); Console.ReadLine(); 運(yùn)行結(jié)果如下: 實(shí)驗(yàn)2 DLL文件 實(shí)驗(yàn)題目: 在特定的命名空間中定義一個(gè)類,類中僅包含一個(gè)非Main方法,在該方法被調(diào)用時(shí),打印出信息表明其被調(diào)用;在另一個(gè)命名空間中定義一個(gè)類,并在該類的Main方法中調(diào)用前一個(gè)命名空間中類的方法。 實(shí)驗(yàn)?zāi)康模?) 理解命名空間和程序集的概念。2) 掌握DLL文件的創(chuàng)建過程。3) 掌握命名空間的創(chuàng)建和使用。4) 熟悉訪問權(quán)限控制符。實(shí)驗(yàn)方法1:A類和B類不在同一個(gè)項(xiàng)目中 實(shí)驗(yàn)步驟:1) 創(chuàng)建類庫,并在命名空間Test1中定義類A,A類中包含一個(gè)方法Mehtod,該方法中有一條語句打印字符串“調(diào)用A類的Method方法”,為了保證A類及Method方法可以在其他程序集中使用,它們都應(yīng)該聲明為公共的。將該類庫生成DLL動(dòng)態(tài)鏈接庫文件2) 創(chuàng)建控制臺(tái)應(yīng)用程序,在命名空間Test2中定義類B,并在B類的Main方法中調(diào)用前面定義的A類的Method方法。3) 項(xiàng)目中添加對(duì)已有類庫項(xiàng)目的引用4) 同時(shí)使用using類庫名;實(shí)驗(yàn)方法2:A類和B類在同一個(gè)項(xiàng)目中1) 建立兩個(gè)獨(dú)立的源文件,分別將A類定義在命名空間Test1中,Main方法定義在B類中并包含在命名空間Test2中2) 直接在B類使用A類前包含對(duì)A類所在的命名空間的引用using Test1;參考答案:/Test1.csusing System;namespace Test1 public class A public void Method() Console.WriteLine(調(diào)用A類的Method方法); /Test2.csusing System;using Test1; /注意要包含引用namespace Test2 class B static void Main() A a = new A(); a.Method(); Console.ReadLine(); 運(yùn)行結(jié)果如下圖:實(shí)驗(yàn)3: 求兩個(gè)整數(shù)集合的并集和交集 實(shí)驗(yàn)要求:整數(shù)集合是由多個(gè)不同的整數(shù)構(gòu)成的。兩個(gè)集合的并集是由屬于兩個(gè)集合的全體元素構(gòu)成的(但集合中不能有重復(fù)元素),兩個(gè)集合的交集是由兩個(gè)集合中都存在的所有元素構(gòu)成的。請(qǐng)定義類Set,求兩個(gè)整數(shù)集合的并集和交集并驗(yàn)證。編程時(shí),集合的元素保存在一個(gè)一維數(shù)組中。 實(shí)驗(yàn)?zāi)康模?) 學(xué)會(huì)聲明和創(chuàng)建數(shù)組。2) 掌握數(shù)組的初始化方法。3) 理解數(shù)組的傳遞過程。4) 理解數(shù)組中元素的存儲(chǔ)方式。5) 熟悉System.Array類。6) 掌握foreach語句的使用。7) 掌握類的定義和使用方法實(shí)驗(yàn)步驟:1) 定義Set類,類Set中包含兩個(gè)私有int型數(shù)組字段a、b,用于保存兩個(gè)待求并集和交集的整數(shù)集合。2) 在類Set中定義構(gòu)造函數(shù),用于初始化字段a、b,用于初始化的值由構(gòu)造函數(shù)的兩個(gè)數(shù)組參數(shù)傳入。3) 在類Set中定義公共方法SetAndSet,求字段a、b的并集,計(jì)算結(jié)果由返回值返回。該返回值的類型是一個(gè)int型數(shù)組。由于一個(gè)集合中不能有重復(fù)元素,因此,不妨在類Set中定義一個(gè)私有方法InA,判斷數(shù)組a中是否存在某個(gè)元素,在需要時(shí)可以直接調(diào)用該方法。4) 在類Set中定義公共方法SetIntersection,求字段a、b的交集,計(jì)算結(jié)果由返回值返回,該返回值的類型進(jìn)一個(gè)int型數(shù)組。5) 定義一個(gè)Test類,在類Test中定義Main方法測(cè)試Set類的功能。 參考答案:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 集合 class Program static void Main(string args) /定義數(shù)組并對(duì)它們靜態(tài)初始化。 int a = 1, 2, 4, 6, 8, 10 ; int b = 1, 2, 4, 8, 16, 32 ; Set set = new Set(a, b); int c1 = set.SetAndSet(); /通過方法調(diào)用分別求得兩數(shù)組的并集 int c2 = set.SetIntersection(); /通過方法分別求得兩數(shù)組的與交集. Console.WriteLine(集合A:); PrintArray(a); Console.WriteLine(集合B: ); PrintArray(b); Console.WriteLine(集合A與B的并集: ); PrintArray(c1); Console.WriteLine(集合A與B的交集: ); PrintArray(c2); Console.ReadLine(); /為了方便起見在下面進(jìn)行數(shù)組遍歷的時(shí)候定義一個(gè)遍歷的方法。 public static void PrintArray(Array myArr) foreach (Object i in myArr) Console.Write( 0, i); Console.WriteLine(); /回車換行。 class Set private int a, b; public Set(int a, int b) this.a = a; this.b = b; private bool InA(int element)/判斷element元素是否在集合a中 /利用foreach來遍歷數(shù)組 foreach (int e in a) if (e = element) return true; return false; /求兩集合的并集的方法 public int SetAndSet() /定義一個(gè)新數(shù)組array用來存放數(shù)組b與數(shù)組a中存在不相同的元素 int array = new intb.Length; int index = -1; foreach (int e in b) if (!InA(e) index+; arrayindex = e; /定義一個(gè)新數(shù)組用來存放數(shù)組a與數(shù)組b的并集 int c = new inta.Length + index + 1; /把數(shù)組a的元素全部拷貝到新數(shù)組c中。 Array.Copy(a, c, a.Length); /把數(shù)組a與數(shù)組b相同的元素拷貝到新數(shù)組c中。注意: Array.Copy(array, 0, c, a.Length, index + 1); return c; /定義求兩數(shù)組的交集的方法 public int SetIntersection() /定義一個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論