Hello, I download your source code, and simply checked it.
I found below issues:
1, PUBLIC fields -> it's better to use public property and private field.
2, fields initialization -> I advise you that initial the reference type fields in the constructor without parameter, to avoid null reference exception. Sometimes you may initialize the object and add object to a property whose type is a List, but the list is not initialized, it's a null.
3, ArrayList -> I advise to use Generic List, List<T> which is type safe and high performance, you don't need to convert type.
4, Logic related:
4.1 I see you use A,B,C,D,E... to distinguish different room, why not use enum, I also find that the room class is matched to the deck description, for example: Deck 1 - Inside Twin map to H etc.
Why not create a map in the code.
OK now, above is my idea how to refine the code.
About UML diagram. Could I use Visual Studio 2015 to create the UML diagram?
About the new requirement: we need to add some objects.
Membership - class, this class contains a MembershipLevel value and the discount for this type of member.
MembershipLevel - enum, contains all Membership values: Bronze, Silver, Gold, Platinum
Then we need to add a field or maybe 2 to the customer class:
IsMember -> bool
MembershipLevel -> MembershipLevel enum type.
About Unit Tests, could I use the built-in test framework in Visual Studio? You can run these tests with VS.
Above are all my plan, could you please contact me, let's start