Assignment 3
GUI & Polymorphism
Before attempting this project, be sure you have completed all of the reading assignments, non-
graded exercises, discussions, and assignments to date.
Design and implement Java program as follows:
1) Implement converter class hierarchy as follows:
a. Converter class which includes:
Private attribute for input of data type double
Default constructor with no parameter which sets input to Double.NaN
Overloaded constructor with input for parameter
Get and set methods for input attribute
Method convert() which returns input value
. TemperatureConverter class which is a child of Converter and includes:
Constructors which call parent constructors
Ove
idden convert() method to convert input (Fahrenheit temperature) to
Celsius and returns the value. If the instance has no input value, it should
eturn Double.NaN
Use the following formula for conversion: C = ((F-32)*5)/9
c. DistanceConverter class which is a child of Converter and includes:
Constructors which call parent constructors
Ove
idden convert() method to convert input (distance in miles) to distance
in kilometers and returns the value. If the instance has no input value, it
should return Double.NaN
d. Use the following formula for conversion: KM = M * 1.609
2) Implement GUIConverter class using JFrame and JPanel as follows:
a. GUI will have 3 buttons: “Distance Converter”, “Temperature Converter”, and
“Exit”.
. When user clicks Exit, the program will terminate
c. When user clicks Distance Converter, an input dialog will pop up where user can type
value and click OK:
d. Once user clicks OK, message dialog will pop up:
e. When user clicks on Temperature button, an input dialog will pop up to input value
and then when clicks OK, the message dialog with pop up with converted result:
f. SUGGESTIONS:
For the input dialog you can use JOptionPane.showInputDialog
The ActionListener for each Converter button should create the appropriate
Converter child instance, set the input, and call its convert() method
For the pop up with converted value you can use
JOptionPane.showMessageDialog
Style and Documentation:
Make sure your Java program is using the recommended style such as:
Javadoc comment up front with your name as author, date, and
ief purpose of the
program
Comments for variables and blocks of code to describe major functionality
Meaningful variable names and prompts
Class names are written in upper CamelCase
Constants are written in All Capitals
Use proper spacing and empty lines to make code human readable
Capture execution:
You should capture and label screen captures associated with compiling your code, and running
the a passing and failing scenario for each functionality
Submission requirements
Deliverables include Java program (.java) and a single Word (or PDF) document. The Java and
Word/PDF files should be named appropriately for the assignment (as indicated in the
SubmissionRequirements document.
The word (or PDF) document should include screen captures showing the successful compiling
and running of each of the test scenario. Test scenarios should include all required functionality
of the program. Each screen capture should be properly labeled clearly indicated what the screen
capture represents.
Submit your files to Assignment 3 submission area no later than the due date listed in your
online classroom.
Grading Ru
ic:
The following grading ru
ic will be used to determine your grade:
Attribute Level
(15-20 points)
Level
(5-15 points)
Level 0
(0 - 5 points)
The Converter class
hierarchy
Co
ect or
almost co
ect
attributes and
inheritance
structure and
polymorphism
(overloading and
ove
iding)
Mistakes in
implementation
Missing or significantly
inco
ect implementation
Welcome screen
with buttons
Co
ect or
almost co
ect
code to display
three buttons
Mistakes in
implementation
Missing or significantly
inco
ect implementation
Distance Converter Co
ect or
almost co
ect
code for distance
converter button
Mistakes in
implementation
Missing or significantly
inco
ect implementation
Temperature
Converter
Co
ect or
almost co
ect
code for
temperature
converter button
Mistakes in
implementation
Missing or significantly
inco
ect implementation
Program
documentation and
style, screen
captures
Co
ect or
almost co
ect
menu, program
comments,
identifiers, and
screen captures
Mistakes or
incomplete menu,
documentation
and/or style, and
screen captures
Missing or significantly
inco
ect menu, documentation
and/or style, or screen captures