Buscar

Prévia do material em texto

Uma imobiliária deseja informatizar seu cadastro de imóveis e sua função é fazer o programa para isso. Existem dois tipos de imóveis: comerciais e residenciais. Para todos é preciso armazenar o endereço (String), o cep (inteiro), o nome do proprietário (String) e o valor mínimo para aluguel.
 
Para os residenciais também é preciso armazenar a quantidade de quartos, o número de vagas na garagem e o valor mínimo para venda, quando o imóvel está disponível para venda.
 
Para os comerciais é necessário armazenar se o imóvel se refere a um escritório ou a uma loja para vendas ao público. Além disso, também é necessário armazenar a metragem do imóvel.
 
Os imóveis comerciais são sempre para aluguel, mas os residenciais podem ser apenas para aluguel ou para aluguel e venda. Todos os imóveis entram na imobiliária disponíveis para aluguel. Depois que são alugados devem ser marcados como não disponíveis para aluguel e o nome do corretor que fez a negociação é armazenado junto com os dados do imóvel. O fato de o imóvel ter sido alugado, não impede que seja vendido, no caso dos imóveis residenciais. Mesmo depois de alugado o imóvel ainda pode ser vendido, mas o contrário não é verdade. Uma vez que o imóvel é vendido, fica indisponível tanto para venda quanto para aluguel.
 
Faça uma hierarquia de classes que represente os imóveis usando apenas atributos privados e não use construtores padrão. Os métodos abaixo devem estar presentes na hierarquia de classes.
 
Para todos os imóveis:
 
boolean alugar(String corretor, double valor)
Marca o imóvel como alugado e armazena o nome do corretor responsável. Emite uma mensagem de erro e retorna false se o imóvel não está disponível para aluguel ou se o valor é menor que o valor mínimo para aluguel.
 
boolean cancelarAluguel()
Só para imóveis que já foram alugados, marca o imóvel como disponível para aluguel. Emite uma mensagem de erro e retorna false se o imóvel já estava disponível para aluguel.
 
boolean disponivelAluguel()
Retorna true se o imóvel está disponível para aluguel ou false se não está.
 
void imprimir()
Imprime todos os dados do imóvel, inclusive a disponibilidade para venda e aluguel.
 
Apenas para imóveis residenciais:
 
boolean vender(String corretor, double valor)
Marca o imóvel como indisponível para aluguel e venda e armazena o nome do corretor responsável. Emite uma mensagem de erro e retorna false se o imóvel não está disponível para venda ou se o valor é menor que o valor mínimo para venda.
 
 
boolean disponivelVenda()
Retorna true se o imóvel está disponível para venda ou false se não está.

Mais conteúdos dessa disciplina