Table + Coffetable + Leg C# Sharp Exercise

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.

Example Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tables
{
    class CoffeeTable : Table
    {
        public CoffeeTable(int tableWidth, int tableHeight)
            : base(tableWidth, tableHeight)
        {
        }

        public override void ShowData()
        {
            Console.WriteLine("Width: {0}, Height: {1}", width, height);
            Console.WriteLine("(Coffee table)");
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Tables
{
    class Leg
    {
        Table myTable;

        public Leg()
        {

        }

        public void SetTable(Table t)
        {
            myTable = t;
        }

        public void ShowData()
        {
            Console.WriteLine("I am a leg");
            myTable.ShowData();
        }
    }
}

using System;
namespace Tables
{
    class Table
    {
        protected int width, height;
        protected Leg myLeg;

        public Table(int tableWidth, int tableHeight)
        {
            width = tableWidth;
            height = tableHeight;
        }

        public void AddLeg(Leg l)
        {
            myLeg = l;
            myLeg.SetTable(this);
        }

        public virtual void ShowData()
        {
            Console.WriteLine("Width: {0}, Height: {1}", width, height);
        }
    }
}

using System;
namespace Tables
{
    class TestTable
    {
        static void Main(string[] args)
        {
            // Using as a single table:

            Table t = new Table(80, 120);
            Leg l = new Leg();
            t.AddLeg(l);
            l.ShowData();

            Console.WriteLine();

            // Using as array:

            Table[] tableList = new Table[10];
            Random random = new Random();

            for (int i = 0; i < tableList.Length; i++)
            {
                if (i < tableList.Length / 2)
                    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));
            }

            for (int i = 0; i < tableList.Length; i++)
            {
                tableList[i].ShowData();
            }

            // TODO: To be removed
            Console.ReadLine();
        }
    }
}

More C# Sharp 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
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....