Project Solution: Determine the Best Performing Section in Final Exams

Rumman Ansari   Software Engineer   2024-09-14 03:58:10   160  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Here’s a solution for the project "Determine the Best Performing Section in Final Exams" using Java. This solution will accept student marks, calculate averages for each section, and determine which section performed best.

Solution (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 for each student</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">"  Subject "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="pln">subject </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="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:

  1. Input:

    • The program prompts the user to enter the number of students in each section (A, B, and C).
    • For each student in a section, the user provides marks for 5 subjects.
  2. Total Calculation:

    • For each section, the total score is calculated by summing up the marks of all students for all subjects.
  3. Average Calculation:

    • The program calculates the average score for each section by dividing the total marks by the number of students and subjects in that section.
  4. Comparison:

    • The averages of the sections (A, B, and C) are compared to determine the section with the highest average score.
  5. Output:

    • The average score for each section is printed, followed by a statement declaring the section with the highest average score.

Sample Input/Output:

<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">3</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">3</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">3</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">Subject</span><span class="pln"> </span><span class="lit">1</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">2</span><span class="pun">:</span><span class="pln"> </span><span class="lit">90</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">3</span><span class="pun">:</span><span class="pln"> </span><span class="lit">85</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">4</span><span class="pun">:</span><span class="pln"> </span><span class="lit">88</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">5</span><span class="pun">:</span><span class="pln"> </span><span class="lit">92</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">Subject</span><span class="pln"> </span><span class="lit">1</span><span class="pun">:</span><span class="pln"> </span><span class="lit">70</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">2</span><span class="pun">:</span><span class="pln"> </span><span class="lit">78</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">3</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">4</span><span class="pun">:</span><span class="pln"> </span><span class="lit">75</span><span class="pln">
  </span><span class="typ">Subject</span><span class="pln"> </span><span class="lit">5</span><span class="pun">:</span><span class="pln"> </span><span class="lit">80</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="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.87</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">75.13</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">82.20</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">82.20</span><span class="pln">
</span>

What the Students Will Learn:

  • Loops: The program demonstrates nested loops for input and processing of data.
  • Arrays: Arrays are used to store total marks and averages for each section.
  • Conditionals: The comparison logic helps students understand the use of if-else statements.
  • Input/Output Handling: Students learn how to gather input from the user and output formatted results.
  • Data Validation: Students can expand this project to handle data validation, such as ensuring marks are within a valid range (0 to 100).

This project not only reinforces basic programming concepts but also teaches students how to structure and process data logically. They can further extend the program by adding features like handling ties, or calculating performance across more subjects.



No Questions Data Available.
No Program Data.

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