實驗二 面向對象的編程基礎_第1頁
實驗二 面向對象的編程基礎_第2頁
實驗二 面向對象的編程基礎_第3頁
實驗二 面向對象的編程基礎_第4頁
實驗二 面向對象的編程基礎_第5頁
已閱讀5頁,還剩10頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、班級: 09計科網絡1-2班 學號: 姓名:實驗二 面向對象的編程基礎(2課時)一、實驗目的1) 熟悉類的定義和使用。2) 掌握創建對象的方法。3) 掌握只讀字段的聲明及使用。4) 學習定義和使用帶參數構造函數。5) 熟悉訪問權限控制符。6) 掌握屬性的定義和使用。7) 掌握關鍵字this。8) 理解繼承的概念,學會定義和使用派生類。9) 學會定義和使用接口。10) 掌握繼承過程中的方法重寫,區分它與方法隱藏、方法重載的不同。11) 掌握多態。12) 熟悉關鍵字base。二、實驗要求1. 程序結構清晰、語句完整,包含有頭文件和main函數;2. 格式正確,語句采用縮進格式;3. 設計子函數實現

2、題目要求的功能;4. 編譯、連接通過,熟練使用命令鍵;5. 運行結果正確,輸入輸出有提示,格式美觀。三、實驗設備、材料和工具1. 奔騰2計算機或以上機型2. C#.NET2008四、實驗內容和步驟實驗內容: 1、創建一個描述圖書信息的類并測試。類中應保存有圖書的書號、標題、作者、出版社、價格等信息。步驟:1) 定義圖書類Book,Book類中包含isbn(書號)、title(標題)、author(作者)、press(出版社)、price(價格)等私有字段。由于對一本書來說,書號是唯一的,因此,isbn字段應聲明為只讀的。2) 為Book類中的每個字段定義相應的屬性,由于isbn字段只讀的,其相

3、應屬性也應該是只讀的。3) 為Book類定義兩個構造函數,其中,一個構造函數將所有字段都初始化為用戶指定的值,另一個構造函數只要求用戶指定有關書號的信息,它將調用上一個構造函數初始化對象,初始化時,價格取0,除書號的其他信息取“未知”。4) 為Book類定義方法Show,Show方法用于顯示圖書的所有信息。5) 編寫Main方法測試Book類,Main方法中分別使用上述兩個構造函數創建Book對象。2、根據幾何圖形的組合與繼承關系定義用于描述點、直線、三角形、四邊形、正方形、圓等幾何圖形的類(或結構)。要求首先定義一個幾何圖形接口描述所有幾何圖形的共有特性,上述幾何圖形都必須現實該接口,并且其

4、中用于描述點的類型最好定義為結構。步驟:1) 定義幾何圖形接口Shape。Shape接口中包含屬性Color,用于讀取和設置幾何圖形的顏色;包含方法Draw、Erase、Move,用于繪制、擦拭、移動幾何圖形。由于屬性Color的類型無法用基本數據類型準確描述,程序中還需要另外定義一個表示顏色的枚舉類型CColor(實驗上,.NET框架類庫中定義有一個Color結構,它可以更好地表示顏色,你們可以直接使用它)。2) 定義點結構Point實現Shape接口。Point結構中除實現Shape接口的所有成員外,還必須包含兩個int型私有字段x、y及相應屬性,它們用于表示點的坐標。另外,還應為Poin

5、t結構定義構造函數,并重寫方法ToString。3) 定義直線類Line實現Shape接口。Line類中除實現Shape接口的所有成員外,還必須包含兩個Point型私有字段point1、point2及相應屬性,它們用于表示直線兩個頂點的坐標。另外,還應為Line類定義構造函數,并重寫方法ToString。4) 定義三角形類Triange實現Shape接口。Triangle類中除實現Shape接口的所有成員外,還必須包含三個Point型私有字段及相應屬性,它們用于表示三角形三個頂點的坐標。另外,還應為triangle類定義方法Area(求面積)和構造函數,并重寫方法ToString。5) 定義四

