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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.metadata/
10 changes: 10 additions & 0 deletions Lab03/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-19">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
1 change: 1 addition & 0 deletions Lab03/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bin/
17 changes: 17 additions & 0 deletions Lab03/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Lab03</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
2 changes: 2 additions & 0 deletions Lab03/.settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
14 changes: 14 additions & 0 deletions Lab03/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=19
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=19
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=19
53 changes: 53 additions & 0 deletions Lab03/src/Cliente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;

public class Cliente {
// Atributos
private String nome;
private String endereco;
private ArrayList <Veiculo> listaVeiculos;
protected static SimpleDateFormat datasFormatadas = new SimpleDateFormat("dd/MM/yyyy");

// Método construtor
public Cliente(String nome, String endereco, ArrayList <Veiculo> listaVeiculos) {
this.nome = nome;
this.endereco = endereco;
this.listaVeiculos = listaVeiculos;

}

public Cliente() {

}

// Setters e getters
public void setNome(String nome) {
this.nome = nome;
}

public void setEndereco(String endereco) {
this.endereco = endereco;
}

public String getNome() {
return nome;
}

public String getEndereco() {
return endereco;
}

public void adicionaVeiculo(Veiculo veiculo) {
this.listaVeiculos.add(veiculo);
}

public ArrayList <Veiculo> getListaVeiculos() {
return listaVeiculos;
}

@Override
public String toString() {
String str = "DADOS DO CLINTE\nNome: " + getNome() + "\nEndereco: " + getEndereco() + "\nVeiculos: " + getListaVeiculos() + "\n";
return str;
}
}
153 changes: 153 additions & 0 deletions Lab03/src/ClientePF.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import java.util.ArrayList;
import java.util.Date;

public class ClientePF extends Cliente {
// Atributos
final String cpf;
private Date dataNascimento;
private String educacao;
private String genero;
private String classeEconomica;
private Date dataLicenca;


// Métodos construtores
public ClientePF(String nome, String endereco, ArrayList <Veiculo> listaVeiculos, String cpf, Date dataNascimento,
String educacao, String genero, String classeEconomica, Date dataLicenca) {
super(nome, endereco, listaVeiculos);
this.cpf = cpf;
this.dataNascimento = dataNascimento;
this.educacao = educacao;
this.genero = genero;
this.classeEconomica = classeEconomica;
this.dataLicenca = dataLicenca;
}

public ClientePF(String cpf) {
super();
this.cpf = cpf;
}

// Setters e getters
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}

public void setEducacao(String educacao) {
this.educacao = educacao;
}

public void setGenero(String genero) {
this.genero = genero;
}

public void setClasseEconomica(String classeEconomica) {
this.classeEconomica = classeEconomica;
}

public void setDataLicenca(Date dataLicenca) {
this.dataLicenca = dataLicenca;
}

public Date getDataNascimento() {
return dataNascimento;
}

public String getEducacao() {
return educacao;
}

public String getGenero() {
return genero;
}

public String getClasseEconomica() {
return classeEconomica;
}

public Date getDataLicenca() {
return dataLicenca;
}

public String getCPF() {
return cpf;
}

@Override
public String toString() {
String str = "DADOS DO CLIENTE PF\nNome: " + getNome() + "\nData de Nascimento: " + datasFormatadas.format(getDataNascimento()) +
"\nEndereco: " + getEndereco() + "\nEducacao: " + getEducacao() + "\nGenero: " + getGenero() +
"\nClasse Economica: " + getClasseEconomica() + "\nData da licenca: " + datasFormatadas.format(getDataLicenca())
+ "\nCPF: " + getCPF() + "\nVeiculos: " + getListaVeiculos() + "\n";
return str;
}

public static int calculaVerificador(String cpf, int n) {
// Função auxiliar à função validarCPF responsável por calcular os digitos verificadores do CPF
// O parâmetro n indica quantos dígitos do CPF serão usados no cálculo (8 para o 1º dígito e 9 para o 2°)

int digito; /* variável que armazena cada índice do CPF */
int multiplicador = 2; /* variável auxiliar responável por armazenar o valor ao qual cada dígito será multiplicado */
int soma = 0; /* variável responsável por quantabilizar a soma dos produtos de cada dígito pelo multiplicador */
int resto; /* resto da divisão de soma por 11 */

for (int i = n; i >= 0; i--) {
digito = (int) cpf.charAt(i) - 48;
digito *= multiplicador;
multiplicador++;
soma += digito;
}
resto = soma % 11;
if (resto < 2) {
return -1;
}
else {
return 11 - resto;
}
}

