Projeto Estacionamento Projeto Estacionamento
A empresa de Estacionam
A empresa de Estacionamento “Da Hora” contratou os seriços
ento “Da Hora” contratou os seriços de um consultor para
de um consultor para
desenoler o soft!are para controlar a
desenoler o soft!are para controlar a entrada e sa"da de carros.
entrada e sa"da de carros.
#o in"cio do dia$ o
#o in"cio do dia$ o operador atuali%a o
operador atuali%a o alor &ora do es
alor &ora do estacionamento. Es
tacionamento. Este alor &ora ' c&
te alor &ora ' c&eio
eio
para carros$ ()* d
para carros$ ()* de desconto pa
e desconto para moto e adição
ra moto e adição de ()* para utilit+rios.
de ()* para utilit+rios.
Ao entrar um carro$ o operador digitar+ a placa$ marca$ modelo e &ora entrada do carro$ o
Ao entrar um carro$ o operador digitar+ a placa$ marca$ modelo e &ora entrada do carro$ o
sistema deer+ propor a &ora de
sistema deer+ propor a &ora de entrada como a &ora atual$
entrada como a &ora atual$ mas pode ser mudada.
mas pode ser mudada.
Ao sair$ o operador digita a
Ao sair$ o operador digita a placa$ consulta$ o sistema deer+ deoler os dados do carro$
placa$ consulta$ o sistema deer+ deoler os dados do carro$
caso e,ista e propor a &ora atual como &ora sa"da.
caso e,ista e propor a &ora atual como &ora sa"da.
- operador tam'm pode erificar o faturamento por tipo de carro e total
- operador tam'm pode erificar o faturamento por tipo de carro e total do
do
estacionamento.
estacionamento.
Diagrama de Use Case Diagrama de Use Case
( / 0
Diagrama de Sequência
Implementando o Diagrama de Classe: Classe Veiculo 1. projeto.beans; ; 1. 1". 1#. tE - get(oraEntrada').split'/); 1$. t! - get(ora!aida').split'/); 2&.
21. %e - 0ouble.parse0ouble 'tE*&+); 22. me - 0ouble.parse0ouble 'tE*1+); 23. %s - 0ouble.parse0ouble 't!*&+); 24. ms - 0ouble.parse0ouble 't!*1+); 25. 2. totalEstacionamento -''''%s&)ms) ''%e&)me))&)'valor(oragetatorEstacionameto')); 2". 6 2#. 2$. 3&. 31. 6 32. 33. { 34. fatorEstacionameto - fatorEstacionameto; 35. 3. 3". 3#. 3$. 4&. 41. 42. 43. 44. 45. 4. 4". 4#. 4$. 5&. 51. 52. ck ge 2. 3. ublic 4. 5. . ". #. $. 1&. 11. 12. 13. 14. 15. cl ss Veiculo {
riv te double fatorEstacionameto placa; modelo; marca; %oraEntrada; %ora!aida; riv te !tring riv te !tring riv te !tring riv te !tring riv te !tring
riv te double totalEstacionamento; ublic void calcularValor'
!tring*+ tE; !tring*+ t!;
double valor(ora){
double %e,me,%s,ms;
ublic double getatorEstacionameto') { ;
return fatorEstacionameto
ublic void setatorEstacionameto'double fatorEstacionameto)
t%is.
6
ublic !tring get7laca') {
return placa; 6 set7laca'!tring placa) { placa - placa; t%is. 6
ublic !tring get8odelo') {
return modelo;
6
ublic void set8odelo'!tring modelo) { modelo - modelo;
t%is.
53. 54. 55. 5. 5". 5#. 5$. &. 1. 2. ; 3. 4. 5. . ". #. $. "&. "1. "2. "3. "4. "5. ". "". "#. ; "$. #&. 6 Classe Carro 1. projeto.beans; 4. 5. . ". 6 #. $. 6 Classe Utilitário 1. projeto.beans; 6
) / 0 proiida a reprodução deste material sem a autori%ação do autor.
ublic !tring get8arca') {return marca;
6
ublic void set8arca'!tring marca) { marca - marca;
t%is.
6
ublic !tring get(oraEntrada') { return %oraEntrada
6
ublic void set(oraEntrada'!tring %oraEntrada) { %oraEntrada - %oraEntrada;
t%is.
6
ublic !tring get(ora!aida') { ;
return %ora!aida
6
ublic void set(ora!aida'!tring %ora!aida) { %ora!aida - %ora!aida;
t%is.
6
ublic double get9otalEstacionamento') { return totalEstacionamento
6
ck ge 2.
3. ublic cl ss :arro e;tends Veiculo { ublic :arro') { setatorEstacionameto'1); ck ge 2. 3. ublic 4. 5. . ". 6 #. $.
cl ss <tilitario e;tends Veiculo { ublic <tilitario') {
Classe Moto 1. projeto.beans; Classe Estacionamento 1. projeto.beans; #. $. 1&. ; 11. 12. ; 13. 14. 15. 1. 6 1". 1#. 1$. 2&. 'Veiculo v/ ){ 21. 22. 23. 24. 25. 6 2. 2". 2#. 2$. 3&. veiculos.add'veiculo); 31. 32. 6 33. 34. 35. 3. 'veiculo 3". totalaturamento<tilitario -ck ge 2. 3. ublic 4. 5. . ". 6 #. 6
cl ss 8oto e;tends Veiculo { ublic 8oto') {
setatorEstacionameto'&.#5);
ck ge 2.
3. im ort java.util.; 4.
5. ublic .
".
cl ss Estacionamento { riv te double valor(ora;
riv te double totalaturamento:arro; ; riv te double totalaturamento8oto
riv te double totalaturamento<tilitario ;
riv te double totalaturamento riv te =rra>?ist@VeiculoA veiculos ublic Estacionamento') {
veiculos - ne =rra>?ist@VeiculoA');
ublic Veiculo procurarVeiculo'!tring placa) { or t%is.veiculos 'v.get7laca').eCuals'placa)){ v; if return 6 return 6 null;
ublic void darEntrada'Veiculo veiculo) {
t%is.
ublic void dar!aida'Veiculo veiculo){ inst nceof 8oto)
totalaturamento8oto -veiculo.get9otalEstacionamento');
3#. 'veiculo
3$. else iftotalaturamento:arro -inst nceof :arro) veiculo.get9otalEstacionamento');
4&. 41.
veiculo.get9otalEstacionamento');
42. 43. totalaturamento - veiculo.get9otalEstacionamento'); 44. 45. veiculos.remove'veiculo); 4. 4". 6 4#. 4$. 5&. ; 51. 52. 53. 54. 55. 5. 5". 5#. 5$. &. 1. 2. 3. 4. 5. . ; ". #. $. "&. "1. "2. "3. "4. 6
A interace com usuário
5 / 0 proiida a reprodução deste material sem a autori%ação do autor.
t%is.
ublic double getValor(ora') {
return valor(ora
6
ublic void setValor(ora'
valor(ora - valor(ora;double valor(ora) {
t%is.
6
ublic double get9otalaturamento:arro') { ;
return totalaturamento:arro 6
ublic double get9otalaturamento8oto') { ;
return totalaturamento8oto 6
ublic double get9otalaturamento<tilitario') { return totalaturamento<tilitario
6
ublic double get9otalaturamento') { ;
return totalaturamento 6
Implementando a interace Classe !"ormEstacionamento 1. projeto.gui; 15. 1. jpnl:entro; 1". jpnl!ul; 1#. 1$. rotulo1; 2&. rotulo2; 21. rotulo3; 22. rotulo4; 23. rotulo5; 24. rotulo; 25. rotulo"; 2. jlbl9otal; 2". 2#. ; 2$. 3&. jttValor(ora; 31. jtt7laca; 32. jtt(oraEntrada; 33. jtt(ora!aida; 34. jtt8odelo; 35. 3. 3". 3#. ; 3$. ; 4&. 41. ; 42. 43. 44. ; 45. ; 4.
4". marcas - { :arros<tilitHrios, & ck ge
2.
3. im ort java.aBt.;
4. im ort java.aBt.event.; 5. im ort java.tet.;
.
". im ort java.sBing.; #.
$. im ort projeto.beans.; 1&. 11. ublic cl ss DormEstacionamento =ction?istener{ 12. 13. 14.
e;tends Drame im lements
riv te ridFag:onstraints gbc; riv te D7anel riv te D7anel riv te D?abel riv te D?abel riv te D?abel riv te D?abel riv te D?abel riv te D?abel riv te D?abel riv te D?abel
riv te D:%eckFo jc%k<tilitario riv te D9etield
riv te D9etield riv te D9etield riv te D9etield riv te D9etield
riv te D:omboFo jcmb8arca; riv te DFutton jbtn?impar riv te DFutton jbtnEntrada riv te DFutton jbtn!aida;
riv te DFutton jbtnaturamento ;
DFutton jbtn!air
riv te DFutton jbtn=tualiGar riv te DFutton jbtn:onsultar riv te !tring*+ 4#. =<0I, 4$. F8J, 5&. :(EVKL?E9, 51. :I9KLMN, 52. 0L0E, 53. I=9,
54. LK0, 55. (LN0=, 5. (O<N0=I, 5". PI=, 5#. ?=N0 KLVEK, 5$. 8EK:E0E!FENQ, &. 8I9!<FI!(I, 1. NI!!=N, 2. 7E<EL9, 3. KEN=<?9, 4. !<Q<PI, 5. 9LOL9=, . VL?P!J=EN, ". VL?VL, #. Lutros carros..., $. 8otos,22 "&. =K=?E, "1. =8=QLN=!, "2. =7KI?I=, "3. F8J, "4. F<E??, "5. :=IV=, ". :=?LI, "". 0=K=, "#. 0<:=9I, "$. =KINNI, #&. (=K?EO0=VI0!LN , #1. (LN0=, #2. P=!IN!PI, #3. P=J=!=PI, #4. P98, #5. 7I=IL, #. !<N0LJN, #". !<Q<PI, ##. 9KI<87(, #$. O=8=(=,
$&. Lutras 8otos...
$1. 6; $2. $3. estacionamento; $4. $5. $. $". $#. (ora); $$.
1&&. set?a>out' Forder?a>out')); 1&1.
1&2. jpnl:entro - D7anel' ridFag?a>out')); 1&3.
jpnl!ul -1&4.
1&5. rotulo1 - D?abel'Valor (ora/); 1&. rotulo2 D?abel'7laca/);
1&". D?abel'(ora Entrada/);
1&#. D?abel'(ora !aRda/);
1&$. D?abel'8arca/);
11&. D?abel'8odelo/);
7 / 0 proiida a reprodução deste material sem a autori%ação do autor.
riv te Estacionamento ublic DormEstacionamento') { su er'Estacionamento da eB ne ne eB D7anel' eB loB?a>out')); eB - rotulo3 -rotulo4 eB eB -rotulo5 - eB rotulo - eBeB111. rotulo" - D?abel'9otal a pagar/); 112. 113. jttValor(ora - D9etield'1&); 114. jtt7laca -115. 11. 11". 11#. 11$. jcmb8arca - D:omboFo'marcas); 12&. 121. jc%k<tilitario - D:%eckFo'<tilitHrio); 122. 123. jlbl9otal - D?abel'&,&&); 124. 125. jbtn?impar - DFutton'?impar); 12. jbtn=tualiGar - DFutton'=tualiGar); 12". jbtn:onsultar DFutton':onsultar); 12#. jbtnEntrada 12$. jbtn!aida ); 13&. ); 131. 132. 133. gbc - ridFag:onstraints'); 134. gbc. ?INES!9=K9 ; 135. gbc 13.
13". =dicionando os componentes na coluna Gero do grid 13#. gbc.grid - &;
13$.
14&. gbc.grid> - &;
141. jpnl:entro.add'rotulo1,gbc); 142. 143. gbc.grid> - 1; 144. jpnl:entro.add'rotulo2,gbc); 145. 14. gbc.grid> - 2; 14". jpnl:entro.add'rotulo3,gbc); 14#. 14$. gbc.grid> - 3; 15&. jpnl:entro.add'rotulo4,gbc); 151.
152. =dicionando os componentes a coluna 1 do grid
153. gbc.grid - 1; 154. 155. gbc.grid> - &; 15. jpnl:entro.add'jttValor(ora,gbc); 15". 15#. gbc.grid> - 1; 15$. jpnl:entro.add'jtt7laca,gbc); 1&. 11. gbc.grid> - 2; 12. jpnl:entro.add'jtt(oraEntrada,gbc); 13. 14. gbc.grid> - 3; 15. jpnl:entro.add'jtt(ora!aida,gbc); 1.
1". =dicionando os componentes a coluna 2 do grid eB eB eB D9etield'1&); jtt(oraEntrada - D9etield'1&); jtt(ora!aida - jtt8odelo -ne eB D9etield'1&); D9etield'1&); ne eB ne eB ne eB -eB eB DFutton'0ar Entrada); DFutton'7agar e 0ar a !aRda
DFutton'Verificar aturamento !air do !istema); eB jbtnaturamento -jbtn!air - ne DFutton'ne eB anc%or - ridFag:onstraints. .insets - ne Insets'5, 5, 5, 5);
1#. gbc.grid - 2; 1$.
1"&. gbc.grid> - &;
1"1. jpnl:entro.add'jbtn=tualiGar,gbc); 1"2. 1"3. gbc.grid> - 1; 1"4. jpnl:entro.add'jbtn:onsultar,gbc); 1"5. 1". gbc.grid> - 3; 1"". jpnl:entro.add'rotulo",gbc);
1"#. rotulo".setont' ont'ont.0I=?L ,ont.7?=IN ,3&)); 1"$.
1#&. =dicionando os componentes a coluna 3 do grid
1#1. gbc.grid - 3; 1#2. 1#3. gbc.grid> - &; 1#4. jpnl:entro.add'rotulo5,gbc); 1#5. 1#. gbc.grid> - 1; 1#". jpnl:entro.add'rotulo,gbc); 1##.
1#$. =dicionando os componentes a coluna 4 do grid 1$&. gbc.grid - 4; 1$1. 1$2. gbc.grid> - &; 1$3. jpnl:entro.add'jcmb8arca,gbc); 1$4. 1$5. gbc.grid> - 1; 1$. jpnl:entro.add'jtt8odelo,gbc); 1$". 1$#. gbc.grid> - 2; 1$$. jpnl:entro.add'jc%k<tilitario,gbc); 2&&. 2&1. gbc.grid> - 3;
2&2. gbc.anc%or - ridFag:onstraints.?INESEN0 ; 2&3. jpnl:entro.add'jlbl9otal,gbc);
2&4. jlbl9otal.setont'rotulo".getont')); 2&5.
2&. estacionamento - Estacionamento'); 2&". 2&#. jcmb8arca.add=ction?istener' 2&$. jbtn=tualiGar.add=ction?istener' 21&. jbtn:onsultar.add=ction?istener' 211. jbtnEntrada.add=ction?istener' 212. jbtnaturamento 213. jbtn?impar 214. jbtn!aida 215. jbtn!air 21. 21". 21#. jpnl!ul.add'jbtn?impar); 21$. jpnl!ul.add'jbtnEntrada); 22&. jpnl!ul.add'jbtn!aida); 221. jpnl!ul.add'jbtnaturamento); 222. jpnl!ul.add'jbtn!air); 223. 224. mudarEstado'
(( / 0 proiida a reprodução deste material sem a autori%ação do autor.
eB ne t%is); t%is); t%is); t%is); .add=ction?istener' .add=ction?istener' .add=ction?istener' .add=ction?istener' t%is); t%is); t%is); t%is); true);225.
22. add'jpnl:entro, Forder?a>out.:EN9EK ); 22". add'jpnl!ul,Forder?a>out.!L<9( ); 22#. set!iGe'#&&,25&); 22$. set0efault:loseLperation'Drame.ETI9SLNS:?L!E ); 23&. 6 231. 232. 233. 234. 235. 'jcmb8arca.get!electedInde') A 22){ 23. jc%k<tilitario.set!elected' 23". jc%k<tilitario.setEnabled' 23#. 6 23$. 24&. jc%k<tilitario.setEnabled' 241. 6 242. 243. 6 244. 'e.get!ource') -- jbtn=tualiGar){ 245. 24.
estacionamento.setValor(ora'0ouble.parse0ouble 'jttValor(ora.get9et'))); 24". DLption7ane.s%oB8essage0ialog '
atualiGado com sucessoU); 24#.
24$. 6
25&. 'e.get!ource') -- jbtnaturamento){ 251. 252. DLption7ane.s%oB8essage0ialog ' :arros/ 253. 0ecimalormat' .get9otalaturamento:arro') ) 254. Wn9otal de <tilitHrios/ 255. 0ecimalormat' .get9otalaturamento<tilita rio')) 25. Wn9otal de 8otos/ 25". 0ecimalormat',&.&&).format'estacionamento.get9otalaturamento8oto')) 25#. Wn9otal do Estacionamento/ 25$. 0ecimalormat' .get9otalaturamento')) 2&. 21. 22. 6 23. 'e.get!ource') -- jbtn?impar){ 24. 25. limpa:ampos'); 2. mudarEstado' 2". 2#. 6 2$. 'e.get!ource') -- jbtnEntrada){
2"&. opcao - jcmb8arca.get!electedInde'); ublic void action7erformed'=ctionEvent e){
'e.get!ource') -- jcmb8arca){ if f lse); f lse); else{ true); else if
null, Valor %ora
else if null, 9otal de ,&.&&).format'estacionamento ,&.&&).format'estacionamento ,&.&&).format'estacionamento ); else if true); else if in
2"1. Veiculo veiculo -2"2.
2"3.
2"4. 'opcao A & XX opcao @ 22){
2"5. 'Ujc%k<tilitario.is!elected')){ 2". veiculo - :arro'); 2"". 6 2"#. 2"$. veiculo - <tilitario'); 2#&. 6 2#1. 6 2#2. 'opcao A 22){ 2#3. 8oto'); 2#4. 2#5. 2#. DLption7ane.s%oB8essage0ialog ' !elecione uma marca vHlidaU);
2#". 6 2##. 2#$. 'jtt7laca.get9et').isEmpt>') YY jtt8odelo YY 2$1. 6 2$2. 2$3. 'veiculo U-2$4. 2$5. veiculo.set8odelo' jtt8odelo.get9et')); 2$. veiculo.set7laca'jtt7laca.get9et')); 2$". veiculo.set8arca'jcmb8arca.get!electedItem').to!tring')); 2$#. veiculo.set(oraEntrada'jtt(oraEntrada.get9et')); 2$$. veiculo.set(ora!aida'jtt(ora!aida.get9et')); 3&&. estacionamento.darEntrada'veiculo); 3&1.
3&2. DLption7ane.s%oB8essage0ialog ' Entrada realiGada com sucessoU);
3&3. 3&4. limpa:ampos'); 3&5. mudarEstado' 3&. 3&". 6 3&#. 6 3&$. 31&. 6 311. 'e.get!ource') -- jbtn:onsultar){ 312.
313. !tring placa - jtt7laca.get9et'); 314.
315. Veiculo veic
-estacionamento.procurarVeiculo'placa);
(2 / 0 proiida a reprodução deste material sem a autori%ação do autor.
null; if if ne else{ ne else if veiculo -6 ne else{ null, if .get9et').isEmpt>') YY jttValor(ora.get9et').isEmpt>') jtt(oraEntrada.get9et').isEmpt>')){2$&. DLption7ane.s%oB8essage0ialog ' (ora7laca8odelo(ora Entrada nZo podem ser vaGiosU,
EKKL,DLption7ane.EKKLKS8E!!=E ); null, Valor else{ if null){ null, true); else if
31. 31". 'veic U-31#. 31$. jtt8odelo.set9et'veic.get8odelo')); 32&. jtt(oraEntrada.set9et'veic.get(oraEntrada')); 321. jcmb8arca.set!electedItem''Lbject)veic.get8arca')); 322. 323. 'veic <tilitario){ 324. .set!elected' 325. 32. 32". jtt(ora!aida.set9et' !imple0ateormat'((/mm).format'!>stem.current9ime8illis '))); 32#. mudarEstado' 32$. 33&. 6 331. 332. DLption7ane.s%oB8essage0ialog ' nZo encontradoU); 333. jtt(oraEntrada.set9et' !imple0ateormat'((/mm).format'!>stem.current9ime8illis '))); 334. mudarEstado' 335. 6 33. 33". 6 33#. 'e.get!ource') -- jbtn!aida){ 33$.
34&. !tring placa - jtt7laca.get9et'); 341. 342. Veiculo veiculo -estacionamento.procurarVeiculo'placa); 343. 344. 'jtt(ora!aida.get9et').isEmpt>')){ 345. DLption7ane.s%oB8essage0ialog '
!aRda nZo pode ser vaGioU, EKKL,DLption7ane.EKKLKS8E!!=E
34. 6 34". 34#. veiculo.set(ora!aida'jtt(ora!aida.get9et')); 34$. 35&. veiculo.calcularValor' estacionamento.getValor(ora')); 351. 352. 'veiculo.get9otalEstacionamento') A-& ){ 353. estacionamento.dar!aida'veiculo); 354. 355. jlbl9otal.set9et' 0ecimalormat',&.&& 35. 35". DLption7ane.s%oB8essage0ialog ' ec%amento efetuado com sucessoU);
35#. 35$. mudarEstado' 3&. 31. jbtnEntrada.setEnabled' if null){ if inst nceof jc%k<tilitario 6 true); eB f lse); else{ null, Veiculo eB true); else if if null, (ora ); else{ if ne ).format'veiculo.get9otalEstacionamento'))); null, true); f lse);
32. 6 33.
34. DLption7ane.s%oB8essage0ialog '
(ora !aRda menor Cue (ora EntradaU, EKKL,DLption7ane.EKKLKS8E!!=E
35. 6 3. 3". 3#. 6 3$. 3"&. 6 3"1. 6 3"2. 3"3. 3"4. 3"5. 3". 3"". 3"#. 3"$. 3#&. 3#1. 3#2. 6 3#3. 3#4. 3#5. 3#. jbtn=tualiGar.setEnabled'estado); 3#". jbtn:onsultar.setEnabled'estado); 3##. jbtnEntrada.setEnabled'estado); 3#$. jbtn!aida.setEnabled'Uestado); 3$&. 3$1. jttValor(ora.setEnabled'estado); 3$2. jtt(oraEntrada.setEnabled'estado); 3$3. jtt(ora!aida.setEnabled'Uestado); 3$4. jtt8odelo.setEnabled'estado); 3$5. jtt7laca.setEnabled'estado); 3$. 3$". jcmb8arca.setEnabled'estado); 3$#. 3$$. jc%k<tilitario.setEnabled'estado); 4&&. 4&1. 4&2. 6 4&3. 6
() / 0 proiida a reprodução deste material sem a autori%ação do autor.
else{
null, );
riv te void limpa:ampos') { jtt8odelo.set9et'); jcmb8arca.set!electedInde'&); jtt(oraEntrada.set9et'); jtt(ora!aida.set9et'); jtt7laca.set9et'); jc%k<tilitario.set!elected' jlbl9otal.set9et'&,&&); f lse );