Table + coffetable + leg C# Exercise - C# 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.

 Example Code

// Importing the System namespace for basic system functionalities like Console for input/output
using System;

public class Table
{
    // Private fields for the width and height of the table
    private double width;
    private double height;

    // Constructor to set the width and height of the table
    public Table(double width, double height)
    {
        this.width = width; // Setting the width of the table
        this.height = height; // Setting the height of the table
    }

    // Method to show the data of the table
    public void ShowData()
    {
        Console.WriteLine($"Table width: {width} cm, height: {height} cm"); // Displaying the table's dimensions
    }

    // Getter for the width of the table
    public double GetWidth()
    {
        return width; // Returning the width
    }

    // Getter for the height of the table
    public double GetHeight()
    {
        return height; // Returning the height
    }
}

public class CoffeeTable : Table
{
    // Constructor for CoffeeTable, calling the base class constructor (Table)
    public CoffeeTable(double width, double height) : base(width, height) { }

    // Overriding the ShowData method to add "(Coffee table)" after displaying the dimensions
    public new void ShowData()
    {
        base.ShowData(); // Displaying the table's dimensions
        Console.WriteLine("(Coffee table)"); // Indicating that this is a coffee table
    }
}

public class Leg
{
    // Private field for the leg's position
    private string position;

    // Constructor to set the position of the leg
    public Leg(string position)
    {
        this.position = position; // Setting the position of the leg (e.g., front-left, back-right)
    }

    // Method to show the data of the leg
    public void ShowData(Table table)
    {
        Console.WriteLine($"I am a leg."); // Displaying that it is a leg
        table.ShowData(); // Displaying the data of the table to which the leg belongs
    }
}

public class Program
{
    public static void Main()
    {
        // Creating a new CoffeeTable object with random sizes
        CoffeeTable coffeeTable = new CoffeeTable(100, 60); // Width = 100 cm, Height = 60 cm

        // Creating a new Leg object positioned at "front-left"
        Leg leg = new Leg("front-left");

        // Showing the data of the coffee table
        coffeeTable.ShowData(); // Displaying the dimensions and the fact that it's a coffee table

        // Asking the leg to display its data, which will also display the data of the table
        leg.ShowData(coffeeTable); // Displaying that it's a leg and showing the coffee table's data
    }
}

More C# 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 - Programming Tutorials and Courses © 2025 All rights reserved.  Legal Conditions.