Project Bonus Task & Solution: Determine the Best Performing Section in Final Exams

Rumman Ansari   Software Engineer   2024-09-14 04:13:16   145  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Bonus Task (Optional):

  • Display the subject names when inputting marks (Mathematics, Physics, English, Computer Application, and Biology) instead of just showing "Subject 1", "Subject 2", etc.

    For example, while inputting marks for a student, the prompt should be:

<span class="pln">
</span><span class="typ">Enter</span><span class="pln"> marks </span><span class="kwd">for</span><span class="pln"> student </span><span class="lit">1</span><span class="pun">:</span><span class="pln">
  </span><span class="typ">Mathematics</span><span class="pun">:</span><span class="pln"> 
  </span><span class="typ">Physics</span><span class="pun">:</span><span class="pln"> 
  </span><span class="typ">English</span><span class="pun">:</span><span class="pln"> 
  </span><span class="typ">Computer</span><span class="pln"> </span><span class="typ">Application</span><span class="pun">:</span><span class="pln"> 
  </span><span class="typ">Biology</span><span class="pun">:</span><span class="pln"> 
</span>

This Bonus Task makes the project more realistic by asking students to interact with subject-specific data, reinforcing the connection between real-world academic performance and programming.


Solution

Here’s the Java 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">BestPerformingSection</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="com">// Number of sections and subjects</span><span class="pln">
        </span><span class="kwd">int</span><span class="pln"> sections </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">;</span><span class="pln">  </span><span class="com">// A, B, C</span><span class="pln">
        </span><span class="kwd">int</span><span class="pln"> subjects </span><span class="pun">=</span><span class="pln"> </span><span class="lit">5</span><span class="pun">;</span><span class="pln">  </span><span class="com">// 5 subjects: Mathematics, Physics, English, Computer Application, Biology</span><span class="pln">

        </span><span class="com">// Array to hold subject names</span><span class="pln">
        </span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> subjectNames </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">"Mathematics"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Physics"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"English"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Computer Application"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Biology"</span><span class="pun">};</span><span class="pln">
        
        </span><span class="com">// Variables to store total marks for each section</span><span class="pln">
        </span><span class="kwd">double</span><span class="pun">[]</span><span class="pln"> sectionTotals </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">double</span><span class="pun">[</span><span class="pln">sections</span><span class="pun">];</span><span class="pln">
        </span><span class="kwd">double</span><span class="pun">[]</span><span class="pln"> sectionAverages </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">double</span><span class="pun">[</span><span class="pln">sections</span><span class="pun">];</span><span class="pln">
        </span><span class="kwd">int</span><span class="pun">[]</span><span class="pln"> studentsPerSection </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">[</span><span class="pln">sections</span><span class="pun">];</span><span class="pln">

        </span><span class="com">// Loop to input the number of students in each section</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">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;</span><span class="pln"> sections</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="typ">String</span><span class="pln"> sectionName </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">i </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">"A"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </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="str">"B"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">"C"</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">"Enter the number of students in Section "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> sectionName </span><span class="pun">+</span><span class="pln"> </span><span class="str">": "</span><span class="pun">);</span><span class="pln">
            studentsPerSection</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"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Loop through each section to input marks</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">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;</span><span class="pln"> sections</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="typ">String</span><span class="pln"> sectionName </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">i </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">"A"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </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="str">"B"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">"C"</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="pln">println</span><span class="pun">(</span><span class="str">"\nEntering marks for Section "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> sectionName </span><span class="pun">+</span><span class="pln"> </span><span class="str">":"</span><span class="pun">);</span><span class="pln">
            </span><span class="kwd">double</span><span class="pln"> sectionTotal </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">

            </span><span class="com">// Loop through each student in the section</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"> student </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> student </span><span class="pun">&lt;</span><span class="pln"> studentsPerSection</span><span class="pun">[</span><span class="pln">i</span><span class="pun">];</span><span class="pln"> student</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="pln">println</span><span class="pun">(</span><span class="str">"Enter marks for student "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="pln">student </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="str">":"</span><span class="pun">);</span><span class="pln">

                </span><span class="com">// Loop through each subject for the student</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"> subject </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> subject </span><span class="pun">&lt;</span><span class="pln"> subjects</span><span class="pun">;</span><span class="pln"> subject</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="pln"> </span><span class="pun">+</span><span class="pln"> subjectNames</span><span class="pun">[</span><span class="pln">subject</span><span class="pun">]</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">": "</span><span class="pun">);</span><span class="pln">  </span><span class="com">// Display subject name</span><span class="pln">
                    </span><span class="kwd">double</span><span class="pln"> marks </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextDouble</span><span class="pun">();</span><span class="pln">
                    sectionTotal </span><span class="pun">+=</span><span class="pln"> marks</span><span class="pun">;</span><span class="pln">  </span><span class="com">// Add marks to section total</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            </span><span class="com">// Store total marks for the section</span><span class="pln">
            sectionTotals</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"> sectionTotal</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Calculate the average score for each section</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">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;</span><span class="pln"> sections</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">
            sectionAverages</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"> sectionTotals</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="pun">(</span><span class="pln">studentsPerSection</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"> subjects</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Compare the averages to find the best performing section</span><span class="pln">
        </span><span class="typ">String</span><span class="pln"> bestSection </span><span class="pun">=</span><span class="pln"> </span><span class="str">"A"</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">double</span><span class="pln"> highestAverage </span><span class="pun">=</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">0</span><span class="pun">];</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">sectionAverages</span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> highestAverage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            bestSection </span><span class="pun">=</span><span class="pln"> </span><span class="str">"B"</span><span class="pun">;</span><span class="pln">
            highestAverage </span><span class="pun">=</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">1</span><span class="pun">];</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">sectionAverages</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> highestAverage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            bestSection </span><span class="pun">=</span><span class="pln"> </span><span class="str">"C"</span><span class="pun">;</span><span class="pln">
            highestAverage </span><span class="pun">=</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">2</span><span class="pun">];</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Output the result</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="str">"\n--- Results ---"</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="pln">printf</span><span class="pun">(</span><span class="str">"Section A average score: %.2f\n"</span><span class="pun">,</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">0</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="pln">printf</span><span class="pun">(</span><span class="str">"Section B average score: %.2f\n"</span><span class="pun">,</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">1</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="pln">printf</span><span class="pun">(</span><span class="str">"Section C average score: %.2f\n"</span><span class="pun">,</span><span class="pln"> sectionAverages</span><span class="pun">[</span><span class="lit">2</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="pln">println</span><span class="pun">(</span><span class="str">"The best performing section is: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> bestSection </span><span class="pun">+</span><span class="pln"> </span><span class="str">" with an average score of: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> highestAverage</span><span class="pun">);</span><span class="pln">

        </span><span class="com">// Close the scanner</span><span class="pln">
        scanner</span><span class="pun">.</span><span class="pln">close</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 of Updates:

  1. Subject Names Array:

    • I added an array called subjectNames to hold the names of the five subjects: Mathematics, Physics, English, Computer Application, and Biology.
  2. Displaying Subject Names:

    • When entering marks for each student, the program now prompts the user to enter marks for each subject by name instead of simply displaying "Subject 1", "Subject 2", etc.
  3. Input and Processing Logic:

    • The logic for processing the input and calculating the total and average marks for each section remains the same, but the subject names are now displayed as part of the input process.
<span class="pln">
</span><span class="typ">Enter</span><span class="pln"> the number </span><span class="kwd">of</span><span class="pln"> students </span><span class="kwd">in</span><span class="pln"> </span><span class="typ">Section</span><span class="pln"> A</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
</span><span class="typ">Enter</span><span class="pln"> the number </span><span class="kwd">of</span><span class="pln"> students </span><span class="kwd">in</span><span class="pln"> </span><span class="typ">Section</span><span class="pln"> B</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
</span><span class="typ">Enter</span><span class="pln"> the number </span><span class="kwd">of</span><span class="pln"> students </span><span class="kwd">in</span><span class="pln"> </span><span class="typ">Section</span><span class="pln"> C</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pln">

</span><span class="typ">Entering</span><span class="pln"> marks </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">Section</span><span class="pln"> A</span><span class="pun">:</span><span class="pln">
</span><span class="typ">Enter</span><span class="pln"> marks </span><span class="kwd">for</span><span class="pln"> student </span><span class="lit">1</span><span class="pun">:</span><span class="pln">
  </span><span class="typ">Mathematics</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80</span><span class="pln">
  </span><span class="typ">Physics</span><span class="pun">:</span><span class="pln"> </span><span class="lit">85</span><span class="pln">
  </span><span class="typ">English</span><span class="pun">:</span><span class="pln"> </span><span class="lit">78</span><span class="pln">
  </span><span class="typ">Computer</span><span class="pln"> </span><span class="typ">Application</span><span class="pun">:</span><span class="pln"> </span><span class="lit">90</span><span class="pln">
  </span><span class="typ">Biology</span><span class="pun">:</span><span class="pln"> </span><span class="lit">82</span><span class="pln">
</span><span class="typ">Enter</span><span class="pln"> marks </span><span class="kwd">for</span><span class="pln"> student </span><span class="lit">2</span><span class="pun">:</span><span class="pln">
  </span><span class="typ">Mathematics</span><span class="pun">:</span><span class="pln"> </span><span class="lit">75</span><span class="pln">
  </span><span class="typ">Physics</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80</span><span class="pln">
  </span><span class="typ">English</span><span class="pun">:</span><span class="pln"> </span><span class="lit">77</span><span class="pln">
  </span><span class="typ">Computer</span><span class="pln"> </span><span class="typ">Application</span><span class="pun">:</span><span class="pln"> </span><span class="lit">88</span><span class="pln">
  </span><span class="typ">Biology</span><span class="pun">:</span><span class="pln"> </span><span class="lit">79</span><span class="pln">

</span><span class="typ">Entering</span><span class="pln"> marks </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">Section</span><span class="pln"> B</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="typ">Results</span><span class="pln"> </span><span class="pun">---</span><span class="pln">
</span><span class="typ">Section</span><span class="pln"> A average score</span><span class="pun">:</span><span class="pln"> </span><span class="lit">81.25</span><span class="pln">
</span><span class="typ">Section</span><span class="pln"> B average score</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80.00</span><span class="pln">
</span><span class="typ">Section</span><span class="pln"> C average score</span><span class="pun">:</span><span class="pln"> </span><span class="lit">83.50</span><span class="pln">
</span><span class="typ">The</span><span class="pln"> best performing section </span><span class="kwd">is</span><span class="pun">:</span><span class="pln"> C </span><span class="kwd">with</span><span class="pln"> an average score </span><span class="kwd">of</span><span class="pun">:</span><span class="pln"> </span><span class="lit">83.50</span><span class="pln">
</span>


No Questions Data Available.
No Program Data.

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