//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; }