Parque de Estacionamento

Bom dia Prezados,
Tenho dificuldade em resolver este problema alguém ai para me ajudar por favor?

Gestão De Um Parque De Estacionamento

Descrição: A aplicação terá como objectivo o desenvolvimento de uma aplicação Desktop de gestão de um grande parque de estacionamento.

Informações
• O parque tem varios tipos de lugares de estacionamento;(para camiões, turismos, Jips, Cabina dupla, Motorizadas e bicicletas.)
• Os tipos de lugares estão dispersos por todo o parque. para cada tipo hà um numero limitado; quer dizer que pode haver espaços livres no estacionamento mas que não pertença a categoria da viatura ou do ciclomotor que queira estacionar.
• Os lugares no estacionamento devem ser defenidos pelas empresas utilizadoras do software.
• Para cada viatura no parque deve ser guardada:o lugar que vai ocupar, o nome do conductor, a marca e modelo (ex: Marca:Hyundai Tucson2013) , a cor, matricula hora de entrada e hora prevista de saida. quando a viatura sair do parque deve ser guardado a matricula, o lugar, e a hora de saida.
• Cada lugar possui um codigo de referencia, localização e estado (livre ou ocupado), categoria
• A aplicação deve permitir saber Quantos carros se encontram no estacionamento, quantos entraram e sairam em uma certa data, assim como o numeros de marcas e/ou modelos existentes no parque. Deve ainda permitir saber os lugares livres e ocupados
• O preço da hora deve ser fixado pelo utilizador do sistema assim como o preço da multa por ter passado a hora prevista de saida.

Exponha suas dificuldades, que fica fácil te orientar.

Vc pode começar criando um modelo de dados do sistema, algo mais ou menos assim:

class Lugar {
  Local local;
  Viatura viaturaOcupada;
  Tipo tipo;
}
class Parque {
  List<Lugar> lugares;
}
class Lugar {
  Viatura viaturaOcupada;
  Categoria categoria;
  Codigo codigoReferencia;
  Localizacao localizacao;

  enum Estado { LIVRE, OCUPADO };
  Estado obterEstado() {
    return viaturaOcupada == null ? Estado.LIVRE : Estado.OCUPADO;
  }
}