0% au considerat acest document util (0 voturi)
18 vizualizări15 pagini

Proiect de Parcare Java

Documentul descrie un proiect de parcare dezvoltat de compania „Da Hora”, care include un software pentru gestionarea intrării și ieșirii vehiculelor. Operatorul poate actualiza tarifele, introduce datele vehiculului și verifica venitul pe tipuri de vehicule. De asemenea, sunt prezentate clasele Java care implementează logica sistemului, inclusiv clase pentru vehicule, parcare și interfața utilizatorului.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
18 vizualizări15 pagini

Proiect de Parcare Java

Documentul descrie un proiect de parcare dezvoltat de compania „Da Hora”, care include un software pentru gestionarea intrării și ieșirii vehiculelor. Operatorul poate actualiza tarifele, introduce datele vehiculului și verifica venitul pe tipuri de vehicule. De asemenea, sunt prezentate clasele Java care implementează logica sistemului, inclusiv clase pentru vehicule, parcare și interfața utilizatorului.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Limbaj de Programare – Prof.

Samuel Antonio Vieira

Proiect de Parcare
Compania de parcare „Da Hora” a angajat serviciile unui consultant pentru
dezvoltaț i software-ul pentru a controla intrarea ș i ieș irea maș inilor.
La începutul zilei, operatorul actualizează valoarea pe oră a parcării. Această valoare pe oră este întreagă.
pentru automobile, 15% reducere pentru motociclete ș i adăugarea a 15% pentru utilitare.
La intrarea unei maș ini, operatorul va introduce numărul de înmatriculare, marca, modelul ș i ora de intrare a maș inii.
sistemul ar trebui să propună ora de intrare ca ora actuală, dar poate fi schimbată.
La ieș ire, operatorul introduce numărul de înmatriculare, consultă, sistemul ar trebui să returneze datele maș inii.
în cazul în care există, propuneț i ora actuală ca ora de ieș ire.

Operatorul poate verifica, de asemenea, venitul pe tip de maș ină ș i totalul


parcare.
Diagrama de caz de utilizare

1 - Este material nu poate fi reprodus fără permisiunea autorului.


Limbaj de Programare – Prof. Samuel Antonio Vieira

Diagrama de Clasă

Este material nu poate fi reprodus fără autorizarea autorului.


Limbaj de Programare – Prof. Samuel Antonio Vieira

Diagrama de Secvenț ă

3 - Reproducerea acestui material fără autorizarea autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

Implementarea unui Diagrama de Clasă:


Clasa Vehicul
1. pachet [Link];
2.
3. public clasă Vehicul {
4.
5. privat dublu fatorEstacionameto;
6. privateStringplaca;
7. privateStringmodel;
8. privateStringmarca;
9. privateStringoraEntrada;
10. privateStringhoraSaida;
11. private dublu totalEstacionamento;
12.
13. public void calculaValoare(double valoarePeOră){
14. String[] tE;
15. String[] tS;
16. dublu he,me,hs,ms;
17.
18. tE = getHoraEntrada().split(":");
19. tS = getHoraSaida().split(":");
20.
21. he = [Link](tE[0]);
22. me = [Link](tE[1]);
23. hs = [Link](tS[0]);
24. ms = [Link](tS[1]);
25.
26. totalEstacionamento =((((hs*60)+ms)-
((el*60)+eu))/60)*(valoareOra*getFactorStationare());
27. }
28.
29. public double getFatorEstacionameto() {
30. returneazăfatorEstacionameto;
31. }
32.
33. public void setFatorEstacionare(double fatorEstacionare)
{
34. [Link] = fatorEstacionameto;
35. }
36.
37. public String getPlaca() {
38. returna placă
39. }
40.
41. public void setPlaca(String placa) {
42. [Link]=placa;
43. }
44.
45. public String getModelo() {
46. întoarce model
47. }
48.
49. public void setModelo(String modelo) {
50. [Link] = modelo;
51. }
52.

4 - Reproducerea acestui material fără autorizaț ia autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

53. public String getMarca() {


54. returna marca
55. }
56.
57. public void setMarca(String marca) {
58. [Link]=marca;
59. }
60.
61. public String getHoraEntrada() {
62. returnaț i horaEntrada;
63. }
64.
65. public void setOraIntrare(String oraIntrare) {
66. [Link] = horaEntrada;
67. }
68.
69. public String getHoraSaida() {
70. returneazăhoraSaida;
71. }
72.
73. public void setHoraSaida(String horaSaida) {
74. [Link] = horaSaida;
75. }
76.
77. public double getTotalEstacionamento() {
78. îtoarcețitotalEstacionamento;
n
79. }
80. }

