Individual CW 2016-17 HKUSPACE
CCE1010, Programming for Data Communication and Problem Solving
Professor Orhan Gemikonakli, Middlesex University, London, UK Page 1
CW 3: Individual Work (30%)
You are asked to develop a GUI based Tax Calculator using JavaFX (see details below). There will be tasks of graded
difficulty to enable all students to achieve something according to their abilities. Marks will be obtained accordingly.
Both yearly tax and national insurance (NI) should be calculated. Then, these should be divided by 12 for monthly
income tax and NI respectively.
Input: Annual income (before tax)
Output: Display the following output on the GUI you develop:
i. Annual tax
ii. Tax per month (Annual tax/12)
iii. Annual NI payments
iv. Monthly NI payments (Annual NI payments/12)
v. Net monthly income ((Annual Income – annual tax – annual NI) / 12)
Demonstration date: during scheduled class hours.
Submission Date: Submit online the source code as a zip file exported from NetBeans by Friday, 07 April 2017. NO
REPORT, just source code please. Failure to submit source code (deduction of 20 marks)
The task
1. For achieving a bare pass (bottom end of third class, maximum 42%): A GUI based, stand-alone application
to take tax and NI rates together with thresholds shown in Table 1 as input, calculate and produce the
output given above. All calculations are performed on the machine the application is installed. No client-
server.
2. For 3rd class/Pass (43% – 49%): As in 1, but with file input-output. The information in Table 1 to be stored in a
file. Following the calculations, results to be displayed on GUI and also written to a file.
3. For Lower Second Class/Pass (50% – 59%): As in 2, but with client-server communication. The information
given in Table 1 should be kept in a file at server side. Transmit data as string.
4. For Upper Second Class/Merit (60% – 69%): As in 3, but use ArrayList and transfer information between
client and server as objects. After tax details (Table 1) are received, the calculations are to be performed on
client side.
5. For First Class/Distinction (70% or more): As in 4, but all calculations to be performed on server side and
results to be transferred to client. All file operations to take place at server side. Add animations (e.g.
animating file transfer to show activity) – maximum 80%. Challenge: Introduce multi-threading (for 81% or
higher) – this will require independent learning. More challenge: Replace files with a database of tables and
use JDBC and SQL (optional).
Income per year
(thresholds)
Tax rate Income per year National Insurance rate
£0 – £11,000 0% £0 – £8060 0%
£11,001 – £43,000 20% £8061 – £43,000 12%
£43,001 – £150,000 40% Over £43,000 2%
Over £150,000 45%
Table 1: Tax allowance, tax rates, and NI rates for 2016-17
CCE1010, Programming for Data Communication and Problem Solving
Professor Orhan Gemikonakli, Middlesex University, London, UK Page 2
Task Summary (by Vincent Ching)
Mark
Range
Correct Completion on Client Side Server Side File I/O Data
Transmit
40-42 A GUI based (MUST use JavaFX), stand-alone
application to take tax and NI rates together
with thresholds shown in Table 1 as input,
calculate and produce the output given above.
All calculations are performed on the machine
the application is installed.
No client-server.
Stand-alone PC No No
43-49 All above correct plus file input-output.
Following the calculations, results to be
displayed on GUI and also written to a file.
Stand-alone PC Write
Result to
FIle
No
50-59 All above correct plus client-server
communication.
The information given in Table 1 should be kept
in a file at server side. Transmit data as string.
Do
Calculation
Keep
Table 1
Write
Result to
File
(on Client)
Table 1
(S->C)
(String)
60-69 All above correct plus use ArrayList and
transfer information between client and server
as objects.
After tax details (Table 1) are received, the
calculations are to be performed on client side.
Do
Calculation
Keep
Table 1
Write
Result to
File
(on Client)
Table 1
(S->C)
(Object)
70-80 All above correct plus all calculations to be
performed on server side and results to be
transferred to client.
All file operations to take place at server side.
Add animations (e.g. animating file transfer to
show activity)
Keep
Table 1 &
Do
Calculation
Write
Result to
File
(on Server)
Income
(C->S)
(String)
Result
(S->C)
(Object)
81-90 All above correct plus multi-threading (Self
Study)
91-100 All above correct plus replace files with a
database of tables and use JDBC and SQL (Self
Study)
Remarks :-
1. Demo deadline is Apr 3 on class, Hard copy report deadline is Apr 7 (Office Hours) to SPACE Counter (Attention
Ms. Sarah Fan), Online submission deadline is also Apr 7 Mid-night (UniHub).
2. Hard copy report includes Cover sheet, Source code & Screen dump (just 1 sample input & result).
3. Mark range is based on correctness, and based on demonstration on class.
4. Mark within range is based on code formatting and comments in code.
5. 20 marks will be deducted if no code submitted or late submitted (including hard copy and online submission).
6. You can use the following site to check your calculation correctness. http://www.uktaxcalculators.co.uk/
7. For all requirements stated, you MUST 100% follow the requirements required. Otherwise, marks will be
deducted.
8. No extra marks for any function which is not stated in the requirements, no matter how good it is. So, don’t
waste time on it.