




已閱讀5頁,還剩2頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章 面向對象的編程基礎 實驗1題目: 創建一個描述圖書信息的類并測試。類中應保存有圖書的書號、標題、作者、出版社、價格等信息。 實驗目的:1) 熟悉類的定義和使用。2) 掌握創建對象的方法。3) 掌握只讀字段的聲明及使用。4) 學習定義和使用帶參數構造函數。5) 熟悉訪問權限控制符。6) 掌握屬性的定義和使用。7) 掌握關鍵字this。 實驗步驟:1) 定義圖書類Book,Book類中包含isbn(書號)、title(標題)、author(作者)、press(出版社)、price(價格)等私有字段。由于對一本書來說,書號是唯一的,因此,isbn字段應聲明為只讀的。2) 為Book類中的每個字段定義相應的屬性,由于isbn字段只讀的,其相應屬性也應該是只讀的。3) 為Book類定義兩個構造函數,其中,一個構造函數將所有字段都初始化為用戶指定的值,另一個構造函數只要求用戶指定有關書號的信息,它將調用上一個構造函數初始化對象,初始化時,價格取0,除書號的其他信息取“未知”。4) 為Book類定義方法Show,Show方法用于顯示圖書的所有信息。5) 編寫Main方法測試Book類,Main方法中分別使用上述兩個構造函數創建Book對象。 參考答案:using System;class Book private readonly string isbn; /書號 private string title; /標題 private string author; /作者 private string press; /出版社 private int price; /價格 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(書號: 0, isbn); Console.WriteLine(標題: 0, title); Console.WriteLine(作者: 0, author); Console.WriteLine(出版社:0, press); Console.WriteLine(價格: 0, price); class Program static void Main() Book book1 = new Book(978-7-111-23423-4); book1.Show(); Console.WriteLine(); book1.Title = C#程序設計(C#2.0版); book1.Author = 劉慧寧; book1.Press = 機械工業出版社; book1.Price = 32; book1.Show(); Console.WriteLine(); book1 = new Book(978-7-302-15800-4, Java程序設計, 溫秀梅, 清華大學出版社, 29); book1.Show(); Console.ReadLine(); 運行結果如下: 實驗2 DLL文件 實驗題目: 在特定的命名空間中定義一個類,類中僅包含一個非Main方法,在該方法被調用時,打印出信息表明其被調用;在另一個命名空間中定義一個類,并在該類的Main方法中調用前一個命名空間中類的方法。 實驗目的:1) 理解命名空間和程序集的概念。2) 掌握DLL文件的創建過程。3) 掌握命名空間的創建和使用。4) 熟悉訪問權限控制符。實驗方法1:A類和B類不在同一個項目中 實驗步驟:1) 創建類庫,并在命名空間Test1中定義類A,A類中包含一個方法Mehtod,該方法中有一條語句打印字符串“調用A類的Method方法”,為了保證A類及Method方法可以在其他程序集中使用,它們都應該聲明為公共的。將該類庫生成DLL動態鏈接庫文件2) 創建控制臺應用程序,在命名空間Test2中定義類B,并在B類的Main方法中調用前面定義的A類的Method方法。3) 項目中添加對已有類庫項目的引用4) 同時使用using類庫名;實驗方法2:A類和B類在同一個項目中1) 建立兩個獨立的源文件,分別將A類定義在命名空間Test1中,Main方法定義在B類中并包含在命名空間Test2中2) 直接在B類使用A類前包含對A類所在的命名空間的引用using Test1;參考答案:/Test1.csusing System;namespace Test1 public class A public void Method() Console.WriteLine(調用A類的Method方法); /Test2.csusing System;using Test1; /注意要包含引用namespace Test2 class B static void Main() A a = new A(); a.Method(); Console.ReadLine(); 運行結果如下圖:實驗3: 求兩個整數集合的并集和交集 實驗要求:整數集合是由多個不同的整數構成的。兩個集合的并集是由屬于兩個集合的全體元素構成的(但集合中不能有重復元素),兩個集合的交集是由兩個集合中都存在的所有元素構成的。請定義類Set,求兩個整數集合的并集和交集并驗證。編程時,集合的元素保存在一個一維數組中。 實驗目的:1) 學會聲明和創建數組。2) 掌握數組的初始化方法。3) 理解數組的傳遞過程。4) 理解數組中元素的存儲方式。5) 熟悉System.Array類。6) 掌握foreach語句的使用。7) 掌握類的定義和使用方法實驗步驟:1) 定義Set類,類Set中包含兩個私有int型數組字段a、b,用于保存兩個待求并集和交集的整數集合。2) 在類Set中定義構造函數,用于初始化字段a、b,用于初始化的值由構造函數的兩個數組參數傳入。3) 在類Set中定義公共方法SetAndSet,求字段a、b的并集,計算結果由返回值返回。該返回值的類型是一個int型數組。由于一個集合中不能有重復元素,因此,不妨在類Set中定義一個私有方法InA,判斷數組a中是否存在某個元素,在需要時可以直接調用該方法。4) 在類Set中定義公共方法SetIntersection,求字段a、b的交集,計算結果由返回值返回,該返回值的類型進一個int型數組。5) 定義一個Test類,在類Test中定義Main方法測試Set類的功能。 參考答案:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 集合 class Program static void Main(string args) /定義數組并對它們靜態初始化。 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(); /通過方法調用分別求得兩數組的并集 int c2 = set.SetIntersection(); /通過方法分別求得兩數組的與交集. Console.WriteLine(集合A:); PrintArray(a); Console.WriteLine(集合B: ); PrintArray(b); Console.WriteLine(集合A與B的并集: ); PrintArray(c1); Console.WriteLine(集合A與B的交集: ); PrintArray(c2); Console.ReadLine(); /為了方便起見在下面進行數組遍歷的時候定義一個遍歷的方法。 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來遍歷數組 foreach (int e in a) if (e = element) return true; return false; /求兩集合的并集的方法 public int SetAndSet() /定義一個新數組array用來存放數組b與數組a中存在不相同的元素 int array = new intb.Length; int index = -1; foreach (int e in b) if (!InA(e) index+; arrayindex = e; /定義一個新數組用來存放數組a與數組b的并集 int c = new inta.Length + index + 1; /把數組a的元素全部拷貝到新數組c中。 Array.Copy(a, c, a.Length); /把數組a與數組b相同的元素拷貝到新數組c中。注意: Array.Copy(array, 0, c, a.Length, index + 1); return c; /定義求兩數組的交集的方法 public int SetIntersection() /定義一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗滌房安全管理制度
- 怒江州稅務管理制度
- 木料業堆場管理制度
- 學校快遞房管理制度
- 木耳菌發酵管理制度
- 器官opo管理制度
- 學校電氣火管理制度
- 第5講居民與聚落發展與合作課件初中總復習地理人教版-
- 美國公立研究型大學學位項目評估的案例分析-朱永東
- 《電子基礎與技能》項目二整流電路三端集成穩壓電路介紹
- 《胃管固定法》課件
- 【MOOC】牛生產學-西北農林科技大學 中國大學慕課MOOC答案
- 高速公路路產賠(補)償收費標準表
- 雙方關于2024年度地鐵車輛采購及維護合同2篇
- 【MOOC】線性代數-華北理工大學 中國大學慕課MOOC答案
- 糖尿病足鞋墊研究報告
- 媒介經營與管理完整課件
- 康復治療生理學呼吸系統
- 上海市市轄區(2024年-2025年小學五年級語文)人教版期末考試((上下)學期)試卷及答案
- 預應力混凝土方樁施工方案
- 臨建集裝箱項目施工部署方案
評論
0/150
提交評論