Java: Intro. to Prob. Solv... (Looseleaf)
Java: Intro. to Prob. Solv... (Looseleaf)
7th Edition
ISBN: 9780133841084
Author: SAVITCH
Publisher: PEARSON
Question
Book Icon
Chapter 8, Problem 2PP
Program Plan Intro

Displaying right arrow and left arrow

Program Plan:

Filename: Test.java

  • • Include the required header files.
  • • Define the class “Test”.
  • • Define main function.
    • ○ Create an object for scanner.
    • ○ Declare the character variable.
    • ○ The “do-while” condition is used to get the user response to do the operation once again.
      • ■ Create the objects “a1” and “b1” for “LeftArrow” and “RightArrow” classes.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Create the objects “a2” and “b2” for “LeftArrow” and “RightArrow” classes.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Create the objects “a3” and “b3” for “LeftArrow” and “RightArrow” classes.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Change the value of offset from 0 to 1 and call the method “writeOutput” using both the objects.
      • ■ Call the method “setOffset” using both the objects.
      • ■ Change the value of offset from 0 to 2 and call the method “writeOutput” using both the objects.
      • ■ Call the method “setTail” using both the objects.
      • ■ Change the value of offset from 3 to 10 and call the method “writeOutput” using both the objects.
      • ■ Call the method “setBase” using both the objects.
      • ■ Test the write offset values for both arrows by calling “writeOffset” method.
      • ■ Test the return offset for both arrows by calling “getOffset” method.
      • ■ Test the write tail for both arrows by calling “writeTail” method.
      • ■ Test the return tail for both arrows by calling “getTail” method.
      • ■ Test the write base for both arrows by calling “writeBase” method.
      • ■ Test the return tail for both arrows by calling “getBase” method.
      • ■ Reset the values and call “set” method.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Call the “drawHere” method using both the objects.
      • ■ Reset the values and call “set” method.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Call the “drawHere” method using both the objects.
      • ■ Reset the values and call “set” method.
      • ■ Call the method “writeOutput” using both the objects.
      • ■ Call the “drawHere” method using both the objects.
      • ■ Finally display the two arrows on the output screen.

Filename: LeftArrow.java

  • • Define the class “LeftArrow” extends from the “ShapeBase” class.
    • ○ Declare the required variables.
    • ○ Define the default constructor.
      • ■ Call the “super” method.
      • ■ Set the values.
    • ○ Define the constructor with the arguments “theTail”, “theBase”.
      • ■ Call the method “super” with an offset value.
      • ■ Set the value.
      • ■ Check the “theBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “theBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “theBase”.
    • ○ Define another constructor with the arguments “theTail”, “theBase”.
      • ■ Call the method “super”.
      • ■ Set the value.
      • ■ Check the “theBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “theBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “theBase”.
          • ■ Define another constructor with the parameters “theTail”, “theBase”.
    • ○ Define the “set” method with the arguments “newOffset”, newTail”, and “newBase”.
      • ■ Call the method “super” with an offset value.
      • ■ Set the value.
      • ■ Check the “newBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “newBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “newBase”.
    • ○ Define the “setTail” method with an argument “newTail”.
      • ■ Set the value.
    • ○ Define the method “setBase” with an argument “newBase”.
      • ■ Check the “newBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “newBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “newBase”.
    • ○ Define the “writeOutput()” method.
      • ■ Call the “writeOffset()”, “writeTail ()”, and “writeBase()” methods.
    • ○ Define the “writeOffset()” method.
      • ■ Display the offset by calling the “getOffset()” method.
    • ○ Define the “writeTail()” method.
      • ■ Display the offset by calling the “getTail()” method.
    • ○ Define the “writeBase()” method.
      • ■ Display the offset by calling the “getBase()” method.
    • ○ The method “getTail()” returns the “tail” value.
    • ○ The method “getBase()” returns the “base” value.
    • ○ Define the method “drawHere ()”.
      • ■ Call the “drawTop()”, “drawTail()”, and “drawBottom()” methods.
    • ○ Define the “drawTop ()” method.
      • ■ Declare the variable “linecount” and assign the value of “getBase()” value divided by 2.
      • ■ Declare the variable “numberOfSpaces” and calculate it.
      • ■ Call the “skipSpaces()” method with a parameter “numberOfSpaces” value.
      • ■ Display the “*” character.
      • ■ Declare the “count” variable.
      • ■ Declare the “insideWidth” with value 1.
      • ■ The “for” condition is used to display the “*” character in left arrow shape.
        • • Decrement the “numberOfSpaces” value by 2.
        • • Call the “skipSpaces()” method with “numberOfSpaces” value.
        • • Display the “*” character.
        • • Call the “skipSpaces()” method with “insideWidth” value.
        • • Display the “*” character.
        • • Increment the “insideWidth” value by 2.
    • ○ Define the “drawTial()” method.
      • ■ Call the “skipSpaces()” method with “getOffset()” value.
      • ■ Display the “*” character.
      • ■ Declare and calculate the “insideWidth” value.
      • ■ Call the “skipSpaces()” method with “insideWidth” value.
      • ■ Declare the “count” variable.
      • ■ The “for” condition is used to display the “*” character in left arrow shape.
        • • Display the “*” character.
    • ○ Define the “drawBottom()” method.
      • ■ Declare the required variables and calculate them respectively.
      • ■ The “for” condition is used to display the “*” character in left arrow shape.
        • • Call the “skipSpaces()” method with “startOfLine” value.
        • • Display the “*” character.
        • • Call the “skipSpaces()” method with “inideWidth” value.
        • • Display the “*” character.
        • • Increment the “startOfLine” value by 2.
        • • Decrement the “insideWidth” value by 2.
    • ○ Define “skipSpaces()” method.
      • ■ Display the space.

