Resolução de Exercícios de Laboratório (Aula 5) – Algoritmos e Estruturas de Dados
Sugestão de Resolução de Exercícios de Laboratório – Introdução ao Algoritmos e Estruturas de Dados (IAED), Instituto Superior Técnico
Considere os tipos Data e Livro definidos abaixo.
#define NUMEROLIVROS 100
#define MAXTITULO 40
#define MAXNOME 20
typedef struct {
int dia;
int mes;
int ano;
} Data;
typedef struct {
char titulo[MAXTITULO];
char autor[MAXNOME];
long long int isbn;
int anoPublicacao;
int numeroDaCopia;
Data dataEmprestimo;
Data dataRetorno;
} Livro;
Considere ainda que os livros estão guardados num vector com tamanho máximo NUMEROLIVROS.
1. Escreva uma função que imprima o seguinte menu:
****BIBLIOTECA DO IST****
1 – Inserir novo livro
2 – Listar livros
3 – Procurar livro por isbn
4 – Procurar livro por título
5 – Alterar título do livro
6 – Apagar livro pelo isbn
7 – Registar data de empréstimo de um livro pelo isbn
8 – Registar data de retorno de um livro pelo isbn
0 – Sair
*************************
2. Implemente todas as opções do menu (o programa só deverá terminar quando o utilizador seleccionar a opção 0). Para isso escreva funções para:
a) Ler um livro do standard input e inserir na estrutura de dados
b) Mostrar os dados de um livro no standard output
c) Listar todos os livros
d) Procurar um livro através do isbn
e) Procurar um livro através do título
f) Alterar o título de um livro
g) Eliminar um livro dos registos da biblioteca inserindo o isbn
h) Registar a data de empréstimo de um livro
i) Registar a data de retorno de um livro
#include <stdlib.h>
#include <string.h>
#define NUMEROLIVROS 100
#define MAXTITULO 40
#define MAXNOME 20
typedef struct {
int dia;
int mes;
int ano;
} Data;
typedef struct {
char titulo[MAXTITULO];
char autor[MAXNOME];
long long int isbn;
int anoPublicacao;
int numeroDaCopia;
Data dataEmprestimo;
Data dataRetorno;
} Livro;
void imprimeMenu(){
printf("****BIBLOTECA DO IST****n");
printf("1 - Inserir novo livron");
printf("2 - Listar livrosn");
printf("3 - Procurar livro por isbnn");
printf("4 - Procurar livro por títulon");
printf("5 - Alterar título do livron");
printf("6 - Apagar livro pelo isbnn");
printf("7 - Registar data de empréstimo de um livro pelo isbnn");
printf("8 - Registar data de retorno de um livro pelo isbnn");
printf("0 - Sairn");
printf("*************************n");
}
void limparLivro(Livro *l){
strcpy(l->titulo, "