[ Foro de C# ]

Ejercicio 7.2.2

21-Mar-2021 17:59
Invitado (ludovico)
0 Respuestas

He intentado resolver el ejercicio (7.2.2) pero no soy capaz, no sé manejar las variables numLibros y otras de forma que pueda utilizarlas en todas las funciones.
A veces en los problemas se dan pistas para cosas que pueden ser obvias, pero en otros casos, como este, me parece que se pide algo que quizás (al menos para mí) ni sea tan fácil ni tan evidente de lo que se pretende conseguir.
Agradecería cualquier ayuda para resolver este problema.

/*
(7.2.2)  Amplía el proyecto Libro (ejercicio 6.7.2), de modo que permita guardar
hasta 1.000 libros. Main mostrará un menú que permita añadir un nuevo libro o
ver los datos de los ya existentes.

*/

using System;

namespace Ejercicio_7_2_2
{
   class Program
   {
       public static void Main()
       {
           // Crear array para 1000 libros
           Libro[] biblioteca = new Libro[1000];
           bool seguir = true;
           int numLibros = 0; // Contador de número de libros en el array

           biblioteca[0] = new Libro("Cervantes", "El Quixote");

           while (seguir)
           {

               Console.WriteLine("1. Añadir un nuevo libro.");
               Console.WriteLine("2. Ver biblioteca de libros.");
               string option = Console.ReadLine();

               switch (option)
               {
                   case "1": MenuOption1(biblioteca); break;

                   case "2": MenuOption2(numLibros, biblioteca); break;
               }
           }


           //Libro libro1 = new Libro("Cervantes", "El Quixote");
           //libro1.SetPaginas(300);
           //Console.WriteLine(" de libro1: {0}",
           //    libro1.GetPaginas());
           //Libro libro2 = new Libro("San Juan de la Cruz", "Cántico Espiritual");

       }

       public static void MenuOption1(object[] biblioteca) // Añadir un libro a la biblioteca
       {
           int numLibros = 0;
           bool seguir = true;
           while (seguir)
           {
               Console.WriteLine("Introduzca los datos (0 para salir) \n");
               Console.Write("Autor: ");
               string autor = Console.ReadLine();
               Console.Write("Título: ");
               string titulo = Console.ReadLine();
               biblioteca[numLibros] = new Libro(autor,titulo);
               numLibros++;
               if (autor == "0" || titulo =="0") seguir = false;

           }

       }

       public static void MenuOption2(int numLibros, object[] biblioteca)
       {
           for(int i = 0; i<numLibros;i++)
               Console.WriteLine(biblioteca[i]);
       }
   }

   public class Documento
   {
       // Campos
       protected string autor;
       protected string titulo;
       protected string ubicacion;
   }

   class Libro : Documento
   {
       // Atributos o campos
       protected int paginas = 100;

       // Constructor con parámetros
       public Libro(string Autor, string Titulo)
       {
           autor = Autor;
           titulo = Titulo;
           ubicacion = "No detallada";
       }

       public int GetPaginas()
       {
           return paginas;
       }

       public void SetPaginas(int Paginas)
       {
           paginas = Paginas;
       }

   }
}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...