Linguagem de Programação – Prof. Samuel Antonio Vieira Projeto Estacionamento
A empresa de Estacionamento Estacionamento “Da Hora” contratou os seriços de um consultor para desenoler o soft!are para controlar a entrada e sa"da de carros. #o in"cio do dia$ o operador atuali%a o alor &ora do estacionamento. estacionamento. Este Este alor &ora ' c&eio c&eio para carros$ ()* de de desconto para para moto e adição de ()* para utilit+rios. Ao entrar um carro$ o operador digitar+ a placa$ marca$ modelo e &ora entrada do carro$ o sistema deer+ propor a &ora de entrada como a &ora atual$ mas pode ser mudada. Ao sair$ o operador digita a placa$ consulta$ o sistema deer+ deoler os dados do carro$ 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 do estacionamento. Diagrama de Use Case
( / 0 proiida a reprodução deste material sem a autori%ação do autor. autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Diagrama de Classe
1 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Diagrama de Sequência
2 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Implementando o Diagrama de Classe: Classe Veiculo
1. projeto.beans; 2. 3. Veiculo { 4. 5. fatorEstacionameto ; . !tring placa; ". !tring modelo; #. !tring marca; $. !tring %oraEntrada; 1&. !tring %ora!aida; 11. totalEstacionamento; 12. 13. calcularValor' valor(ora){ 14. !tring*+ tE; 15. !tring*+ t!; 1. %e,me,%s,ms; 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$. getatorEstacionameto') { 3&. fatorEstacionameto ; 31. 6 32. 33. setatorEstacionameto' fatorEstacionameto) { 34. .fatorEstacionameto - fatorEstacionameto; 35. 6 3. 3". !tring get7laca') { 3#. placa; 3$. 6 4&. 41. set7laca'!tring placa) { 42. .placa - placa; 43. 6 44. 45. !tring get8odelo') { 4. modelo; 4". 6 4#. 4$. set8odelo'!tring modelo) { 5&. .modelo - modelo; 51. 6 52.
3 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 53. 54. 55. 5. 5". 5#. 5$. &. 1. 2. 3. 4. 5. . ". #. $. "&. "1. "2. "3. "4. "5. ". "". "#. "$. #&.
6
!tring get8arca') { marca; set8arca'!tring marca) { .marca - marca;
6
6
!tring get(oraEntrada') { %oraEntrada ; set(oraEntrada'!tring %oraEntrada) { .%oraEntrada - %oraEntrada;
6
6
!tring get(ora!aida') { %ora!aida ; set(ora!aida'!tring %ora!aida) { .%ora!aida - %ora!aida;
6
6
get9otalEstacionamento') { totalEstacionamento ;
6
Classe Carro
1. 2. 3. 4. 5. . ". #. $. 6
projeto.beans; :arro
6
Veiculo {
:arro') { setatorEstacionameto'1);
Classe Utilitário
1. 2. 3. 4. 5. . ". #. $. 6
projeto.beans;
6
Veiculo {
) / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Classe Moto
1. 2. 3. 4. 5. . ". #. 6
projeto.beans; 8oto
6
Veiculo {
8oto') { setatorEstacionameto'&.#5);
Classe Estacionamento
1. projeto.beans; 2. 3. java.util.; 4. 5. Estacionamento { . ". valor(ora; #. totalaturamento:arro; $. totalaturamento8oto ; 1&. totalaturamento?ist@VeiculoA veiculos ; 13. 14. Estacionamento') { 15. veiculos =rra>?ist@VeiculoA'); 1. 6 1". 1#. Veiculo procurarVeiculo'!tring placa) { 1$. 2&. 'Veiculo v/ .veiculos ){ 21. 'v.get7laca').eCuals'placa)){ 22. v; 23. 6 24. 25. 6 2. ; 2". 6 2#. 2$. darEntrada'Veiculo veiculo) { 3&. .veiculos.add'veiculo); 31. 32. 6 33. 34. dar!aida'Veiculo veiculo){ 35. 3. 'veiculo 8oto) 3". totalaturamento8oto veiculo.get9otalEstacionamento'); 3#. 'veiculo :arro) 3$. totalaturamento:arro veiculo.get9otalEstacionamento'); 4&. 41. totalaturamento
4 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 42. 43. 44. 45. 4. 4". 4#. 4$. 5&. 51. 52. 53. 54. 55. 5. 5". 5#. 5$. &. 1. 2. 3. 4. 5. . ". #. $. "&. "1. "2. "3. "4.
totalaturamento - veiculo.get9otalEstacionamento'); .veiculos.remove'veiculo); 6
6
6
6
6
6
6
getValor(ora') { valor(ora ; setValor(ora' valor(ora) { .valor(ora - valor(ora; get9otalaturamento:arro') { totalaturamento:arro ; get9otalaturamento8oto') { totalaturamento8oto ; get9otalaturamento
6
A interace com usuário
5 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Implementando a interace Classe !"ormEstacionamento
1. projeto.gui; 2. 3. java.aBt.; 4. java.aBt.event.; 5. java.tet.; . ". java.sBing.; #. $. projeto.beans.; 1&. 11. DormEstacionamento Drame =ction?istener{ 12. 13. 14. ridFag:onstraints gbc; 15. 1. D7anel jpnl:entro; 1". D7anel jpnl!ul; 1#. 1$. D?abel rotulo1; 2&. D?abel rotulo2; 21. D?abel rotulo3; 22. D?abel rotulo4; 23. D?abel rotulo5; 24. D?abel rotulo; 25. D?abel rotulo"; 2. D?abel jlbl9otal; 2". 2#. D:%eckFo jc%k
6 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 54. 55. 5. 5". 5#. 5$. &. 1. 2. 3. 4. 5. . ". #. $. "&. "1. "2. "3. "4. "5. ". "". "#. "$. #&. #1. #2. #3. #4. #5. #. #". ##. #$. $&. $1. $2. $3. $4. $5. $. $". $#. $$. 1&&. 1&1. 1&2. 1&3. 1&4. 1&5. 1&. 1&". 1. 1&$. 11&.
LK0, (LN0=, (Oout'
Forder?a>out'));
jpnl:entro D7anel' ridFag?a>out')); jpnl!ul D7anel' loB?a>out')); rotulo1 rotulo2 rotulo3 rotulo4 rotulo5 rotulo -
D?abel'Valor (ora/); D?abel'7laca/); D?abel'(ora Entrada/); D?abel'(ora !aRda/); D?abel'8arca/); D?abel'8odelo/);
7 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 111. 112. 113. 114. 115. 11. 11". 11#. 11$. 12&. 121. 122. 123. 124. 125. 12. 12". 12#. 12$. 13&. 131. 132. 133. 134. 135. 13. 13". 13#. 13$. 14&. 141. 142. 143. 144. 145. 14. 14". 14#. 14$. 15&. 151. 152. 153. 154. 155. 15. 15". 15#. 15$. 1&. 11. 12. 13. 14. 15. 1. 1".
rotulo" -
D?abel'9otal a pagar/);
jttValor(ora D9etield'1&); jtt7laca D9etield'1&); jtt(oraEntrada D9etield'1&); jtt(ora!aida D9etield'1&); jtt8odelo D9etield'1&); jcmb8arca -
D:omboFo'marcas);
jc%k
D:%eckFo'
D?abel'&,&&);
jbtn?impar DFutton'?impar); jbtn=tualiGar DFutton'=tualiGar); jbtn:onsultar DFutton':onsultar); jbtnEntrada DFutton'0ar Entrada); jbtn!aida DFutton'7agar e 0ar a !aRda ); jbtnaturamento DFutton'Verificar aturamento ); jbtn!air DFutton'!air do !istema); gbc ridFag:onstraints'); gbc.anc%or - ridFag:onstraints. ?INES!9=K9 ; gbc.insets Insets'5, 5, 5, 5); =dicionando os componentes na coluna Gero do grid gbc.grid - &; gbc.grid> - &; jpnl:entro.add'rotulo1,gbc); gbc.grid> - 1; jpnl:entro.add'rotulo2,gbc); gbc.grid> - 2; jpnl:entro.add'rotulo3,gbc); gbc.grid> - 3; jpnl:entro.add'rotulo4,gbc); =dicionando os componentes a coluna 1 do grid gbc.grid - 1; gbc.grid> - &; jpnl:entro.add'jttValor(ora,gbc); gbc.grid> - 1; jpnl:entro.add'jtt7laca,gbc); gbc.grid> - 2; jpnl:entro.add'jtt(oraEntrada,gbc); gbc.grid> - 3; jpnl:entro.add'jtt(ora!aida,gbc); =dicionando os componentes a coluna 2 do grid
(8 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 1#. 1$. 1"&. 1"1. 1"2. 1"3. 1"4. 1"5. 1". 1"". 1"#. 1"$. 1#&. 1#1. 1#2. 1#3. 1#4. 1#5. 1#. 1#". 1##. 1#$. 1$&. 1$1. 1$2. 1$3. 1$4. 1$5. 1$. 1$". 1$#. 1$$. 2&&. 2&1. 2&2. 2&3. 2&4. 2&5. 2&. 2&". 2. 2&$. 21&. 211. 212. 213. 214. 215. 21. 21". 21#. 21$. 22&. 221. 222. 223. 224.
gbc.grid - 2; gbc.grid> - &; jpnl:entro.add'jbtn=tualiGar,gbc); gbc.grid> - 1; jpnl:entro.add'jbtn:onsultar,gbc); gbc.grid> - 3; jpnl:entro.add'rotulo",gbc); rotulo".setont' ont'ont.0I=?L ,ont.7?=IN ,3&)); =dicionando os componentes a coluna 3 do grid gbc.grid - 3; gbc.grid> - &; jpnl:entro.add'rotulo5,gbc); gbc.grid> - 1; jpnl:entro.add'rotulo,gbc); =dicionando os componentes a coluna 4 do grid gbc.grid - 4; gbc.grid> - &; jpnl:entro.add'jcmb8arca,gbc); gbc.grid> - 1; jpnl:entro.add'jtt8odelo,gbc); gbc.grid> - 2; jpnl:entro.add'jc%k - 3; gbc.anc%or - ridFag:onstraints. ?INESEN0 ; jpnl:entro.add'jlbl9otal,gbc); jlbl9otal.setont'rotulo".getont')); estacionamento -
Estacionamento');
jcmb8arca.add=ction?istener' ); jbtn=tualiGar.add=ction?istener' ); jbtn:onsultar.add=ction?istener' ); jbtnEntrada.add=ction?istener' ); jbtnaturamento.add=ction?istener' ); jbtn?impar.add=ction?istener' ); jbtn!aida.add=ction?istener' ); jbtn!air.add=ction?istener' ); jpnl!ul.add'jbtn?impar); jpnl!ul.add'jbtnEntrada); jpnl!ul.add'jbtn!aida); jpnl!ul.add'jbtnaturamento); jpnl!ul.add'jbtn!air); mudarEstado'
);
(( / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 225. 22. 22". 22#. 22$. 23&. 231. 232. 233. 234. 235. 23. 23". 23#. 23$. 24&. 241. 242. 243. 244. 245. 24.
add'jpnl:entro, Forder?a>out.:EN9EK ); add'jpnl!ul,Forder?a>out. !L<9( ); set!iGe'#&&,25&); set0efault:loseLperation'Drame. ETI9SLNS:?L!E ); 6 action7erformed'=ctionEvent e){ 'e.get!ource') -- jcmb8arca){
6 6 6
'jcmb8arca.get!electedInde') A 22){ jc%k
);
'e.get!ource') -- jbtn=tualiGar){
estacionamento.setValor(ora'0ouble. parse0ouble 'jttValor(ora.get9et'))); 24". DLption7ane.s%oB8essage0ialog ' , Valor %ora atualiGado com sucessoU); 24#. 24$. 6 25&. 'e.get!ource') -- jbtnaturamento){ 251. 252. DLption7ane.s%oB8essage0ialog ' , 9otal de :arros/ 253. 0ecimalormat' ,&.&&).format'estacionamento .get9otalaturamento:arro') ) 254. Wn9otal de
(1 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 2"1. Veiculo veiculo ; 2"2. 2"3. 2"4. 'opcao A & XX opcao @ 22){ 2"5. 'Ujc%k') YY jtt8odelo .get9et').isEmpt>') YY jttValor(ora.get9et').isEmpt>') YY jtt(oraEntrada.get9et').isEmpt>')){ 2$&. DLption7ane.s%oB8essage0ialog ' , Valor (ora7laca8odelo(ora Entrada nZo podem ser vaGiosU, EKKL,DLption7ane.EKKLKS8E!!=E ); 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.
Linguagem de Programação – Prof. Samuel Antonio Vieira 31. 31". 31#. 31$. 32&. 321.
'veic U-
){
jtt8odelo.set9et'veic.get8odelo')); jtt(oraEntrada.set9et'veic.get(oraEntrada'));
jcmb8arca.set!electedItem''Lbject)veic.get8arca')); 322. 323. 'veic stem.current9ime8illis '))); 32#. mudarEstado' ); 32$. 33&. 6 331. { 332. DLption7ane.s%oB8essage0ialog ' , Veiculo 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 ' , (ora !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',&.&& ).format'veiculo.get9otalEstacionamento'))); 35. 35". DLption7ane.s%oB8essage0ialog ' , ec%amento efetuado com sucessoU); 35#. 35$. mudarEstado' ); 3&. 31. jbtnEntrada.setEnabled' );
(3 / 0 proiida a reprodução deste material sem a autori%ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 32. 33. 34. (ora !aRda menor 35. 3. 3". 3#. 3$. 3"&. 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#. 3#". 3##. 3#$. 3$&. 3$1. 3$2. 3$3. 3$4. 3$5. 3$. 3$". 3$#. 3$$. 4&&. 4&1. 4&2. 6 4&3. 6
6
{
DLption7ane.s%oB8essage0ialog ' , Cue (ora EntradaU, EKKL,DLption7ane.EKKLKS8E!!=E ); 6 6 6 limpa:ampos') { jtt8odelo.set9et'); jcmb8arca.set!electedInde'&); jtt(oraEntrada.set9et'); jtt(ora!aida.set9et'); jtt7laca.set9et'); jc%k
mudarEstado'
);
estado){
jbtn=tualiGar.setEnabled'estado); jbtn:onsultar.setEnabled'estado); jbtnEntrada.setEnabled'estado); jbtn!aida.setEnabled'Uestado); jttValor(ora.setEnabled'estado); jtt(oraEntrada.setEnabled'estado); jtt(ora!aida.setEnabled'Uestado); jtt8odelo.setEnabled'estado); jtt7laca.setEnabled'estado); jcmb8arca.setEnabled'estado); jc%k
() / 0 proiida a reprodução deste material sem a autori%ação do autor.