Student Grading and Statistics System Assignment
Student Grading and Statistics System Assignment
Objective
Create a program that manages and evaluates student grades based on their scores in three
subjects. This assignment will test your understanding of basic programming concepts,
including variable manipulation, control flow, and input/output.
Problem Statement
Write a program that:
1. Collects the names and scores for three subjects from multiple students.
2. Calculates the total score, average score, and assigns a grade based on the average.
3. Displays individual results and a summary report.
Specifications
1. **Input Details**:
- Prompt the user to enter the number of students.
- For each student, prompt them to enter:
* Their name.
* Their scores for three subjects (out of 100).
3. **Display Results**:
- Display each student’s name, total score, average score, and grade.
4. **Summary Report**:
- After all students' results are entered, display a summary report that includes:
* The highest total score among all students.
* The lowest total score among all students.
* The class average score.
* The number of students who received each grade.
Example Output
Here’s a sample interaction with the program:
Student 1:
Enter name: Alice
Enter score for Subject 1: 90
Enter score for Subject 2: 85
Enter score for Subject 3: 88
Result for Alice:
Total Score = 263
Average Score = 87.67
Grade = A
Student 2:
Enter name: Bob
Enter score for Subject 1: 72
Enter score for Subject 2: 78
Enter score for Subject 3: 80
Result for Bob:
Total Score = 230
Average Score = 76.67
Grade = B
Student 3:
Enter name: Charlie
Enter score for Subject 1: 65
Enter score for Subject 2: 70
Enter score for Subject 3: 60
Result for Charlie:
Total Score = 195
Average Score = 65.0
Grade = C
Summary Report:
Highest Total Score = 263
Lowest Total Score = 195
Class Average Score = 76.44
Grade Distribution:
A: 1
B: 1
C: 1
D: 0
F: 0
Requirements
1. **Code Structure**:
- Use meaningful variable names for balance, deposit/withdraw amounts, and transaction
counters.
- Implement clear and modular code, using functions for deposit, withdrawal, interest
calculation, and report generation.
2. **Input Validation**:
- Ensure all inputs for scores are within the range of 0 to 100.
- If the user enters an invalid score, prompt them to enter it again.
3. **Loop Control**:
- Use a loop to display the menu repeatedly until the user chooses to exit.
4. **Edge Cases**:
- Handle cases where the user tries to withdraw the exact balance amount.
- Handle the scenario where the user tries to deposit or withdraw zero or negative amounts.
Submission Instructions
Submit your program file (e.g., `student_grading.cpp`) with comments explaining each
section of the code.
Ensure the program compiles and runs without errors in a standard C++ compiler
environment.