A C# console program showing composition among classes
You work in a travel company and are upgrading the programs they use to make reservations. Reservations are made by customers for hotel rooms at different destinations. The reservations also include the airline ticket information. However, this information is stored in several different tables in the database. Your project manager informs you that you have to model the classes in your program based on the tables in the database….but that saving the information and reading them will be done later.
…….You ask one of the other programmers how to do this and your coworker says “What you need to do is to have the Flight and Room as separate classes and then make a Reservation class that has one of each of them as internal objects. The system is going to be passing all of them together to different places too and it would be better to do it as a composite object because that’s the way we think about it in our company.”
Create a class called Flight with a FlightID (String) and price (decimal). Include a constructor that takes both values, and get() and set() properties for both data attributes.
Create a class called Room with a RoomID (String), HotelName(String), DaysReserved(String to keep it simple here) and price (decimal). Include a constructor that takes all four values, and get() and set() properties for all four data attributes.
Create a class called Reservation that has a Flight Object, Room Object and a CustomerID(String). Include a constructor, get() and set() property for the CustomerID(). You may include get() and set() methods for the Flight and Room objects to work with them like will be shown in a class example during the lecture -or- create the objects first and pass them in through the constructor like the Employee class does with its 2 Dates in chapter 10. (Either way is fine and it is completely up to you.) …Also create a toString() method in the Reservation that reports the reservation price of the flight and the room that are inside it added together, as well as all of the other information including the CustomerID, FlightID, RoomID, HotelName, and DaysReserved.
Note on common errors on similar assignments in past classes:
Do not have a decimal variable to store a price in the Reservation.
Do not have a FlightID, RoomID, HotelName, or DaysReserved in Reservation.
(This data is all stored in the internal objects. Having them in the outer class and not using these values stored in the inner classes will be a major deduction because this assignment is on composition.)
Create a class called ReservationTest that creates 2 Reservations with all of their values, then prints out all of the information for that reservation to the screen for the user.
To make this simpler, you do not have to get the data from the user to put inside of these reservations. You can hard code the values like is done on the dates and employees.