//This function run when user clicks Reset Quiz marks button
        //It deletes all the quiz marks entered and reset counters for recalculation
        private void resetQuizMarksButton_Click(object sender, EventArgs e)
        {
            EnterQuizMarkTextBox.Text   = String.Empty;
            listOfQuizMarksTextBox.Text = String.Empty;
            numberOfQuizzes             = 0;
            quizTotal   = 0;
            maxQuizMark = 0;
            minQuizMark = 0;
            quizMark    = 0;

            percentageTextBox.Text = String.Empty;
            gradeTextBox.Text      = String.Empty;

            highLowQuizCheckbox.Visible = false;

            EnterQuizMarkTextBox.Select();
        }
        //By clicking TransferMark button, we are send the user input to "getValue" function for cleansing,
        //If the value is good then it is stored as quizMark in list of marks in Multiline text box
        //We have also intialized a minimum and maximum mark variable which will compare new inputs and store max and min
        //values for later process.
        //We are also calculation the number of Quiz marks entered for calculating quiz average.
        private void transferMarksButton_Click(object sender, EventArgs e)
        {
            if (!getValue(EnterQuizMarkTextBox.Text, out quizMark))
            {
                EnterQuizMarkTextBox.Select();
                return;
            }
            numberOfQuizzes += 1;
            if (numberOfQuizzes == 1)
            {
                maxQuizMark = quizMark;
                minQuizMark = quizMark;
            }
            else
            {
                if (quizMark > maxQuizMark)
                {
                    maxQuizMark = quizMark;
                }

                if (quizMark < minQuizMark)
                {
                    minQuizMark = quizMark;
                }
            }
            listOfQuizMarksTextBox.AppendText(EnterQuizMarkTextBox.Text + Environment.NewLine);
            quizTotal = quizTotal + quizMark;
            EnterQuizMarkTextBox.Select();
            EnterQuizMarkTextBox.Text = String.Empty;

            quizTotalNew       = quizTotal;
            numberOfQuizzesNew = numberOfQuizzes;

            if (numberOfQuizzes > 4)
            {
                highLowQuizCheckbox.Visible = true;
            }
            return;
        }
        //This function get activated when we click "Calculate Grade" button, it send the Midterm and Final Exam marks
        //to "getValue" function for cleansing. When a good values is recieved, it is used to calculate Final mark and
        //final grade. The weightage of marks is as follows: 20% from Quiz average mark, 30% from Midterm mark and 50%
        //from Final Exam mark.
        //Final grade is decided using if-else ladder based on table provided by the user.
        private void calculateGradeButton_Click(object sender, EventArgs e)
        {
            //This is to ensure, user input atleast one quiz mark to calculate final grades
            if (numberOfQuizzes < 1)
            {
                MessageBox.Show($"***Error - Minimum one Quiz Mark required");
                EnterQuizMarkTextBox.Select();
                return;
            }

            //Sending midterm mark for validation
            if (!getValue(midtermMarksTextBox.Text, out midTermMark))
            {
                midtermMarksTextBox.Select();
                return;
            }

            //Sending final exam mark for validation
            if (!getValue(finalExamMarksTextBox.Text, out finalExamMark))
            {
                finalExamMarksTextBox.Select();
                return;
            }

            //Calculating average quiz mark and final mark and grade obtained
            averagequizMarks       = quizTotalNew / numberOfQuizzesNew;
            finalGradeMark         = (Math.Round((averagequizMarks * 0.2) + (midTermMark * 0.3) + (finalExamMark * 0.5)));
            percentageTextBox.Text = finalGradeMark.ToString();

            if (finalGradeMark >= 95)
            {
                finalGrade = "A+";
            }
            else if (finalGradeMark >= 90)
            {
                finalGrade = "A";
            }
            else if (finalGradeMark >= 85)
            {
                finalGrade = "A-";
            }
            else if (finalGradeMark >= 80)
            {
                finalGrade = "B+";
            }
            else if (finalGradeMark >= 75)
            {
                finalGrade = "B";
            }
            else if (finalGradeMark >= 70)
            {
                finalGrade = "B-";
            }
            else if (finalGradeMark >= 67)
            {
                finalGrade = "C+";
            }
            else if (finalGradeMark >= 64)
            {
                finalGrade = "C";
            }
            else if (finalGradeMark >= 60)
            {
                finalGrade = "C-";
            }
            else if (finalGradeMark >= 55)
            {
                finalGrade = "D+";
            }
            else if (finalGradeMark >= 50)
            {
                finalGrade = "D";
            }
            else
            {
                finalGrade = "F";
            }

            gradeTextBox.Text = finalGrade;
            return;
        }