Prezados Colegas,
Através da ajuda de vocês, consegui resolver o problema do vetor, agora, se vocês puderem gostaria de lhes pedir mais esse auxílio:
Tenho que condificar os mesmos métodos só que usando listas:
Os métodos: Saldo_Total e Num_Contas, eles estão dentro da classe BancoL.
Abaixo segue os códigos, agradeço muito.
Tenho uma classe chamada Listadecontas:
class Listadecontas
{
private ContaL contas;
private Listadecontas prox;
void inserir (ContaL c)
{
if (this.contas == null)
{
this.contas = c;
prox = new Listadecontas();
}
else
prox.inserir©;
}
void retirar (ContaL c)
{
if (contas != null)
{
if (contas == c)
{
this.contas = prox.contas;
this.prox = prox.prox;
}
else
prox.retirar©;
}
}
ContaL procurar (String num)
{
if (contas == null)
return null;
else
{
if (contas.numero().equals(num))
return contas;
else
return prox.procurar(num);
}
}
}
Outra chamada ContaL:
public class ContaL
{
private String numero;
private double saldo=0.0;
private String operacoes="";
public void credito(double valor)
{
this.saldo = this.saldo + valor;
}
public void debito(double valor)
{
this.saldo= this.saldo - valor;
}
public String numero()
{
return this.numero;
}
public double saldo()
{
return this.saldo;
}
public void inclui_operacao(String op){
operacoes+=op;
}
public String extrato(){
return this.operacoes;
}
public ContaL(String n)
{
this.numero=n;
this.saldo=0;
this.operacoes+="========================================\nE X T R A T O D A C O N T A - Nº: “+numero()+”\n========================================\nOperação-----------------------------------------------Valor";
}
}
E a classe Banco L que contém os métodos a serem implementados:
import javax.swing.*;
class BancoL implements QqBanco{
private Listadecontas contasm = new Listadecontas();
private double taxa_juros=0;
//cadastra conta
void cadastro(ContaL c)
{
ContaL aux=contasm.procurar(c.numero());
if (aux==null)
contasm.inserir©;
else
JOptionPane.showMessageDialog(null,“Já existe conta com esse número!”);
}
//excluir conta
void excluir(String num)
{
ContaL c;
c=contasm.procurar(num);
// ContaL aux=contasm.procurar(c.numero());
// ContaL ultima;
if (c==null) {
JOptionPane.showMessageDialog(null,“Conta inexistente!”); }
else {
// ultima=contasm;
// if (aux==ultima) {
contasm.retirar©;
JOptionPane.showMessageDialog(null,“Conta excluída com sucesso!”);
}
//// else {
// aux=ultima;}
// indice–;
// }
}
//procura conta
ContaL procurar(String num) {
ContaL c;
c=contasm.procurar(num);
if (c==null)
return null;
else
return c;
}
//saque na conta
void saque(String num, double val) {
ContaL c;
c=contasm.procurar(num);
if (c!=null) {
if (c.saldo()>=val)
{
c.debito(val);
c.inclui_operacao("\nDebito…"+val);
if (c instanceof ImpostoL)
c.inclui_operacao("\nDebito de Imposto…"+ (val*0.01));
}
else JOptionPane.showMessageDialog(null,“Conta não tem saldo suficiente!”);
}
else JOptionPane.showMessageDialog(null,“Conta inexistente!”);
}
//deposito na conta
void deposito(String num, double val) {
ContaL c;
c=contasm.procurar(num);
if (c!=null)
{
c.credito(val); c.inclui_operacao("\nCredito…"+val);
}
else JOptionPane.showMessageDialog(null,“Conta inexistente!”);
}
//saldo da conta
void saldo(String num) {
ContaL c;
c=contasm.procurar(num);
if (c!=null)
JOptionPane.showMessageDialog(null,"=========== S A L D O ==========="+
"\nNúmero da Conta…: "+c.numero()+
"\nSaldo da Conta…: "+c.saldo()+
“\n================================”);
else JOptionPane.showMessageDialog(null,“Conta inexistente!”);
}
//transferencia
void transfere(String origem, String destino, double val) {
ContaL cOrig, cDest;
boolean erro=false;
cOrig=contasm.procurar(origem);
if (cOrig==null) {
JOptionPane.showMessageDialog(null,“Conta de origem inexistente!”);
erro=true;
}
cDest=contasm.procurar(destino);
if (cDest==null) {
JOptionPane.showMessageDialog(null,“Conta de destino inexistente!”);
erro=true;
}
if(erro==false){
if (cOrig.saldo() >= val){
cOrig.debito(val);
cDest.credito(val);
cOrig.inclui_operacao("\nDebito de transferencia para Conta Nº “+cDest.numero()+”…"+val );
cDest.inclui_operacao("\nCredito de transferencia da Conta Nº “+cOrig.numero()+”…"+val );
}
else
JOptionPane.showMessageDialog(null,“Conta de origem não tem saldo suficiente!”);
}
}
//rende juros
void rende_juros(String num) {
ContaL c;
c=contasm.procurar(num);
if (c != null) {
if (c instanceof PoupancaL) {
c.inclui_operacao("\nJuros da Poupança…"+ (this.getJuros()));
((PoupancaL)c).rende_juros(this.getJuros());}
else JOptionPane.showMessageDialog(null,“Essa Conta nao é Poupança!”);
}
else JOptionPane.showMessageDialog(null,“Conta inexistente!”);
}
double getJuros() { return taxa_juros; }
void altera_juros(double juros) {
taxa_juros = juros;
}
//imprime extrato
public void imprime_extrato(String num)
{
ContaL c;
c=contasm.procurar(num);
String aux="";
if (c!=null){
aux=c.extrato();
aux+="\n\nSaldo atual…"+c.saldo()+"\n========================================";
JOptionPane.showMessageDialog(null,aux);
}
else
JOptionPane.showMessageDialog(null,“Conta inexistente”);
}
//calculo do saldo de todas as contas
public double Saldo_Total() { return }
// conta a quantidade de contas cadastradas
public int Num_Contas() { return }
}
Obs.: Esses dois últimos métodos terão que ser implementados.