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.