Table + coffetable + leg VB.Net Exercise - Visual Basic Programming Course


 Exercise

Table + coffetable + leg

Objetive

Extend the example of the tables and the coffee tables, to add a class "Leg" with a method "ShowData", which will write "I am a leg" and then it will display the data of the table to which it belongs.

Choose one table in the example, add a leg to it and ask that leg to display its data.

Code

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Namespace Tables
    Class CoffeeTable
        Inherits Table

        Public Sub New(ByVal tableWidth As Integer, ByVal tableHeight As Integer)
            MyBase.New(tableWidth, tableHeight)
        End Sub

        Public Overrides Sub ShowData()
            Console.WriteLine("Width: {0}, Height: {1}", width, height)
            Console.WriteLine("(Coffee table)")
        End Sub
    End Class
End Namespace

Namespace Tables
    Class Leg
        Private myTable As Table

        Public Sub New()
        End Sub

        Public Sub SetTable(ByVal t As Table)
            myTable = t
        End Sub

        Public Sub ShowData()
            Console.WriteLine("I am a leg")
            myTable.ShowData()
        End Sub
    End Class
End Namespace

Namespace Tables
    Class Table
        Protected width, height As Integer
        Protected myLeg As Leg

        Public Sub New(ByVal tableWidth As Integer, ByVal tableHeight As Integer)
            width = tableWidth
            height = tableHeight
        End Sub

        Public Sub AddLeg(ByVal l As Leg)
            myLeg = l
            myLeg.SetTable(Me)
        End Sub

        Public Overridable Sub ShowData()
            Console.WriteLine("Width: {0}, Height: {1}", width, height)
        End Sub
    End Class
End Namespace

Namespace Tables
    Class TestTable
        Private Shared Sub Main(ByVal args As String())
            Dim t As Table = New Table(80, 120)
            Dim l As Leg = New Leg()
            t.AddLeg(l)
            l.ShowData()
            Console.WriteLine()
            Dim tableList As Table() = New Table(9) {}
            Dim random As Random = New Random()

            For i As Integer = 0 To tableList.Length - 1

                If i < tableList.Length / 2 Then
                    tableList(i) = New Table(random.[Next](50, 201), random.[Next](50, 201))
                Else
                    tableList(i) = New CoffeeTable(random.[Next](40, 121), random.[Next](40, 121))
                End If
            Next

            For i As Integer = 0 To tableList.Length - 1
                tableList(i).ShowData()
            Next

            Console.ReadLine()
        End Sub
    End Class
End Namespace

More VB.Net Exercises of OOP More On Classes

 Array of objects: table
Create a class named "Table". It must have a constructor, indicating the width and height of the board. It will have a method "ShowData" which will wr...
 House
Create a class "House", with an attribute "area", a constructor that sets its value and a method "ShowData" to display "I am a house, my area is 200 m...
 Table + coffetable + array
Create a project named "Tables2", based on the "Tables" project. In it, create a class "CoffeeTable" that inherits from "Table". Its method "ShowDa...
 Encrypter & Decrypter
Create a class "Encrypter" to encrypt and decrypt text. It will have a "Encrypt" method, which will receive a string and return another string. It ...
 Complex numbers
A complex number has two parts: the real part and the imaginary part. In a number such as a+bi (2-3i, for example) the real part would be "a" (2) and ...
 Catalog
Create the classes diagram and then, using Visual Studio, a project and the corresponding classes for a catalog utility: It will be able to store i...
 Random number
Create a class RandomNumber, with three static methods: - GetFloat will return a number between 0 and 1 using the following algorithm: seed = (s...
 Text to HTML
Create a class "TextToHTML", which must be able to convert several texts entered by the user into a HTML sequence, like this one: Hola Soy yo Ya ...
 Class ScreenText
Create a class ScreenText, to display a certain text in specified screen coordinates. It must have a constructor which will receive X, Y and the strin...
 Enhanced ComplexNumber class
Improve the "ComplexNumber" class, so that it overloads the operators + and - to add and subtract numbers....
 3D point
Create a class "Point3D", to represent a point in 3-D space, with coordinates X, Y and Z. It must contain the following methods: MoveTo, which will...
 Catalog + Menu
Improve the Catalog program, so that "Main" displays a menu to allow entering new data of any kind, as well as displaying all the data stored....


Juan A. Ripoll - Systems Tutorials and Programming Courses © 2024 All rights reserved.  Legal Conditions.