Java: An Introduction to Problem Solving and Programming (7th Edition)
Java: An Introduction to Problem Solving and Programming (7th Edition)
7th Edition
ISBN: 9780133766264
Author: Walter Savitch
Publisher: PEARSON
bartleby

Videos

Expert Solution & Answer
Book Icon
Chapter 5, Problem 7E

Explanation of Solution

a.

Method heading for each method:

  • • Method heading for change the speed of the boat is “public void changeBoatSpeed(double ns)”.
  • • Method heading for time of operate boat is “public void boatOperateTime(double t)”...

Explanation of Solution

b.

Preconditions and postconditions of each method:

  • • Precondition and postcondition of “changeBoatSpeed” method.
    • ○ Precondition: The “MotorBoat” class object should be completed and the parameter “ns” is passed to the function which is declared in a double type.
    • ○ Postcondition: The boat current speed is assigned to “ns”.
  • • Precondition and postcondition of “boatOperateTime” method.
    • ○ Precondition: The “MotorBoat” class object should be completed and the parameter “t” is passed to the function which is declared in a double type.
    • ○ Postcondition: Amount of fuel is updated by decreasing usage of fuel...

Explanation of Solution

c.

Test class for some Java statement:

//Create object for "MotorBoat" class

MotorBoat boat1 = new MotorBoat();

//Call "setValues" method for object "boat1"

boat1.setValues(5.0, 55.0, 0.001);

//Display given statement

System.out.println("User are trying to travel for 1.0 hour with no fuel.");

//Call "boatOperateTime" method with argument "1".

boat1.boatOperateTime(1.0);

//Display remaining fuel by calling method "computeRemainingFuel"

System.out.println("Fuel left is " + boat1.computeRemainingFuel());

//Display distance travelled by calling method "computeDistanceTraveled"

System.out.println("Distance travelled is " + boat1.computeDistanceTraveled());

//For next line

System.out.println();

//Display given statement

System.out.println("User trying to add 10 gallons of fuel.");

//Display given statement

System.out.println("However they should only be able to hold 5.");

//Call "refuel_Boat" method with argument "10".

boat1.refuel_Boat(10.0);

//Display remaining fuel by calling method "computeRemainingFuel"

System.out.println("Fuel left is " + boat1.computeRemainingFuel());

//Display distance travelled by calling method "computeDistanceTraveled"

System.out.println("Distance travelled is " + boat1.computeDistanceTraveled());

//For next line

System.out.println();

//Display given statement

System.out.println("User are traveling for 1.0 hour with a speed of 0.");

//Call "boatOperateTime" method with argument "1".

boat1.boatOperateTime(1.0);

//Display remaining fuel by calling method "computeRemainingFuel"

System.out.println("Fuel left is " + boat1.computeRemainingFuel());

//Display distance travelled by calling method "computeDistanceTraveled"

System.out.println("Distance travelled is " + boat1.computeDistanceTraveled());

//For next line

System.out.println();     

//Display given statement

