![Java: An Introduction to Problem Solving and Programming (7th Edition)](https://www.bartleby.com/isbn_cover_images/9780133766264/9780133766264_largeCoverImage.gif)
Tax computation
Program plan:
- • Define the class “TaxComputer”.
- ○ Declare the necessary constant variables.
- ○ Define the method “changeBasicRateTo()”.
- ■ Assign “newRate” into the variable “basicRate”.
- ○ Define the method “changeLuxuryRateTo()”.
- ■ Assign “newRate” into the variable “luxuryRate”.
- ○ Define the method “computeCostBasic()”.
- ■ Calculate “tax”, and “price”.
- ■ Return the value.
- ○ Define the method “computeCostLuxury()”.
- ■ Calculate “tax”, and “price”.
- ■ Return the value.
- ○ Define the method “roundToNearestPenny()”.
- ■ Calculate the price.
- ■ Return the value.
- ○ Define the “main()” function.
- ■ Print the result by calling the appropriate methods.
![Check Mark](/static/check-mark.png)
Program to display the tax computation of the computer.
Explanation of Solution
Program:
//Define the class
public class TaxComputer
{
//Declare the necessary constant variables
private static double basicRate = 4.0;
private static double luxuryRate = 10.0;
//Define the function changeBasicRateTo()
public static void changeBasicRateTo(double newRate)
{
/*Assign "newRate" into the variable “basicRate”*/
basicRate = newRate;
}
//Define the function changeLuxuryRateTo()
public static void changeLuxuryRateTo(double newRate)
{
/*Assign "newRate" into the variable “luxuryRate”*/
luxuryRate = newRate;
}
//Define the function computeCostBasic()
public static double computeCostBasic(double price)
{
//Calculate the “tax”
double tax = price * basicRate / 100;
//Calculate the “price”
price = price + tax;
//Return the value
return roundToNearestPenny(price);
}
//Define the function computeCostLuxury()
public static double computeCostLuxury(double price)
{
//Calculate the "tax"
double tax = price * luxuryRate / 100;
//Calculate the "price"
price = price + tax;
//Return the value
return roundToNearestPenny(price);
}
//Define the function roundToNearestPenny()
private static double roundToNearestPenny(double price)
{
//Calculate the "price"
price = price * 100;
price = java.lang.Math.round(price);
//Return the value
return price/100;
}
//Define the main() function
public static void main(String[] args)
{
//Print the statement
System.out.println("Testing the basic rate computation.");
//Print the statement
System.out.println(" Item price no tax:10.00");
//Print the statement
System.out.println("cost with 4% tax: "+ TaxComputer.computeCostBasic(10.00));
//Print the statement
System.out.println("Testing the basic rate computation.");
//Call the function changeBasicRateTo()
TaxComputer.changeBasicRateTo(7.5);
//Print the statement
System.out.println(" Item price no tax: 10.00");
//Print the statement
System.out.println("cost with 7.5% tax: "+ TaxComputer.computeCostBasic(10.00));
//Print the statement
System.out.println("Testing the luxury rate computation.");
//Print the statement
System.out.println(" Item price no tax: 2019.25");
//Print the statement
System.out.println("cost with 10% tax: "+ TaxComputer.computeCostLuxury(2019.25));
//Print the statement
System.out.println("Testing the luxury rate computation.");
//Call the function changeLuxuryRateTo()
TaxComputer.changeLuxuryRateTo(20.0);
//Print the statement
System.out.println(" Item price no tax: 2019.25");
//Print the statement
System.out.println("cost with 20% tax: "+ TaxComputer.computeCostLuxury(2019.25));
//Print the statement
System.out.println("Testing the basic rate again, should still be 7.5%.");
//Print the statement
System.out.println(" Item price no tax: 210.99");
//Print the statement
System.out.println("cost with 7.5% tax: "+ TaxComputer.computeCostBasic(210.99));
}
}
Output:
Testing the basic rate computation.
Item price no tax: 10.00
cost with 4% tax: 10.4
Testing the basic rate computation.
Item price no tax: 10.00
cost with 7.5% tax: 10.75
Testing the luxury rate computation.
Item price no tax: 2019.25
cost with 10% tax: 2221.18
Testing the luxury rate computation.
Item price no tax: 2019.25
cost with 20% tax: 2423.1
Testing the basic rate again, should still be 7.5%.
Item price no tax: 210.99
cost with 7.5% tax: 226.81
Want to see more full solutions like this?
Chapter 6 Solutions
Java: An Introduction to Problem Solving and Programming (7th Edition)
- Modify the Car class example and add the following: A default constructor that initializes strings to “N/A” and numbers to zero. An overloaded constructor that takes in initial values to set your fields (6 parameters). accel() method: a void method that takes a double variable as a parameter and increases the speed of the car by that amount. brake() method: a void method that sets the speed to zero. To test your class, you will need to instantiate at least two different Car objects in the main method in the CarDemo class. Each of your objects should use a different constructor. For the object that uses the default constructor, you will need to invoke the mutator methods to assign values to your fields. Invoke the displayFeatures() method for both objects and display the variables. Demonstrate the use of the accessor method getColor() by accessing the color of each car and printing it to the console. Use the method accel to increase the speed of the first car by 65 mph. Use…arrow_forwardCreate a class Animal with a constructor that takes no parameters and has an instance variable: private int energy; When an animal is "born," it has one unit of energy. It has the methods: public void eat(int amountToEat) - which increases the amount of energy the animal has by amountToEat public void move(int amountToMove) - which decreases the energy the animal has by amountToMove. public int getEnergy() - which returns the amount of energy left Notice there is no setEnergy method. Energy is only changed by eating or moving. You should also create a subclass BetterAnimal which has a cap on the amount of energy an animal can have. The constructor takes a parameter that specifies a maximum for energy. You will need to save this in another instance variable. Override the eat and move methods In the eat method: If the amount the BetterAnimal eats would set its energy above the max, the energy level is only increased to the max. Also energy is only changed if the amount > 0 In…arrow_forwardJava Programming problem Create a checking account class with three attributes: account number, owner’s name, and balance. Create constructor, getters and setters. If one is to set the initial balance of an account as a negative value in a setter or a constructor, remind the user about the error and set it as 0. Create a CheckingAccountDemo class, and create a main method in which Ask for the name, account number, and initial balance for one account from the keyboard input. With these input values as arguments in a call to the constructor, create a CheckingAccount object. Print the summary of this account that includes information on the name, account number, and balance by calling the getters.arrow_forward
- Java - Constructors Create a class named Book that has the following attributes: Publisher - String Year Published - Integer Price - Double Title - String Create a constructor for the class Book that has the parameters from the attributes of the class. After, create a method for the class that displays all attributes. Ask the user for inputs for the attributes and use the constructor to create the object. Lastly, print the values of the attributes. Inputs 1. Publisher 2. Year Published 3. Price 4. Book Title XYZ Publishing 2020 1000.00 How to Win? Sample Output Published: ABC Publishing Year Published: 2022 Price: 150.00 Book Title: Stooping too low Stooping too low is published by ABC Publishing on 2022. It sells at the price of Php150.00.arrow_forwardZOOM + Press Esc to exit full screen Create a new java project named CH46EX 1. Create a class named Student 1. 2 private instance data fields – student name, student id 2. 1 final and static constant for a COLLEGE, set to "Fullerton" Create one programmer written constructor that accepts parameters for two instance data fields during instantiation Create a static method named demoStaticMethod ()-see output 3. | - print message, print college 4. Create a non-static method named demoObjectMethod ()– see output - print message, college, student name, student id 2. Create an application named StudentDemo 1. Create/instantiate 1 student object 2. Call each method correctly This demo is a static method Fullerton 3. Expected Output > This demo is a non-static method Fullerton Name: Wyle Coyote ID: 456arrow_forward1. Write an app that computes student average2. Create a class called Student3. Use the init () function to collect the student information: name, math, science, and English grade4. Create a method (class function) that computes the average5. Create another method that outputs (similarly to) the ff when calledName: John Math: 90Science: 90English: 90Average: 90 (Passed)6. Instantiate a Student object and utilize the defined methods***Let the user input that student infoarrow_forward
- An artist's discography includes several albums. Each album includes several songs. We want to model the Discography, Album and Song classes as follows • a discography has a single artist attribute and a total_time method that returns the total minutes corresponding to the artist's entire discography • an album has a single name attribute and a total_time method that returns the total minutes for the songs on the album a song has two attributes: title and duration and a duration method that returns the duration in minutes of the song • we want to take advantage of the composite pattern so that the duration method delivers the total number of minutes of a song, album or the entire discography of the artist depending on the object in question a) Draw a UML class diagram showing the solution b) Write the Ruby code that implements itarrow_forwardWrite the Circle class:• A Circle has a radius– Add instance variable– 2 constructors – one should be the default or no args– Add accessor and mutator method for each instance variable– Add methods to calculate Area, Perimeter, and Diameter– Write a printArea method in the main program which receives an object circleand “times” integer– printArea() will print the radius and area of objects “times” time by changingthe radius of object.public static void printAreas(Circle c, int times) {System.out.println("Radius \t\t Area");while (times>=1) {//print the radius and area here// create a new object by changing the radius heretimes--;}}//end of printAreasarrow_forwardModify the Date class below by adding a new method called nextDay() that increments the Date by 1 when called and returns a new Date object. This method should properly increment the Date across Month boundary (i.e from the last day of the month to the first day of the next month). //Date class declaration public class Date { private int month; // 1-12 private int day; // 1-31 based on month private int year; // any year private static final int [] daysPerMonth = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //constructor: confirm proper value for month and day given the year public Date (int month, int day, int year) { //check if month in range if (month <=0 II month > 12) { throw new IllegalArgumentException( “month (“ + month + “) must be 1-12”); } //check if day in range for month if…arrow_forward
- Modify the Date class below by adding a new method called nextDay() that increments the Date by 1 when called and returns a new Date object. This method should properly increment the Date across Month boundary (i.e from the last day of the month to the first day of the next month). //Date class declaration public class Date { private int month; // 1-12 private int day; // 1-31 based on month private int year; // any year private static final int [] daysPerMonth = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //constructor: confirm proper value for month and day given the year public Date (int month, int day, int year) { //check if month in range if (month <=0 II month > 12) { throw new IllegalArgumentException( “month (“ + month + “) must be 1-12”); } //check if day in range for month if…arrow_forwardShape Class JAVA Implement the Shapehierarchy shown in figure below. Shape TwoDimensionalShape ThreeDimensionalShape Circle Square Sphere Cube Each TwoDimensionalShape should contain method getArea to calculate thearea of the two-dimensional shape. • Each ThreeDimensionalShape should have methods getArea and getVolume tocalculate the surface area and volume, respectively, of the three- dimensional shape. Add OneDimensionalShape with sub classes , and add more shapes to classes (TwoDimensionalShape , ThreeDimensionalShape ). Create a program that uses an array of Shape references to objects of each concrete class in the hierarchy. The program should print a text description of the object to which each array element refers. • Also, in the loop that processes all the shapes in the array, determine OneDimensionalShape, whether each shape is a TwoDimensionalShape or a ThreeDimensionalShape. If it is a TwoDimensionalShape, it is display ThreeDimensionalShape, display its area and volume. its…arrow_forwardAnimals need energy to move. They get energy from eating food while moving consumes energy. Create a class Animal with a constructor that takes no parameters and has an instance variable: private int energy; When an animal is "born," it has one unit of energy. It has the methods public void eat(int amountToEat) - which increases the amount of energy the animal has by amountToEat public void move(int amountToMove) - which decreases the energy the animal has by amountToMove. public int getEnergy() - which returns the amount of energy left Notice there is no setEnergy method. Energy is only changed by eating or moving. Since it isn't realistic for animals to be able to gather infinite amounts of energy, to have negative energy or to eat or move a negative amount, you should create a subclass BetterAnimal which has a cap on the amount of energy an animal can have. The constructor takes a parameter that specifies a maximum for energy. You will need to save this in another instance…arrow_forward
- EBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT
![Text book image](https://www.bartleby.com/isbn_cover_images/9781337671385/9781337671385_smallCoverImage.jpg)