6、邊形類Quadrilateral實現Shape接口。Quadrilateral類中除實現Shape接口中的所有成員外,還必須包含四個Point型私有字段及相應屬性,它們用于表示四邊形四個頂點的坐標。另外,還應為Quadrilateral類定義方法Area(求面積)和構造函數,并重寫方法ToString。由于程序后面還需要在Quadrilateral類的基礎上派生出正方形類,因此,實現Shape接口時,應該將方法Draw、Erase、Move聲明為虛擬的,另外,重寫方法ToString時,不妨將它聲明為密封的。6) 定義圓類Circle實現Shape接口。Circle類中除實現Shape接口的所

7、有成員外,還必須包含一個Point型私有字段、一個int型私有字段及相應屬性,它們分別用于表示圓的圓心坐標及半徑;另外,還應為Circle類定義Area(求面積)和構造函數,并重寫方法ToString。7) 定義正方形類Square繼承Quadrilateral類。Square類中應重寫方法Draw、Erase、Move并定義構造函數。8) 定義Main方法測試上面定義的類。3、編寫一個實現復數減法程序。寫出實驗步驟,并編寫調試程序。4、編寫一個窗體應用程序,模擬20選5開獎程序。寫出實驗步驟,并編寫調試程序。五、實驗報告要求1. 實驗前需填寫好實驗的名稱和實驗目的;2. 根據實驗內容初步設計

8、好程序,并從理論上排除錯誤;3. 針對程序的健壯性準備好測試數據;4. 結果分析中如實填寫運行后的結果,并記錄調試過程中產生的重要問題和解決方法。六、根據實驗過程填寫程序和實驗結果實驗1程序:class Bookprivate readonly string isbn; /書號private string title; /標題private string author; /作者private string press; /出版社private int price; /價格public Book(string isbn):this(isbn,"未知","未知&quo

9、t;,"未知",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 ISBNgetreturn isbn;public string Titlegetreturn title;settitle=value;public string Authorgetreturn author;s

10、etauthor=value;public string Pressgetreturn press;setpress=value;public int Pricegetreturn price;setprice=value;public void Show()Console.WriteLine("書號: 0",isbn);Console.WriteLine("標題: 0",title);Console.WriteLine("作者: 0",author);Console.WriteLine("出版社:0",press

11、);Console.WriteLine("價格: 0",price);class Test5_1static 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.WriteLi

12、ne();book1=new Book("978-7-302-15800-4","Java程序設計","溫秀梅","清華大學出版社",29);book1.Show();結果:調試過程中產生的重要問題和解決方法: 實驗2程序: /定義一個顏色的枚舉enum CColorBLACK,BLUE,BROWN,CYAN,GRAY,GREEN,ORANGE,PINK,RED,WHITE,YELLOW/定義一個幾何圖形接口interface ShapeCColor Colorget;set;/繪制的方法void Draw();/

13、擦拭的方法void Erase();/移動的方法void Move();/定義一個點的結構來實現Shape幾何圖形的接口struct Point:Shapeprivate CColor color;private int x,y;public CColor Colorgetreturn color;setcolor=value;public int Xgetreturn x;setx=value;public int Ygetreturn y;sety=value;/*public Point()*/public Point(int x,int y)this.x=x;this.y=y;this

14、.color=CColor.RED;public void Draw()Console.WriteLine("繪制一個點");public void Erase()Console.WriteLine("擦拭一個點");public void Move()Console.WriteLine("移動一個點");/重寫ToString()方法public override string ToString()return "("+x+","+y+")"/定義一個直線的類來實現Shap

15、e接口class Line:Shapeprivate CColor color;/頂點private Point point1,point2;public CColor Colorgetreturn color;setcolor=value;public Point Point1getreturn point1;setpoint1=value;public Point Point2 get return point2; set point2=value; public Line() public Line(Point p1,Point p2) point1=p1; point2=p2; pub

16、lic void Draw() Console.WriteLine("繪制一條直線"); public void Erase() Console.WriteLine("擦拭一條直線"); public void Move() Console.WriteLine("移動一條直線"); /也重寫一下ToString方法 public override string ToString() return "("+point1.ToString()+","+point2.ToString()+"

17、)" /定義一個三角形的類同時讓它實現Shape接口class Triangle:Shapeprivate CColor color;/定義三角形的三個頂點private Point point1,point2,point3;public CColor Colorgetreturn color;setcolor=value;public Point Point1getreturn point1;setpoint1=value; public Point Point2getreturn point2;setpoint2=value; public Point Point3getretu

