Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cadastro/gui/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ private void deletar() {
} catch (SQLException exception) {
System.out.println("Erro ao Deletar: " + exception);

}
}
}

// =========== Método para inserção ===========
Expand Down
6 changes: 6 additions & 0 deletions LocaCar/BaseVeiculo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package LocaCar;

public interface BaseVeiculo {
public int qtdLocacaoRealizada();

}
97 changes: 97 additions & 0 deletions LocaCar/Cliente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package LocaCar;

import java.sql.Date;
import java.util.ArrayList;

public class Cliente {
protected int idCliente;
protected String nome;
protected Date dataDeNascimento;
protected String cpf;
protected int diasParaDevolucao;
ArrayList<Locacao> locacoes;

public static ArrayList<Cliente> clientes = new ArrayList<>();

public Cliente(int idCliente, String nome, Date dataDeNascimento, String cpf, int diasParaDevolucao) {
this.idCliente = idCliente;
this.nome = nome;
this.dataDeNascimento = dataDeNascimento;
this.cpf = cpf;
this.diasParaDevolucao = diasParaDevolucao;

this.locacoes = new ArrayList<>();

clientes.add(this);

}

// ======== SETS ========
public void setIdCliente(int idCliente) {
this.idCliente = idCliente;

}
public void setNome(String nome) {
this.nome = nome;

}
public void setDataDeNascimento(Date dataDeNascimento) {
this.dataDeNascimento = dataDeNascimento;

}
public void setCpf(String cpf) {
this.cpf = cpf;

}
public void setDiasParaDevolucao(int diasParaDevolucao) {
this.diasParaDevolucao = diasParaDevolucao;

}

// ======== GETS ========
public int getIdCliente() {
return this.idCliente;

}
public String setNome() {
return this.nome;

}
public Date getDataDeNascimento() {
return this.dataDeNascimento;

}
public String getCpf() {
return this.cpf;

}
public int getDiasParaDevolucao() {
return this.diasParaDevolucao;

}

// ====== MÉTODOS ======
public void qtdVeiculosLocados() {

}

// ====== EQUALS ======
@Override
public boolean equals(Object object) {
if (object == this)
return true;
if (!(object instanceof Cliente))
return false;

Cliente cliente = (Cliente) object;

return idCliente == cliente.idCliente;
}

// ====== IMPRESSÃO ======
@Override
public String toString() {
String print = "teste" ;
return print;
}
}
103 changes: 103 additions & 0 deletions LocaCar/Locacao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package LocaCar;

import java.sql.Date;
import java.util.ArrayList;

public class Locacao {
protected int idLocacao;
protected int idCliente;
protected Date dataDeLocacao;
protected Date dataDeDevolucao;
Cliente cliente;
ArrayList<VeiculosLocados> veiculosLocados;

public static ArrayList<Locacao> locacoes = new ArrayList<>();

public Locacao(int idLocacao, int idCliente, Date dataDeLocacao, Date dataDeDevolucao, Cliente cliente) {
this.idLocacao = idLocacao;
this.idCliente = idCliente;
this.dataDeLocacao = dataDeLocacao;
this.dataDeDevolucao = dataDeDevolucao;

this.veiculosLocados = new ArrayList<>();

cliente.locacoes.add(this);
locacoes.add(this);
}

// ======== SETS ========
public void setIdLocacao(int idLocacao) {
this.idLocacao = idLocacao;

}
public void setIdCliente(int idCliente) {
this.idCliente = idCliente;

}
public void setDataDeLocacao(Date dataDeLocacao) {
this.dataDeLocacao = dataDeLocacao;

}
public void setDataDeDevolucao(Date dataDeDevolucao) {
this.dataDeDevolucao = dataDeDevolucao;

}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}


// ======== GETS ========
public int getIdLocacao() {
return this.idLocacao;

}
public int getIdCliente() {
return this.idCliente;

}
public Date getDataDeLocacao() {
return this.dataDeLocacao;

}
public Date getDataDeDevolucao() {
return this.dataDeDevolucao;

}
public Cliente getCliente() {
return this.cliente;
}


// ====== MÉTODOS ======
public void valorTotalLocacao() {

}
public void qtdVeiculosLocados() {

}
public void dataDeDevolucao() {

}

// ====== EQUALS ======
@Override
public boolean equals(Object object) {
if (object == this)
return true;
if (!(object instanceof Locacao))
return false;

Locacao locacao = (Locacao) object;

return idLocacao == locacao.idLocacao;
}

// ====== IMPRESSÃO ======
@Override
public String toString() {
String print = "teste" ;
return print;
}

}
94 changes: 94 additions & 0 deletions LocaCar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Instruções
Para analisar o aprendizado, desenvolva um mini sistema de locação de veículos, que possui como entidades:

