實驗二面向?qū)ο蟮某绦虻脑O計說明_第1頁
實驗二面向?qū)ο蟮某绦虻脑O計說明_第2頁
實驗二面向?qū)ο蟮某绦虻脑O計說明_第3頁
實驗二面向?qū)ο蟮某绦虻脑O計說明_第4頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗二面向?qū)ο蟮某绦蛟O計(2 課時)一、實驗目的1 )熟悉類的定義和使用。2 )掌握創(chuàng)建對象的方法。3 )掌握只讀字段的聲明及使用。4 )學習定義和使用帶參數(shù)構(gòu)造函數(shù)。5 )熟悉訪問權(quán)限控制符。6 )掌握屬性的定義和使用。7 )掌握關鍵字this 。8 )理解繼承的概念,學會定義和使用派生類。9 )學會定義和使用接口。10 ) 掌握繼承過程中的方法重寫,區(qū)分它與方法隱藏、方法重載的不同。11 ) 掌握多態(tài)。12 ) 熟悉關鍵字base 。二、實驗要求1 )程序結(jié)構(gòu)清晰、語句完整,包含有頭文件和main函數(shù);2 )格式正確,語句采用縮進格式;3 )設計子函數(shù)實現(xiàn)題目要求的功能;4 )編譯、連接通

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

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

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

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

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

7、Shape接口。 Circle類中除實現(xiàn)Shape接口的所有成員外,還必須包含一個 Point型私有字段、一個int型私有字段及相應屬性,它們分別用于表示圓的圓心坐標及半徑;另外,還應為Circle類定義 Area (求面積)和構(gòu)造函數(shù),并重寫方法ToString。7 )定義正方形類Square繼承 Quadrilateral類。Square類中應重寫方法Draw 、Erase 、Move并定義構(gòu)造函數(shù)。8 )定義 Main方法測試上面定義的類。3 、編寫一個實現(xiàn)復數(shù)加法程序。寫出實驗步驟,并編寫調(diào)試程序。五、實驗報告要求1. 實驗前需填寫好實驗的名稱和實驗目的;2. 根據(jù)實驗容初步設計好程序

8、,并從理論上排除錯誤;3. 針對程序的健壯性準備好測試數(shù)據(jù);4. 結(jié)果分析中如實填寫運行后的結(jié)果,并記錄調(diào)試過程中產(chǎn)生的重要問題和解決方法。六、根據(jù)實驗過程填寫程序和實驗結(jié)果實驗 1 程序: class Bookprivate 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

9、 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;setauthor=value;public string Pressgetr

10、eturn 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);Console.WriteLine(價格 :0,price);class Test5_1static void Main()Book book1=new Book(978-7-

11、111-23423-4);book1.Show();Console.WriteLine();book1.Title=C#book1.Author=book1.Press=程序設計慧寧 ;機械工業(yè) ;(C#2.0版 );book1.Price=32;book1.Show();Console.WriteLine();book1=new Book(978-7-302-15800-4,Java程序設計 , 溫秀梅 , 清華大學 ,29);book1.Show();結(jié)果:調(diào)試過程中產(chǎn)生的重要問題和解決方法:實驗 2 程序:/ 定義一個顏色的枚舉enum CColorBLACK,BLUE,BROWN,CY

12、AN,GRAY,GREEN,ORANGE,PINK,RED,WHITE,YELLOW/ 定義一個幾何圖形接口interface ShapeCColor Colorget;set;/ 繪制的方法void Draw();/ 擦拭的方法void Erase();/ 移動的方法void Move();/ 定義一個點的結(jié)構(gòu)來實現(xiàn) Shape 幾何圖形的接口struct Point:Shapeprivate CColor color;private int x,y;public CColor Colorgetreturn color;setcolor=value;public int Xgetreturn

13、 x;setx=value;public int Ygetreturn y;sety=value;/*public Point()*/public Point(int x,int y)this.x=x;this.y=y;this.color=CColor.RED;public void Draw()Console.WriteLine(繪制一個點 );public void Erase()Console.WriteLine(擦拭一個點 );public void Move()Console.WriteLine(移動一個點 );/重寫 ToString()方法public override str

14、ing ToString()return (+x+,+y+);/ 定義一個直線的類來實現(xiàn) Shape 接口class Line:Shapeprivate CColor color;/ 頂點private Point point1,point2;public CColor Colorgetreturn color;setcolor=value;public Point Point1getreturn point1;setpoint1=value;public Point Point2getreturn point2;setpoint2=value;public Line()public Line

15、(Point p1,Point p2)point1=p1;point2=p2;public void Draw()Console.WriteLine(繪制一條直線);public void Erase()Console.WriteLine(擦拭一條直線);public void Move()Console.WriteLine(移動一條直線);/也重寫一下ToString方法public override string ToString()return (+point1.ToString()+,+point2.ToString()+);/ 定義一個三角形的類同時讓它實現(xiàn)Shape 接口class

16、 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 Point3getreturn point3;setpoint3=value;public Tria

17、ngle()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(移動一個三角形);/ 增加一個三角形自己的求面積的方法public double Area()double area=Math.Abs(point1.X*point2.Y+point2.X

18、*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.ToString()+,+point3.ToString()+);/ 定義一個四邊形的類同樣實現(xiàn)Shape 接口class Quadrilateral:Shapeprivate CColor color;/ 定義四邊形的

19、四個頂點private Point point1,point2,point3,point4;public CColor Colorgetreturn color;setcolor=value;public Point Point1getreturn point1;setpoint1=value;public Point Point2getreturn point2;setpoint2=value;public Point Point3getreturn point3;setpoint3=value;public Point Point4getreturn point4;setpoint4=va

20、lue;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(繪制一個四邊形);public virtual void Erase()Console.WriteLine(擦拭一個四邊形);public virtual void Move()Console.WriteLine(移動一個四邊形);/ 定義一個四邊形求面積的方法pu

21、blic 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-point4.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(

22、)+,+point3.ToString()+,+point4.ToString()+);/ 定義一個圓的類同樣讓它實現(xiàn)Shape 接口class Circle: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;setrad

23、ius=value;public Circle()public Circle(Point p,int r)point=p;radius=r;public 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 stringToString()return (+point.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 over

溫馨提示

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

評論

0/150

提交評論