ICT104: Programming Assignment Compiled By: Divya Leekha T1 2019 Page |
1
T12019: ICT104 Program Design and Development
Programming Assignment
Assessment type: Programming Assignment
Purpose: This assessment will allow students to demonstrate their
understanding of Java programming and object oriented concepts, the use
of list classes in collection framework, and the use of graphical features using
swing and applets. This assessment contributes to Learning Outcomes c and
d.
Value: 20%
Due Date: Week 10 Sunday 23:55
Task Details:
Topic: Develop Java application based on the given scenario: individual assignment
Assignment Details:
The context for this assignment (Part 1 and Part 2) is a ‘Milk Consumption App’ for
calculating and displaying milk consumption of a given household. This assignment will test
a student’s knowledge of and skills in writing application software for a particular task,
understanding the business rules of a particular problem, coding these in a computer
program, developing a graphical user interface.
For this assignment, students will use the Java programming language and development will
be on the NetBeans IDE platform.
This assignment consists of 2 stages,
• Part 1: A simple console program (no GUI)
• Part 2: The same but wrapped in a GUI
Milk Consumption App
Preamble: A milk provider business owner has approached you with a request to write a
software application to track the milk usage of their clients.
Following data are gathered for each filling;
a) Amount of milk purchased (x litres) [float]
b) Price of milk (y cents/litre) [integer]
c) Number of days the household could utilize the milk (z days) [float]
ICT104: Programming Assignment Compiled By: Divya Leekha T1 2019 Page |
2
The client requires the application to track the last five such household fillings of milk and
alert if the average cost goes above the threshold as per the following table. (Important:
The value of threshold is as per the last two digits of student ID from the following table.)
Threshold above Last 2 Digits of your Student ID
1) 114.05 cents 00 to 09
2) 114.10 cents 10 to 19
3) 114.15 cents 20 to 29
4) 114.20 cents 30 to 39
5) 114.25 cents 40 to 49
6) 114.30 cents 50 to 59
7) 114.35 cents 60 to 69
8) 114.40 cents 70 to 79
9) 114.45 cents 80 to 89
10) 114.50 cents 90 to 99
A Worked example: Let’s calculate the average milk consumption for a single filling. Using
the notation above;
The average milk consumption (afc1) = x/z (liters per day)
The average cost (ac1) = (x/z)*y (cents per day)
Then for five households;
The overall Average Milk Consumption (afc) = {afc1+ afc2+…+ afc5}/5
The overall Average Cost (ac) = {ac1+ ac2+…+ ac5}/5
ICT104: Programming Assignment Compiled By:.
ICT104 Programming Assignment Compiled By Divya Lee.docx
1. ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
1
T12019: ICT104 Program Design and Development
Programming Assignment
Assessment type: Programming Assignment
Purpose: This assessment will allow students to demonstrate
their
understanding of Java programming and object oriented
concepts, the use
of list classes in collection framework, and the use of graphical
features using
swing and applets. This assessment contributes to Learning
Outcomes c and
d.
Value: 20%
Due Date: Week 10 Sunday 23:55
Task Details:
2. Topic: Develop Java application based on the given scenario:
individual assignment
Assignment Details:
The context for this assignment (Part 1 and Part 2) is a ‘Milk
Consumption App’ for
calculating and displaying milk consumption of a given
household. This assignment will test
a student’s knowledge of and skills in writing application
software for a particular task,
understanding the business rules of a particular problem, coding
these in a computer
program, developing a graphical user interface.
For this assignment, students will use the Java programming
language and development will
be on the NetBeans IDE platform.
This assignment consists of 2 stages,
• Part 1: A simple console program (no GUI)
• Part 2: The same but wrapped in a GUI
Milk Consumption App
Preamble: A milk provider business owner has approached you
with a request to write a
software application to track the milk usage of their clients.
Following data are gathered for each filling;
a) Amount of milk purchased (x litres) [float]
b) Price of milk (y cents/litre) [integer]
3. c) Number of days the household could utilize the milk (z days)
[float]
ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
2
The client requires the application to track the last five such
household fillings of milk and
alert if the average cost goes above the threshold as per the
following table. (Important:
The value of threshold is as per the last two digits of student ID
from the following table.)
Threshold above Last 2 Digits of your Student ID
1) 114.05 cents 00 to 09
2) 114.10 cents 10 to 19
3) 114.15 cents 20 to 29
4) 114.20 cents 30 to 39
5) 114.25 cents 40 to 49
6) 114.30 cents 50 to 59
7) 114.35 cents 60 to 69
4. 8) 114.40 cents 70 to 79
9) 114.45 cents 80 to 89
10) 114.50 cents 90 to 99
A Worked example: Let’s calculate the average milk
consumption for a single filling. Using
the notation above;
The average milk consumption (afc1) = x/z (liters per day)
The average cost (ac1) = (x/z)*y (cents per day)
Then for five households;
The overall Average Milk Consumption (afc) = {afc1+ afc2+…+
afc5}/5
The overall Average Cost (ac) = {ac1+ ac2+…+ ac5}/5
ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
3
You’ll also need to check if ac exceeds client set threshold
warning.
Test Cases
When designing and implementing software applications, it is
5. always important to first work
out how to test the program(s) and what data to use, then to
code. You need to identify at
least 5 test cases. You need to design and systematically test the
two different conditions of
average cost warning.
Submission Instruction
Add all Java files (ending in .java) to a ZIP file. You do not
need to zip the entire project
folder, just the Java source file(s) (the ‘src’ folder).
Part 1:
Write a simple Java program to calculate the average milk
consumption and the average
cost for a single household filling. Then extend this to include
five households and calculate
the overall average milk consumption (afc) and average cost
(ac) for the five households.
You’ll also need to warn the user if the average cost is equal to
higher than the threshold.
In Part 1, you will be developing a Java program without a GUI.
Input and output are via the
console.
When the program is executed, the user will be asked to input
for five consecutive
6. households:
• Amount of milk purchased (in litres)
• Price of ONE litre of milk (in cents)
• The number of days after the filling (in days)
Then the program should display afc and ac for the data and
indicate if the ac is below the
warning level.
ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
4
Hint/Steps for Part 1:
1. Think about your strategy for how you will calculate the afcn
and ac_n for each
filling. And then how you work out the overall afc and ac using
these calculations.
Think about writing simple functions/methods for the repetitive
calculations.
2. Add a simple Java class named Part1. Do not add a GUI.
7. 3. Declare and instantiate the variables that you will need for
Part 1. You will also need
several ArrayLists to hold the milk amount, price, and number
of days, at the start of
the main method, for example (you’ll need to add additional
ArraysLists as well):
Make use of Generics to define your Collection Framework
classes. i.e. ArrayList
4. Add code to read in the data from the user for the five
households. A recommended
way is to use the Scanner class.
5. Now add the code that implements your strategy of
calculating the afc and ac.
6. Finally, add three System.out.println() statements that state
the overall afc, ac and
the warning message if ac exceeds the threshold.
7. Test your implementation with the test cases mentioned
above (and additionally
your own).
Part 2:
Design and implement a Java Swing GUI application (Java
Swing components) that provides
8. an easy to use interface.
This GUI application must allow a user to input the various data
elements. To this end, the
user can
• input the data using Java Swing GUI elements, e.g. text fields,
radio buttons, drop
down lists, etc.
• Click on a Calculate button that starts the calculation of the
final results, and
• An Exit or Quit button to properly close the program.
Use the same code for the calculations from Part 1. Reusing
code is an important part of
software development.
You have a great degree of freedom in what GUI elements you
choose and how you would
like to design the layout of your GUI.
ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
5
9. Notes:
• For this assignment, you do not have to do any checking for
invalid user input (you may
of course, if you want to), for example you do not have to check
whether the user has
typed in a negative number or a zero as discussed earlier.
• Your GUI should update the output labels “Average milk
Consumption “, “Average Cost”
and another label to show a warning if the average cost is
higher when the Calculate
button has been clicked. If “Average Cost” is greater than
threshold then display the
warning message in Red colour.
Hint/Steps for Part 2:
1. Draw a sketch of your graphical user interface on paper.
What Java Swing components
will you use? Where will you place them? The above GUI is just
an example. You are free
to create your own GUI.
2. Add all the components for your GUI. Use Java Swing
components like JFrame, JLabel,
JTextField, JButton.
3. Add event handlers (ActionListeners) for your buttons, radio
buttons, check boxes, etc.
10. 4. Add the code that does the actions, e.g. that does the
calculation for afc and ac. Reuse
your code for the calculation Part 1 by copying and pasting it
from the Part1main
method into the Calculate button’s event handler.
5. Test your application. Run it as a Java Application. Enter the
test cases listed above and
make sure your code adheres to the Java style guide. You need
to manually add more
comments than the automatically generated comments.
Marking Rubrics:
Criteria (Unsatisfact
ory)
Fail
(Satisfactory)
Pass
(Effective)
Credit
(Excellent)
Distinction
(Exceptional)
High Distinction
%
11. Delivery No task
submitte
d.
Complete
d less
than 50%
of the
requirem
ents. Not
submitte
d in
correct
format
Completed
between
5075% of the
requirements.
Submitted in
correct format
Completed
between
12. 7585% of the
requirements.
Submitted in
correct format
Completed
between
8595% of the
requirements.
Submitted in
correct format
Completed
between 95-100%
of the
requirements.
Submitted in
correct format
3
13. ICT104: Programming Assignment Compiled By: Divya
Leekha T1 2019 Page |
6
Coding
Standards
No name,
date, or
assignment
title
included.
Poor use of
white
space
(indentatio
n, blank
lines).
Disorganiz
ed and
messy.
Poor use
of
variables
(many
global
14. variables,
ambiguo
us
naming).
Missing
information on
name, date, or
assignment
title included.
White space
(indentation,
blank lines)
used properly.
Organized
work use of
variables
(many global
variables,
ambiguous
naming).
Includes name,
date, and
assignment title.
White space
makes
program fairly
easy to read.
Organized
work. Good
use of
15. variables (few
global
variables,
unambiguous
naming).
Includes name,
date, and
assignment title.
Good use of
white space.
Organized
work. Good
use of
variables (no
global
variables,
unambiguous
naming).
Includes name,
date, and
assignment title.
Excellent use of
white space.
Creatively
organized work.
Excellent use of
variables (no
global variables,
unambiguous
naming).
19. some warning
errors.
Executes
without errors.
User prompts
contain little
information,
poor design.
Some testing
has been
completed.
Executes
without errors.
User prompts
are
understandable,
minimum use of
symbols or
spacing in
output.
Thorough testing
has been
completed
Executes without
20. errors excellent
user prompts,
good use of
symbols, spacing
in output.
Thorough and
organized testing
has been
completed and
output from test
cases is included.
3
Efficiency
A difficult
and
inefficient
solution.
A solution which
provides
some answer
21. but not
efficient.
A logical
solution that is
easy to follow
but it is not the
most efficient.
Solution
is
efficient and
easy to follow
(i.e. no
confusing tricks).