Catálogo - Ejercicio De Programacion C# Sharp

En este ejercicio de C#, se debe crear un diagrama de clases y, posteriormente, utilizando Visual Studio, desarrollar un proyecto con las clases correspondientes para una utilidad de catálogo. Este catálogo debe ser capaz de almacenar información sobre archivos de música, películas y programas de computadora.

Para cada ítem en el catálogo, es necesario almacenar los siguientes datos: nombre, código, categoría y tamaño. Además, para las películas, también se deben almacenar el director, el actor principal y la actriz principal. En el caso de los archivos de música, se deben incluir el cantante y la duración (en segundos).

Tanto para los archivos de música como para las películas, se deben implementar dos métodos: Play (aunque no se implementará en esta versión) y RetrieveInformation, que en una versión futura se conectará a un servidor de internet para obtener más información sobre el ítem.

Se recomienda el uso de herencia para organizar y estructurar las clases de manera eficiente, de modo que las características comunes entre música, películas y programas de computadora puedan ser compartidas. En el método Main, se deben crear arreglos de cada tipo de objeto. Este ejercicio permite practicar la creación de clases, el uso de herencia, la gestión de información en un catálogo y la organización eficiente del código en C#.

 Categoría

POO Más sobre Clases

 Ejercicio

Catálogo

 Objectivo

Cree el diagrama de clases y, a continuación, con Visual Studio, un proyecto y las clases correspondientes para una utilidad de catálogo:

Podrá almacenar información sobre archivos de música, películas y programas informáticos.
Para cada artículo, debe almacenar: nombre, código, categoría y tamaño. Para las películas también debe tener el director, el actor principal y la actriz principal. Para archivos de música, el cantante y la duración (en segundos). Para música y películas debe tener un método "Play" (aún no implementado) y también un método "RetrieveInformation", que (en una versión posterior) se conectará a un servidor de Internet para obtener información al respecto.
Use la herencia si es necesario. En "Main", cree matrices de cada tipo de objeto.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Importing the System namespace for input/output functionalities
using System;

// Base class for catalog items
public class CatalogItem
{
    // Private fields for the name, code, category, and size
    private string name;
    private string code;
    private string category;
    private double size;

    // Constructor to initialize the catalog item with necessary information
    public CatalogItem(string name, string code, string category, double size)
    {
        this.name = name; // Setting the name of the item
        this.code = code; // Setting the code of the item
        this.category = category; // Setting the category (e.g., Music, Film, Program)
        this.size = size; // Setting the size of the item
    }

    // Method to simulate playing the item (not yet implemented)
    public virtual void Play()
    {
        Console.WriteLine("Playing item...");
    }

    // Method to simulate retrieving information about the item from an internet server (not yet implemented)
    public virtual void RetrieveInformation()
    {
        Console.WriteLine("Retrieving information...");
    }

    // Getter for the name
    public string GetName() => name;

    // Getter for the code
    public string GetCode() => code;

    // Getter for the category
    public string GetCategory() => category;

    // Getter for the size
    public double GetSize() => size;
}

// Derived class for music files
public class Music : CatalogItem
{
    // Additional fields specific to music
    private string singer;
    private double length; // Length in seconds

    // Constructor to initialize a music item
    public Music(string name, string code, string category, double size, string singer, double length)
        : base(name, code, category, size) // Calling the base class constructor
    {
        this.singer = singer; // Setting the singer's name
        this.length = length; // Setting the length of the music file in seconds
    }

    // Overriding the Play method for music
    public override void Play()
    {
        Console.WriteLine($"Playing music by {singer} for {length} seconds...");
    }

    // Overriding the RetrieveInformation method for music
    public override void RetrieveInformation()
    {
        Console.WriteLine($"Retrieving information about the music by {singer}...");
    }

    // Getter for the singer's name
    public string GetSinger() => singer;

    // Getter for the length of the music file
    public double GetLength() => length;
}

