A aplicação foi desenvolvida para resolução da atividade solicitada para dar continuidade ao processo seletivo, e deveria ler de um arquivo de texto os dados de carros que seriam alugados por uma concessionária e posteriormente obter do usuário a descrição dos serviços solicitados, a fim de encontrar de acordo com os dados lidos do arquivo um automóvel para locação pelo menor preço possível.
Como um "plus", foi implementado um "gerador" para o arquivo .txt, que pode ser acessado ao iniciar a aplicação, e permitindo recriar a base de dados inicial. (Um backup do arquivo "dataloader.txt" original pode ser encontrado na pasta "data" no diretório raiz). A versão do Java utilizada é a 1.8, em acordo com as normas especificadas na documentação do desafio.
-
O preço total do aluguel é calculado e comparado logicamente para encontrar a opção mais viável para o aluguel do veículo.
-
Foi desenvolvida uma forma de verificar a disponibilidade de um veículo para os dias em que se pretende alugá-lo, não permitindo que um carro seja alugado duas vezes no mesmo dia, o que se acontecesse causaria transtornos. Ao alugar um novo carro, o sistema procura dentre os carros se ele já está alugado, se sim, ele procura por um novo carro, até que se retorne um carro disponível, e caso o contrário exibe a mensagem "Não possuem carros disponíveis na data indicada."
A aplicação deve ser executada através do terminal, caminhando até o diretório onde se encontra o executável (../rent_car/RentACar.jar) e executando o comando java -jar RentACar.jar
Quando o programa for executado, o usuário receberá uma mensagem, perguntando se ele deseja executar o sistema, digitando 1 (carregando o arquivo de dados já existente), ou se ele deseja cadastrar novos carros, digitando 2 (essa ação sobrescreve o arquivo anterior, que possui um backup na pasta data). O usuário tem também a opção de encerrar a aplicação desde já, pressionando 0.
Ao selecionar o sistema, o usuário pode usar a opção "a" para alugar um carro, ou "s" para encerrar o programa.
Para alugar um carro, o usuário precisa digitar o tipo do cliente (Normal ou Premium, caso possua ou não cartão fidelidade), seguido da quantidade de passageiros (Um inteiro) e as datas nas quais o carro deverá ser locado. Tais informações devem ser separadas por dois pontos e um espaço ": " e as datas, separadas por uma vírgula e um espaço ", ". (A sintaxe necessária está disponível durante a execução do programa)
Exemplo de input:
Premium: 6: 01set2009 (sab), 02set2009 (dom)
Exemplo de output:
NAVIGATOR: NorthCar
As dúvidas sobre o funcionamento do programa podem ser sanadas através do meu e-mail.