Exercícios
Tendo por base a gestão de uma lista de inteiros, considere os tipos Data e Livro definidos abaixo.
#define NUMEROLIVROS 100
#define MAXTITULO 40
#define MAXNOME 80
typedef struct {
int dia;
int mes;
int ano;
} Data;
typedef struct {
char titulo[MAXTITULO];
char autor[MAXNOME];
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
9 - Ordenar livros por título
10 - Guardar livros em ficheiro 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
- j) Ordenar livros por título
- k) Guardar a lista de livros num ficheiro
- l) Ler livros de um ficheiro dado como argumento da aplicação
NOTA: poderá adaptar os tipos Data e Livro, acrescentando novos campos conforme julgar conveniente.
Sugestão para o conteúdo do ficheiro a ler e escrever.