Skip to content

Instantly share code, notes, and snippets.

@flaviacs
Last active August 29, 2015 14:06
Show Gist options
  • Select an option

  • Save flaviacs/4c17b8b38c8cd4d6be94 to your computer and use it in GitHub Desktop.

Select an option

Save flaviacs/4c17b8b38c8cd4d6be94 to your computer and use it in GitHub Desktop.
Aula Ciro - 25-09-14 // cont. -- BANCO
EXERCÍCIO:
Implemente a aplicação modelada pelo diagrama de classes UML do próximo slide. O método
main() da classe Banco deve permitir criar uma conta (método criarConta()), listar as contas
cadastradas (listarContas()), realizar um depósito em uma conta (realizarDeposito()) dado seu
número e realizar um saque em uma conta (realizarSaque()) dado seu número. O método localizarConta(),
devolve o objeto da classe Conta cujo número é igual ao fornecido como parâmetro para este método,
ou null, caso nenhum objeto da classe Conta possua esse número.
____________________________________ __________________________________
| BANCO | | Conta |
|------------------------------------| |----------------------------------|
|- numContas : int | |- numero :int |
|------------------------------------| |- titular : String |
|+ criarConta() : VOID | -contas |- saldo : float |
|+ listarContas() : VOID | ---------> |----------------------------------|
|+ realizarDeposito() : VOID | 1..* |+ getNumero() : int |
|+ realizarSaque() : VOID | |+ sacar(valor : float) : int |
|+ main(args : String[]) : VOID | |+ depositar(valor : float) : void |
|+ localizarConta(num : int) : Conta | |+ toString() : String |
|____________________________________| |__________________________________|
_____________________________________________________________
| |
| http://fatecrl.edu.br/moodle/mod/resource/view.php?id=3902 |
|_____________________________________________________________|
package financeiro;
import java.util.Scanner;
import javax.xml.soap.SAAJResult;
public class Banco {
private Conta[] contas;
private int numContas;
public Banco() { //construtor
contas = new Conta[10];
}
public void criarConta() {
if (numContas < contas.length) {
Scanner in = new Scanner(System.in);
int numero;
String titular;
System.out.print("Número da conta: ");
numero = in.nextInt();
System.out.print("Titular: ");
in.nextLine();
titular = in.nextLine();
contas[numContas++] = new Conta(numero, titular);
System.out.println("Conta cadastrada com sucesso!");
}else {
System.out.println("Não é possível mais cadastrar mais nenhuma conta!");
}
}
public void listarContas() {
if (numContas > 0) {
for (int i = 0; i < numContas; i++) {
System.out.println(contas[i]);
}
}else {
System.out.println("Não há contas cadastradas!");
}
}
public void realizarDeposito() {
if (numContas > 0) {
Scanner in = new Scanner(System.in);
System.out.print("Número da conta: ");
Conta c = localizarConta(in.nextInt());
if (c != null) {
System.out.println(c);
System.out.print("Valor do depósito: R$ ");
c.deposito(in.nextFloat());
} else {
System.out.println("Não há nenhuma conta com esse número!");
}
}else{
System.out.println("Não há contas cadastradas!");
}
}
public void realizarSaque() {
if (numContas > 0) {
Scanner in = new Scanner(System.in);
System.out.print("Número da conta: ");
Conta c = localizarConta(in.nextInt());
if (c != null) {
System.out.println(c);
System.out.print("Valor do saque: R$ ");
if (c.sacar(in.nextFloat()) == 0) {
System.out.println("Saldo insuficiente!");
}
}else{
System.out.println("Não há nenhuma conta com esse número!");
}
}else{
System.out.println("Não há contas cadastradas!");
}
}
public Conta localizarConta(int numero) {
for (int i = 0; i < numContas; i++) {
if (contas[i].getNumero() == numero) {
return contas[i];
}
}
return null;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Banco banco = new Banco();
int op;
do {
System.out.println("-- BANCO da FATEC --");
System.out.println("<1> Criar uma conta");
System.out.println("<2> Listar as contas cadastradas");
System.out.println("<3> Realizar um depósito");
System.out.println("<4> Realizar um saque");
System.out.println("<0> Sair do programa");
System.out.print("Opção: ");
switch (op = in.nextInt()) {
case 1: banco.criarConta();
break;
case 2: banco.listarContas();
break;
case 3: banco.realizarDeposito();
break;
case 4: banco.realizarSaque();
break;
case 0: break;
default: System.out.println("Opção inváida!");
}
} while (op != 0);
}
}
package financeiro;
public class Conta {
private int numero;
private String titular;
private float saldo;
public Conta(int numero, String titular) {
this.numero = numero;
this.titular = titular;
}
public int getNumero() {
return numero;
}
public float sacar(float valor) {
if (saldo >= valor) {
saldo -= valor;
System.out.println("Saque realizado com sucesso!");
return valor;
}
return 0;
}
public void deposito(float valor) {
saldo += valor;
System.out.println("Depósito realizado com sucesso!");
}
@Override
public String toString() {
return "Conta [numero=" + numero + ", titular=" + titular + ", saldo=" + saldo + "]";
}
}
@flaviacs
Copy link
Author

Trabalho:
moodle: http://fatecrl.edu.br/moodle/mod/resource/view.php?id=3901

  • Empresa de Telefonia;
  • Em grupo: até 3 pessoas ;
  • Entrega: 15-out-2014 (cada dia de atraso, perde 1 ponto);
    • Seguir descrição EXATA do UML;
      • Não poderá ter nada além do UML (atributos, métodos..);
    • Em caso de cópia de trabalho, a nota será dividida entre os trabalhos iguais.;
    • Ele dará um link para entrega do arquivo zipado.;

@flaviacs
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment