Project Solution: Generating an X Pattern in Java

Rumman Ansari   Software Engineer   2024-07-06 04:09:12   260  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Project Solution: Generating an X Pattern in Java

Java Source Code:

<span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="typ">Scanner</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">XPattern</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="typ">Scanner</span><span class="pln"> scanner </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Scanner</span><span class="pun">(</span><span class="typ">System</span><span class="pun">.</span><span class="kwd">in</span><span class="pun">);</span><span class="pln">
        </span><span class="kwd">int</span><span class="pln"> n</span><span class="pun">;</span><span class="pln">

        </span><span class="com">// Prompt the user to enter the size of the X</span><span class="pln">
        </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"Enter the size of the X: "</span><span class="pun">);</span><span class="pln">
        n </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln">

        </span><span class="com">// Calculate the dimension of the square matrix</span><span class="pln">
        </span><span class="kwd">int</span><span class="pln"> m </span><span class="pun">=</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> n </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">

        </span><span class="com">// Loop through each row</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;=</span><span class="pln"> m</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="com">// Loop through each column</span><span class="pln">
            </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> j </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> j </span><span class="pun">&lt;=</span><span class="pln"> m</span><span class="pun">;</span><span class="pln"> j</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="com">// Print '*' if the current position is on either diagonal</span><span class="pln">
                </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">i </span><span class="pun">==</span><span class="pln"> j </span><span class="pun">||</span><span class="pln"> j </span><span class="pun">==</span><span class="pln"> </span><span class="pun">(</span><span class="pln">m </span><span class="pun">-</span><span class="pln"> i </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"*"</span><span class="pun">);</span><span class="pln">
                </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    </span><span class="com">// Print space otherwise</span><span class="pln">
                    </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">" "</span><span class="pun">);</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            </span><span class="com">// Move to the next line after each row</span><span class="pln">
            </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span>

Explanation:

  1. Input Handling:

    • The program starts by creating a Scanner object to read user input.
    • It prompts the user to enter the size of the X pattern (n).
  2. Pattern Calculation:

    • The size of the square matrix (m) is calculated as 2 * n - 1.
    • Nested loops are used to iterate through each row and column of the matrix.
  3. Pattern Generation:

    • The condition if (i == j || j == (m - i + 1)) checks if the current position is on one of the diagonals of the X.
    • If the condition is true, a star (*) is printed; otherwise, a space ( ) is printed.
    • After printing all columns for a row, the program moves to the next line.
  4. Output:

    • The program prints the X pattern based on the user input.

Sample Output:

For an input of n = 3, the program produces the following output:

<span class="pln">
</span><span class="pun">*</span><span class="pln">   </span><span class="pun">*</span><span class="pln">
 </span><span class="pun">*</span><span class="pln"> </span><span class="pun">*</span><span class="pln">
  </span><span class="pun">*</span><span class="pln">
 </span><span class="pun">*</span><span class="pln"> </span><span class="pun">*</span><span class="pln">
</span><span class="pun">*</span><span class="pln">   </span><span class="pun">*</span><span class="pln">
</span>
Generating an X Pattern in Java
Figure: Generating an X Pattern in Java

Testing and Validation:

  • Input Validation: Ensure the program correctly handles edge cases like n = 1 and large values of n.
  • Sample Outputs: Run the program with various inputs and capture the outputs to include in your documentation.

Documentation:

  • Comment each section of your code to explain its purpose.
  • Write a brief report detailing how the program works, including screenshots of different test cases.

By following this structure, you will be able to create a comprehensive project that demonstrates your understanding of Java programming concepts, especially nested loops and conditional statements.


No Questions Data Available.
No Program Data.

Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.