Beispiel #1
0
        public void TestCompareSameScoreSameLastNameSameFirstName()
        {
            var gradeComparer = new GradeComparer();

            var element1 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60);
            var element2 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60);

            Assert.IsTrue(gradeComparer.Compare(element1, element2) == 0);
            Assert.IsTrue(gradeComparer.Compare(element2, element1) == 0);
        }
Beispiel #2
0
        public void TestCompareSameScoreDifferentLastNameDifferentFirstName()
        {
            var gradeComparer = new GradeComparer();

            var element1 = new Tuple<string, string, int>("ARNOLD", "BEN", 60);
            var element2 = new Tuple<string, string, int>("BERNARD", "ARTHUR", 60);

            Assert.IsTrue(gradeComparer.Compare(element1, element2) < 0);
            Assert.IsTrue(gradeComparer.Compare(element2, element1) > 0);
        }
Beispiel #3
0
        //show the grades based on the radio boxes input and textfields
        private void ShowThresholdGrades(object sender, EventArgs e)
        {
            queryResultRTBox.Clear();
            bool greater        = false;
            bool less           = false;
            bool validDept      = false,
                 validCourseNum = false;

            if (courseTBox1.Text.Count() == 0)
            {
                queryResultRTBox.AppendText("Enter Course to Look For.");
                return;
            }

            //split the data and set it to the corresponding variable
            string course = courseTBox1.Text;

            string[] token1 = course.ToUpper().Split(' ', '-');
            if (token1.Length < 2)
            {
                queryResultRTBox.AppendText("Enter Course in the Format DEPT 100");
                courseTBox1.Clear();
                return;
            }
            string dept         = token1[0];
            uint   courseNumber = UInt32.Parse(token1[1]);

            if (dept.Length <= 4)
            {
                validDept = true;
            }
            //get the grade from the combo box
            string grade;

            if (gradeCBox1.SelectedIndex > -1)
            {
                grade = gradeCBox1.Text;
            }
            else
            {
                queryResultRTBox.AppendText("Select Grade to search for.");
                return;
            }
            //validate the course number to between 100 and 500
            if (courseNumber >= 100 && courseNumber < 500)
            {
                validCourseNum = true;
            }
            else
            {
                queryResultRTBox.AppendText("Enter Valid Course Number between 100 and 500.");
                return;
            }
            //get whichever radio button is checked
            if (radioButton2.Checked == true)
            {
                greater = true;
            }
            if (radioButton1.Checked == true)
            {
                less = true;
            }
            //set up string comparer
            StringComparer gradeComparer = new GradeComparer();

            if (validDept && validCourseNum)
            {
                queryResultRTBox.AppendText(String.Format("Grade Threshold Report for({0} {1})", dept, courseNumber));
                queryResultRTBox.AppendText("\n----------------------------------\n");

                if (greater)
                {
                    //query to get get grades greater or equal to grade form drop down
                    var gradeQuery =
                        from c in Globals.CoursePool
                        from g in c.Grades
                        where dept == c.Dept && c.CourseNumber == courseNumber && gradeComparer.Compare(grade, g.Value) >= 0
                        select new
                    { ID = g.Key, c.Dept, c.CourseNumber, Grade = g.Value };

                    if (gradeQuery.Count() > 0)
                    {
                        //print out results
                        foreach (var courseGrade in gradeQuery)
                        {
                            queryResultRTBox.AppendText(String.Format("z{0, 7} | {1, 4}-{2, 3} | {3, -3}\n", courseGrade.ID, courseGrade.Dept, courseGrade.CourseNumber, courseGrade.Grade));
                        }
                    }
                    else if (gradeQuery.Count() == 0)
                    {
                        queryResultRTBox.AppendText(String.Format("No results for the Class {0} {1}", dept, courseNumber));
                    }
                }
                if (less)
                {
                    //query to print out grades less than the grade in combo box
                    var gradeQuery =
                        from c in Globals.CoursePool
                        from g in c.Grades
                        where c.Dept == dept && c.CourseNumber == courseNumber && gradeComparer.Compare(grade, g.Value) <= 0
                        select new
                    { ID = g.Key, c.Dept, c.CourseNumber, Grade = g.Value };

                    if (gradeQuery.Count() > 0)
                    {
                        //print out results
                        foreach (var courseGrade in gradeQuery)
                        {
                            queryResultRTBox.AppendText(String.Format("z{0, 7} | {1, 4}-{2, 3} | {3, -3}\n", courseGrade.ID, courseGrade.Dept, courseGrade.CourseNumber, courseGrade.Grade));
                        }
                    }
                }
                queryResultRTBox.AppendText("\n### END RESULTS ###");
            }
            courseTBox1.Clear();
            gradeCBox1.ResetText();
        }
Beispiel #4
0
        private void ShowPassReport(object sender, EventArgs e)
        {
            queryResultRTBox.Clear();

            string grade     = gradeCBox2.Text,
                   operation = ">=";

            gradeCBox2.ResetText();
            bool lessOrEqual = radioButton6.Checked;

            //check which option was clicked
            if (lessOrEqual)
            {
                operation = "<=";
            }

            if (grade.Count() > 0)
            {
                // set up grade comparer
                StringComparer gradeComparer = new GradeComparer();

                queryResultRTBox.AppendText(String.Format("Pass Percentage ({0} {1}%) Report for Classes.\n", operation, grade));
                queryResultRTBox.AppendText("-----------------------------------\n");

                if (lessOrEqual)
                {
                    //query to get the grades less than the grade from combo box
                    var queryGrade =
                        from c in Globals.CoursePool
                        select new
                    {
                        Passed =
                            (from g in c.Grades
                             where gradeComparer.Compare(g.Value, grade) <= 0 &&
                             gradeComparer.Compare(g.Value, "F") > 0
                             select g).Count(),
                        c.Count,
                        c.Dept,
                        c.CourseNumber
                    };
                    //goinging in the query to get the results
                    foreach (var passReport in queryGrade)
                    {
                        float passPercent = (float)passReport.Passed / (float)passReport.Count;
                        queryResultRTBox.AppendText(String.Format("Out of {0} enrolled in {1}-{2}, {3} passed at or below this threshold ( {4: 0.00%})\n", passReport.Count, passReport.Dept, passReport.CourseNumber, passReport.Passed, passPercent));
                    }
                }
                else
                {
                    //query to get the grade less than a the grade from combo box
                    var queryGrade =
                        from c in Globals.CoursePool
                        select new
                    {
                        Passed =
                            (from g in c.Grades
                             where gradeComparer.Compare(g.Value, grade) >= 0 &&
                             gradeComparer.Compare(g.Value, "F") > 0
                             select g.Value).Count(),
                        c.Count,
                        c.Dept,
                        c.CourseNumber
                    };

                    //print out results from the query
                    foreach (var passReport in queryGrade)
                    {
                        float passPercent = (float)passReport.Passed / (float)passReport.Count;
                        queryResultRTBox.AppendText(String.Format("Out of {0} enrolled in {1}-{2}, {3} passed at or above this threshold ( {4: 0.00%})\n", passReport.Count, passReport.Dept, passReport.CourseNumber, passReport.Passed, passPercent));
                    }
                }

                queryResultRTBox.AppendText("\n### END RESULTS ###");
            }
            else
            {
                queryResultRTBox.AppendText("Please select a grade to compare to.");
            }
        }