CSC239 Chapter 11 Lab Assignment



create an interface inheritance hierarchy and perform polymorphism in a tester program. The following is the simplified UML for the hierarchy:

[pic]

1. Create a Console Application Project called “InterfaceApp”.

2. Rename the “Module1.vb” as “IShapeTester.vb”

3. Add a class definition, modify it to an Interface named “IShape” which has two members:

a. Function ToString() : String

b. Function CalculateArea() :Double

4. Add a class definition named “TwoDShape”, which is an abstract base class, the following members should be included:

a. xValue: Integer ---- instance variable

b. yValue: Integer ---- instance variable

c. Sub New(Integer, Integer) ---- constructor

d. Property X():Integer ---- get and set xValue

e. Property Y():Integer ---- get and set yValue

f. Function CalculateArea():Double ---- “MustOverride” function and implements IShape’s CalculateArea() function

g. Function ToString() ---- Overrides ToString() function in Object and implements IShape’s method, display x and y coordinate on the console window (use the following definition)

Public Overrides Function ToString() As String Implements IShape.ToString

Return ("X-coordinate: " & vbTab & xValue & vbCrLf & "Y-coordinate: " & vbTab & yValue)

End Function

5. Add a class definition named “Circle”, which inherits from “TwoDShape” class and includes the following members:

a. radiusValue: Double --- instance variable, radius of a circle

b. Sub New(Integer, Integer, Double) --- constructor

c. Property Radius():Double --- get and set radiusValue

d. Function CalculateArea():Double ---- override and implement the abstract method in base class Shape, calculate area of a circle using:

radiusValue * radiusValue * 3.14

e. Function ToString() ----- use Convert.ToString(Me.GetType()) to display the type of shape, then display X and Y coordinates by calling base class’s ToString() function, finally, display radius value on console window (use the following definition)

Public Overrides Function ToString() As String

Return (Convert.ToString(Me.GetType()) & vbCrLf & MyBase.ToString() & vbCrLf & "Radius: " & vbTab & String.Format("{0:N2}", radiusValue))

End Function

6. Add a class definition named “Square”, which inherit from “TwoDShape” class and include the following members:

a. sideValue: Double --- instance variable, side of a square

b. Sub New(Integer, Integer, Double) --- constructor

c. Property Side():Double --- get and set sideValue

d. Function CalculateArea():Double ---- override and implement the abstract method in base class Shape, calculate area of a square using:

sideValue * sideValue

e. Function ToString() ----- use Convert.ToString(Me.GetType()) to display the type of shape, then display X and Y coordinates by calling base class’s ToString() function, finally, display side value on console window (use the following definition)

Public Overrides Function ToString() As String

Return (Convert.ToString(Me.GetType()) & vbCrLf & MyBase.ToString() & vbCrLf & "Side: " & vbTab & String.Format("{0:N2}", sideValue))

End Function

7. Perform polymorphism in the Module “IShapeTester.vb”:

a. Declare 4 objects:

s1: a circle object ( center at (2, 4) and radius = 3.0)

s2: a square object (center at (1, 5) and side = 4.0)

s3: a circle object (center at(3, 6) and radius = 3.5)

s4: a square object (center at(6, 3) and side = 6.0)

b. Put these 4 objects into an IShape array

c. Use a “For” loop to traverse the array and let each object do the following:

i. Call ToString() and let it display shape type, x and y coordinates, radius or side value

ii. Call CalculateArea() and let it calculate area of a shape, display the area on console window.

8. Here is the sample output window, your program should be performed similarly like this:

[pic]

-----------------------

IShape

+ Function ToString() As String

+ Function CalculateArea(): Double

TwoDShape

- xValue: Integer

- yValue: Integer

+ Sub New(Integer, Integer)

+ Property X():Integer

+ Property Y():Integer

+ Function CalculateArea():Double

+ Function ToString():Strinbg

Square

- sideValue: Double

+ Sub New(Integer, Integer,Double)

+ Property Side():Double

+ Function CalculateArea():Double

+ Function ToString():Strinbg

Circle

- radiusValue: Double

+ Sub New(Integer, Integer,Double)

+ Property Radius():Double

+ Function CalculateArea():Double

+ Function ToString():Strinbg

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download