Exemplo n.º 1
0
        /// <summary>
        /// ShowGradeReport - This will display grades and feedback as well as count, average, number of passes, number of fails
        /// </summary>
        public static void ShowGradeReport(double[] marks, PercentToFeedback feedback)
        {
            GradeStats stats;
            int        count = CalculateGradeStats(marks, out stats);

            for (int student = 0; student < marks.Length; student++)
            {
                Console.WriteLine("Student {0}: {1,5:n1}% : {2}", student + 1, marks[student], feedback(marks[student]));
            }

            Console.WriteLine("\nCount:   {0, 5:n1}", count);
            Console.WriteLine("Passed:  {0, 5:n1}", stats.passCount);
            Console.WriteLine("Failed:  {0, 5:n1}", stats.failCount);
            Console.WriteLine("Invalid: {0, 5:n1}", stats.invalidCount);
            Console.WriteLine("Average: {0, 5:n1}%\n", stats.averageGrade);
        }
Exemplo n.º 2
0
        /// <summary>
        /// PercentToFeedback - This will be used as a reference to either PercentToGrade() or PercentToDescription()
        /// </summary>

        static void Main(string[] args)
        {
            const int NUMBER_OF_GRADES = 5;

            double[] grades    = new double[NUMBER_OF_GRADES];
            string   userInput = "";

            for (int student = 0; student < grades.Length;)
            {
                try
                {
                    Console.Write("\nEnter a grade for student {0}: ", student + 1);
                    userInput       = Console.ReadLine();
                    grades[student] = Convert.ToDouble(userInput);
                    student++;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Sorry, I could not convert \"{0}\" into a numeric value. Please try again", userInput);
                }
                catch (Exception)
                {
                    Console.WriteLine("Sorry, an error occured. Please try again.");
                }
            }

            PercentToFeedback feedbackMethod = PercentToLetterGrade;

            try
            {
                if (args[0].ToLower() == "description")
                {
                    feedbackMethod = PercentToLetterGrade;
                }
                // feedbackMethod = PercentToDescription;
            }
            catch (Exception)
            {
            }

            Console.WriteLine("\n");
            ShowGradeReport(grades, feedbackMethod);
            Console.WriteLine("\nPress any key to end...");
            Console.ReadKey();
        }