18、rn point3;setpoint3=value; public Triangle() public Triangle(Point p1,Point p2,Point p3) point1=p1; point2=p2; point3=p3; public void Draw() Console.WriteLine("繪制一個三角形"); public void Erase() Console.WriteLine("擦拭一個三角形"); public void Move() Console.WriteLine("移動一個三角形");

19、/增加一個三角形自己的求面積的方法 public double Area() double area=Math.Abs(point1.X*point2.Y+point2.X*point3.Y+point3.X*point1.Y -point1.X*point3.Y-point2.X*point1.Y-point3.X*point2.Y)/2.0; return area; /同樣也重寫一下ToString方法 public override string ToString() return "("+point1.ToString()+","+point2

20、.ToString()+","+point3.ToString()+")" /定義一個四邊形的類同樣實現Shape接口class Quadrilateral:Shapeprivate CColor color;/定義四邊形的四個頂點private Point point1,point2,point3,point4;public CColor Colorgetreturn color;setcolor=value;public Point Point1getreturn point1;setpoint1=value;public Point Point2g

21、etreturn point2;setpoint2=value;public Point Point3getreturn point3;setpoint3=value;public Point Point4getreturn point4;setpoint4=value;public Quadrilateral()public Quadrilateral(Point p1,Point p2,Point p3,Point p4)point1=p1;point2=p2;point3=p3;point4=p4;public virtual void Draw()Console.WriteLine(&

22、quot;繪制一個四邊形");public virtual void Erase()Console.WriteLine("擦拭一個四邊形");public virtual void Move()Console.WriteLine("移動一個四邊形");/定義一個四邊形求面積的方法public double Area()double area=Math.Abs(point1.X*point2.Y-point2.X*point1.Y+point2.X*point3.Y -point3.X+point2.Y+point3.X*point4.Y-poi

23、nt4.X*point3.Y +point4.X*point1.Y-point1.X*point4.Y)/2.0; return area;/重寫ToString方法public sealed override string ToString()return "("+point1.ToString()+","+point2.ToString()+","+point3.ToString()+","+point4.ToString()+")"/定義一個圓的類同樣讓它實現Shape接口class Ci

24、rcle:Shapeprivate CColor color;/定義一個圓心private Point point;/定義圓的半徑private int radius;public CColor Colorgetreturn color;setcolor=value;public Point Pointgetreturn point;setpoint=value;public int Radiusgetreturn radius;setradius=value;public Circle()public Circle(Point p,int r)point=p;radius=r; public

25、 void Draw()Console.WriteLine("繪制一個圓");public void Erase()Console.WriteLine("擦拭一個圓");public void Move()Console.WriteLine("移動一個圓");/定義一個方法求的面積public double Area()return Math.PI*radius*radius;/同樣重寫ToString讓它格式化字符串public override string ToString() return "("+poin

26、t.ToString()+","+radius+")"/定義一個正方形的類,并且它讓繼承于四邊形的類class Square:Quadrilateralpublic Square()public Square(Point p1,Point p2,Point p3,Point p4):base(p1,p2,p3,p4)public override void Draw()Console.WriteLine("繪制一個正方形");public override void Erase()Console.WriteLine("擦拭一個正方形");public override void Move()Console.Writ

溫馨提示

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

評論

0/150

提交評論