The project consists of a management system for a carrier, where an administrator manages trips, and these trips have drivers and trucks.
I used association to relate the classes, but I'm having a hard time finalizing a method of checking the availability of trucks and drivers.
How do I get this information in a method of class Viagem
? How can I "bind" the data of Motorista
and Caminhao
within a trip?
public class Administrador extends Funcionario{
private static int codAdministrador=0;
private String login;
private String senha;
int contViagem=0;
private Viagem []viagem = new Viagem[contViagem];
public Administrador(String nome, String cpf, String email, double salario, String endereco, String rg,
int codAdministrador, String login, String senha, int contViagem) {
super(nome, cpf, email, salario, endereco, rg);
codAdministrador++;
this.login = login;
this.senha = senha;
this.contViagem=contViagem;
}
public int getCodAdministrador() {
return codAdministrador;
}
public String getLogin() {
return login;
}
public String getSenha() {
return senha;
}
public Viagem planejarViagem(Viagem viagem, Caminhao veiculo, Motorista piloto){
if(viagem.verificaStatus(veiculo, piloto) == true){
return viagem;
}
return null;
}
/*public boolean verificaDisponibilidadeCaminhao(Caminhao veiculo){
if(veiculo.getStatus() != true){
return true;
}
else{
return false;
}
}
public boolean verificaDisponibilidadeMotorista(Motorista piloto){
if(piloto instanceof Motorista){
Motorista aux = (Motorista) piloto;
if(aux.getStatus() != true)
return true;
else
return false;
}
return false;
}*/
@Override
public String toString(){
StringBuilder info = new StringBuilder();
info.append("\nRelatório de Viagem")
.append("\nNome do Gerente que emitiu o relatório: "+getNome())
.append("\nDados da viagem"+viagem.toString());
return info.toString();
}
}
public class Motorista extends Funcionario{
private int codMotorista;
private boolean status;
public Motorista(String nome, String cpf, String email, double salario, String endereco, String rg,
int codMotorista, boolean status) {
super(nome, cpf, email, salario, endereco, rg);
this.codMotorista = codMotorista;
this.status = status;
}
public int getCodMotorista() {
return codMotorista;
}
public boolean getStatus() {
return status;
}
@Override
public String toString() {
StringBuilder info = new StringBuilder();
info.append("\nCargo: Motorista")
.append("\nCodigo do Motorista: "+codMotorista)
.append("\nStatus: "+status);
return info.toString();
}
}
public class Caminhao {
private String marca, modelo, placa;
private int ano, contaManutencao = 0;
private boolean status;
private double quilometragemInicial;
private double quilometragemFinal;
private Manutencao manutencaoPreventiva;
public Caminhao(String marca, String modelo, String placa, int ano, boolean status, double quilometragemInicial, double quilometragemFinal) {
super();
this.marca = marca;
this.modelo = modelo;
this.placa = placa;
this.ano = ano;
this.status=status;
this.quilometragemInicial = quilometragemInicial;
this.quilometragemFinal = quilometragemFinal;
}
public String getMarca() {
return marca;
}
public String getModelo() {
return modelo;
}
public String getPlaca() {
return placa;
}
public int getAno() {
return ano;
}
public double getQuilometragemInicial() {
return quilometragemInicial;
}
public double getQuilometragemFinal() {
return quilometragemFinal;
}
public boolean getStatus() {
return status;
}
@Override
public String toString() {
StringBuilder info = new StringBuilder();
info.append("Dados do Caminhao: ")
.append("\nMarca: "+marca)
.append("\nModelo: "+modelo)
.append("\nPlaca: "+placa)
.append("\nAno: "+ano)
.append("\nConta Manutencao: "+contaManutencao)
.append("\nStatus Caminhao: "+status)
.append("\nQuilometragem Inicial: "+quilometragemInicial)
.append("\nQuilometragem Final: "+quilometragemFinal)
.append("ManutencaoPreventiva: "+manutencaoPreventiva);
return info.toString();
}
}
import java.util.Arrays;
public class Viagem{
private String horaSaida, horaChegada, dataChegada, dataSaida, destino, origem;
private int codViagem;
int indiceGeral=0;
private Manutencao revisao;
private Caminhao []veiculo = new Caminhao[20];
private Motorista[]piloto = new Motorista[15];
public Viagem(String horaSaida, String horaChegada, String dataChegada, String dataSaida, String destino,
String origem, int codViagem) {
super();
this.horaSaida = horaSaida;
this.horaChegada = horaChegada;
this.dataChegada = dataChegada;
this.dataSaida = dataSaida;
this.destino = destino;
this.origem = origem;
this.codViagem = codViagem;
}
public String getHoraSaida() {
return horaSaida;
}
public String getHoraChegada() {
return horaChegada;
}
public String getDataChegada() {
return dataChegada;
}
public String getDataSaida() {
return dataSaida;
}
public String getDestino() {
return destino;
}
public String getOrigem() {
return origem;
}
public int getCodViagem() {
return codViagem;
}
public boolean verificaStatus(Caminhao veiculo, Motorista piloto){
Caminhao auxC = (Caminhao) veiculo;
Motorista aux = (Motorista) piloto;
if(auxC.getStatus() != true && aux.getStatus() != true){
return true;
}
else{
return false;
}
}
public Viagem planejarViagem(Viagem []viagem, Caminhao []veiculo, Motorista []piloto){
if(viagem[indiceGeral].verificaStatus(veiculo[indiceGeral], piloto[indiceGeral]) == true){
indiceGeral++;
return viagem[indiceGeral];
}
return null;
}
public double calculaKm(double kmInicial, double kmFinal){
return kmFinal-kmInicial;
}
@Override
public String toString() {
StringBuilder info = new StringBuilder();
info.append("Viagem \nHora Saida: "+horaSaida+" hrs")
.append("\nHora Chegada: "+horaChegada+" hrs")
.append("\nData Chegada: "+dataChegada)
.append("\nData Saida: "+dataSaida)
.append("\nDestino: "+destino)
.append("\nOrigem: "+origem)
.append("\nCodigo da Viagem "+codViagem)
.append("\nViagens realizadas: "+indiceGeral)
.append("\nRevisao: "+revisao)
.append("\nDados do Veículo: "+veiculo.toString())
.append("\nQuilometragem percorrida: "+calculaKm(kmInicial, kmFinal))
.append("\n\nPiloto que realizou a viagem: "+piloto.toString());
return info.toString();
}
}