Filename: RightArrow.java

  • • Define the class “RightArrow” extends from the “ShapeBase” class.
    • ○ Declare the required variables.
    • ○ Define the default constructor.
      • ■ Call the “super” method.
      • ■ Set the values.
    • ○ Define the constructor with the arguments “theTail”, “theBase”.
      • ■ Call the method “super” with an offset value.
      • ■ Set the value.
      • ■ Check the “theBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “theBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “theBase”.
    • ○ Define another constructor with the arguments “theTail”, “theBase”.
      • ■ Call the method “super”.
      • ■ Set the value.
      • ■ Check the “theBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “theBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “theBase”.
          • ■ Define another constructor with the parameters “theTail”, “theBase”.
    • ○ Define the “set” method with the arguments “newOffset”, newTail”, and “newBase”.
      • ■ Call the method “super” with an offset value.
      • ■ Set the value.
      • ■ Check the “newBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “newBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “newBase”.
    • ○ Define the “setTail” method with an argument “newTail”.
      • ■ Set the value.
    • ○ Define the method “setBase” with an argument “newBase”.
      • ■ Check the “newBase” value is less than 3.
        • • Assign “base” is equal to 3.
          • ■ Check the “newBase% 2” is equal to 0.
            • • Assign “base” value is equal to “theBase + 1”.
          • ■ Otherwise, assign the “base” is equal to “newBase”.
    • ○ Define the “writeOutput()” method.
      • ■ Call the “writeOffset()”, “writeTail ()”, and “writeBase()” methods.
    • ○ Define the “writeOffset()” method.
      • ■ Display the offset by calling the “getOffset()” method.
    • ○ Define the “writeTail()” method.
      • ■ Display the offset by calling the “getTail()” method.
    • ○ Define the “writeBase()” method.
      • ■ Display the offset by calling the “getBase()” method.
    • ○ The method “getTail()” returns the “tail” value.
    • ○ The method “getBase()” returns the “base” value.
    • ○ Define the method “drawHere ()”.
      • ■ Call the “drawTop()”, “drawTail()”, and “drawBottom()” methods.
    • ○ Define the “drawTop ()” method.
      • ■ Declare the variable “startOfLine” and assign the value of “getOffset()” plus “getTail()”.
      • ■ Call the “skipSpaces()” method with a parameter “startOfLine” value.
      • ■ Display the “*” character.
      • ■ Declare the “linecount” and calculate it.
      • ■ Declare the “count” variable.
      • ■ Declare the “insideWidth” with value 1.
      • ■ The “for” condition is used to display the “*” character in right arrow shape.
        • • Call the “skipSpaces()” method with “startOfLine” value.
        • • Display the “*” character.
        • • Call the “skipSpaces()” method with “insideWidth” value.
        • • Display the “*” character.
        • • Increment the “insideWidth” value by 2.
    • ○ Define the “drawTial()” method.
      • ■ Call the “skipSpaces()” method with “getOffset()” value.
      • ■ Declare the “count” variable.
      • ■ The “for” condition is used to display the “*” character in right arrow shape.
        • • Display the “*” character.
        • • Calculate the “insideWidth”.
        • • Call the “skipSpaces()” method with “insideWidth” value.
        • • Display the “*” character.
    • ○ Define the “drawBottom()” method.
      • ■ Declare the required variables and calculate them respectively.
      • ■ The “for” condition is used to display the “*” character in right arrow shape.
        • • Call the “skipSpaces()” method with “startOfLine” value.
        • • Display the “*” character.
        • • Call the “skipSpaces()” method with “inideWidth” value.
        • • Display the “*” character.
        • • Decrement the “insideWidth” value by 2.
        • • Call the “skipSpaces()” method with “startOfLine” value.
        • • Display the “*” character.
    • ○ Define “skipSpaces()” method.
      • ■ Display the space.

Filename: ShapeInterface.java

Define the interface “SpaceInterface”.

  • • Declare the “setOffset()” method.
  • • Declare the “getOffset()” method.
  • • Declare the “drawAt()” method.
  • • Declare the “drawHere()” method.

