Está en la página 1de 2

Fundamentos de Informática ‐ Grupo A Práctica 10

Grado en Ingeniería en Tecnologías Industriales

1. Queremos implementar un programa que nos permita recopilar información sobre los libros que
tenemos en casa (supongamos que tendremos un máximo de 200 ejemplares). Los libros pueden
ser propios o prestados. De cada libro queremos disponer de la siguiente información: título
(string), autor (string), año de la publicación (unsigned), editorial (string), número de
páginas, y es_prestado (bool).
La interacción con el usuario se hará mediante el siguiente menú:
1. Insertar libro
2. Listar todos los libros
3. Listar libros prestados
4. Buscar libro por título
5. Devolver libro prestado
6. Salir

Defina los tipos de datos necesarios para poder gestionar toda la información. Se supondrá que
los datos están almacenados en las primeras posiciones del array que se cree, sin huecos, y sin
orden relativo entre los libros.
Se deben implementar y usar las siguientes funciones (estas funciones recibirán, además de los
parámetros indicados, todos los que se estimen necesarios):

‐ leer_libro(): pide al usuario que introduzca por teclado los datos de un libro. La función
devolverá todos los datos almacenados en un mismo registro. Esta función no añade
información en el array.
‐ mostrar_libro(): recibe como parámetro los datos de un libro, mostrando su
información por pantalla.
‐ insertar_libro()(*): recibe como parámetro los datos de un libro, guardando su
información en el array. Se insertará el libro al final del array, si hay espacio disponible. La
función devolverá como retorno una indicación de si se ha podido insertar o no el libro (bool).
‐ buscar_libro()(*): recibe como parámetro el título de un libro. La función devuelve como
valor de retorno una indicación (bool) de si tenemos ese libro y, en caso afirmativo, devolverá
como parámetro por referencia su posición dentro del array.
‐ listar_libros(): recibe como parámetro un valor booleano que indicará si se quiere
mostrar por pantalla la información de todos los libros de todos los libros (false) o sólo de
los q2ue nos han prestado (true) .
‐ devolver_libro()(*): recibe como parámetro el título de un libro prestado, eliminando el
libro del array en caso de que exista. La función devolverá como valor de retorno una
indicación de si se disponía de ese libro y era prestado (bool). Para implementar esta función
se usará la función buscar_libro().

NOTAS: Las funciones marcadas con un asterisco (*), no leen nada desde teclado ni escriben nada
por pantalla. Utilice el código adjunto como esqueleto del programa que permite, además,
inicializar la estructura de datos con información de algunos libros.
//AQUI FALTAN los include, definicion de tipos, y prototipos de las funciones
unsigned menu();

int main()
{
Tlibros libros={{
{"Don Quijote de la Mancha","Miguel de Cervantes Saavedra",2015,"Ediciones Catedra",832,false},
{"Viaje al centro de la tierra","Julio Verne",2016,"Valdemar",368,true},
{"Oliver Twist","Charles Dickens",2008,"Vicens Vives",168,false},
{"El conde de montecristo","Alejandro Dumas",2017,"Navona Editorial",1296,false},
{"Alicia en el Pais de las Maravillas","Lewis Carroll",2016,"Edelvives",298,false},
{"El retrato de Dorian Gray","Oscar Wilde",2013,"Alizanza Editorial",320,false},
{"Viaje al centro de la tierra","Julio Verne",2016,"Valdemar",368,false},
{"La celestina","Fernando de Rojas",2017,"Anaya",448,true}
}};
unsigned tam = 8, opcion;
//…

do{
opcion=menu();
switch(opcion)
{
case 1: //…
break;
//…
}
}while(opcion!=6);

return 0;
}

unsigned menu()
{
unsigned opcion;
cout << endl;
cout << "1. Insertar libro" << endl;
cout << "2. Listar todos los libros"<<endl;
cout << "3. Listar libros prestados"<<endl;
cout << "4. Buscar libro por titulo"<<endl;
cout << "5. Devolver libro prestado"<<endl;
cout << "6. Salir"<<endl;
cout << "Introduce opcion: ";
cin >> opcion;
cin.ignore();
return opcion;
}

//AQUI FALTAN las definiciones de las funciones

2. Amplíe el programa anterior añadiendo una opción más en el menú:


6. Mostrar nombre del autor con mas libros
7. Salir
Para ello debe implementar y usar la siguiente función adicional (esta función recibirá, además de los
parámetros indicados, todos los que se estimen necesarios):

‐ autor_con_mas_libros()(*): devuelve como valor de retorno el nombre del autor del


que disponemos de más libros en casa (tanto propios como prestados).

Puede usar las funciones auxiliares que estime oportunas para implementar esta nueva opción.

También podría gustarte