2º Reto (SSC 2019)

Enunciado:

En este reto tendrás que implementar un Shell Script que permita gestionar los libros de la biblioteca del centro a través de 3 ficheros: libros.bd, usuarios.bd y prestamos.bd, los cuáles deben de tener el siguiente formato:

  • libros.bd:
    • id_libro,título,autor,genero,año,estantería,prestado
  • usuarios.bd:
    • id_usuario,nombre,apellido1,apellido2,curso,num_préstamos
  • prestamos.bd:
    • id_prestamo,id_libro,id_usuario

El Shell Script deberá ofrecer las siguientes operaciones a través de un menú:

  • Gestión de libros:
    • Alta
    • Baja (a través del id)
    • Consulta (a través del id o nombre)
  • Gestión de usuarios:
    • Alta
    • Baja (a través del id)
    • Consulta (a través del id o nombre)
  • Gestión de préstamos:
    • Alta
    • Baja (a través del id)
    • Listado
    • Consulta (a través del id de usuario o del id de libro)
  • Salir

Algunas aclaraciones:

  • Los id de cada fichero serán autoincrementados y no se repetirán.
  • Puedes separar los campos como quieras, pero en un mismo campo, puede haber espacios en blanco, por lo que no puedes utilizar el espacio en blanco como separador de campos.
  • Las consultas se podrán hacer a través de los campos arriba indicados. Por ejemplo, para libros, se ofrecerán dos opciones: buscar por id buscar por nombre.
  • El listado de préstamos devolverá todos los préstamos realizados.
  • Los libros prestados, no se podrán volver a prestar.
  • Un mismo usuario, sólo podrá tener 3 pedidos al mismo tiempo.
  • No se podrán dar de baja usuarios o libros con préstamos pendientes.
  • Cuando se borra un libro, un usuario o un préstamo, sus ids (que quedan libres) no hace falta que se vuelvan a reutilizar en un futuro.

Se valorará positivamente:

  • Que en el alta de préstamos, se muestren facilidades para elegir un libro y un usuario. Por ejemplo:

Libros:

    1. La isla del tesoro (id: 001)
    2. El Hobbit (id: 002)
    3. El Justicia (id: 003)

Elige un libro: _

  • Cualquier otro tipo de aspecto positivo que se incluya adicionalmente.

Importante:

  • Cuando termines, deberás enviar un único fichero con extensión «.sh» a través del siguiente enlace Envío de scripts.

  • No pongas tu nombre dentro del fichero, puesto que se realizará una revisión a ciegas.

Deja un comentario

Tu dirección de correo electrónico no será publicada.