Question

In: Computer Science

import java.util.Scanner; public class Lab5 { public static void main(String[] args) { final char SIDE_SYMB =...

import java.util.Scanner;

public class Lab5 {

public static void main(String[] args) {

final char SIDE_SYMB = '-';

final char MID_SYMB = '*';

Scanner scanner = new Scanner(System.in);

String inputStr = "";

char choice = ' ';

int numSymbols = -1, sideWidth = -1, midWidth = -1;

do {

displayMenu();

inputStr = scanner.nextLine();

if (inputStr.length() > 0) {

choice = inputStr.charAt(0);

}

switch (choice) {

case 'r':

System.out.println("Width of the sides?");

sideWidth = scanner.nextInt();

System.out.println("Width of the middle?");

midWidth = scanner.nextInt();

scanner.nextLine(); // Flush junk newline symbols

System.out.println();

System.out.println(buildRow(SIDE_SYMB, sideWidth, MID_SYMB,

midWidth));

break;

case 'p':

System.out.println("Number of symbols on the lowest layer?");

numSymbols = scanner.nextInt();

scanner.nextLine(); // Flush junk newline symbols

System.out.println();

System.out.println(buildPyramid(SIDE_SYMB, MID_SYMB, numSymbols));

break;

case 'd':

System.out.println("Number of symbols on the middle layer?");

numSymbols = scanner.nextInt();

scanner.nextLine(); // Flush junk newline symbols

System.out.println();

System.out.println(buildDiamond('*', ' ', numSymbols));

break;

case 'q':

System.out.println("Bye");

break;

default:

System.out.println("Please choose a valid option from the menu.");

break;

}

System.out.println();

} while (choice != 'q');

scanner.close();

}

/**

* Build a row of symbols (pattern) with the given parameters.

*

* For example, -----*****----- can be built by the parameters

*

* sideWidth = 5, midWidth = 5, sideSymb = '-', midSymb = '*'

*

* @param sideSymb A char to be repeated on both sides

* @param sideWidth Number of symbols on each side

* @param midSymb A char to be repeated in the middle

* @param midWidth Number of symbols in the middle

* @return A String of a row of the designed pattern

*/

private static String buildRow(

char sideSymb, int sideWidth, char midSymb, int midWidth) {

String result = "";

// YOUR CODE HERE

// Make one side

// -->

// Make the middle part

// -->

// Combine side + middle + side, save into "result"

// -->

return result;

} // End of buildRow

/**

* Build a pyramid pattern with the given parameters.

*

* For example, the following pattern

*

* -----*-----

* ----***----

* ---*****---

* --*******--

* -*********-

* ***********

*

* can be built by sideSymb = '-', midSymb = '*', numSymbols = 11

*

* When ptnHeight is not an odd integer, replace it by the closest

* even integer below. For example, if numSymbols is 10, use 9 instead.

*

* When ptnHeight is 0, return an empty String.

*

* @param sideSymb A char to be repeated on both sides

* @param midSymb A char to be repeated in the middle

* @param numSymbols The number of symbols on the lowest layer

* @return A String of the pyramid pattern.

*/

private static String buildPyramid(

char sideSymb, char midSymb, int numSymbols) {

String result = "";

int sideWidth = -1, midWidth = -1;

// YOUR CODE HERE

// If numSymbols is 0, return an empty string

// -->

// If numSymbols is not an odd number, find the

// odd number less than numSymbols and replace it

// -->

// Make a loop to iterate the pyramid's levels

for (????????????) {

// Compute the number of middle symbols

// -->

// Compute the number of symbols on one side

// -->

// Use the "buildRow" method to make a row, then

// add the row to the variable "result".

// You may need to add a linebreak char "\n".

// -->

}

return result;

}

/**

* Build a diamond pattern. The parameters are the same

* as {@link #buildPyramid(char, char, int)}.

*

* @param sideSymb A char to be repeated on both sides

* @param midSymb A char to be repeated in the middle

* @param numSymbols The height of a pyramid

* @return A String of the inverted diamond pattern.

*/

private static String buildDiamond(

char sideSymb, char midSymb, int numSymbols) {

String result = "";

// YOUR CODE HERE

// -->

return result;

}

/**

* Display the menu

*/

private static void displayMenu() {

System.out.println("Please choose one pattern from the list:");

System.out.println("r) Row");

System.out.println("p) Pyramid");

System.out.println("d) Shallow diamond");

System.out.println("q) Quit");

} // End of displayMenu

} // End of Lab5

Annotations

Solutions

Expert Solution

/***************************Lab5.java*********************/

import java.util.Scanner;

public class Lab5 {

   public static void main(String[] args) {

       final char SIDE_SYMB = '-';

       final char MID_SYMB = '*';

       Scanner scanner = new Scanner(System.in);

       String inputStr = "";

       char choice = ' ';

       int numSymbols = -1, sideWidth = -1, midWidth = -1;

       do {

           displayMenu();

           inputStr = scanner.nextLine();

           if (inputStr.length() > 0) {

               choice = inputStr.charAt(0);

           }

           switch (choice) {

           case 'r':

               System.out.println("Width of the sides?");

               sideWidth = scanner.nextInt();

               System.out.println("Width of the middle?");

               midWidth = scanner.nextInt();

               scanner.nextLine(); // Flush junk newline symbols

               System.out.println();

               System.out.println(buildRow(SIDE_SYMB, sideWidth, MID_SYMB,

                       midWidth));

               break;

           case 'p':

               System.out.println("Number of symbols on the lowest layer?");

               numSymbols = scanner.nextInt();

               scanner.nextLine(); // Flush junk newline symbols

               System.out.println();

               System.out.println(buildPyramid(SIDE_SYMB, MID_SYMB, numSymbols));

               break;

           case 'd':

               System.out.println("Number of symbols on the middle layer?");

               numSymbols = scanner.nextInt();

               scanner.nextLine(); // Flush junk newline symbols

               System.out.println();

               System.out.println(buildDiamond('*', ' ', numSymbols));

               break;

           case 'q':

               System.out.println("Bye");

               break;

           default:

               System.out.println("Please choose a valid option from the menu.");

               break;

           }

           System.out.println();

       } while (choice != 'q');

       scanner.close();

   }

   /**
   *
   * Build a row of symbols (pattern) with the given parameters.
   *
   *
   *
   * For example, -----*****----- can be built by the parameters
   *
   *
   *
   * sideWidth = 5, midWidth = 5, sideSymb = '-', midSymb = '*'
   *
   *
   *
   * @param sideSymb A char to be repeated on both sides
   *
   * @param sideWidth Number of symbols on each side
   *
   * @param midSymb A char to be repeated in the middle
   *
   * @param midWidth Number of symbols in the middle
   *
   * @return A String of a row of the designed pattern
   *
   */

   private static String buildRow(char sideSymb, int sideWidth, char midSymb, int midWidth) {

       String result = "";

       String side = "";
       for (int i = 0; i < sideWidth; i++) {

           side += sideSymb;
       }
       String middle = "";
       for (int i = 0; i < midWidth; i++) {

           middle += midSymb;
       }

       result = side + middle + side;

       return result;

   } // End of buildRow

   /**
   *
   * Build a pyramid pattern with the given parameters.
   *
   *
   *
   * For example, the following pattern
   *
   *
   *
   * -----*-----
   *
   * ----***----
   *
   * ---*****---
   *
   * --*******--
   *
   * -*********-
   *
   * ***********
   *
   *
   *
   * can be built by sideSymb = '-', midSymb = '*', numSymbols = 11
   *
   *
   *
   * When ptnHeight is not an odd integer, replace it by the closest
   *
   * even integer below. For example, if numSymbols is 10, use 9 instead.
   *
   *
   *
   * When ptnHeight is 0, return an empty String.
   *
   *
   *
   * @param sideSymb A char to be repeated on both sides
   *
   * @param midSymb A char to be repeated in the middle
   *
   * @param numSymbols The number of symbols on the lowest layer
   *
   * @return A String of the pyramid pattern.
   *
   */

   private static String buildPyramid(char sideSymb, char midSymb, int numSymbols) {

       String result = "";

       int sideWidth = -1, midWidth = -1;

       // YOUR CODE HERE

       // If numSymbols is 0, return an empty string

       if (numSymbols == 0) {

           return "";
       }

       // If numSymbols is not an odd number, find the

       // odd number less than numSymbols and replace it

       if (numSymbols % 2 == 0) {

           numSymbols = numSymbols - 1;
       }

       // Make a loop to iterate the pyramid's levels

       for (int i = 1; i <= numSymbols; i++) {

           // Compute the number of middle symbols

           midWidth = i;

           // Compute the number of symbols on one side

           sideWidth = numSymbols - i;

           // Use the "buildRow" method to make a row, then

           // add the row to the variable "result".

           // You may need to add a linebreak char "\n".

           result += buildRow(sideSymb, sideWidth, midSymb, midWidth)+"\n";

       }

       return result;

   }

   /**
   *
   * Build a diamond pattern. The parameters are the same
   *
   * as {@link #buildPyramid(char, char, int)}.
   *
   *
   *
   * @param sideSymb A char to be repeated on both sides
   *
   * @param midSymb A char to be repeated in the middle
   *
   * @param numSymbols The height of a pyramid
   *
   * @return A String of the inverted diamond pattern.
   *
   */

   private static String buildDiamond(

           char sideSymb, char midSymb, int numSymbols) {
       String result = "";

       int sideWidth = -1, midWidth = -1;

       // YOUR CODE HERE

       // If numSymbols is 0, return an empty string

       if (numSymbols == 0) {

           return "";
       }

       // If numSymbols is not an odd number, find the

       // odd number less than numSymbols and replace it

       if (numSymbols % 2 == 0) {

           numSymbols = numSymbols - 1;
       }

       // Make a loop to iterate the pyramid's levels

       for (int i = 1; i <= numSymbols; i++) {

           // Compute the number of middle symbols

           midWidth = i;

           // Compute the number of symbols on one side

           sideWidth = numSymbols - i;

           // Use the "buildRow" method to make a row, then

           // add the row to the variable "result".

           // You may need to add a linebreak char "\n".

           result += buildRow(sideSymb, sideWidth, midSymb, midWidth)+"\n";

       }
       for (int i = 1; i <= numSymbols; i++) {

           // Compute the number of middle symbols

           midWidth = numSymbols-i;

           // Compute the number of symbols on one side

           sideWidth = i;

           // Use the "buildRow" method to make a row, then

           // add the row to the variable "result".

           // You may need to add a linebreak char "\n".

           result += buildRow(sideSymb, sideWidth, midSymb, midWidth)+"\n";

       }
      
       return result;
   }

   /**
   *
   * Display the menu
   *
   */

   private static void displayMenu() {

       System.out.println("Please choose one pattern from the list:");

       System.out.println("r) Row");

       System.out.println("p) Pyramid");

       System.out.println("d) Shallow diamond");

       System.out.println("q) Quit");

   } // End of displayMenu

} // End of Lab5
/****************************output******************/

Please choose one pattern from the list:
r) Row
p) Pyramid
d) Shallow diamond
q) Quit
r
Width of the sides?
3
Width of the middle?
4

