C# Exercise: 143 Table + coffetable + array

In this exercise, you need to create a project named "Tables2", based on the "Tables" project. In this new project, you should create a class called "CoffeeTable" that inherits from the "Table" class. The "ShowData" method of the "CoffeeTable" class, in addition to displaying the width and height, must also display "(Coffee table)".

Then, create an array that contains 5 tables and 5 coffee tables. The tables should have random sizes between 50 and 200 cm, while the coffee tables should have sizes between 40 and 120 cm. Finally, display all their data.

 Exercise

Table + coffetable + array

 Objetive

Create a project named "Tables2", based on the "Tables" project.

In it, create a class "CoffeeTable" that inherits from "Table". Its method "ShowData", besides writing the width and height, must display "(Coffee table)."

Create an array that contains 5 tables and 5 coffee tables. The tables must have random sizes between 50 and 200 cm, and the coffee tables from 40 to 120 cm. Show all their data.

 Example Code

// Import the System namespace for basic functionality
using System;

public class TableAndCoffeeTableDemo
{
    // Define the Table class
    public class Table
    {
        // Private attributes to store the width and height of the table
        private int width;
        private int height;

        // Constructor to initialize the width and height of the table
        public Table(int tableWidth, int tableHeight)
        {
            width = tableWidth;
            height = tableHeight;
        }

        // Getter method to retrieve the width of the table
        public int GetWidth()
        {
            return width;
        }

        // Setter method to set the width of the table
        public void SetWidth(int tableWidth)
        {
            width = tableWidth;
        }

        // Getter method to retrieve the height of the table
        public int GetHeight()
        {
            return height;
        }

        // Setter method to set the height of the table
        public void SetHeight(int tableHeight)
        {
            height = tableHeight;
        }

        // Method to show data about the table
        public void ShowData()
        {
            // Display the width and height of the table
            Console.WriteLine($"Table - Width: {width} cm, Height: {height} cm");
        }
    }

    // Define the CoffeeTable class, which inherits from Table
    public class CoffeeTable : Table
    {
        // Constructor for CoffeeTable that initializes width and height via the base constructor
        public CoffeeTable(int tableWidth, int tableHeight) : base(tableWidth, tableHeight) { }

        // Override the ShowData method to display additional information for CoffeeTable
        public new void ShowData()
        {
            // Display the width and height of the coffee table and specify it's a coffee table
            Console.WriteLine($"Coffee Table - Width: {GetWidth()} cm, Height: {GetHeight()} cm (Coffee table)");
        }
    }

    // Define the Main method to test the program
    public static void Main()
    {
        // Create an array that contains 5 tables and 5 coffee tables
        Table[] allTables = new Table[10];  // Array to hold both types of tables

        // Generate 5 random tables with sizes between 50 and 200 cm
        Random random = new Random();
        for (int i = 0; i < 5; i++)
        {
            int width = random.Next(50, 201);  // Random width between 50 and 200
            int height = random.Next(50, 201); // Random height between 50 and 200
            allTables[i] = new Table(width, height);
        }

        // Generate 5 random coffee tables with sizes between 40 and 120 cm
        for (int i = 5; i < 10; i++)
        {
            int width = random.Next(40, 121);  // Random width between 40 and 120
            int height = random.Next(40, 121); // Random height between 40 and 120
            allTables[i] = new CoffeeTable(width, height);
        }

        // Show data for all tables
        foreach (var table in allTables)
        {
            table.ShowData();
        }
    }
}

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