Sie sind auf Seite 1von 18

1 //============================================================

2 // Student Number : S10097706E


3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10 import java.util.Calendar;
11 import java.util.Scanner;
12
13 public class ResortMS {
14
15
public static void main(String[] args) {
16
17
//hardcoded guests used for testing
18
19
new Person("200", "Sam", "445872050", true);
20
new Person("201", "Daniel", "555872050", true);
21
new Person("202", "John", "236872050", false);
22
new Person("203", "Jill", "705872050", true);
23
24
//hardcoded bungalows and chalets
25
26
new Bungalow(101, "Aries", 80, true, 4.28);
27
new Bungalow(102, "Aries", 90, true, 4.28);
28
new Bungalow(103, "Gem", 150, false, 0);
29
new Bungalow(104, "Gem", 110, false, 0);
30
31
new Chalet(105, "Aries", 100, 2, true, 3.21);
32
new Chalet(106, "Aries", 90, 3, true, 3.21);
33
new Chalet(107, "Pisces", 80, 2, false, 0);
34
new Chalet(108, "Pisces", 120, 5, true, 3.21);
35
36
//this while loop will repeat forever
37
while (true) {
38
39 //-----------------------1.0 Register guest---------------------------------40
41
System.out.println("\nMENU\n====\n1. Register Guest\n2.
List all guests\n3. List all resorts");
42
System.out.println("4. Rent a resort\n5. List all rental
details for all bungalows or chalets");
43
System.out.println("6. List total number of days a resort
is rented by a particular guest");
44
System.out.println("7. Checkout");
45
System.out.println("8. List available resorts");
46
System.out.println("9. Member with the highest rental
charge");
47
System.out.println("0. Exit\nEnter your option: ");
48
49
Scanner s = new Scanner(System.in);
50
String input = s.nextLine();
51
52
if (input.equals("1")) {

53
System.out.println("Option 1. Register guest");
54
System.out.println("Enter NRIC Number: ");
55
String nric = s.nextLine();
56
System.out.println("Enter name: ");
57
String name = s.nextLine();
58
System.out.println("Enter Tel No: ");
59
String tel = s.nextLine();
60
System.out.println("Enrol as member (Enter 1 for Yes, 0
for No) ? : ");
61
String tempMem = s.nextLine();
62
boolean mem;
63
64
if (tempMem.equals("1")) {
65
mem = true;
66
} else {
67
mem = false;
68
}
69
70
Person p = new Person(nric, name, tel, mem);
71
System.out.println(name + " is registered
successfully.");
72
73 //------------------------2. list all guests------------------------------74
} else if (input.equals("2")) {
75
System.out.println("Option 2. List All Guests");
76
listGuests();
77
78 //--------------------3. List all resorts--------------------------------79
} else if (input.equals("3")) {
80
System.out.println("Option 3. List All Resorts");
81
listResorts();
82
83 //-------------------------4. Rent a resort-----------------------------------84
} else if (input.equals("4")) {
85
System.out.println("Option 4. Rent a resort");
86
87
int newRentalNo = 0;
88
Person newGuest = null;
89
Resort newResort = null;
90
91
System.out.println("Guest List: ");
92
listGuests();
93
System.out.print("Guest Selection S/No: ");
94
String selecGuest = s.nextLine();
95
96
for (int i = 0; i < Person.getArrGuest().size(); i++) {
97
if
(Person.getArrGuest().get(i).getIcNo().equals(selecGuest)) {
98
newGuest = Person.getArrGuest().get(i);
99
break;
100
}
101
}
102
103
System.out.println("\nResort List: ");

104
listResorts();
105
System.out.print("Resort Selection S/No: ");
106
String selecResort = s.nextLine();
107
boolean found1 = false;
108
//if the resort is not found in the bungalow list, the
Chalet list much be checked
109
boolean checkChaletList = true;
110
111
for (int i = 0; i < Bungalow.getArrBungalow().size();
i++) {
112
if (Bungalow.getArrBungalow().get(i).getResortId()
== Integer.parseInt(selecResort)) {
113
newResort = Bungalow.getArrBungalow().get(i);
114
((Bungalow) newResort).saveBungalow();
115
checkChaletList = false;
116
found1 = true;
117
break;
118
}
119
}
120
if (checkChaletList == true) {
121
for (int i = 0; i < Chalet.getArrChalet().size();
i++) {
122
if (Chalet.getArrChalet().get(i).getResortId()
== Integer.parseInt(selecResort)) {
123
newResort = Chalet.getArrChalet().get(i);
124
((Chalet) newResort).saveChalet();
125
found1 = true;
126
break;
127
}
128
}
129
}
130
if (found1 == false) {
131
System.out.println("Error: resort not found.");
132
}
133
134
if (Rental.getArrRental() != null &&
Rental.getArrRental().isEmpty()) {
135
newRentalNo = 1;
136
} else if (Rental.getArrRental() != null) {
137
newRentalNo = Rental.getArrRental().size() + 1;
138
}
139
140
Calendar arrCal = Calendar.getInstance();
141
142
System.out.print("\nEnter arrival month (0 to 11): ");
143
int month = s.nextInt();
144
System.out.print("\nEnter arrival day (0 to 30): ");
145
int day = s.nextInt();
146
System.out.print("\nEnter arrival year: ");
147
int year = s.nextInt();
148
arrCal.set(year, month, day);
149
150
Calendar depCal = Calendar.getInstance();
151
152
System.out.print("\nEnter departure month (0 to 11): ");
153
int month2 = s.nextInt();
154
System.out.print("\nEnter departure day (0 to 30): ");

155
int day2 = s.nextInt();
156
System.out.print("\nEnter departure year: ");
157
int year2 = s.nextInt();
158
depCal.set(year2, month2, day2);
159
160
Rental r = new Rental(newGuest, arrCal, depCal,
newResort);
161
162
163
newGuest.addRental(r);
164
System.out.println("Rental saved!");
165
166 //-------------------5. Rental details for Bungalows or Chalets------------------167
} else if (input.equals("5")) {
168
169
System.out.print("Please enter 0 for Bungalows or 1 for
Chalets: ");
170
String selectionFive = s.nextLine();
171
172
if (selectionFive.equals("0")) {
173
for (int i = 0; i < Rental.getArrRental().size();
i++) {
174
if (Rental.getArrRental().get(i).getResort()
instanceof Bungalow) {
175
System.out.println("bunga" +
Rental.getArrRental().get(i).getResort().getResortId());
176
}
177
}
178
179
180
} else if (selectionFive.equals("1")) {
181
for (int i = 0; i < Rental.getArrRental().size();
i++) {
182
if (Rental.getArrRental().get(i).getResort()
instanceof Chalet) {
183
System.out.println("charrr" +
Rental.getArrRental().get(i).getResort().getResortId());
184
}
185
}
186
} else {
187
System.out.println("Invalid input, please try
again");
188
}
189
190 //-----------6. number of days a resort is rented by a particular
guest-------------191
} else if (input.equals("6")) {
192
193
System.out.print("Enter the icNo of the guest: ");
194
String findGuest = s.nextLine();
195
System.out.print("\nEnter the ID of the resort: ");
196
String findResort = s.nextLine();
197
boolean found2 = false;
198
199
for (int i = 0; i < Rental.getArrRental().size(); i++)
{

200
if
((Rental.getArrRental().get(i).getGuest().getIcNo().equals(findGuest)) &&
(Rental.getArrRental().get(i).getResort().getResortId() ==
Integer.parseInt(findResort))) {
201
double theCalDays = ((double)
(Rental.getArrRental().get(i).getArrivalDate().getTime().getTime() Rental.getArrRental().get(i).getDepartureDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
202
found2 = true;
203
System.out.println("Number of days of the
rental: " + (int) Math.abs(theCalDays));
204
}
205
}
206
207
if (found2 == false) {
208
System.out.println("No matches found.");
209
}
210
211 //ADVANCED PART
212 //-----------------------------7. Check out---------------------------------213
} else if (input.equals("7")) {
214
215
double cost = 0.0;
216
217
System.out.print("Enter the icNo of the guest: ");
218
String findGuest = s.nextLine();
219
System.out.print("\nEnter the ID of the resort: ");
220
String findResort = s.nextLine();
221
int daysDiff = 0;
222
boolean found3 = false;
223
for (int i = 0; i < Rental.getArrRental().size(); i++)
{
224
if (Rental.getArrRental().get(i).getResort()
instanceof Bungalow) {
225
226
for (int j = 0; j <
Rental.getArrRental().size(); j++) {
227
if
((Rental.getArrRental().get(j).getGuest().getIcNo().equals(findGuest)) &&
(Rental.getArrRental().get(j).getResort().getResortId() ==
Integer.parseInt(findResort))) {
228
double theCalDays = ((double)
(Rental.getArrRental().get(j).getArrivalDate().getTime().getTime() Rental.getArrRental().get(j).getDepartureDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
229
daysDiff = (int) Math.abs(theCalDays);
230
found3 = true;
231
System.out.println("Number of days of
the rental: " + (int) Math.abs(theCalDays));
232
}
233
}
234
cost = (((Bungalow)
Rental.getArrRental().get(i).getResort()).getWifiCharge() +
Rental.getArrRental().get(i).getResort().getRate()) * daysDiff;
235
236
System.out.println("The total charge: " +

(cost));
237
} else {
238
for (int j = 0; j <
Rental.getArrRental().size(); j++) {
239
if
((Rental.getArrRental().get(j).getGuest().getIcNo().equals(findGuest)) &&
(Rental.getArrRental().get(j).getResort().getResortId() ==
Integer.parseInt(findResort))) {
240
double theCalDays = ((double)
(Rental.getArrRental().get(j).getArrivalDate().getTime().getTime() Rental.getArrRental().get(j).getDepartureDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
241
daysDiff = (int) Math.abs(theCalDays);
242
found3 = true;
243
System.out.println("Number of days of
the rental: " + (int) Math.abs(theCalDays));
244
}
245
}
246
cost = (((Chalet)
Rental.getArrRental().get(i).getResort()).getBbqPitCharge() +
Rental.getArrRental().get(i).getResort().getRate()) * daysDiff;
247
System.out.println("The total charge: " + (cost));
249
}
250
}
251
252
if (found3 == false) {
253
System.out.println("No matches found.");
254
}
255
256 //--------------------------8. Available resorts-----------------------------257
} else if (input.equals("8")) {
258
259
boolean foundFree = false;
260
Calendar arrCal = Calendar.getInstance();
261
262
System.out.print("\nEnter arrival month (1 to 12): ");
263
int month = s.nextInt();
264
System.out.print("\nEnter arrival day (1 to 31): ");
265
int day = s.nextInt();
266
System.out.print("\nEnter arrival year: ");
267
int year = s.nextInt();
268
arrCal.set(year, month, day);
269
270
for (int i = 0; i < Rental.getArrRental().size(); i++)
{
271
272
double firstDate = ((double)
(Rental.getArrRental().get(i).getArrivalDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
273
double secondDate = ((double)
(arrCal.getTime().getTime())) / (1000 * 60 * 60 * 24);
274
275
if (firstDate < secondDate) {
276
System.out.println("Free resort: " +
Rental.getArrRental().get(i).getResort().getResortId());

277
foundFree = true;
278
}
279
}
280
if (foundFree == false) {
281
System.out.println("Sorry, no resorts are free at
the date specified.");
282
}
283
//--------------------------9. Member with the highest rental charge-----------------------------285
} else if (input.equals("9")) {
286
287
ArrayList<Rental> arrTempRental = new
ArrayList<Rental>();
288
int daysDiff = 0;
289
double cost1 = 0.0;
290
double cost2 = 0.0;
291
292
for (int i = 0; i < Rental.getArrRental().size(); i++)
{
293
294
if
(Rental.getArrRental().get(i).getGuest().isMember()) {
295
arrTempRental.add(Rental.getArrRental().get(i));
296
}
297
}
298
299
int j;
300
boolean flag = true;
// set flag to true to begin
first pass
301
int temp;
//holding variable
302
303
while (flag) {
304
flag = false;
//set flag to false awaiting a
possible swap
305
for (j = 0; j < arrTempRental.size() - 1; j++) {
306
307
double theCalDays = ((double)
(Rental.getArrRental().get(j).getArrivalDate().getTime().getTime() Rental.getArrRental().get(j).getDepartureDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
308
daysDiff = (int) Math.abs(theCalDays);
309
cost1 = (((Bungalow)
Rental.getArrRental().get(j).getResort()).getWifiCharge() +
Rental.getArrRental().get(j).getResort().getRate()) * daysDiff;
310
311
theCalDays = ((double)
(Rental.getArrRental().get(j + 1).getArrivalDate().getTime().getTime() Rental.getArrRental().get(j + 1).getDepartureDate().getTime().getTime())) /
(1000 * 60 * 60 * 24);
312
daysDiff = (int) Math.abs(theCalDays);
313
cost2 = (((Bungalow)
Rental.getArrRental().get(j + 1).getResort()).getWifiCharge() +
Rental.getArrRental().get(j + 1).getResort().getRate()) * daysDiff;
314
315
if (cost1 < cost2) {
316

317
Rental tempRental = arrTempRental.get(j);
318
319
arrTempRental.add(j, arrTempRental.get(j +
1));
320
arrTempRental.add(j + 1, tempRental);
321
322
flag = true;
323
324
}
325
}
326
}
327
328
for (int i = 0; i < Rental.getArrRental().size(); i++)
{
329
System.out.println(Rental.getArrRental().get(i).getGuest().getName());
330
}
331
332
} else if (input.equals("0")) {
333
334
System.exit(1);
335
} else {
336
System.out.println("Invalid input, please try again");
337
}
338
}
339
}
340
341
private static void listGuests() {
342
343
System.out.println("S/No\tICNum\tName\tTelephone\tMember");
344
for (int i = 0; i < Person.getArrGuest().size(); i++) {
345
System.out.print(i + 1 + "\t");
346
System.out.print(Person.getArrGuest().get(i).getIcNo() +
"\t");
347
System.out.print(Person.getArrGuest().get(i).getName() +
"\t");
348
System.out.print(Person.getArrGuest().get(i).getTel() +
"\t");
349
if (Person.getArrGuest().get(i).isMember() == true) {
350
System.out.print("Yes\n");
351
} else {
352
System.out.print("No\n");
353
}
354
}
355
}
356
357
private static void listResorts() {
358
359
System.out.println("S/No\tR Id\tBlock\tUnit
N\tWifi/BbqPit\tRate($)");
360
361
int tempCounter = 0;
362
363
for (int i = 0; i < Bungalow.getArrBungalow().size(); i++) {
364
System.out.print((i + 1) + "\t");
365
System.out.print(Bungalow.getArrBungalow().get(i).getResortId() + "\t");

366
System.out.print(Bungalow.getArrBungalow().get(i).getBlock()
+ "\t");
367
System.out.print(" ---- " + "\t");
368
369
if (Bungalow.getArrBungalow().get(i).isWifi() == true) {
370
System.out.print("Yes\t\t");
371
} else {
372
System.out.print("No\t\t");
373
}
374
375
System.out.println(Bungalow.getArrBungalow().get(i).getRate());
376
377
tempCounter = i;
378
}
379
380
for (int i = 0; i < Chalet.getArrChalet().size(); i++) {
381
System.out.print((i + tempCounter + 2) + "\t");
382
System.out.print(Chalet.getArrChalet().get(i).getResortId()
+ "\t");
383
System.out.print(Chalet.getArrChalet().get(i).getBlock() +
"\t");
384
System.out.print(Chalet.getArrChalet().get(i).getUnitNumber() + "\t");
385
386
if (Chalet.getArrChalet().get(i).isBbqPit() == true) {
387
System.out.print("Yes\t\t");
388
} else {
389
System.out.print("No\t\t");
390
}
391
392
System.out.println(Chalet.getArrChalet().get(i).getRate());
393
}
394
395
396
}
397 }
398

1 //============================================================
2 // Student Number : S10097706E
3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10
11 public class Bungalow extends Resort {
12
13
private boolean wifi;
14
private double wifiCharge;
15
private static ArrayList<Bungalow> arrBungalow;
16
17
public Bungalow() {
18
}
19
20
//overloaded constructor
21
public Bungalow(int resId, String b, int r, boolean w, double
wCharge) {
22
23
setResortId(resId);
24
setBlock(b);
25
setRate(r);
26
wifi = w;
27
wifiCharge = wCharge;
28
saveBungalow();
29
}
30 //------------------------getters and setters--------------------------31
32
public boolean isWifi() {
33
return wifi;
34
}
35
36
public void setWifi(boolean wifi) {
37
this.wifi = wifi;
38
}
39
40
public double getWifiCharge() {
41
return wifiCharge;
42
}
43
44
public void setWifiCharge(double wifiCharge) {
45
this.wifiCharge = wifiCharge;
46
}
47
48
public static ArrayList<Bungalow> getArrBungalow() {
49
return arrBungalow;
50
}
51
52
public static void setArrBungalow(ArrayList aArrBungalow) {
53
arrBungalow = aArrBungalow;
54
}
55

56
57
58
59
60
61
62
63 }
64

public void saveBungalow() {


if (getArrBungalow() == null) {
setArrBungalow(new ArrayList());
}
getArrBungalow().add(this);
}

1 //============================================================
2 // Student Number : S10097706E
3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10
11 public class Chalet extends Resort {
12
13
private int unitNumber;
14
private boolean bbqPit;
15
private double bbqPitCharge;
16
private static ArrayList<Chalet> arrChalet;
17
18
public Chalet() {
19
}
20
21 //overloaded constructor
22
public Chalet(int resId, String b, int r, int uNum, boolean bbq,
double bbqCharge) {
23
24
setResortId(resId);
25
setBlock(b);
26
setRate(r);
27
unitNumber = uNum;
28
bbqPit = bbq;
29
bbqPitCharge = bbqCharge;
30
saveChalet();
31
32
}
33 //------------------------getters and setters--------------------------34
35
public int getUnitNumber() {
36
return unitNumber;
37
}
38
39
public void setUnitNumber(int unitNumber) {
40
this.unitNumber = unitNumber;
41
}
42
43
public boolean isBbqPit() {
44
return bbqPit;
45
}
46
47
public void setBbqPit(boolean bbqPit) {
48
this.bbqPit = bbqPit;
49
}
50
51
public double getBbqPitCharge() {
52
return bbqPitCharge;
53
}
54
55
public void setBbqPitCharge(double bbqPitCharge) {

56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 }
75

this.bbqPitCharge = bbqPitCharge;
}
public static ArrayList<Chalet> getArrChalet() {
return arrChalet;
}
public static void setArrChalet(ArrayList aArrChalet) {
arrChalet = aArrChalet;
}
public void saveChalet() {
if (getArrChalet() == null) {
setArrChalet(new ArrayList());
}
getArrChalet().add(this);
}

1 //============================================================
2 // Student Number : S10097706E
3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10
11 public class Person {
12
13
private String icNo;
14
private String name;
15
private String tel;
16
private boolean member;
17
private static ArrayList<Person> arrGuest;
18
private static ArrayList<Rental> rentalList;
19
20
public Person() {
21
}
22
23 //overloaded constructor
24
public Person(String icNum, String n, String t, boolean m) {
25
26
icNo = icNum;
27
name = n;
28
tel = t;
29
member = m;
30
31
savePerson();
32
}
33
34
public static ArrayList<Person> getArrGuest() {
35
return arrGuest;
36
}
37
38
public static void setArrGuest(ArrayList aArrGuest) {
39
arrGuest = aArrGuest;
40
}
41
42
public static ArrayList<Rental> getRentalList() {
43
return rentalList;
44
}
45
46
public static void setRentalList(ArrayList<Rental> aRentalList) {
47
rentalList = aRentalList;
48
}
49
50
public String getIcNo() {
51
return icNo;
52
}
53
54
public void setIcNo(String icNo) {
55
this.icNo = icNo;
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

public String getName() {


return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public boolean isMember() {
return member;
}
public void setMember(boolean member) {
this.member = member;
}
private void savePerson() {
if (getArrGuest() == null) {
setArrGuest(new ArrayList());
}
getArrGuest().add(this);
}
public void addRental(Rental someRental) {
if (getRentalList() == null) {
setRentalList(new ArrayList());
}
getRentalList().add(someRental);
}

1 //============================================================
2 // Student Number : S10097706E
3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10 import java.util.Calendar;
11
12 public class Rental {
13
14
private int counter;
15
private int rentalNo;
16
private Person guest;
17
private Calendar arrivalDate;
18
private Calendar departureDate;
19
private Resort resort;
20
private static ArrayList<Rental> arrRental;
21
22 //----------------constructors-------------------------------------------23
public Rental() {
24
}
25
26
//overloaded constructor
27
public Rental(Person personGuest, Calendar arrDate, Calendar
depDate, Resort res) {
28
counter = 1;
29
rentalNo = 1;
30
guest = personGuest;
31
arrivalDate = arrDate;
32
departureDate = depDate;
33
resort = res;
34
35
saveRental();
36
}
37
38 //----------------------getters and setters-------------------------------39
public int getCounter() {
40
return counter;
41
}
42
43
public void setCounter(int counter) {
44
this.counter = counter;
45
}
46
47
public int getRentalNo() {
48
return rentalNo;
49
}
50
51
public void setRentalNo(int rentalNo) {
52
this.rentalNo = rentalNo;
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

public Person getGuest() {


return guest;
}
public void setGuest(Person guest) {
this.guest = guest;
}
public Calendar getArrivalDate() {
return arrivalDate;
}
public void setArrivalDate(Calendar arrivalDate) {
this.arrivalDate = arrivalDate;
}
public Calendar getDepartureDate() {
return departureDate;
}
public void setDepartureDate(Calendar departureDate) {
this.departureDate = departureDate;
}
public Resort getResort() {
return resort;
}
public void setResort(Resort resort) {
this.resort = resort;
}
public static ArrayList<Rental> getArrRental() {
return arrRental;
}
public static void setArrRental(ArrayList<Rental> aArrRental) {
arrRental = aArrRental;
}
private void saveRental() {
if (getArrRental() == null) {
setArrRental(new ArrayList());
}
getArrRental().add(this);
}

1 //============================================================
2 // Student Number : S10097706E
3 // Student Name
: Leong Jun Wei
4 // Module Group : IT05
5 //============================================================
6
7 package resortms;
8
9 import java.util.ArrayList;
10
11 public abstract class Resort {
12
13
private int resortId;
14
private String block;
15
private int rate;
16
17
18
public Resort() {
19
20
}
21
22 //------------------------getters and setters--------------------------23
public int getResortId() {
24
return resortId;
25
}
26
public void setResortId(int resortId) {
28
this.resortId = resortId;
29
}
30
31
public String getBlock() {
32
return block;
33
}
34
35
public void setBlock(String block) {
36
this.block = block;
37
}
38
39
public int getRate() {
40
return rate;
41
}
42
43
public void setRate(int rate) {
44
this.rate = rate;
45
}
46
47
48 }
49

Das könnte Ihnen auch gefallen