Clase Screentext - Ejercicio De Programacion C# Sharp

En este ejercicio de C#, se debe crear una clase llamada ScreenText, que se encargará de mostrar un texto en las coordenadas especificadas de la pantalla. La clase debe contar con un constructor que reciba los valores de X, Y y el texto a mostrar. Además, debe incluir tres setters y un método Display para visualizar el texto en la pantalla.

Luego, se debe crear una clase CenteredText, que será una extensión de la clase ScreenText y mostrará el texto de forma centrada horizontalmente en una fila específica de la pantalla. El constructor de esta clase recibirá solo el valor de Y y el texto, mientras que el método SetX no cambiará la posición horizontal.

A continuación, se debe crear una clase llamada FramedText, que mostrará el texto centrado dentro de un rectángulo. Esta clase recibirá la fila de inicio y el texto a mostrar.

Finalmente, se debe crear un programa de prueba que cree un objeto de cada tipo y muestre el texto utilizando el método Display. Este ejercicio es perfecto para practicar la herencia, los constructores, y el uso de métodos para manipular la presentación de texto en la pantalla utilizando C#.

 Categoría

POO Más sobre Clases

 Ejercicio

Clase Screentext

 Objectivo

Cree una clase ScreenText, para mostrar un texto determinado en coordenadas de pantalla especificadas. Debe tener un constructor que recibirá X, Y y la cadena a escribir. También debe tener 3 setters y un método "Display".

Cree una clase CenteredText, basada en ScreenText, para mostrar texto centrado (horizontalmente) en una fila determinada de la pantalla. Su constructor recibirá solo Y y el texto. SetX no debe cambiar la posición horizontal.

Cree una clase FramedText, para mostrar texto centrado y dentro de un rectángulo. Recibirá la fila inicial y el texto.

Finalmente, cree un programa de prueba para todos ellos, que creará un objeto de cada tipo y los mostrará.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Importing the System namespace to handle basic functionalities and console output
using System;

public class ScreenText
{
    // Coordinates and text to be displayed
    protected int x, y;  // Changed from private to protected to allow access from derived classes
    protected string text;  // Changed from private to protected to allow access from derived classes

    // Constructor that sets the X, Y coordinates and text
    public ScreenText(int x, int y, string text)
    {
        this.x = x;
        this.y = y;
        this.text = text;
    }

    // Setter for X coordinate
    public void SetX(int x)
    {
        this.x = x;
    }

    // Setter for Y coordinate
    public void SetY(int y)
    {
        this.y = y;
    }

    // Setter for the text
    public void SetText(string text)
    {
        this.text = text;
    }

    // Method to display the text at the X, Y coordinates
    public virtual void Display()
    {
        Console.SetCursorPosition(x, y);
        Console.WriteLine(text);
    }
}

public class CenteredText : ScreenText
{
    // Constructor that only needs Y and text. X will be calculated to center the text
    public CenteredText(int y, string text) : base(0, y, text)
    {
        // Calculate the X position to center the text (in a console window with 80 columns)
        int centeredX = (Console.WindowWidth - text.Length) / 2;

        // Ensure that X is not less than 0 (if the text is too long for the window)
        SetX(Math.Max(centeredX, 0));  // Set X to the calculated centered position, but not less than 0
    }

    // Override the Display method to center the text
    public override void Display()
    {
        base.Display();  // Call the base class method to display the text
    }
}

public class FramedText : CenteredText
{
    // Constructor that receives the row and text and calls the base class constructor
    public FramedText(int row, string text) : base(row, text) { }

    // Override Display method to display the text inside a frame
    public override void Display()
    {
        int width = text.Length + 4;  // Adding space for the frame
        string frame = new string('*', width);  // Create a frame line

        // Print top frame
        Console.SetCursorPosition(0, y - 1);  // Adjust Y position to make room for the frame
        Console.WriteLine(frame);

        // Print the framed text in the center
        Console.SetCursorPosition(Math.Max(x - 1, 0), y);  // Ensure the X position is not negative
        Console.WriteLine("*" + text + "*");

        // Print bottom frame
        Console.SetCursorPosition(0, y + 1);  // Adjust Y position for the bottom frame
        Console.WriteLine(frame);
    }
}

// Auxiliary class with the Main function to test the functionality of the classes
public class Program
{
    public static void Main()
    {
        // Create a ScreenText object and display it at the given coordinates (X, Y)
        ScreenText screenText = new ScreenText(5, 3, "This is ScreenText!");
        screenText.Display();

        // Create a CenteredText object and display it in the center of the screen (horizontally)
        CenteredText centeredText = new CenteredText(5, "This is CenteredText!");
        centeredText.Display();

        // Create a FramedText object and display it inside a frame
        FramedText framedText = new FramedText(7, "This is FramedText!");
        framedText.Display();
    }
}

 Salida

This is ScreenText!
       This is CenteredText!
***********************
*This is FramedText!*
***********************

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de POO Más sobre Clases

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Clase ComplexNumber mejorada

    En este ejercicio de C#, se debe mejorar la clase ComplexNumber para sobrecargar los operadores + y - con el fin de permitir la suma y la resta d...

  •  Punto 3D

    En este ejercicio de C#, se debe crear una clase llamada Point3D para representar un punto en el espacio tridimensional, con coordenadas X, Y y Z. La clase deb...

  •  Catálogo + Menú

    En este ejercicio de C#, se debe mejorar el programa del catálogo para que el método Main muestre un menú que permita ingresar nuevos datos de cualquier tipo, ...

  •  Matriz de objetos: tabla

    En este ejercicio, debes crear una clase llamada "Table". Esta clase debe tener un constructor que reciba el ancho y alto de la mesa. La clase...

  •  House

    En este ejercicio, debes crear una clase llamada "House" que tendrá un atributo llamado "area". La clase debe tener un constructor que permita asignar un valor...

  •  Tabla + coffetable + array

    En este ejercicio, debes crear un proyecto llamado "Tables2", basado en el proyecto "Tables". En este nuevo proyecto, debes crear una clase llamada "CoffeeTable" que ...