Creación De Clases De Visualización De Texto: Screentext, Centeredtext Y Framedtext En C#

En este ejercicio, crearemos tres clases para gestionar la visualización de texto en posiciones específicas de la pantalla. La clase principal, ScreenText, mostrará el texto en las coordenadas X e Y dadas. Incluirá un constructor para establecer estas coordenadas y el texto que se mostrará, junto con métodos setter para cambiar el texto o las coordenadas, y un método Display para mostrar el texto en la posición especificada.

La segunda clase, CenteredText, heredará de ScreenText y mostrará el texto centrado horizontalmente en una fila específica (coordenada Y). Ajustará automáticamente la coordenada X para centrar el texto dentro de la fila.

La tercera clase, FramedText, también heredará de ScreenText y mostrará el texto centrado horizontalmente dentro de un rectángulo. Los bordes del rectángulo se representarán con caracteres, y el texto se colocará en el centro del rectángulo, que estará definido por una fila inicial y el texto proporcionado.

En el programa de prueba, crearemos una instancia de cada clase y mostraremos su contenido para verificar su funcionalidad.



Grupo

Clases avanzadas en C#

Objectivo

1. Cree la clase ScreenText con métodos para establecer las coordenadas X e Y y el texto que se mostrará. Implemente el método "Display" para mostrar el texto en las coordenadas dadas.
2. Cree la clase CenteredText, que hereda de ScreenText, modifica la coordenada X para centrar el texto en la fila especificada y garantiza que se muestre correctamente.
3. Implemente la clase FramedText, que creará un rectángulo alrededor del texto y lo mostrará centrado dentro de él.
4. En el método Main, pruebe las tres clases creando objetos de cada una e invocando sus métodos "Display" para mostrar el resultado.

Cree la clase ScreenText para mostrar un texto en las coordenadas de pantalla especificadas. Debe tener un constructor que reciba X, Y y la cadena que se escribirá. También debe tener tres setters y un método "Display".
Cree la clase CenteredText, basada en ScreenText, para mostrar el texto centrado (horizontalmente) en una fila de la pantalla. Su constructor solo recibirá Y y el texto. SetX no debe cambiar la posición horizontal. Crea una clase FramedText para mostrar el texto centrado dentro de un rectángulo. Recibirá la fila inicial y el texto.
Finalmente, crea un programa de prueba para todos ellos, que creará un objeto de cada tipo y los mostrará.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;

class ScreenText
{
    // X and Y coordinates and the text to display
    private int x;
    private int y;
    private string text;

    // Constructor to initialize coordinates and text
    public ScreenText(int x, int y, string text)
    {
        this.x = x;
        this.y = y;
        this.text = text;
    }

    // Setters for X, Y, and text
    public void SetX(int x)
    {
        this.x = x;
    }

    public void SetY(int y)
    {
        this.y = y;
    }

    public void SetText(string text)
    {
        this.text = text;
    }

    // Method to display the text at the specified coordinates
    public void Display()
    {
        Console.SetCursorPosition(x, y); // Set the cursor position
        Console.WriteLine(text); // Display the text at that position
    }
}

class CenteredText : ScreenText
{
    // Constructor to set the Y coordinate and the text, centering it horizontally
    public CenteredText(int y, string text) : base(0, y, text)
    {
        // Calculate the X coordinate to center the text
        int x = (Console.WindowWidth - text.Length) / 2;
        SetX(x); // Set the calculated X position
    }
}

class FramedText : ScreenText
{
    // Constructor to initialize the starting row and the text
    public FramedText(int y, string text) : base(0, y, text)
    {
    }

    // Method to display the text inside a framed rectangle
    public new void Display()
    {
        string border = new string('-', text.Length + 2);
        
        // Display the top border
        Console.SetCursorPosition(0, y);
        Console.WriteLine(border);

        // Display the text with side borders
        Console.SetCursorPosition(0, y + 1);
        Console.WriteLine("|" + text + "|");

        // Display the bottom border
        Console.SetCursorPosition(0, y + 2);
        Console.WriteLine(border);
    }
}

class Program
{
    static void Main()
    {
        // Create a ScreenText object and display it
        ScreenText screenText = new ScreenText(5, 5, "Hello, Screen!");
        screenText.Display();
        
        // Create a CenteredText object and display it
        CenteredText centeredText = new CenteredText(7, "Centered Text");
        centeredText.Display();
        
        // Create a FramedText object and display it inside a frame
        FramedText framedText = new FramedText(9, "Framed Text");
        framedText.Display();
    }
}

 Output

Hello, Screen!
                                        Centered Text
--------------------------------------
|Framed Text|
--------------------------------------

Comparte este ejercicio de C#

Practica más ejercicios C# de Clases avanzadas en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..