Boa tarde galera, estou fazendo um pequeno trabalho onde tem que cadastrar pessoas e contas. Eu consigo cadastrar as contas e pessoas, mas meu desafio agora é conseguir atribuir uma conta á uma pessoa, sendo que neste problema a pessoa pode ter mais de uma conta. O relacionamento eu queria fazer pelo cpf, entao quando uma pessoa vai criar uma conta ela digita o cpf e a conta será atribuida a pessoa com esse cpf, mas como posso fazer isso?
Classe principal com menu:
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int op;
Banco banco = new Banco();
do {
System.out.println("1 - Cadastrar pessoa");
System.out.println("2 - Criar conta");
System.out.println("3 - Verificar dados pessoais");
System.out.println("4 - Extrato da Conta");
System.out.println("Escolha uma Opcao:");
op = scan.nextInt();
scan.nextLine();
Pessoa p;
Conta c;
switch (op) {
case 1:
System.out.println("Digite seu Nome: ");
String nome = scan.nextLine();
System.out.println("Digite sua Data de Nascimento: ");
String dtn = scan.nextLine();
System.out.println("Digite seu Sexo: ");
String sexo = scan.nextLine();
System.out.println("Digite seu CPF: ");
String cpf = scan.nextLine();
p = new Pessoa();
p.setNome(nome);
p.setDtn(dtn);
p.setSexo(sexo);
p.setCpf(cpf);
banco.addPessoa(p);
break;
case 2:
System.out.println("Digite seu CPF: ");
String cpf = scan.nextLine();
System.out.println("Digite uma Senha para a conta: ");
int senha = scan.nextInt();
System.out.println("Digite o Numero da conta: ");
int numero = scan.nextInt();
System.out.println("Digite o Saldo para conta: ");
double saldo = scan.nextDouble();
System.out.println("Digite a Agencia da conta: ");
int agencia = scan.nextInt();
c = new Conta();
c.setSenha(senha);
c.setNumero(numero);
c.setSaldo(saldo);
c.setAgencia(agencia);
banco.addConta(c);
break;
case 3:
banco.infoPessoa();
break;
case 4:
banco.infoConta();
default:
if (op == 0) {
System.out.println("Programa Encerrado");
} else {
System.out.println("Opcao Inválida");
}
break;
}
} while (0 != op);
}
}
Classe banco:
import java.util.Scanner;
public class Banco {
Scanner scan = new Scanner(System.in);
private int qtdP = 0;
private int qtdC = 0;
private Conta[] contas = new Conta[100];
private Pessoa[] pessoas = new Pessoa[100];
public int tamanhoPessoa() {
return this.qtdP;
}
public int tamanhoConta(){
return this.qtdC;
}
public void addPessoa(Pessoa c) {
this.pessoas[qtdP] = c;
qtdP++;
System.out.print("Cadastro Realizado com Sucesso!\n\n");
}
public void addConta(Conta a){
this.contas[qtdC] = a;
qtdC++;
System.out.print("Conta criada com Sucesso\n");
}
public void infoPessoa() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
Pessoa buscaPessoa = null;
for (int i = 0; i < this.tamanhoPessoa(); i++) {
Pessoa p = pessoas[i];
if (p.getCpf().equals(busca)) {
buscaPessoa = p;
break;
}else{
buscaPessoa = null;
}
}
if (buscaPessoa == null) {
System.out.println("\nCliente não foi encontrado\n");
} else {
System.out.println("\nInformações do Cliente:\n"+buscaPessoa.infoPessoa());
}
}
public void infoConta() {
System.out.println("Digite a Agencia da Conta: ");
int busca = scan.nextInt();
Conta buscaConta = null;
for (int i = 0; i < this.tamanhoConta(); i++) {
Conta c = contas[i];
if (busca == c.getAgencia()) {
buscaConta = c;
break;
}else{
buscaConta = null;
}
}
if (buscaConta == null) {
System.out.println("\nConta não foi encontrada\n");
} else {
System.out.println("\nExtrato da Conta:\n"+buscaConta.infoConta());
}
}
}