GPA Calculator Application Documentation
Overview
The GPA Calculator application is a text-based (C++/C#) graphical-based (Winform/C#) program designed to calculate various GPA metrics based on the GPA system of Future Academy. It includes functionalities to calculate current and cumulative GPA, convert GPA to letter grades, and determine the required GPA for future goals. The application is written in C# and provides a user-friendly interface to manage GPA calculations effectively.
Features
-
GPA Calculation
- Calculates current semester GPA.
- Calculates cumulative GPA over multiple semesters.
- Converts GPA to corresponding letter grades.
-
Future GPA Calculator
- Determines the GPA required in the next semester to achieve a target GPA.
-
Grade Requirements Calculator
- Calculates the average letter grade required in all subjects to reach a specific GPA.
- Provides guidance on the highest letter grades needed in specific subjects to achieve a desired GPA.
-
Permitted Hours Calculation
- Determines the number of credit hours a student is allowed to take based on their GPA.
-
Menu and Navigation
- Main menu with options for different functionalities.
- About section with information about the application and its developers.
Main Components
Main Menu
Displays the main menu options to the user:
- Calculate GPA
- Determine GPA Letter Grade
- Future GPA Calculator
- Grade Requirements Calculator
- Permitted Hours Calculator
- About
- Exit
GPA Calculation Functions
-
Calculate Current GPA (CGPA
)
- Takes a list of points (grades) and credit hours, and calculates the GPA for the current semester.
- Example:
double CGPA(List<double> P, List<double> H, int s)
-
Calculate Cumulative GPA (AGPA
)
- Takes total points and total credit hours, and calculates the cumulative GPA.
- Example:
double AGPA(double tP, double tH)
-
Convert Grade to GPA (Grade
)
- Converts a letter grade to its corresponding numerical GPA value.
- Example:
double Grade(string letter)
-
Convert GPA to Letter Grade (GGPA
)
- Converts a numerical GPA to its corresponding letter grade.
- Example:
string GGPA(double gpa)
Future GPA Functions
-
Future GPA Calculation (FGPA
)
- Calculates the GPA required in the next semester to achieve a target GPA.
- Example:
double FGPA(double currentGPA, int totalHours, double targetGPA, int nextSemesterHours)
-
Average Grade Calculation (ASGPA
)
- Calculates the average letter grade needed in all subjects to reach a target GPA.
- Example:
string ASGPA(double targetGPA, int currentHours, double currentGPA, int totalSubjects)
-
Target Subject GPA Calculation (TSGPA
)
- Determines the highest letter grade that can be achieved in specific subjects to reach a target GPA.
- Example:
string TSGPA(double targetGPA, int currentHours, double currentGPA, int specificSubjectHours)
Utility Functions
-
Clear Screen (Clean
)
- Pauses, delays, and clears the terminal screen.
- Example:
void Clean()
-
About Section (About
)
- Displays information about the application and its developers.
- Example:
void About()
-
Exit Function (Exit
)
- Handles user input for exiting the application.
- Example:
void Exit(ref bool exit, ref bool on, ref char off)
Usage Instructions
-
Start the Application
- Run the main function to start the application.
-
Navigate through the Main Menu
- Use the menu options to select the desired functionality.
- Input the required data when prompted (e.g., GPA values, letter grades, credit hours).
-
View Results
- The application will display the calculated results based on the selected functionality.
-
Input Method
- Enter grades and credit hours using space separation for more efficient input.
Application Screenshots
including text-based and graphical-based screenshots
Screenshot Example
Loading Screen:
Main Menu:
GPA Calculate Function:
In the example provided in the screenshot:
- The user is prompted to enter the current semester number.
- They are then asked to enter the number of subjects for the semester.
- For each subject, the user inputs the letter grade followed by the credit hours.
- The application calculates and displays the semester GPA, cumulative GPA, and permitted hours for the next semester.
Statistics:
Entering New Semester:
Finished All Semester MessageBox:
Letter Grader Function:
Overview
This feature allows users to input their Grade Point Average (GPA) and receive the corresponding letter grade based on a predefined grading scale.
Functionality
User Input:
The user is prompted to enter their GPA.
GPA Conversion:
The application converts the numeric GPA into a letter grade using a predefined scale.
Output:
- The application displays the input GPA and its corresponding letter grade.
- How much you can present your GPA in Percentage
- Percentage presented in Progress Bar with different colors for differnt scores
Purpose
This feature helps users quickly determine the letter grade equivalent of their GPA, facilitating a better understanding of their academic performance in a more familiar format.
Future GPA Prediction Function: (2 cases)
Feature Overview
Functionality and Purpose:
- Enter Current and Target GPA:
- Overview: This feature allows users to input their current GPA and the target GPA they aim to achieve. The program then calculates the GPA needed in the next semester to reach the target GPA.
- Functionality:
- User Input: The user is prompted to enter their current GPA and the desired GPA.
- Calculation: The program calculates whether the target GPA is achievable in one semester.
- Output (Case 1): If the target GPA is achievable, the program provides the required GPA for the next semester.
- Example: With a current GPA of 2.6 and a target GPA of 2.8, the program suggests an estimated GPA of 3.0 for the next semester.
- Output (Case 2): If the target GPA is not achievable in one semester, the program informs the user and provides an alternative achievable GPA.
- Example: With a current GPA of 2.6 and a target GPA of 3.5, the program indicates that the target cannot be reached in one semester. It suggests that if the user achieves a GPA of 4.0 next semester, the new GPA will be 3.3.
- Purpose: This feature helps students set realistic academic goals by understanding the GPA they need to achieve in the upcoming semester to reach their overall GPA targets. It also provides a sense of achievable goals when the desired GPA is too high to be attained in one semester.
Average Grade Calculate Function:
Feature Overview
Functionality and Purpose:
- Enter Current GPA and Target GPA to Determine Required Average Letter Grade:
- Overview: This feature allows users to input their current GPA and the GPA they aim to achieve. The program calculates the average letter grade the user needs to obtain in their subjects next semester to reach the target GPA.
- Functionality:
- User Input: The user enters their current GPA and the desired GPA.
- Calculation: The program computes the average letter grade required in the next semester to achieve the target GPA.
- Output: The program informs the user of the necessary average letter grade to reach their target GPA.
- Example: With a current GPA of 2.6 and a target GPA of 3.0, the program indicates that the user needs to achieve an average grade of A- in their subjects next semester to reach the target GPA.
- Purpose: This feature assists students in understanding the level of academic performance required in the upcoming semester to achieve their GPA goals. It provides clear guidance on the average letter grade needed, helping students set realistic expectations and plan their study efforts accordingly.
Target Subject GPA Calculate Function:
Feature Overview
Functionality and Purpose:
- Enter Number of Subjects, Current GPA, and Target GPA to Determine Required Grades:
- Overview: This feature enables users to input the number of subjects they will take in the next semester, along with their current GPA and desired GPA. The program calculates the specific grades needed in each subject to achieve the target GPA, assuming all subjects have the same credit hours.
- Functionality:
- User Input: The user enters:
- The number of subjects for the next semester.
- Their current GPA.
- The GPA they aim to achieve.
- Calculation: The program computes the required grades for each subject to reach the desired GPA.
- Output:
- The program displays the minimum grade required for each subject to achieve the target GPA.
- if the GPA wished is on specific level, the application will tell the user if he has any any-grade subjects
- Example: With 6 subjects, a current GPA of 2.6, and a target GPA of 3.0, the program specifies the necessary grades for each subject, such as A+ for most subjects and a D- for one subject, to reach a GPA of 3.4.
- Purpose: This feature helps students understand the specific academic performance needed in each subject to reach their GPA goals. It provides clear and actionable insights, allowing students to strategize their study efforts and focus on achieving the necessary grades in each subject.
About:
Exit Screen:
Cases:
No:
It will show this MessageBox then return the user to the main screen
Yes:
It will show 2 corresponding MessageBoxes:
Then Exit The Program.
Developers
- Youssef Sherif
- Youssef Muhammed
This application is designed to assist students at Future Academy in managing their GPA calculations efficiently.