$29
The second programming project involves writing a program that computes the sales tax for a collection of automobiles of different types. This program consists of four classes. The first class is the Automobile class, which contains the automobile’s make and model, and purchase price, which is specified in whole dollars. It should have three methods:
A constructor that allows the make and purchase price to be initialized.
A method named salesTax that returns the base sales tax computed as 5% of the sales price.
A toString method that returns a string containing the make and model of the automobile, the sales price, and the sales tax, appropriately labeled.
The Automobile class has two subclasses. The first is Electric. It has an additional instance variable that contains its weight in pounds stored as an integer. It should have the same three methods:
A constructor that allows the automobile’s make and model, purchase price and weight to be initialized.
An overridden method salesTax that returns the total sales tax. The sales tax for an electric automobile consists of the base sales tax of 5% that applies to all automobiles minus a discount. If the weight is less than 3000 pounds the discount is $200. Otherwise it is $150.
An overridden toString method that returns a string containing the make and model of the automobile, the sales price, sales tax and the weight, appropriately labeled.
The second subclass is Hybrid. It has an additional instance variable that contains the number of miles per gallon stored as an integer. It should have the same three methods:
A constructor that allows the automobile’s make and model, purchase price and miles per gallon to be initialized.
An overridden method salesTax that returns the total sales tax The sales tax for a hybrid automobile consists of the base sales tax of 5% minus a discount. If the number of miles per gallon is less than 40, the discount is $100. Otherwise there is an additional discount of $2 for every mile per gallon in excess of 40.
An overridden toString method that returns a string containing the make and model of the automobile, the sales price, sales tax and the number of miles per gallon, appropriately labeled.
No additional public methods should be included in any of the above three classes.
Finally there should be a fourth class named Project2 that contains the main method. It should generate the GUI shown below:
After entering the information about the make and model, its sales price and the type of the automobile, clicking the Compute Sales Tax button should display the sales tax in the text field to its right. In addition, the object should be stored in an array of type Automobile. That array should allow space for up to the last five automobiles entered.
If non integer values are entering in any of the fields that require integers, an error message should be displayed in a JOptionPane window.
Clicking the Clear Fields button should clear all text fields.
Clicking the Display Report button should produce a report on the console that includes the information about all the automobiles currently stored in the array. An example of the report that should be displayed is shown below:
Make and Model: Toyota Prius
Sales Price: 30000
Sales Tax: 1390.00
Hybrid Vehicle
MPG: 45
Make and Model: Ford Fusion
Sales Price: 21000
Sales Tax: 1050.00
Be sure to follow good programming style, which means making all instance variables private, naming all constants and avoiding the duplication of code. Furthermore you must select enough different kinds of automobiles to completely test the program.
Grading Rubric:
The following grading rubric will be used to determine your grade:
Attribute
Meets
Automobile class
20 points
contains the automobile’s make and model, and purchase
price, which is specified in whole dollars. It should have
three methods:
1.
A constructor that allows the make and purchase price to
be initialized.
2.
A method named salesTax that returns the base sales tax
computed as 5% of the sales price.
3.
A toString method that returns a string containing the
make and model of the automobile, the sales price, and the
sales tax, appropriately labeled.
Electric subclass
20 points
It has an additional instance variable that contains its weight
in pounds stored as an integer. It should have the same three
methods:
1.
A constructor that allows the automobile’s make and
model, purchase price and weight to be initialized.
2.
An overridden method salesTax that returns the total
sales tax. The sales tax for an electric automobile consists of
the base sales tax of 5% that applies to all automobiles
minus a discount. If the weight is less than 3000 pounds the
discount is $200. Otherwise it is $150.
3.
An overridden toString method that returns a string
containing the make and model of the automobile, the sales
price, sales tax and the weight, appropriately labeled.
Hybrid subclass
20 points
contains the number of miles per gallon stored as an integer.
It should have the same three methods:
1. A constructor that allows the automobile’s make and
model, purchase price and miles per gallon to be initialized.
2. An overridden method salesTax that returns the total
sales tax The sales tax for a hybrid automobile consists of
the base sales tax of 5% minus a discount. If the number of
miles per gallon is less than 40, the discount is $100.
Otherwise there is an additional discount of $2 for every
mile per gallon in excess of 40.
3. An overridden toString method that returns a string
containing the make and model of the automobile, the sales
price, sales tax and the number of miles per gallon,
appropriately labeled.
Project 2
20 points
contains the main method. It should generate the GUI
After entering the information about the make and model, its
sales price and the type of the automobile, clicking the
Compute Sales Tax button should display the sales tax in the
text field to its right. In addition, the object should be stored
in an array of type Automobile. That array should allow
space for up to the last five automobiles entered.
If non integer values are entering in any of the fields that
require integers, an error message should be displayed in a
JOptionPane window.
Clicking the Clear Fields button should clear all text fields.
Clicking the Display Report button should produce a report
on the console that includes the information about all the
automobiles currently stored in the array. An example of the
report that should be displayed is shown below:
Make and Model: Toyota Prius
Sales Price: 30000
Sales Tax: 1390.00
Hybrid Vehicle
MPG: 45
Make and Model: Ford Fusion
Sales Price: 21000
Sales Tax: 1050.00
Documentation and Style
20 points
guide
Tests cases provides coverage of code.
Screen captures were provided and labeled for compiling
your code, and running each of your test cases.
Header comments include filename, author, date and brief
purpose of the program.
In-line comments used to describe major functionality of the
code.
Meaningful variable names and prompts applied.
Class names are written in UpperCamelCase.
Variable names are written in lowerCamelCase.
Constant names are in written in All Capitals.
Braces use K&R style.
Declare all instance variables private.
Avoids the duplication of code.