using System;
using System.Collections.Generic;
using System.Text;

namespace _303_fall_2007_lecture_18
{
    class Program
    {

        // ---------------------------------------------------------

        static void Main(string[] args)
        {
            double number_grade;
            char letter_grade;

            int[] grade_count = new int[5];

            do
            {
                Console.Write("Please enter numeric grade (-1 to quit) : ");
                number_grade = Convert.ToDouble(Console.ReadLine());

                if (number_grade != -1)
                {
                    letter_grade = ConvertToLetterGrade(number_grade);

                    UpdateGradeCount(letter_grade, grade_count);

                    Console.WriteLine("You earned a {0}", letter_grade);
                }
            } while (number_grade != -1);

            ShowResult(grade_count);
        }

        // ---------------------------------------------------------

        private static void ShowResult(int[] grade_count)
        {
            char[] grade_labels = { 'A', 'B', 'C', 'D', 'F' };

            for (int i = 0; i < 5; i++)
            {
                Console.Write(grade_labels[i] + " : ");
                for (int s = 0; s < grade_count[i]; s++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
        }

        // ---------------------------------------------------------

        private static void UpdateGradeCount(char lg, int[] gc)
        {
            switch (lg)
            {
                case 'A': gc[0]++; break;
                case 'B': gc[1]++; break;
                case 'C': gc[2]++; break;
                case 'D': gc[3]++; break;
                case 'F': gc[4]++; break;
            }
        }

        // ---------------------------------------------------------

        private static char ConvertToLetterGrade(double number_grade)
        {
            if (number_grade >= 90)
                return 'A';
            else if (number_grade >= 80)
                return 'B';
            else if (number_grade >= 70)
                return 'C';
            else if (number_grade >= 60)
                return 'D';
            else
                return 'F';
        }

        // ---------------------------------------------------------

    }
}