In: Computer Science
For this Lab you have to implement a classBuilder. Your Builder class should have instance variable name. , Supply a constructor method for your Builder class and the following methods: getName(), makeRow(int n, String s), printPyramid(int n, String s).
Examining the problem, we need to create aBuilder class, declare Builderclass as follows
public class Builder { }
Inside the Builder class, declare aString variable called name.
Step 3: Defining the constructors:
Remember that the purpose of a constructor is to assign valid values to all the data members.
public Builder (String name) { // write the segment of code // that assigns the parameter value to the private instance variable }
Step4: Supply the methods
Implement the getName method:
Hint: getter methods often simply return the desired value, which is usually stored in a private instance variable.
public String getName() { // write a line of code that returns the name }
Implement a makeRow method.
Given an integer n and strings, the makeRow method returns an other String that has n copies ofs in a row. For eaxmple makeRow(5, "abc") should return"abcabcabcabcabc".
public String makeRow(int n, String s) { // Given an int n and string s, // return a string that represents n copies of s in one row. //Example: n = 5, s = “*”, return a string “*****” }
Write a method called printPyramid that given an odd integer n and a string s, prints (not returns) a pyramidal shape made out of that strings. The top of the pyramid has a single copy ofs, and each successive row has two additional copies of s. The last row containsn copies of s. For example, calling printPyramid(7, "*"); prints the following lines:
* *** ***** *******
public void printPyramid(int n, String s) { // Make use of makeRow method and System.out.println // to print the pyramid. // note this method does not return anything. }
Step 5: Calling the constructor of Builder class from the “main” method.
In your Lab7.java file, you will instantiate and use a Builder class object.
import java.util.Scanner; public class Lab7 { public static void main(String[] args) { //declare variables where you will store inputs from user -->// declare a Scanner object -->// prompt the user for input string name -->// store the input in the declared variables -->// declare a variable of type Builder named myBuilder // and instantiate a brand-new builder object // with the name given by the user above --> } }
Hint: Do not forget to import the Scannerpackage at the very top of your program.
Step 6: Calling Builder class methods and display the output
Now (also in the main method) we will call the methods in the Builder class to display the required outputs.
// call the getName() method to get the name of the builder. --> // Ask for integer n from user using Scanner class System.out.println("Enter a positive integer:"); // Using your builder's makeRow method print a string below, // Example: =====*****===== with n = 5; --> // Ask for odd integer t from user using Scanner class System.out.println("Enter a positive odd integer :"); // Call the Builder method printPyramid, passing t and "*" as the arguments // to print pyramid with “*” as a string. -->
Step 7: Sample Output
Below is an example of what your output should roughly look like when this lab is completed. All text in bold redrepresents user input.
First run:
Name of the builder: AlexThe name of builder is :Alex Enter a positive integer :5=====*****===== Enter a positive odd integer :7 * *** ***** *******
Second run:
Name of the builder: BobThe name of builder is :Bob Enter a positive integer :3===***=== Enter a positive odd integer :11 * *** ***** ******* ********* ***********
// Builder.java
public class Builder {
private String name;
public Builder(String name) {
// write the segment of code
// that assigns the parameter value to the private instance
variable
this.name = name;
}
public String getName() {
// write a line of code that returns the name
return name;
}
public String makeRow(int n, String s) {
// Given an int n and string s,
// return a string that represents n copies of s in one row.
// Example: n = 5, s = “*”, return a string “*****”
String str = "";
for (int i = 0; i < n; i++) {
str += "=";
}
for (int i = 0; i < n; i++) {
str += s;
}
for (int i = 0; i < n; i++) {
str += "=";
}
return str;
}
public void printPyramid(int n, String s) {
int size =n; //use only odd numbers here
for (int i = 1; i <= size; i=i+2) {
int spaceCount = (size - i)/2;
for(int j = 0; j< size; j++) {
if(j < spaceCount || j >= (size - spaceCount)) {
System.out.print(" ");
} else {
System.out.print(s+" ");
}
}
System.out.println();
}
}
}
_______________________________
// Lab10.java
import java.util.Scanner;
public class Lab10 {
public static void main(String[] args) {
//declare variables where you will store inputs from user
String s;
int n;
// declare a Scanner object
/*
* Creating an Scanner class object which is used to get the
inputs
* entered by the user
*/
Scanner sc = new Scanner(System.in);
// prompt the user for input string name
System.out.print("Enter String :");
// store the input in the declared variables
s=sc.next();
// declare a variable of type Builder named myBuilder
// and instantiate a brand-new builder object
// with the name given by the user above
Builder b=new Builder(s);
// call the getName() method to get the name of the builder.
System.out.println("The name of builder is :"+b.getName());
// Ask for integer n from user using Scanner class
System.out.print("Enter a positive integer:");
// Using your builder's makeRow method print a string below,
// Example: =====*****===== with n = 5;
n=sc.nextInt();
System.out.println(b.makeRow(n, "*"));
// Ask for odd integer t from user using Scanner class
System.out.println("Enter a positive odd integer ,:");
System.out.print("representing number of stars in the base f a
pyramid:");
// Call the Builder method printPyramid, passing t and "*" as the
arguments
// to print pyramid with “*” as a string.
n=sc.nextInt();
b.printPyramid(n,"*");
}
}
__________________________________
Output#1:
Enter String :Alex
The name of builder is :Alex
Enter a positive integer:5
=====*****=====
Enter a positive odd integer ,:
representing number of stars in the base f a
pyramid:7
*
* * *
* * * * *
* * * * * * *
________________________
Output#2:
Enter String :Bob
The name of builder is :Bob
Enter a positive integer:9
=========*********=========
Enter a positive odd integer ,:
representing number of stars in the base f a
pyramid:21
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
*