---****---

Please choose one pattern from the list:
r) Row
p) Pyramid
d) Shallow diamond
q) Quit
p
Number of symbols on the lowest layer?
5

----*----
---**---
--***--
-****-
*****


Please choose one pattern from the list:
r) Row
p) Pyramid
d) Shallow diamond
q) Quit
d
Number of symbols on the middle layer?
5

**** ****
*** ***
** **
* *

* *
** **
*** ***
**** ****
**********


Please choose one pattern from the list:
r) Row
p) Pyramid
d) Shallow diamond
q) Quit
q
Bye

Please let me know if you have any doubt or modify the answer, Thanks:)


Related Solutions

import java.util.Scanner; public class test {    public static void main(String args[]){        char letter;...
import java.util.Scanner; public class test {    public static void main(String args[]){        char letter;        int number = 0;        Scanner in = new Scanner(System.in);        System.out.print("Enter a letter: ");        letter = in.next().charAt(0);        if(letter == 'A' || letter == 'B' || letter == 'C') number = 2;        if(letter == 'D' || letter == 'E' || letter == 'F') number = 3;        if(letter == 'G' || letter ==...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {       ...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {        Stack<Integer> new_stack = new Stack<>();/* Start with the empty stack */        Scanner scan = new Scanner(System.in);        int num;        for (int i=0; i<10; i++){//Read values            num = scan.nextInt();            new_stack.push(num);        } System.out.println(""+getAvg(new_stack));    }     public static int getAvg(Stack s) {        //TODO: Find the average of the elements in the...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {       ...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {        Stack<Integer> new_stack = new Stack<>();/* Start with the empty stack */        Scanner scan = new Scanner(System.in);        int num;        for (int i=0; i<10; i++){//Read values            num = scan.nextInt();            new_stack.push(num);        }        int new_k = scan.nextInt(); System.out.println(""+smallerK(new_stack, new_k));    }     public static int smallerK(Stack s, int k) {       ...
------------------------------------------------------------------------------------ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input =...
------------------------------------------------------------------------------------ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int result = 0; System.out.print("Enter the first number: "); int x = input.nextInt(); System.out.print("Enter the second number: "); int y = input.nextInt(); System.out.println("operation type for + = 0"); System.out.println("operation type for - = 1"); System.out.println("operation type for * = 2"); System.out.print("Enter the operation type: "); int z = input.nextInt(); if(z==0){ result = x + y; System.out.println("The result is " + result); }else...
//This is an ArrayReverser Problem.. import java.util.Scanner; public class Main { public static void main(String[] args)...
//This is an ArrayReverser Problem.. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);    // Read in the list of numbers int[] numbers; String input = sc.nextLine(); if (input.equals("")) { numbers = new int[0]; } else { String[] numberStrings = input.split(" "); numbers = new int[numberStrings.length]; for (int i = 0; i < numberStrings.length; i++) { numbers[i] = Integer.parseInt(numberStrings[i]); } }    // Reverse the list int[] resultArray = reverseArray(numbers);   ...
import java.lang.UnsupportedOperationException; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc...
import java.lang.UnsupportedOperationException; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);    // parse the number of strings int numStrings = Integer.parseInt(sc.nextLine());    // parse each string String[] stringsArray = new String[numStrings]; for (int i = 0; i < numStrings; i++) { stringsArray[i] = sc.nextLine(); }    // print whether there are duplicates System.out.println(hasDuplicates(stringsArray)); }    private static boolean hasDuplicates(String[] stringsArray) { // TODO fill this in and remove the below line...
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Exercise { public static void main(String[] args) {...
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Exercise { public static void main(String[] args) { Scanner input=new Scanner(System.in); int[] WordsCharsLetters = {0,1,2}; while(input.hasNext()) { String sentence=input.nextLine(); if(sentence!=null&&sentence.length()>0){ WordsCharsLetters[0] += calculateAndPrintChars(sentence)[0]; WordsCharsLetters[1] += calculateAndPrintChars(sentence)[1]; WordsCharsLetters[2] += calculateAndPrintChars(sentence)[2]; } else break; } input.close(); System.out.println("Words: " + WordsCharsLetters[0]); System.out.println("Characters: " + WordsCharsLetters[1]); System.out.println("Letters: " + WordsCharsLetters[2]); } static int[] calculateAndPrintChars(String sentence) { int[] WCL = new int[3]; String[] sentenceArray=sentence.split(" "); WCL[0] = sentenceArray.length; int letterCount=0; for(int i=0;i<sentence.length();i++) { if(Character.isLetter(sentence.charAt(i))) letterCount++; } WCL[1]...
Consider the following code: import java.util.Scanner; public class Main {    public static void main(String[] args)...
Consider the following code: import java.util.Scanner; public class Main {    public static void main(String[] args) {    Scanner in = new Scanner(System.in); String input = ""; System.out.println("Enter the first number: ");    input = in.nextLine(); int a = 0; int b = 0;    a = Integer.parseInt(input);    System.out.println("Enter the second number: "); input = in.nextLine();    b = Integer.parseInt(input);    int result = 0; result = a/b;    System.out.println("a/b : " + result);    } Copy the code...
Correct the code: import java.util.Scanner; public class Ch7_PrExercise5 { public static void main(String[] args) {   ...
Correct the code: import java.util.Scanner; public class Ch7_PrExercise5 { public static void main(String[] args) {    Scanner console = new Scanner(System.in);    double radius; double height; System.out.println("This program can calculate "+ "the area of a rectangle, the area "+ "of a circle, or volume of a cylinder."); System.out.println("To run the program enter: "); System.out.println("1: To find the area of rectangle."); System.out.println("2: To find the area of a circle."); System.out.println("3: To find the volume of a cylinder."); System.out.println("-1: To terminate the...
My code: import java.util.Random; import java.util.Scanner; public class RollDice { public static void main(String[] args) {...
My code: import java.util.Random; import java.util.Scanner; public class RollDice { public static void main(String[] args) { int N; Scanner keybd = new Scanner(System.in); int[] counts = new int[12];    System.out.print("Enter the number of trials: "); N = keybd.nextInt();    Random die1 = new Random(); Random die2 = new Random(); int value1, value2, sum; for(int i = 1; i <= N; i++) { value1 = die1.nextInt(6) + 1; value2 = die2.nextInt(6) + 1; sum = value1 + value2; counts[sum-1]++; }   ...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT