Get Instant Help From 5000+ Experts For
question

Writing: Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Editing:Proofread your work by experts and improve grade at Lowest cost

And Improve Your Grades
myassignmenthelp.com
loader
Phone no. Missing!

Enter phone no. to receive critical updates and urgent messages !

Attach file

Error goes here

Files Missing!

Please upload all relevant files for quick & complete assistance.

Guaranteed Higher Grade!
Free Quote
wave
Personal Finance Assessment: Balance, Savings, and Risk

Question:

The FIRE organisation manages a number of luxury resorts. Each resort consists of a group of small islands offering a range leisure facilities. Each island is connected by a ferry to one of more of the other islands of the resort. When guests arrive, they get a card (like a credit/debit card) which they can use for making payments at the resort. A card records a number of credits, and in this assignment, we are concerned with using cards to pay for ferry journeys. The number of credits on a card depends on the type of card, and guests can always buy more credits. However, before a card can be used to pay for a ferry journey, a number of conditions need to be met

Recently, a number of incidents have occurred, which have convinced FIRE that they need a better system for tracking people at their resorts and they have decided to use the cards to do this. This project will initially be implemented at the Wayward Islands Resort (and then rolled out to other resorts).

System Requirements

FIRE will locate people (guests and staff)  by tracking their cards

A.The following basic functional requirements have been established for the proposed system:

·Display details of the whole resort

·List all cards on all islands of the resort

·List all cards currently on a specified island

·Find the current location of a card

·Authorise a ferry journey, if it meets the required conditions

·Add more credits to a card

·Convert loyalty points into credits (Business cards only)

Marks awarded for tasks below total 120. Your mark will be then converted to a %

Task 1 - simple inheritance

·The Java project RefCwk-students which can be downloaded from Studynet includes a first draft of a Tourist class which currently (and wrongly!!) stores all information and methods of a Tourist card.  Much of its code is also required by other card classes. In this task you should refactor this part of the system to minimise code duplication and take advantage of inheritance. Consider the advantages of an abstract parent class.

·re-factor the current Tourist class so that the information common to all card classes is moves to a parent class called Card, so that Tourist, Business and Employee classes can inherit from it.  Your code for these classes should minimise code duplication and take full advantage of inheritance.

·Tourist, Business and Employee classes should then store data/methods unique to these cards

Task 2 - Testing inheritance

Add a CardTest class which will test your implementation of Task 1. You should include code which:

·creates a polymorphic data structure storing references to the different types of Card objects (use Appendix A).

·show by iterating through your data structure that the runtime system uses the dynamic type of an object to determine which implementation of a method to use.

·include a call to test at least one method defined only in the parent class,  one overridden method and one call to a method which is unique to a subclass

Task 3 - Implementing the basic FIRE system

Your project should have the following classes:

·class Card and it subclasses , as described in tasks 1 & 2 above

·class Island & class Ferry should include:

·suitable fields as specified above.

·a suitable range of accessors/mutators to process data held by the class

·a method toString()which returns a String representation of an object of that class.

·Island should include a collection to store the reference of cards. Ensure relevant parameters are passed to the constructor

·Ferry class should have a source island and a destination island to show its journey. These two island objects together with the ferry code should be passed as parameters to the island constructor.

Without these classes you will find it difficult to develop the remaining classes. To begin with, you do not need to fully implement these classes,  but may add further fields/methods as your develop your solutions

Your implementation should have :

·three collections to store references to:all islands, all ferries & all cards

·the collection of all islands should be an Arraylist where the position of the island in the ArrayList is the same as its number i.e. Island 0 should be in location 0 of the ArrayList

·for ease of programming, all ferries could be a HashMap (with the ferry code as the key)

·cards may be stored in whatever type of collection you consider suitable

·a constructor which

·sets the resort location from a parameter value (see constructor header)

·it should then call two private methods,  defined at the end of the class

·loadIslandsAndFerries - which creates all the islands in Appendix A, and adds them to the collection of islands. These should be added in the order of their id numbers. It also creates all ferries (passing island objects as parameters to their constructors) and adds them to the collection of ferries.

·loadCards - should create all cards and add them to the collection of cards

·Finally, the constructor should add all of the cards to the “Base” island

Task 4 - System Testing

You can test your code by running the ResortUI but you will eventually find this tedious.  So, we have provided a skeleton Tester class which:

·declares a variable of class ResortControl.  Since ResortControl is an interface. an object of the Resort class (using polymorphic creation) is created for the Wayward Islands resort.

·already has a main() to make it runnable (see ResortUI & ResortGUI main())

·has  a doTest() method in which you should write code to call methods on the ResortControl variable in a way which tests your system and demonstrates that it works according to specification. You should include appropriate output to the terminal window. You must also use comments to explain what is being tested.

Marks for this task will be awarded for:

·the appropriate choice of data,

·the sequencing of method calls

·explanations of tests.

We are looking for evidence of a systematic approach to testing and will expect you to show that you have identified and tested for the main events likely to occur when the system is running. At this stage, you may ignore the situation where a card visits an island but has insufficient credits to return to the "Base" island.

Task 5 - System Documentation

You should produce::

·a visually neat and readable UML-style class diagram of your system within the BlueJ project

·program code should be well documented, displaying both agreed standards of internal documentation and good use of the facilities available in Javadoc. (ResortControl is already well documented)

Task 6 - Demonstration

At the time shown below (AFTER the assignment hand-in) , you will be asked to demonstrate that you have a good working knowledge of the code that you submitted. This will require you to have:

·internet access to Studynet at the start and end of specified time

·BlueJ. set up on your own computer You will be asked to

·download to your computer, your original project and the written demo specification posted to Studynet.  

·In a timed session of 100 minutes, make the specified changes to the project on your own computer

·then upload ther zipped amended project to the RefCwk - Demo assignment slot.

Note: you do not need to have internet access for the whole session. It will be enough if you download at the beginning of the session, work on your computer during the session and upload the result at the end of the session.  However, you should be aware that uploading at the end may take time and should allow at least  5 mins before the end time for uploading.

The main purpose of the demonstration is to authenticate your code by showing that you know it well enough to use it and make these changes. If you do not undertake this demonstration, your assignment will get ZERO marks.

You may be asked to:

·add a card tester class

·write a demo class to test the functionality of your system

·add a specified card subclass

·add a new class, or methods to an existing class

·amend Resort to create a resort with small changes to the Wayward Island Resort

 

support
close