1º Trabalho Prático de Programação II


1. Organização e calendário


2. Especificação

2.1 Objectivo

Desenvolva em ANSI C um programa de gestão de reservas/alugueres para uma empresa de aluguer de automóveis. O programa deverá manter a seguinte informação e proporcionar as funcionalidades mínimas indicadas:

Informação sobre a frota existente
Deverá manter-se um registo das viaturas da empresa incluindo a seguinte informação sobre cada viatura:
Por exemplo:
Classe 1:
  • Ford Ka,
  • Renault Twingo,
  • Fiat Cinquecento e
  • Opel Corsa.
Classe 2:
  • Ford Mondeo,
  • Renault Megane,
  • Fiat Bravo e
  • Opel Vectra.
Classe 3:
  • Ford Scorpio,
  • Renault Safrane,
  • Fiat Marea e
  • Opel Omega.
Pretendem-se as seguintes funcionalidades mínimas:
  1. inserir nova viatura,
  2. remover uma viatura e
  3. listar informação de todas as viaturas.
Informação sobre reservas e alugueres
Deverá manter-se um registo de reservas e alugueres, sendo cada reserva caracterizada pela seguinte informação:
Pretendem-se as seguintes funcionalidades mínimas:
  1. reservar uma viatura disponível no período indicado por um cliente (o cliente deve poder especificar o modelo que pretende),
  2. anular reservas de clientes que desistiram ou que não efectuaram o levantamento das viaturas no primeiro dia do período pretendido (é necessário que o programa considere a data corrente), e
  3. actualizar a informação sobre reservas/alugueres quando:
    • um contrato de aluguer é concretizado,
    • uma reserva é anulada ou
    • uma viatura é devolvida à agência.
Determinação do preço
Deverá ser possível determinar o preço do aluguer de uma viatura. O preço é função da classe da viatura alugada e do número de dias de aluguer. A definição do preçário fica ao critério dos alunos.

2.2 Concretização

  1. As estruturas de dados utilizadas para armazenar informação sobre as viaturas e sobre reservas e alugueres devem ser implementadas utilizando matrizes. A capacidade das matrizes deve ser fixada em 100 elementos em ambos os casos.
  2. Devem ser utilizados ficheiros de texto para armazenar a informação relevante no final da execução do programa e para carregar a informação no início da sua execução.
  3. Para simplificar considerou-se no enunciado que alugueres e reservas estariam armazenados na mesma estrutura de dados. Nada impede que os alunos considerem outras soluções.
  4. Podem-se utilizar valores inteiros para representar datas (e.g., considerar que um período de aluguer vai do dia 121 ao dia 127, sendo 0 o valor do início do calendário). No entanto recomenda-se a utilização da representação de datas e das funções para a sua manipulação definidas pelo ANSI C (veja-se o ficheiro de cabeçalho "time.h").

2.3 Estruturação

O programa deverá ser dividido em módulos. Por exemplo:

  1. Módulo principal, com a função main().
  2. Módulo dos registos de veículos.
  3. Módulo dos registos de alugeres e reservas.
  4. Módulo das funções de leitura do teclado.
  5. Módulo de funções de escrita de menus e leitura de opções.
  6. Módulo de operações sobre datas e horas e tempos de duração.

Página concebida e mantida por Dr. Filipe Santos (última actualização 2006/07/07)
Copyright © 1998 ISCTE