Proiect de Parcare Java
Proiect de Parcare Java
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.
Diagrama de Clasă
Diagrama de Secvenț ă
Clasă Utilitară
1. pachet [Link];
2.
3. public clasa Utilitario extinde Vehiculul {
4.
5. public Utilitario() {
6. setFatorEstacionameto(1.15);
7. }
8.
9. }
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]();
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
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
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:");
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);
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]();
306.
307. }
308. }
309.
310. }
311. atlfel dacă([Link]() == jbtnConsultar){
312.
313. String placa =[Link]();
314.
315. Vehicul vehic =
[Link](placa);
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);
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. }