Clasa Maș ină


1. pachet [Link];
2.
3. public clasăMaș inăextindeVehicul{
4.
5. public Carro() {
6. setFatorEstacionameto(1);
7. }
8.
9. }

Clasă Utilitară
1. pachet [Link];
2.
3. public clasa Utilitario extinde Vehiculul {
4.
5. public Utilitario() {
6. setFatorEstacionameto(1.15);
7. }
8.
9. }

5 - Este material nu poate fi reproduces fără autorizarea autorului.


Limbaj de Programare – Prof. Samuel Antonio Vieira

Clasa Moto
1. pachet [Link];
2.
3. public clasaMotoextindeVehiculul{
4.
5. public Moto() {
6. setFatorEstacionameto(0.85);
7. }
8. }

Clasa Parcare
1. pachet [Link];
2.
3. import [Link].*;
4.
5. public clasa Estacionare {
6.
7. privat dublu valorHora;
8. privat dublu totalFaturamentoCarro;
9. privat dublu totalFaturamentoMoto;
10. privat dublu totalFaturamentoUtilitario;
11. privat dublu totalFaturamento;
12. private ArrayList<Veiculo> vehicule;
13.
14. public Estacionare() {
15. veiculos =new ArrayList<Veiculo>();
16. }
17.
18. public Veiculo cautaVeiculo(String placa) {
19.
20. pentru(Veiculo v: [Link]){
21. dacă([Link]().equals(placa)){
22. returneazăv;
23. }
24.
25. }
26. îtoarcerenull;
n
27. }
28.
29. public void darEntrada(Veiculo veiculo) {
30. [Link](veiculo);
31.
32. }
33.
34. public void darSaida(Veiculo veiculo){
35.
36. dacă(vehiculinstanceof Moto)
37. totalFaturamentoMoto +=
[Link]();
38. atlfel dacă (vehicul instanceof Maș ină)
39. totalFaturamentoCarro +=
[Link]();
40. altfel
41. totalFaturamentoUtilitario +=
[Link]();

6 - Reproducerea acestui material fără autorizaț ia autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

42.
43. totalFaturamento += [Link]();
44.
45. [Link](veiculo);

46.
47. }
48.
49. public double getValorOra() {
50. întoarce valorHora;
51. }
52.
53. public void setValorOra(double valorOra) {
54. [Link] = valoareaPeOra;
55. }
56.
57. public dublu getTotalFaturamentoCarro() {
58. returna totalFaturamentoCarro;
59. }
60.
61. public double getTotalFaturamentoMoto() {
62. returneazătotalFaturamentoMoto;
63. }
64.
65. public dublu getTotalFaturamentoUtilitar() {
66. returnare totalFaturamentoUtilitario;
67. }
68.
69. public double getTotalFaturamento() {
70. întoarce totalFaturamento;
71. }
72.
73.
74. }

Interfaț a cu utilizatorul

7 - Reproducerea acestui material fără autorizarea autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

