I need a banking program using superclasses and subclasses, I already have a template of some of the code so it does not need to be started from scratch.
I am also willing to wait a bit longer, until around monday afternoon.
Unit
CourseworkI
Weighting:
35%
Qualifying mark
30%
Description
Apply computing principles for programming and algorithmic
design. Case study: “Money Supermarket” comparisons for
savings accounts
Learning Outcomes Covered
All learning outcomes in relation with fundamentals in programming and
in this Assignment:
algorithmic design.
Handed Out:
11th February 2013
Due Date
11th March 2013, 10:00am
Coursework Description
The real-world problem statement:
For this assignment, you will need to build on top of the indicative solutions for all first tutorial exercises (i.e., weeks 16 to 19), which shall be extended towards the expected deliverables for this assignment. More specific, you need to address the following requirements:
a) Visit the URL http://www.moneysupermarket.com/savings/ and get an overview of all possible categories of savings accounts, e.g., Easy Access, Cash ISAs, Peer-to-peer. Please note that you also need to click on each of these categories in order to get an overview of all possible subcategories. For instance, short term fixed rate ISAs (up to 1 year), medium term fixed rate ISAs (up to 2 years), long term fixed rate ISAs (3+ years), are all subcategories of Cash ISAs as a type of savings account.
Programming design: Based on the categorisation scheme for savings accounts as of the URL above, you are expected to design an Object-Oriented software framework, in terms of abstract classes and methods, which is capable of capturing all necessary information about ALL different types of savings accounts. In particular:
Your programming design shall address, apart from the categorisation scheme of savings accounts to become your input for the definition of your classes, any available structural information, which is used to perform comparisons. The latter shall become input for the expected fields (i. e., instance variables) and constructors. For example, Easy Access accounts have attributes like, besides the name of the financial service provider, Account Name, Interest Rate (AER), Minimum Investment, Notice, Access, Product Review, plus a list of advantages (marked in green) and disadvantages (marked in yellow).
The values of attributes indicate the data type to be chosen for each field. For instance, Nationwide, Nationwide BS MySave Online Plus, 2%, £1000, Instant, are corresponding values for the financial product
Easy Access Accounts.
Your programming design shall take into consideration only getters and setters as methods. Setters are methods, which set values for particular fields, e.g., Minimum Investment = £1000, whereas getters are methods, which return the values for particular fields.
Algorithmic design I: Based on (a) and (b) above, specify an algorithm, in pseudo—code and in terms of the fundamental control structures, for ordering – in ascending alphabetical order of the names of the financial service providers – the lists of financial products of a specific category of savings accounts. Subsequently, define an abstract method to include the algorithm in pseudo-code only, by also deciding which abstract class to adhere to.
Algorithmic design II: Based on (a) and (b) above, specify an algorithm, in pseudo—code and in terms of the fundamental control structures, for calculating the interest on deposits for certain categories of savings accounts, when applicable. Subsequently, define an abstract method to include the algorithm in pseudo-code, by also deciding which abstract class to adhere to.
Implementation: Implement the algorithms I and II, as of (c) and (d) above, by taking into consideration your programming design as of (b) above. For your implementation, you may need to turn abstract classes and methods into concrete ones. Your implementation shall demonstrate the correctness of the algorithms in terms of test categories for savings accounts, i.e, classes, and their corresponding financial products, i.e., objects being created, instantiated and ordered as members of corresponding classes.
Your submission:
A zipped file including two folders with the following contents:
1) Source code for deliverables (b), (c) and (d), i.e., programming and algorithmic design in terms of abstract classes/methods and pseudo-code based specification of the algorithms.
2) Source code for deliverable (e), i.e., implementation of the algorithms and, therefore, the abstract classes/methods of the programming and algorithmic design.
Both versions of the source code shall include block comments, which shall comply with the style guidelines as indicated by the programming assignment checklist below, ‘how should I format and comment my code?’
IMPORTANT: Submissions including executable code only or unrecognisable formats will be zero marked.The work you submit must be a zipped file including source code ONLY.
Which programming environment should I use? NetBeans
Coursework Marking scheme
The Coursework will be marked based on the following marking criteria:
Criteria
Mark per
Mark
Comments
component
provided
Coursework main component
70 (
sum of
main
components
)
Component B.1
10
Component B.2
5
Component B.3
10
Component C: Algorithmic design I
15
Component D: Algorithmic design II
10
Component E: Implementation
20
Compilation, style and API
30 (sum of
components
below)
Compilation
returns
no
serious
10
warnings or errors
Style obeys the style guidelines (check
10
programming
assignment
checklist
above)
All methods have been implemented
10
with comments to be used as API (e.g.,
check javadoc, Java API, C++
documentation of libraries)
Total
100