Cliente
int: Identificador Único (ID)
String: Nome
Date: Data de Nascimento
String: C.P.F.
int: Dias para Devolução

Veículo
String: Marca
String: Modelo
int: Ano
double: Valor para Locação

Veículos Leves (Herança de Veículo)
int: Identificador Único (ID)
String: Cor

Veículos Pesados (Herança de Veículo)
int: Identificador Único (ID)
String: Restrições

Locação
int: Identificador Único (ID)
int: I.D. do Cliente
Date: Data de Locação
Date: Data de Devolução

Veículo Locados
int: I.D. da Locação
int: I.D. do Veículo Level
int: I.D. do Veículo Pesado

Cada arquivo fonte de objeto deverá conter as suas propriedades e deverá respeitar os relacionamentos existentes entre si:

Cliente possui relacionamento 1-N com Locação
Locação possui relacionamento 1-N com Veículos Locados
Veículos Leves possui relacionamento 1-N com Veículos Locados
Veículos Pesados possui relacionamento 1-N com Veículos Locados

A classe Veículos trata-se de uma classe abstrata e não deve ser instânciada.

Deverá ser criada uma interface no qual Veículos Leves e Veículos Pessados serão implementados. Esta interface se chamará BaseVeiculo e possuirá os seguintes métodos:

abstract: Quantidade de Locações Realizadas
abstract default: Selo da Empresa
Cada arquivo fonte de objeto deverá conter, minimamente:

Cliente
Método com a Quantidade de Veículos locados.

Locação
Método com o Valor total da Locação
Método com a quantidade de veículos locados
A data de devolução deverá ser calculada com base na Data de Locação e a quantidade de dias para Devolução que o cliente tem disponível na locadora.
Deverá ser criado um arquivo principal para gerenciamento das informações dos objetos, este arquivo deverá ser estruturado com um menu com as seguintes opções:

1 - Cadastrar Cliente
2 - Cadastrar Veículo
3 - Cadastrar Locação
4 - Listar Clientes
5 - Listar Veículos
6 - Listar Locações

Ao selecionar as opções de cadastro, deverão ser solicitadas as informações necessárias para registro de cada entidade via terminal, criando ao final o objeto. Para a opção cadastrar Veículo, deverá ser questionado se o cadastro é de 1 - Veículo Leve ou 2 - Veículo Pesado.

Ao selecionar as opções de listar, deverão ser impressas as informações de cada entidade, sendo que:

Cliente
Deverá ser exibida a Quantidade de Veículos

Veículos
Deverá ser exibida a quantidade de Locações e o valor total de cada locação
Deverá ser exibido o selo da empresa

Locação
Deverá ser exibida a quantidade de veículos por Locação.
Para a opção listar Veículo, deverá ser questionado se a listagem é de
1 - Veículo Leve
2 - Veículo Pesado

Os objetos deverão ser gerenciados simulando um banco de dados com ArrayList, ou seja, as impressões deverão ser geradas e gerenciadas por forEach.

Deverão ser trabalhadas corretamente as estruturas de Orientação a Objeto, aplicando os encapsulamentos, as heranças e os polimorfismos necessários para cada entidade.

Pontos importantes:

Comentários de Código demonstrando a estrutura
Indentação de Código
Aplicação de camelCase e PascalCase para o código fonte
Nomenclatura de variáveis que determinem sua utilização
O código fonte deverá ser trabalhando dentro do GitHub, sendo sincronizado e aberto PR ao final do desenvolvimento.
60 changes: 60 additions & 0 deletions LocaCar/Veiculo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package LocaCar;


public abstract class Veiculo {
protected String marca;
protected String modelo;
protected int ano;
protected double valorLocacao;

public Veiculo(String marca, String modelo, int ano, double valorLocacao) {
this.marca = marca;
this.modelo = modelo;
this.ano = ano;
this.valorLocacao = valorLocacao;

}

// ======== SETS ========
public void setMarca(String marca) {
this.marca = marca;

}
public void setModelo(String modelo) {
this.modelo = modelo;

}
public void setAno(int ano) {
this.ano = ano;

}
public void setValorLocacao(double valorLocacao) {
this.valorLocacao = valorLocacao;

}

// ======== GETS ========
public String getMarca() {
return this.marca;

}
public String getModelo() {
return this.modelo;

}
public int getAno() {
return this.ano;

}
public double getValorLocacao() {
return this.valorLocacao;

}

// ====== IMPRESSÃO ======
@Override
public String toString() {
String print = "teste" ;
return print;
}
}
Loading