Você está na página 1de 7

% &

Internet Ba nking Agnc iaSof t

# $ < < Interfac e> >


< < Interfac e> >
Servios Internet
Servios Agncia
cadastrarCliente()
ATM cadastrarConta()
efetuarLogin()

Servidor do Banco

BCP
! "
Celpe Operadora de Carto Operadora de DOC

# ServidorBanco
ServicosAgencia * &
interface ServicosAgencia { < < Interface> >
Serv i os Agncia
void cadastrarCliente(Cliente c) AgnciaSoft
throws ClienteExistenteException, cadast rarCli ente()
cadast rarConta()

ClienteInvalidoExceprion; efetuarLogin()
*
./
String cadastrarConta(Conta c) + % Se rvido r do Ba nco (
throws ContaInvalidaException;... , --- cadast rarCli ente()
cadast rarCo nta()

} efet uarLogin ()

CadastroContas Ca da stroCliente s Cadas tro Logins


% %
cadastrar() cadastrar() efeturaLogin()
% ' ( rem over()
procurar()

% )

+ % , (
% 1
class ServidorBanco
--- implements ServicosAgencia {

private CadastroContas contas; ,


private CadastroClientes clientes;
private CadastroLogins logins;
*
% 0 ServidorBanco () { ,
contas = new CadastroContas();
clientes = new CadastroClientes();
logins = new CadastroLogins();
% }

implements 2 %
% 2 # *
1
*
void cadastrarCliente(Cliente c) { # 1 * 7
clientes.cadastrar(c); %
}
Conta conta;
String cadastrarConta(Conta c) { % *
contas.cadastrar(c);
} %
%
. 4 56 Conta conta1;
, % ( . 4 Conta conta2;
, % ...

%
%
void cadastrar(Conta conta) {
...
class CadastroContas {
if (conta1 == null) 8
private Conta conta1;
conta1 = conta; % .
private Conta conta2;
else{
if (conta2 == null)
conta2 = conta;
else {...Espao insuficiente...}
+ . }
, }
* 38 +
0
*

1 # $
5 % %
* , + , *
* 7 % %
% ! % $2
% , 7 %
% Tipo[] arrayTipo;
class CadastroContas {
private Conta [] contas ;

%
7 $
* Conta contas[];

3
$
$
public class CadastroContas{
private Conta [] contas; 8 % new X[tamanho]
:; < $(
CadastroContas(){ = 8
contas = new Conta[6]; % X%
:><
} # $ 7 1 . %
}

% $2 /
int [] inteiros = new int[100]; % ' ? @
# $
%0 length

% 4 *
! $ 6 $
* $ %
8 {<expresses>}, expresses
contas % .% 4 %
; 39A > % % /
B C. % 8+ ( * $
null
null int[] inteiros = {10,10,20,30};

;
; # $ %
3; % *
9; )

#
1 %
$
!
void cadastrar(Conta conta) { CadastroContas(){
... contas = new Conta[20]; 1
int local = 0; }
while((local<6)&&(contas[local]!=null)){
local = local + 1; void cadastrar(Conta conta) {
} ...
if (local<6) contas[local] = conta; int local = 0;
} while ((local<6)&&(contas[local] != null)){
local = local + 1;
D }
7 D
if (local<6) contas[local] = conta; % .
* } %
:% <

9
1 %
public class CadastroContas { Conta procurar(String num) {
private Conta [] contas; int i = 0; boolean achou = false;
private int proxima; 1
while ((!achou) && (i < proxima)) {
if (num.equals(contas[i].getNumero()))
CadastroContas(int tamanho) {
achou = true;
contas = new Conta[tamanho];
else i = i + 1;
proxima = 0;
} }
5 % Conta resultado = null;
void cadastrar (Conta c){ if (achou) resultado = contas[i];
contas[proxima] = c; return resultado;
proxima = proxima + 1; E }
} *

F % 4 %
void remover (String num){
@F (
int i = 0; boolean achou = false;
while ((!achou) && (i<proxima)) {
*
if(num.equals(contas[i].getNumero())) %
achou = true; %
else i = i + 1;
}
% 0
... @F (
2 * 0
$
# (
% &
% %

% % %
6 % )
Conta procurar(String n) {...
if (achou) {
while ((!achou) && (i < proxima)) {
contas[i] = contas[proxima-1];
if (n.equals(contas[i].getNumero()))
contas[proxima-1] = null;
achou = true;
proxima = proxima - 1;
else i = i + 1;
} else {...Mensagem de erro...}
void remover (String num){...
} //fim do metodo remover while ((!achou) && (i < proxima)) {
if(num.equals(contas[i].getNumero()))
achou = true;
else i = i + 1;

A
%
2 .
Conta procurar(String num) {
private int procurarIndice(String n) {
int indice = procurarIndice(num);
int i = 0;
Conta resultado = null;
boolean achou = false;
if (indice != proxima)
while ((!achou) && (i < proxima)) {
resultado = contas[indice];
if (n.equals(contas[i].getNumero()))
return resultado;
achou = true;
}
else i = i + 1;
}
return i;
} 1 , %
F % % ? 2 @

% 2 F ---
existe * (%
* $
boolean existe(String n) {
# $ (
int indice = this.procurarIndice(n);
return (indice != proxima);
# % 4 $ %
}

# $ 2
0 %
% ,
% ,

# *
$
# $% * 7
%
C. % 8# $
# $ 3

contas ; 39A >

! "

>
# * % 2
$ creditar debitar
# void debitar(String numero, double valor) {
$ Conta c = this.procurar(numero);
Conta c = contas[2]; if (c != null) c.debitar(valor);
c.creditar(20); else {...Conta inexistente...}
}
2 2 void creditar(String numero, double valor) {
contas ; 39A > * Conta c = this.procurar(numero);
) if (c != null) c.creditar(valor);
else {...Conta inexistente...}
c }

H % *
$ %

# $% ---
5 2 CadastroContas cadContas =
$( 2 new CadastroContas(20);
. ...
cadContas.cadastrar(c);
IndexOutOfBoundsException 1 $2

String nomes[] = {"Jos", "Joo", "Maria"}; void cadastrar (Conta c){


console.println(nomes[5]);
contas[proxima] = c; ,
proxima = proxima + 1; , $
} 1 &
I
% . ?% . J 3;@

+ % $ + % $
# )
void cadastrar (Conta c){
public class CadastroContas { if (proxima == maximo){
private Conta [] contas; # % Conta[]contasTemp = new Conta[maximo * 2];
private int proxima; for (int i=0;i < proxima; i++)
$
private int maximo; contasTemp[i] = contas[i];
maximo = maximo * 2;
CadastroContas(int tamanho) { contas = contasTemp;
contas = new Conta[tamanho]; }
proxima = 0; contas[proxima] = c;
maximo = tamanho; proxima = proxima + 1;
} } % 7
% $ %
$ % ? % @
$% %

G
2 0 % 2 0 %
% $

# 2 6 2 ,
? % % 7 @ Conta[] retornarContasVIP() {
H ( 2 % Conta[] resultado = new Conta[proxima];
int posicao = 0;
% for (int i = 0; i<proxima; i=i+1){
C. % if (contas[i].getSaldo() > 1000){
% & E ?@ LM N resultado[posicao] = contas[i];
posicao = posicao + 1;
}
E 7
2 , } # *
%
% return resultado; E
, ; ;; }

# $
int[][] matriz;
F ---
# $ , * 7 %
*
int[][] matriz = new int[10][5]; # % 4 .
for (int i=0; i<10; i++) $% .
for (int j=0; j<5; j++) + % $ 2 %
matriz[i][j] = 100; % %
2 % %
$
# $ %
long[][]
long[][] x = {{0
{{0,1},{2,3},{4
},{2,3},{4,5}}; $ % $

Você também pode gostar