public static boolean validarCPF(String cpf) {
cpf = cpf.replaceAll("[^0-9]+", ""); /* elimina todos os dígitos não numéricos */

if (cpf.length() != 11) {
// verifica se o CPF digitado não possui 11 dígitos
return false;
}

int contador = 0; /* conta se todos os dígitos do CPF são iguais */
for (int i = 0; i < cpf.length(); i++) {
if (cpf.charAt(i) == cpf.charAt(0)) {
contador++;
}
}
if (contador == 11) {
return false;
}

// Calculando o 1° dígito verificador
int verificador1 = calculaVerificador(cpf, 8);
if (verificador1 == -1) {
if (cpf.charAt(9) != '0') {
return false;
}
}
else {
if (verificador1 != ((int) cpf.charAt(9) - 48)) {
return false;
}
}

// Calculando o 2° dígito verificador
int verificador2 = calculaVerificador(cpf, 9);
if (verificador2 == -1 && cpf.charAt(10) != '0') {
return false;
}
else {
if (verificador2 != ((int) cpf.charAt(10) - 48)) {
return false;
}
}

return true;
}
}
120 changes: 120 additions & 0 deletions Lab03/src/ClientePJ.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import java.util.ArrayList;
import java.util.Date;

public class ClientePJ extends Cliente {
// Atributos
final String cnpj;
private Date dataFundacao;

// Construtor
public ClientePJ(String nome, String endereco, ArrayList <Veiculo> listaVeiculos, String cnpj, Date dataFundacao) {
super(nome, endereco, listaVeiculos);
this.cnpj = cnpj;
this.dataFundacao = dataFundacao;
}

public ClientePJ(String cnpj) {
super();
this.cnpj = cnpj;
}

// Setters e getters
public void setDataFundacao(Date dataFundacao) {
this.dataFundacao = dataFundacao;
}

public Date getDataFundacao() {
return dataFundacao;
}

public String getCNPJ() {
return cnpj;
}

@Override
public String toString() {
String str = "DADOS DO CLIENTE PJ\nNome: " + getNome() + "\nEndereco: " + getEndereco() +
"\nData da fundacao da empresa: " + datasFormatadas.format(getDataFundacao()) + "\nCNPJ: " + getCNPJ()
+ "\nVeiculos: " + getListaVeiculos() + "\n";
return str;
}

public static int calculaVerificador(String cnpj, int n) {
// Função auxiliar à função validarCPF responsável por calcular os digitos verificadores do CPF
// O parâmetro n indica quantos dígitos do CPF serão usados no cálculo (11 para o 1º dígito e 12 para o 2°)

int digito; /* variável que armazena cada índice do CPF */
int multiplicador = 2; /* variável auxiliar responável por armazenar o valor ao qual cada dígito será multiplicado */
int soma = 0; /* variável responsável por quantabilizar a soma dos produtos de cada dígito pelo multiplicador */
int resto; /* resto da divisão de soma por 11 */

for (int i = n; i >= n - 7; i--) {
digito = (int) cnpj.charAt(i) - 48;
digito *= multiplicador;
multiplicador++;
soma += digito;
}
multiplicador = 2;
for (int i = n - 8; i >= 0; i--) {
digito = (int) cnpj.charAt(i) - 48;
digito *= multiplicador;
multiplicador++;
soma += digito;
}
resto = soma % 11;
if (resto < 2) {
return -1;
}
else {
return 11 - resto;
}
}

// Validando o CNPJ
public static boolean validarCNPJ(String cnpj) {
cnpj = cnpj.replaceAll("[^0-9]+", ""); /* elimina todos os dígitos não numéricos */

if (cnpj.length() != 14) {
// verifica se o CNPj digitado não possui 14 dígitos
return false;
}

int contador = 0; /* conta se todos os dígitos do CPF são iguais */
for (int i = 0; i < cnpj.length(); i++) {
if (cnpj.charAt(i) == cnpj.charAt(0)) {
contador++;
}
}
if (contador == 14) {
return false;
}

// Calculando o 1° dígito verificador
int verificador1 = calculaVerificador(cnpj, 11);
if (verificador1 == -1) {
if (cnpj.charAt(12) != '0') {
return false;
}
}
else {
if (verificador1 != ((int) cnpj.charAt(12) - 48)) {
return false;
}
}

// Calculando o 2° dígito verificador
int verificador2 = calculaVerificador(cnpj, 12);
if (verificador2 == -1) {
if (cnpj.charAt(13) != '0') {
return false;
}
}
else {
if (verificador2 != ((int) cnpj.charAt(13) - 48)) {
return false;
}
}

return true;
}
}
Loading