System.out.println("User trying to change the speed to 85...

Explanation of Solution

d.

Implementation of class:

MotorBoat.java:

//Import package

import java.util.Scanner;

//Define "MotorBoat" class

public class MotorBoat

{

//Declare required variable in "private" access specifier

    private double fuelTank_capacity;

    private double fuel_In_tank;

    private double maximum_speed;

    private double boat_current_speed;

    private double boat_efficiency;

    private double dist_traveled;

    //Method definition for "setValues"

    public void setValues(double ct, double s, double e)

    {

        //Assign values to given attributes

        fuelTank_capacity = ct;

        fuel_In_tank = 0.0;

        maximum_speed = s;

        boat_current_speed = 0.0;

        boat_efficiency = e;

        dist_traveled = 0.0;

    }

    //Method definition for change boat speed

    public void changeBoatSpeed(double ns)

    {

        //If new speed "ns" is less than "0", then

        if(ns < 0.0)

            //Assign boat current speed to "0"

            boat_current_speed = 0.0;

        //If "ns" is greater than maximum speed, then

        else if (ns > maximum_speed)

//Assign boat current speed to maximum speed

            boat_current_speed = maximum_speed;

        //Otherwise

        else

            //Assign boat current speed to "ns"

            boat_current_speed = ns;

    }

    //Method definition for boat operate time

    public void boatOperateTime(double t)

    {

        //If time "t" is greater than "0", then

        if(t > 0.0 )

        {

            //Compute usage of fuel

double fuelUsage = boat_efficiency * boat_current_speed * boat_current_speed * t;

            //Declare variable for actual time

            double actualTime;

            //Determine if user run out of fuel

            if(fuelUsage > fuel_In_tank)

            {

                //If it is, compute actual time

actualTime = t * (fuel_In_tank/fuelUsage);

                //Assign fuel in tank to "0"

                fuel_In_tank = 0.0;

            }

            //Otherwise

            else

            {

                //Decrement the usage of fuel

                fuel_In_tank -= fuelUsage;

                //Assign actual time to "t"

                actualTime = t;

            }

            //Compute distance travelled

dist_traveled += boat_current_speed * actualTime;

        }

    }

    //Method definition for refuel boat

    public void refuel_Boat(double amt)

    {

        //Check amount of fuel

        if(amt > 0.0)

        {

if (amt + fuel_In_tank > fuelTank_capacity)

                fuel_In_tank = fuelTank_capacity;

            else

                fuel_In_tank += amt;

        }

    }

//Method definition for compute remaining fuel in boat

    public double computeRemainingFuel()

    {

        //Return remaining fuel

        return fuel_In_tank;

    }

    //Method definition for compute distance traveled

    public double computeDistanceTraveled()

    {

        //Return distance traveled

        return dist_traveled;

    }

    //Define main function

    public static void main(String[] args)

    {

        //Create object for "MotorBoat" class

        MotorBoat boat1 = new MotorBoat();

        //Call "setValues" method for object "boat1"

        boat1.setValues(5.0, 55.0, 0.001);

        //Display given statement

System.out.println("User are trying to travel for 1.0 hour with no fuel.");

//Call "boatOperateTime" method with argument "1".

        boat1.boatOperateTime(1.0);

//Display remaining fuel by calling method "computeRemainingFuel"

System.out.println("Fuel left is " + boat1.computeRemainingFuel());

//Display distance travelled by calling method "computeDistanceTraveled"

System.out.println("Distance travelled is " + boat1.computeDistanceTraveled());

        //For next line

        System...

Blurred answer
Students have asked these similar questions
Need help with python code! How do I simplify my code for a beginner to understand, simple fixed format and centering? Such as:  print(f"As an int variable: {age_int:^7}") print(f"In numeric binary: {age_int:^7b}") My Code:name = input("Enter your name: ")print(f"In text name is: {' '.join(name)}")decimal_values = []binary_values = []for letter in name:   ascii_val = ord(letter)   binary_val = format(ascii_val, '08b')   decimal_values.append(str(ascii_val))   binary_values.append(binary_val)# Loop through each letter:print(f"In ASCII decimal: {' '.join(decimal_values)}")print(f"In ASCII binary: {' '.join(binary_values)}")# Ageage_str = input("Enter your age: ")age_int = int(age_str)print(f"As a string \"{age_str}\": {' '.join(age_str)}")age_decimal_values = []age_binary_values = []for digit in age_str:   ascii_val = ord(digit)   binary_val = format(ascii_val, '07b')   age_decimal_values.append(str(ascii_val))   age_binary_values.append(binary_val)print(f"In ASCII decimal: {'…
Don't use chatgpt or any other AI
Don't use chatgpt or any other AI

Chapter 5 Solutions

Java: An Introduction to Problem Solving and Programming (7th Edition)

Additional Engineering Textbook Solutions

Find more solutions based on key concepts
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Operations Research : Applications and Algorithms
Computer Science
ISBN:9780534380588
Author:Wayne L. Winston
Publisher:Brooks Cole
Text book image
Principles of Information Systems (MindTap Course...
Computer Science
ISBN:9781285867168
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Principles of Information Systems (MindTap Course...
Computer Science
ISBN:9781305971776
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning
Text book image
Fundamentals of Information Systems
Computer Science
ISBN:9781305082168
Author:Ralph Stair, George Reynolds
Publisher:Cengage Learning
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
6 Stages of UI Design; Author: DesignerUp;https://www.youtube.com/watch?v=_6Tl2_eM0DE;License: Standard Youtube License