-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBooking.java
More file actions
123 lines (98 loc) · 6.88 KB
/
Copy pathBooking.java
File metadata and controls
123 lines (98 loc) · 6.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// update booking class
public class Booking {
private ParkingSpot[] parkingForTheDay; // Assuming 'Parking' class exists, otherwise this will cause an error.
public static final String[] multiPurposeCarpark = {"MPC 01", "MPC 02", "MPC 03", "MPC 04", "MPC 05",
"MPC 06", "MPC 07", "MPC 08", "MPC 09", "MPC 10"};
public static final String[] multiPurposeCarparkTime = {"12am", "1am", "2am", "3am", "4am", "5am", "6am",
"7am", "8am", "9am", "10am", "11am", "12noon",
"1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm",
"8pm", "9pm", "10pm", "11pm"};
public static final String[] mainAdministrationCarpark = {"ADMIN 01", "ADMIN 02", "ADMIN 03", "ADMIN 04", "ADMIN 05",
"ADMIN 06", "ADMIN 07", "ADMIN 08", "ADMIN 09", "ADMIN 10",
"ADMIN 11", "ADMIN 12", "ADMIN 13", "ADMIN 14", "ADMIN 15",
"ADMIN 16", "ADMIN 17", "ADMIN 18", "ADMIN 19", "ADMIN 20"};
public static final String[] mainAdministrationCarparkTime = {"12am", "1am", "2am", "3am", "4am", "5am", "6am",
"7am", "8am", "9am", "10am", "11am", "12noon",
"1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm",
"8pm", "9pm", "10pm", "11pm"};
public static final String[] mainStudentsCarpark = {"ADMIN-STU 01", "ADMIN-STU 02", "ADMIN-STU 03", "ADMIN-STU 04", "ADMIN-STU 05",
"ADMIN-STU 06", "ADMIN-STU 07", "ADMIN-STU 08", "ADMIN-STU 09", "ADMIN-STU 10",
"ADMIN-STU 11", "ADMIN-STU 12", "ADMIN-STU 13", "ADMIN-STU 14", "ADMIN-STU 15"};
public static final String[] mainStudentsCarparkTime = {"12am", "1am", "2am", "3am", "4am", "5am", "6am",
"7am", "8am", "9am", "10am", "11am", "12noon",
"1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm",
"8pm", "9pm", "10pm", "11pm"};
public static final String[] upperHostelsCarpark = {"HOSTEL-UP 01", "HOSTEL-UP 02", "HOSTEL-UP 03", "HOSTEL-UP 04", "HOSTEL-UP 05",
"HOSTEL-UP 06", "HOSTEL-UP 07", "HOSTEL-UP 08", "HOSTEL-UP 09", "HOSTEL-UP 10",
"HOSTEL-UP 11", "HOSTEL-UP 12", "HOSTEL-UP 13", "HOSTEL-UP 14", "HOSTEL-UP 15"};
public static final String[] upperHostelsCarparkTime = {"12am", "1am", "2am", "3am", "4am", "5am", "6am",
"7am", "8am", "9am", "10am", "11am", "12noon",
"1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm",
"8pm", "9pm", "10pm", "11pm"};
public static final String[] lowerHostelsCarpark = {"HOSTEL-DOWN 01", "HOSTEL-DOWN 02", "HOSTEL-DOWN 03", "HOSTEL-DOWN 04", "HOSTEL-DOWN 05",
"HOSTEL-DOWN 06", "HOSTEL-DOWN 07", "HOSTEL-DOWN 08", "HOSTEL-DOWN 09", "HOSTEL-DOWN 10",
"HOSTEL-DOWN 11", "HOSTEL-DOWN 12", "HOSTEL-DOWN 13", "HOSTEL-DOWN 14", "HOSTEL-DOWN 15",
"HOSTEL-DOWN 16", "HOSTEL-DOWN 17", "HOSTEL-DOWN 18", "HOSTEL-DOWN 19", "HOSTEL-DOWN 20"};
public static final String[] lowerHostelsCarparkTime = {"12am", "1am", "2am", "3am", "4am", "5am", "6am",
"7am", "8am", "9am", "10am", "11am", "12noon",
"1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm",
"8pm", "9pm", "10pm", "11pm"};
//implementing a booking method (new)
public Booking() {
// constructor
this.parkingForTheDay = new ParkingSpot[50]; // limiting the parking spots to 50 to test | to be changhed to actual values later
// using a for each loop for efficiency
// spot initializer for multipurpose car park
int i = 0;
for (String spot : multiPurposeCarpark) {
parkingForTheDay[i++] = new ParkingSpot(spot, "Multi-Purpose Building", false, "General");
}
int i = 0;
for (String spot : mainAdministrationCarpark) {
parkingForTheDay[i++] = new ParkingSpot(spot, "Administration Building", false, "General");
}
for (String spot : mainStudentsCarpark) {
parkingForTheDay[i++] = new ParkingSpot(spot, "Students Carpark", false, "General");
}
for (String spot :upperHostelsCarpark) {
parkingForTheDay[i++] = new ParkingSpot(spot, "Upper Hostels Carpark", false, "General");
}
for (String spot : lowerHostelsCarpark) {
parkingForTheDay[i++] = new ParkingSpot(spot, "Lower Hostels Carpark", false, "General");
}
// @ Elsie
// repeat method for all 5 car parks
// bookSpot method
public boolean bookSpot (String spotId){
for (ParkingSpot spot : parkingForTheDay) {
if (spot.getspotId().equals(spotId) && !spot.getIsOccupied()) {
return spot.book();
}
}
return false;
}
public static boolean reserveParkingSpot(String spotId, String time) {
// Dummy implementation for reservation - logic here
// In a real scenario, check if the spotId and time are available, then reserve them
System.out.println("Reserved " + spotId + " at " + time);
return true; // Assuming reservation is always successful for this example
}
// display available parking spots
public static void displayAvailableSpots() {
System.out.println("Available parking spots:");
for (String spot : multiPurposeCarpark) {
System.out.print(spot + " ");
}
System.out.println("\nAvailable times:");
for (String time : multiPurposeCarparkTime) {
System.out.print(time + " ");
}
System.out.println();
}
/**
* Cancels the booking for a parking spot by its ID.
* @param spotId The ID of the parking spot to cancel.
* @return true if the booking was successfully cancelled, false if the spot was not found or already unoccupied.
*/
}
}