Blurred answer
Students have asked these similar questions
1) Consider the following class Date, which represents a date using three ints for month, day and year: class Date { private:  int month;  int day; int year; public:  Date() { month = day = year = 0; }  Date(int m, int d, int y) { month = m; day = d; year = y; }  bool operator==(Date);  bool operator<(Date); }; It asks to create an implementation for both overloaded operators. == should return true if the Date objects are equivalent and false if not.  < should return true if the Date of the calling object (left object) comes before the parameter Date object (right object) and false if not. Assume that all objects of class Date are valid, i.e. month is between 1 and 12, inclusive; day contains an appropriate day for the given month, and year can be anything. You don't need to demonstrate calling these operators.
Write Java classes to solve the following problem: A company has two types of employees. These are called Exempt and NonExempt. Exempt means the employee is not eligible for overtime pay and is paid a fixed amount each pay period. NonExempt means the employee is paid by the hour and receives 1.5 times the hourly rate for hours worked over 40. Each Employee has an id number which is a string. They also have a name. Employee should be an abstract class with the member variables described in number 2. Employee should have an abstract method called findPay, a toString method, and it should implement the Comparable interface. Use alphabetical order of id number to determine less than, greater than, and equal to. The toString method should produce a string like the following: Emp: ID: 4590 Emp Name: Fred Jones Employee should have an equals method. Define two employees to be equal if they have the same name and the same id number. Provide accessor and mutators for Employee. NonExempt should…
Consider the definition of the following class: public class CC {      private int u;      private int v;      private double w;      public CC( )                                   //Line 1     {…}        public CC(int a)                             //Line 2      {…}         public CC(int a, int b)                   //Line 3      {…}        public CC(int a, int b, double d)    //Line 4      {…} A. Give the line number containing the constructor that is executed in each of the following declarations:         (i)    CC one = new CC( );                        _________________   (ii)    CC two = new CC(5, 6);                  _________________         (iii)   CC three = new CC(2, 8, 3.5);         _________________ B. Write the definition of the constructor in Line 1 so that the instance variables are initialized to 0. C.Write the definition of the constructor in Line 4 so that the instance variables u, v, and w are initialized according to the values of the parameters a, b, and d,…

Chapter 8 Solutions

Java: Intro. to Prob. Solv... (Looseleaf)

Ch. 8.2 - Rewrite the definition of the method reset for the...Ch. 8.2 - Can an object be referenced by variables of...Ch. 8.2 - What is the type or types of the variable(s) that...Ch. 8.2 - Prob. 14STQCh. 8.2 - Prob. 15STQCh. 8.2 - Consider the code below, which was discussed in...Ch. 8.2 - Prob. 17STQCh. 8.3 - Prob. 18STQCh. 8.3 - Prob. 19STQCh. 8.3 - Is overloading a method name an example of...Ch. 8.3 - In the following code, will the two invocations of...Ch. 8.3 - In the following code, which definition of...Ch. 8.4 - Prob. 23STQCh. 8.4 - Prob. 24STQCh. 8.4 - Prob. 25STQCh. 8.4 - Prob. 26STQCh. 8.4 - Prob. 27STQCh. 8.4 - Prob. 28STQCh. 8.4 - Are the two definitions of the constructors given...Ch. 8.4 - The private method skipSpaces appears in the...Ch. 8.4 - Describe the implementation of the method drawHere...Ch. 8.4 - Is the following valid if ShapeBaSe is defined as...Ch. 8.4 - Prob. 33STQCh. 8.5 - Prob. 34STQCh. 8.5 - What is the difference between what you can do in...Ch. 8.5 - Prob. 36STQCh. 8 - Consider a program that will keep track of the...Ch. 8 - Implement your base class for the hierarchy from...Ch. 8 - Draw a hierarchy for the components you might find...Ch. 8 - Suppose we want to implement a drawing program...Ch. 8 - Create a class Square derived from DrawableShape,...Ch. 8 - Create a class SchoolKid that is the base class...Ch. 8 - Derive a class ExaggeratingKid from SchoolKid, as...Ch. 8 - Create an abstract class PayCalculator that has an...Ch. 8 - Derive a class RegularPay from PayCalculator, as...Ch. 8 - Create an abstract class DiscountPolicy. It should...Ch. 8 - Derive a class BulkDiscount from DiscountPolicy,...Ch. 8 - Derive a class BuyNItemsGetOneFree from...Ch. 8 - Prob. 13ECh. 8 - Prob. 14ECh. 8 - Create an interface MessageEncoder that has a...Ch. 8 - Create a class SubstitutionCipher that implements...Ch. 8 - Create a class ShuffleCipher that implements the...Ch. 8 - Define a class named Employee whose objects are...Ch. 8 - Define a class named Doctor whose objects are...Ch. 8 - Create a base class called Vehicle that has the...Ch. 8 - Create a new class called Dog that is derived from...Ch. 8 - Define a class called Diamond that is derived from...Ch. 8 - Prob. 2PPCh. 8 - Prob. 3PPCh. 8 - Prob. 4PPCh. 8 - Create an interface MessageDecoder that has a...Ch. 8 - For this Programming Project, start with...Ch. 8 - Modify the Student class in Listing 8.2 so that it...Ch. 8 - Prob. 8PPCh. 8 - Prob. 9PPCh. 8 - Prob. 10PP
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
  • Text book image
    EBK JAVA PROGRAMMING
    Computer Science
    ISBN:9781337671385
    Author:FARRELL
    Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT