Professional Documents
Culture Documents
Lab Test 2 (30 Marks) : Desk Num
Lab Test 2 (30 Marks) : Desk Num
IS Software Foundations
Lab Test 2
General Instructions:
Desk Num:
You
cannot
-
-
[30 marks]
You
are
provided
with
the
following
on
your
workstation
running
Windows
XP:
-
-
-
-
-
-
Include
your
name
as
author
in
the
comments
of
all
your
submitted
source
files.
For
example,
if
your
registered
name
is
"Sotong
TAN"
and
email
ID
is
sotong.tan.2011,
include
the
following
block
of
comments
at
the
beginning
of
each
source
file
(.java)
you
write.
/*
*
Author:
Sotong
TAN
*
Email:
sotong.tan.2012
*/
b)
Follow
standard
Java
coding
conventions
(e.g.
naming
of
getter
and
setter
methods,
choice
of
identifier
names
for
classes,
methods
and
variables)
as
well
as
indent
your
code
correctly.
c)
Ensure
that
all
your
Java
code
can
compile
without
compilation
errors.
They
must
compile
with
any
test
class(es)
that
are
provided.
(You
may
wish
to
comment
out
the
parts
in
your
code,
which
cause
compilation
errors.
Commented
code
will
not
be
marked.)
c)
Place
your
answers
(your
.java
files)
for
each
question
into
the
respective
folders.
E.g.
Your
answer
for
Q3
should
be
in
C:\labtest\answers\<your
email
ID>\Q3
etc.
Only
the
.java
files
in
these
folders
will
be
marked.
All
other
files
will
be
ignored.
At
the
end
of
the
test,
the
contents
of
c:\labtest\answers\
will
be
automatically
copied
to
a
central
server.
Everything
else
on
the
PC
will
not
be
marked.
2014-15/Lab Test 2/
Page 1 of 7
Question 1
[ 10 marks ]
You
are
given
the
source
code
inside
the
folder
Q1-2\.
You
are
given
the
API
for
BrosDate
inside
the
folder
<your
student
ID>\API\.
Note:
You
should
be
making
minimal
changes
to
the
application
to
make
it
work!
Marks
will
be
deducted
for
un-
necessary
modification
or
rewriting
of
the
whole
functionality.
There
are
2
changes
to
the
project.
The
application
is
changed
to
a
self-service
kiosk.
Students
will
need
to
login
to
the
application
and
book
the
facility
themselves.
The
functionality
Cancel
my
Booking
is
added
to
the
application.
To
support
this
functionality,
a
new
attribute
called
cancelled
is
added
to
the
Booking
class.
BrosDate
class
has
computeDateByMinute
and
computeDateByHour
instead
of
the
original
computeDate
method.
A. [4.5
marks]
Try
compiling
the
code
using
the
command
javac
*.java
(or
use
compile.bat).
You
will
see
a
number
of
compilation
errors.
Identify
and
fix
the
compilation
errors.
B. [1.5
marks]
During
login,
if
the
student
enters
the
incorrect
username
the
first
time
round,
he
will
never
be
able
to
log
into
the
system.
Note:
"wronguser"
is
a
invalid
username.
Enter
username>
wronguser
Enter
password>
1234
invalid
username/password
The
username
and
password
is
Enter
username>
fergie
entered
correctly
in
the
second
try.
Enter
password>
1234
invalid
username/password
Enter
username>
2014-15/Lab Test 2/
Page 2 of 7
[2
marks]
In
List
all
Bookings
by
a
student,
the
application
list
only
1
booking
even
though
the
student
has
multiple
bookings.
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
tina
has
2
bookings
5.
Book
a
Facility
1.
Facility
F004
on
8
A pr
2015
3pm
4pm
6.
Cancel
my
Booking
2.
Facility
F004
on
9
Apr
2015
3pm
4pm
7.
Logout
8.
Quit
Application
Enter
your
choice
>
4
Enter
student
ID
>
tina
==
BROS
::
Bookings
by
fergie
==
Facility
Booking
Date/Time
Start
Date/Time
Duration
Room
2-4
07/04/2015
16:24
07/04/2015
15:15
1
D. [2
marks]
The
application
has
a
bug.
It
allows
the
student
to
repeatedly
cancel
a
booking.
Note:
tinas
eDollar
balance
increases
every
time
she
cancels
it.
Enter
username>tina
Enter
password>1234
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
5.
Book
a
Facility
6.
Cancel
Booking
7.
Logout
8.
Quit
Application
Enter
your
choice
>4
Enter
student
ID
>tina
==
BROS
::
Bookings
by
tina
==
Facility
Booking
Date/Time
Start
Date/Time
Duration
Room
2-4
03/04/2015
16:05
08/04/2015
15:00
1
Room
2-4
03/04/2015
16:05
09/04/2015
15:00
1
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
5.
Book
a
Facility
6.
Cancel
Booking
7.
Logout
8.
Quit
Application
Enter
your
choice
>6
2014-15/Lab
Test
2/
Page 3 of 7
2014-15/Lab Test 2/
Page 4 of 7
Question 2
[ 10 marks ]
You
are
given
the
source
code
inside
the
folder
your
thumb
drive:\<your
student
ID>\Q1-2\.
You
are
given
the
API
for
BrosDate
inside
the
folder
your
thumb
drive:\<your
student
ID>\api\.
A. [
5
marks
]
A
user
will
have
to
check
in
within
his
booking
timing
to
utilize
his
booking.
Implement
the
check
in
functionality.
Hint:
i.
Implement
BrosMenus
processCheckIn
to
include
the
necessary
user
interface
logic
&
calling
the
necessary
manager
classes
(e.g.
BookingManager)
ii.
Implement
BookingManagers
retrieveCurrentBookings
to
get
the
list
of
active
bookings(current
time
is
after
bookings
start
time,
and
current
time
is
before
bookings
end
time)
by
the
logged
in
user
that
is
currently
active.
iii.
The
Bookings
checkedIn
attribute
is
set
to
true
when
the
user
checks
in.
Below
is
the
sample
output
for
user
fergie
who
has
logged
in
on
7
Apr
4:35pm.
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
5.
Book
a
Facility
6.
Cancel
my
Booking
7.
Check
In
8.
Logout
9.
Quit
Application
Enter
your
choice
>7
==
BROS
::
Check
In
==
Facility
Booking
Date/Time
Start
Date/Time
Duration
1.
Room
2-3
07/04/2015
15:41
07/04/2015
15:00
2
2.
Room
2-4
07/04/2015
15:41
07/04/2015
16:00
2
Enter
your
choice
>1
The
list
of
active
current
bookings
will
You
have
checked
in
successfully.
differ
depending
on
the
access
time
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
5.
Book
a
Facility
6.
Cancel
my
Booking
7.
Check
In
8.
Logout
9.
Quit
Application
Enter
your
choice
>7
==
BROS
::
Check
In
==
No
booking
available
Press
Enter
to
return
to
Main
Menu
2014-15/Lab
Test
2/
Page 5 of 7
[
5
marks
]
Implemement
the
overriding
functionality.
A
user
can
book
an
existing
booking(i.e.
book
it)
if
the
student
(of
the
original
booking)
did
not
check
in
within
15
minutes
of
his
booking
start
time
to
utilize
his
booking.
You
should
i.
cancel
the
original
booking
(without
refunding)
ii.
create
a
new
booking
Complete
the
method
canOverride
in
Booking
class
and
use
it
to
solve
this
question!
Below
is
the
sample
output
for
user
tina
who
has
logged
in
on
7
Apr
3:35pm,
and
override
fergies
booking
on
F004.
==
BROS
::
Book
a
Facility
==
Enter
a
facility
ID
>
F003
Fergie
has
a
booking
from
5pm
7pm
Enter
start
date
(DD/MM/YYYY)
>
07/04/2015
on
facilty
F003
(cant
be
overridden
at
Enter
start
time
(HH:00)
>
16:00
3:35pm)
Enter
number
of
hours
>
2
Booking
overlaps
with
another
booking.
Please
try
again.
==
BROS
::
Main
Menu
==
1.
List
all
Students
2.
List
all
Facilities
3.
List
all
Bookings
4.
List
all
Bookings
by
a
student
5.
Book
a
Facility
6.
Cancel
Booking
7.
Check
in
8.
Logout
9.
Quit
Application
Enter
your
choice
>5
==
BROS
::
Book
a
Facility
==
Enter
a
facility
ID
>
F003
Enter
start
date
(DD/MM/YYYY)
>
07/04/2015
Enter
start
time
(HH:00)
>
16:00
Enter
number
of
hours
>
1
You
have
successfully
booked
this
facility.
You
have
18
E$
left.
Question 3
[ 10 marks ]
Examine
all
the
source
files
provided
in
the
Q3
folder.
Each
of
these:
Utility1.java,
[
3
marks
]
Utility2.java,
and
[
3
marks
]
Utility3.java,
[
3
marks
]
contains
skeletal
code.
Based
on
the
instructions
in
the
comments,
implement
each
method.
You
are
also
provided
with
several
class
files
(e.g.
Product.class,
Shop.class,
Tenant.class,
ShoppingCenter.class);
refer
to
the
API
documentation
in
the
api
folder
for
how
to
use
them.
These
classes
contain
test
code
(in
the
main
method)
to
help
you
determine
if
you
have
written
your
methods
correctly.
Read
and
understand
how
the
test
code
works
so
that
you
can
use
it
to
your
advantage.
Notes:
1. Do
NOT
change
the
method
signatures.
2. It
is
OK
for
the
ordering
of
the
output
to
be
slightly
different
as
long
as
the
values
match.
2014-15/Lab
Test
2/
Page 6 of 7
Appendix
A
Users
Username
tina
fergie
password
1234
1234
Bookings
Username
tina
fergie
Facility
ID
F004
F003
F004
F003
F004
F003
2014-15/Lab Test 2/
Page 7 of 7