Implementarea interfeț ei
Classe JFormEstacionamento
1. pachet [Link];
2.
3. import [Link].*;
4. import [Link].*;
5. import [Link].*;
6.
7. import [Link].*;
8.
9. import [Link].*;
10.
11. public class JFormEstacionamentoextends JFrameimplements
ActionListener{
12.
13.
14. private GridBagConstraints gbc;
15.
16. privateJPaneljpnlCentro;
17. privatJPaneljpnlSul;
18.
19. privateJLabelrotulo1;
20. privateJLabelrotulo2;
21. privateJLabelrotulo3;
22. privateJLabelrotulo4;
23. privateJLabelrotulo5;
24. privateJLabelrotulo6;
25. privateJLabelrotulo7;
26. privateJLabeljlblTotal;
27.
28. private JCheckBox jchkUtilitario;
29.
30. private JTextField jtxtValorHora;
31. private JTextField jtxtPlaca;
32. private JTextField jtxtHoraEntrada;
33. private JTextField jtxtHoraSaida;
34. private JTextField jtxtModelo;
35.
36. private JComboBox jcmbMarca;
37.
38. privateJButtonjbtnLimpar;
39. privateJButtonjbtnEntrada;
40. privateJButtonjbtnSaida;
41. privateJButtonjbtnFaturamento;
42. privateJButtonjbtnSair;
43.
44. privateJButtonjbtnActualiza;
45. privateJButtonjbtnConsultar;
46.
47. private String[]marcas = {"-- Carros/Utilitários",//0
48. AUDI
49. BMW
50. CHEVROLET
51. CITROËN
52. DODGE
53. FIAT

8 - Este materiale nu poate fi reprodus fără autorizarea autorului.


Limbaj de Programare – Prof. Samuel Antonio Vieira

54. FORD
55. HONDA
56. HYUNDAI
57. KIA
58. LAND ROVER
59. MERCEDES-BENZ
60. MITSUBISHI
61. NISSAN
62. PEUGEOT
63. RENAULT
64. SUZUKI
65. TOYOTA
66. VOLKSWAGEN
67. VOLVO
68. Alte maș ini...
69. "-- Motos",//22
70. AGRALE
71. "AMAZONAS",
72. APRILIA
73. BMW
74. BUELL
75. CAGIVA
76. CALOI
77. DAFRA
78. DUCATI
79. GARINNI
80. HARLEY-DAVIDSON
81. "HONDA"
82. KASINSKI
83. KAWASAKI
84. KTM
85. PIAGGIO
86. APUS
87. SUZUKI
88. TRIUMPHE
89. YAMAHA
90. -- Alte motociclete...
91. };
92.
93. private Estacionamentoestacionamento;
94.
95.
96. public JFormEstacionamento() {
97.
98. super("Estacionamento da Hora");
99.
100. setLayout(new BorderLayout());
101.
102. jpnlCentro = new JPanel(new GridBagLayout());
103. jpnlSul =new JPanel(new FlowLayout());
104.
105. rotulo1 =new JLabel("Valor Hora:");
106. rotulo2 =new JLabel("Placa:");
107. rotulo3 =new JLabel("Hora Entrada:");
108. rotulo4 =new JLabel("Hora Saída:");
109. rotulo5 =new JLabel("Marca:");
110. rotulo6 =new JLabel("Modelo:");

9 - Este material nu poate fi reproducă fără autorizarea autorului.


Limbaj de programare – Prof. Samuel Antonio Vieira

111. rotulo7 =new JLabel("Total a pagar:");


112.
113. jtxtValorHora =new JTextField(10);
114. jtxtPlaca =new JTextField(10);
115. jtxtHoraEntrada =new JTextField(10);
116. jtxtHoraSaida =new JTextField(10);
117. jtxtModelo =new JTextField(10);
118.
119. jcmbMarca = new JComboBox(marcas);
120.
121. jchkUtilitario =new JCheckBox("Utilitário");
122.
123. jlblTotal =new JLabel("0,00");
124.
125. jbtnLimpar =new JButton("Limpar");
126. jbtnAtualizar =new JButton("Atualizar");
127. jbtnConsultar =new JButton("Consultar");
128. jbtnEntrada =new JButton("Dar Entrada");
129. jbtnSaida =new JButton("Pagar e Dar a Saída");
130. jbtnFaturamento =new JButton("Verificar Faturamento");
131. jbtnSair =new JButton("Sair do Sistema");
132.
133. gbc = new GridBagConstraints();
134. [Link] = GridBagConstraints.LINE_START;
135. [Link] = new Insets(5, 5, 5, 5);
136.
137. // Adăugând componentele în coloana zero a grilei
138. [Link] = 0;
139.
140. [Link] = 0;
141. [Link](rotulo1, gbc);
142.
143. [Link] = 1;
144. [Link](rotulo2, gbc);
145.
146. [Link] = 2;
147. [Link](rotulo3,gbc);
148.
149. [Link] = 3;
150. [Link](rotulo4, gbc);
151.
152. //Adăugând componentele la coloana 1 a grilei
153. [Link] = 1;
154.
155. [Link] = 0;
156. [Link]ă(jtxtValorHora, gbc);
157.
158. [Link] = 1;
159. [Link](jtxtPlaca, gbc);
160.
161. [Link] = 2;
162. [Link]ă(jtxtOraIntrare, gbc);
163.
164. [Link] = 3;
165. [Link](jtxtHoraSaida, gbc);
166.
167. //Adăugând componentele în coloana 2 a grilei

10 - Reproducerea acestui material fără autorizarea autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

168. [Link] = 2;
169.
170. [Link] = 0;
171. [Link](jbtnAtualizar, gbc);
172.
173. [Link] = 1;
174. [Link](jbtnConsultar, gbc);
175.
176. [Link] = 3;
177. [Link]ă(rotulo7, gbc);
178. [Link](new Font([Link], [Link], 30));
179.
180. //Adăugând componentele în coloana 3 a grilei
181. [Link] = 3;
182.
183. [Link] = 0;
184. [Link]ă(rotulo5, gbc);
185.
186. [Link] = 1;
187. [Link]ă(rotulo6, gbc);
188.
189. //Adăugând componentele în coloana 4 a grilei
190. [Link] = 4;
191.
192. [Link] = 0;
193. [Link]ă(jcmbMarca, gbc);
194.
195. [Link] = 1;
196. [Link](jtxtModelo,gbc);
197.
198. [Link] = 2;
199. [Link](jchkUtilitario,gbc);
200.
201. [Link] = 3;
202. [Link] = GridBagConstraints.LINE_END;
203. [Link]ă(jlblTotal, gbc);
204. [Link]([Link]());
205.
206. estacionamento =new Estacionamento();
207.
208. [Link](this);
209. [Link](this);
210. [Link](this);
211. [Link](this);
212. [Link](this);
213. [Link](this);
214. [Link](this);
215. [Link](this);
216.
217.
218. [Link](jbtnLimpar);
219. [Link](jbtnEntrada);
220. [Link](jbtnSaida);
221. [Link](jbtnFaturamento);
222. [Link](jbtnSair);
223.
224. mudarEstado(true);

11 - Reproducerea acestui material fără autorizaț ia autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

225.
226. add(jpnlCentro, [Link]);
227. adaugă(jpnlSul, [Link]);
228. setSize(800,250);
229. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
230. }
231.
232. public void actionPerformed(ActionEvent e){
233. dacă([Link]() == jcmbMarca){
234.
235. dacă([Link]() > 22){
236. [Link](false);
237. [Link](false);
238. }
239. altfel{
240. [Link](true);
241. }
242.
243. }
244. atlfel dacă([Link]() ==jbtnAtualizar){
245.
246.

[Link]([Link]([Link]()));
247. [Link](null,"Valoare ora
actualizat cu succes!
248.
249. }
250. atlfel dacă([Link]() == jbtnFaturamento){
251.
252. Total de
Maș ini: " +
253. nou
DecimalFormat("#,##0.00").format([Link]()
)+
254. Total de Utilitários:
255. nou
DecimalFormat("#,##0.00").format([Link]
rio()) +
256. Total de Motos:
257. nou
DecimalFormat("#,##0.00").format([Link]())
+
258. Total parcare:
259. nou
DecimalFormat("#,##0.00").format([Link]())
260. );
261.
262. }
263. atlfel dacă ([Link]() == jbtnLimpar) {
264.
265. limpaCampos();
266. mudarStare(true);
267.
268. }
269. atlfel dacă ([Link]() == jbtnEntrada) {
270 int opcao =[Link]();

12 - Este material nu poate fi reprodus fără autorizarea autorului.


Limbaj de Programare – Prof. Samuel Antonio Vieira

271. Vehicul vehicul = null;


272.
273.
274. dacă(optiunea > 0 && opț iunea < 22){
275. dacă(![Link]()){
276. veiculo =new Carro();
277. }
278. altfel{
279. veiculo =new Utilitario();
280. }
281. }
282. atlfel dacă(opcao
> 22){
283. veiculo =new Moto();
284. }
285. altfel{
286. [Link](null,
Selectaț i o marcă validă!
287. }
288.
289. dacă ([Link]().isEmpty() ||
[Link]().isEmpty() || [Link]().isEmpty() ||
[Link]().isEmpty()
290. [Link](null,"Valoare
Ora/Placă/Model/Ora de intrare nu pot fi goale!
"ERRO", JOptionPane.ERROR_MESSAGE);
291. }
292. altfel{
293. dacă(vehicul !=null){
294.
295.
[Link]([Link]());
296. [Link]([Link]());
297.
[Link]([Link]().toString());
298.
[Link]([Link]());
299.
[Link]([Link]());
300. [Link](vehicul);
301.
302. [Link](null,
Intrarea realizată cu succes!
303.
304. limpaCampos();
305. mudarEstado(true);

306.
307. }
308. }
309.
310. }
311. atlfel dacă([Link]() == jbtnConsultar){
312.
313. String placa =[Link]();
314.
315. Vehicul vehic =
[Link](placa);

13 - Reproducerea acestui material fără autorizarea autorului este interzisă.


Limbaj de Programare – Prof. Samuel Antonio Vieira

316.
317. dacă(veic !=null){
318.
319. [Link]([Link]());
320.
[Link]([Link]());
321.
[Link]((Obiect)[Link]());
322.
323. dacă(veicinstanceof Utilitario){
324. [Link](true);
325. }
326.
327. [Link](new
SimpleDateFormat("HH:mm").format([Link]()));
328. mudarEstado(false);
329.
330. }
331. altfel{
332. [Link](null,"Vehicul
nu a fost găsit!
333. [Link](new
SimpleDateFormat("HH:mm").format([Link]()));
334. mudarEstado(true);
335. }
336.
337. }
338. atlfel dacă([Link]() ==jbtnSaida){
339.
340. String placa =[Link]();
341.
342. Vehicul vehicul =
[Link](placa);
343.
344. if([Link]().isEmpty()){
345. [Link](null,"Hora
Ieș irea nu poate fi goală!
346. }
347. altfel{
348.
[Link]([Link]());
349.
350.
[Link]([Link]ă());
351.
352. dacă ([Link]() >= 0) {
353. [Link](vehicul);
354.
355. [Link](new
DecimalFormat("#,##0.00").format([Link]());
356.
357. [Link](nul,
Închidere efectuată cu succes!
358.
359. mudarEstado(true);
360.
361. [Link](false);

14 - Reproducerea acestui material fără autorizarea autorului este interzisă.


Limbaj de programare – Prof. Samuel Antonio Vieira

362. }
363. else{
364. [Link](nu,
Ora de ieș ire mai mică decât ora de intrare!
365. }
366.
367.
368. }
369.
370. }
371. }
372.
373. privat void limpaCampos() {
374. [Link]("");
375. [Link](0);
376. [Link]("");
377. [Link]("");
378. [Link]("");
379. [Link](false);
380. [Link]("0,00");
381.
382. }
383.
384. privat void schimbaStare(boolean stare){
385.
386. [Link](estado);
387. [Link](estado);
388. [Link](estado);
389. [Link](!estado);
390.
391. [Link](estado);
392. [Link](estado);
393. [Link](!estado);
394. [Link](estado);
395. [Link](estado);
396.
397. [Link](estado);
398.
399. [Link](estado);
400.
401.
402. }
403. }

15 - Este material nu poate fi reproduse fără autorizarea autorului.

S-ar putea să vă placă și