// Derived class for films
public class Film : CatalogItem
{
    // Additional fields specific to films
    private string director;
    private string mainActor;
    private string mainActress;

    // Constructor to initialize a film item
    public Film(string name, string code, string category, double size, string director, string mainActor, string mainActress)
        : base(name, code, category, size) // Calling the base class constructor
    {
        this.director = director; // Setting the director's name
        this.mainActor = mainActor; // Setting the main actor's name
        this.mainActress = mainActress; // Setting the main actress's name
    }

    // Overriding the Play method for films
    public override void Play()
    {
        Console.WriteLine($"Playing film directed by {director} with {mainActor} and {mainActress}...");
    }

    // Overriding the RetrieveInformation method for films
    public override void RetrieveInformation()
    {
        Console.WriteLine($"Retrieving information about the film directed by {director}...");
    }

    // Getter for the director's name
    public string GetDirector() => director;

    // Getter for the main actor's name
    public string GetMainActor() => mainActor;

    // Getter for the main actress's name
    public string GetMainActress() => mainActress;
}

// Derived class for computer programs
public class ComputerProgram : CatalogItem
{
    // Constructor to initialize a computer program item
    public ComputerProgram(string name, string code, string category, double size)
        : base(name, code, category, size) // Calling the base class constructor
    {
    }

    // Overriding the RetrieveInformation method for computer programs
    public override void RetrieveInformation()
    {
        Console.WriteLine($"Retrieving information about the computer program...");
    }
}

// Main class to test the catalog system
public class Program
{
    public static void Main()
    {
        // Creating an array of music items
        Music[] musicItems = new Music[2]
        {
            new Music("Song1", "M001", "Music", 5.2, "Singer1", 200),
            new Music("Song2", "M002", "Music", 4.8, "Singer2", 180)
        };

        // Creating an array of film items
        Film[] filmItems = new Film[2]
        {
            new Film("Film1", "F001", "Film", 700, "Director1", "Actor1", "Actress1"),
            new Film("Film2", "F002", "Film", 800, "Director2", "Actor2", "Actress2")
        };

        // Creating an array of computer programs
        ComputerProgram[] programItems = new ComputerProgram[2]
        {
            new ComputerProgram("Program1", "P001", "Program", 150),
            new ComputerProgram("Program2", "P002", "Program", 200)
        };

        // Displaying the information of each item in the arrays
        foreach (var music in musicItems)
        {
            Console.WriteLine($"{music.GetName()} - {music.GetCategory()}");
            music.Play(); // Playing the music
            music.RetrieveInformation(); // Retrieving information about the music
        }

        foreach (var film in filmItems)
        {
            Console.WriteLine($"{film.GetName()} - {film.GetCategory()}");
            film.Play(); // Playing the film
            film.RetrieveInformation(); // Retrieving information about the film
        }

        foreach (var program in programItems)
        {
            Console.WriteLine($"{program.GetName()} - {program.GetCategory()}");
            program.RetrieveInformation(); // Retrieving information about the program
        }
    }
}

 Salida

Song1 - Music
Playing music by Singer1 for 200 seconds...
Retrieving information about the music by Singer1...
Song2 - Music
Playing music by Singer2 for 180 seconds...
Retrieving information about the music by Singer2...
Film1 - Film
Playing film directed by Director1 with Actor1 and Actress1...
Retrieving information about the film directed by Director1...
Film2 - Film
Playing film directed by Director2 with Actor2 and Actress2...
Retrieving information about the film directed by Director2...
Program1 - Program
Retrieving information about the computer program...
Program2 - Program
Retrieving information about the computer program...

 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#.

  •  Número aleatorio

    En este ejercicio de C#, se debe crear una clase llamada RandomNumber que contenga tres métodos estáticos. El primero de estos métodos, GetFloat, debe d...

  •  Texto a HTML

    En este ejercicio de C#, se debe crear una clase llamada TextToHTML, que debe ser capaz de convertir varios textos ingresados por el usuario en una secuencia d...

  •  Clase ScreenText

    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 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, ...