Olá pessoal!
Eu estou fazendo um programa onde se cadastra um correntista, e ele tem as opções depositar, sacar e gravar estas informações no extrato.
estou com um problema eu preciso criar o metodo abaixo citado para gravar as operações realizadas no extrato, mas to com dificuldade para cria-lo. Alguem pode me ajudar?
+gravarExtrato(operacao: String, valor:
double)
Adiciona ao atributo extrato o saldo antigo,
a operação efetuada, o valor e o saldo
novo, como mostrado a seguir:
extrato += ?Operação: ?+
operacao+?\nSaldo antigo: R$ ?+
String.format(?%.2f?,
(operacao.equals(?Saque?)?saldo+valor :
saldo-valor))+ ?\nValor: R$
?+String.format(?%.2f?, valor)+ ?\nSaldo
novo: R$ ?+String.format(?%.2f?, saldo);
O codigo eu consegui fazer até este ponto usando o MVC.
Esta é a classe controller.
[code]package controller;
public class Correntista {
//Atributos da classe Correntista
private String nome,senha,extrato;
private int conta,agencia;
private double saldo;
//Método para cadastrar correntista em um vetor de 15 posições um por um
public void cadastrar(Correntista vet[],int i,String nome,int agencia,int conta,String senha,double saldo)
{
vet[i].setNome(nome);
vet[i].setAgencia(agencia);
vet[i].setConta(conta);
vet[i].setSenha(senha);
vet[i].setSaldo(saldo);
}
public boolean validar(Correntista vet[],int i,int conta,int agencia,String senha)
{
boolean validar=true;
if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia()&&senha.equals(vet[i].getSenha()))
validar=true;
else
validar=false;
return validar;
//}
// validar=false;
//return validar;
}
public boolean verificarDeposito(Correntista vet[],int i,int conta,int agencia)
{
boolean validar=true;
if(conta==vet[i].getConta()&&agencia==vet[i].getAgencia())
validar=true;
else
validar=false;
return validar;
}
public boolean verificarValor(Correntista vet[], int i, double valor)
{
boolean validar=true;
if(valor>0)
validar=true;
else
validar=false;
return validar;
}
public boolean verificarSaque(Correntista vet[],int i,double valor)
{
boolean validar=true;
if(valor<=saldo)
validar=true;
else
validar=false;
return validar;
}
public double depositar(Correntista vet[], int i, double valor)
{
return (vet[i].getSaldo() + valor );
}
public double sacar(Correntista vet[], int i, double valor)
{
return (vet[i].getSaldo() - valor);
}
public void gravarExtrato(Correntista vet[], int i, String operacao, double valor)
{
}
//Método para exibir cadastrato
public String exibir(Correntista vet[],int i)
{
return vet[i].getNome()+vet[i].getAgencia()+vet[i].getConta();
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAgencia() {
return agencia;
}
public void setAgencia(int agencia) {
this.agencia = agencia;
}
public int getConta() {
return conta;
}
public void setConta(int conta) {
this.conta = conta;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public String getExtrato() {
return extrato;
}
public void setExtrato(String extrato) {
this.extrato = extrato;
}
}
Esta é a classe principal
[code]package controller;
import view.VCorrentista;
/**
*
-
@author coutinho
*/
public class Principal {
public static void main(String[]args)
{
VCorrentista tela=new VCorrentista();
tela.lerMenu();
}
}
E esta é a classe View
[/code]
[code]package view;
import controller.Correntista;
import javax.swing.JOptionPane;
public class VCorrentista {
private Correntista c;
private Correntista vet[]=new Correntista[15];
private int opc,cont=0;
public VCorrentista()
{
c=new Correntista();
for(int i=0;i<vet.length;i++)
vet[i]=new Correntista();
}
//Método para exibir as opções de menu
public void lerMenu()
{
setOpc(Integer.parseInt(JOptionPane.showInputDialog("1- Cadastrar\n2- Depositar\n3- Sacar\n4- Imprimir Extrato\n5- Imprimir Saldo\n0- Sair")));
executar();
}
//Método para executar as opções do usuario
public void executar()
{
switch(getOpc())
{
case 1:
for(int i=cont;i<vet.length;i++)
{
c.cadastrar (vet.i(JOptionPane.showInputDialog("Informe o nome"),
Integer.parseInt(JOptionPane.showInputDialog("Informe agencia")),
Integer.parseInt(JOptionPane.showInputDialog("Informe a conta")),
JOptionPane.showInputDialog("Informe a senha")));
cont++;
lerMenu();
}
break;
case 2:
{
for(int i=0;i<vet.length;i++)
{
int agencia,conta;
double valor;
agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));
conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));
if(c.verificarDeposito(vet, i, agencia, conta)==true)
{
JOptionPane.showMessageDialog(null,c.exibir(vet, i));
valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));
while(c.verificarValor(vet, i, valor) !=true)
{
JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");
valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do deposito"));
}
c.setSaldo(valor);
JOptionPane.showMessageDialog(null,"Depósito efetuado com sucesso!");
JOptionPane.showMessageDialog(null,"Saldo atual"+c.getSaldo());
}
else
JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");
lerMenu();
}
}
break;
case 3:
{
for(int i=0;i<vet.length;i++)
{
int agencia,conta;
double valor;
agencia=Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da agencia"));
conta= Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da Conta"));
if(c.verificarDeposito(vet, i, agencia, conta)==true)
{
JOptionPane.showMessageDialog(null,c.exibir(vet, i));
valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));
while(c.verificarValor(vet, i, valor) !=true)
{
JOptionPane.showMessageDialog(null,"Valor incorreto, informe novamente!");
valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));
}
c.setSaldo(valor);
JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");
JOptionPane.showMessageDialog(null,"Saldo atual"+c.getSaldo());
}
else
JOptionPane.showMessageDialog(null,"Não há nenhum correntista com esse número de agência e conta");
lerMenu();
}
if(c.verificarSaque(vet, opc, opc) ==true)
{
c.sacar(vet, opc, opc);
JOptionPane.showMessageDialog(null,"Saque efetuado com sucesso!");
JOptionPane.showMessageDialog(null,"Saldo atual"+c.sacar(vet, opc, opc));
}
}
case 0:
JOptionPane.showConfirmDialog(null,"DESEJA SAIR DO SISTEMA","SAINDO..",JOptionPane.YES_NO_OPTION);
break;
default:
JOptionPane.showMessageDialog(null,"Opção invalida");
if(getOpc()!=0)
lerMenu();
}
}
public int getOpc() {
return opc;
}
public void setOpc(int opc) {
this.opc = opc;
}
}
[/code]
Fico No aguardo.
Valeww