#include <stdio.h>
#include <ctype.h> /* for the toupper function */

int main ()
{

    char answer [80];  /* string to hold user response */
    char grade;        /* your exam grade */

    /* Ask student for their exam grade */
    printf ("\n Enter your exam grade: ");
    grade = getchar();

    /* convert character to upper case using the C library function toupper */
    grade = toupper ( grade );

    /* Skip a few lines */
    printf ("\n\n");

    /* Student Self Service based on their grade */
    switch ( grade )
    {

        case 'A':

            printf ("\nExcellent Job: Grade is an A \n");
            break;

        case 'B':

            printf ("\nGood Job: Grade is a B \n");
            printf ("\nWould you like an A? (y/n): ");
            scanf ("%s", answer);

            /* Come on, answer yes, professor needs a new electronic toy */
            if ( answer [0] == 'y' || answer [0] == 'Y' )
            {
                /* All right, a customer */
                printf ("\n Make check payable to Tim Niesen for $200 \n");
                printf ("... a small price to pay for your education \n");
            }

            break;

        case 'C':

            printf ("\nFair Job: Grade is a C \n");
            printf ("Would you like an A? (y/n): ");
            scanf ("%s", answer);  /* we'll discuss strings next week, but its a series of characters */

            /* time to make some real money, my favorite students */
            if ( answer [0] == 'y' || answer [0] == 'Y' )
            {
                printf ("\n Make check payable to Tim Niesen for $600 \n");
                printf ("... an excellent price to pay for your education \n");
            }
            else 
            {
                printf ("\nWould you like an B? (y/n): ");
                scanf ("%s", answer);

                if ( answer [0] ==  'y'  ||  answer [0] ==  'Y' )
                {
                   printf ("\nMake check payable to Tim Niesen for $400 \n");
                   printf ("... a great price to pay for your education \n");
                } /* if */
            } /* else */

            break;

        case 'D':

            printf ("\n Poor Job: Grade is a D \n");
            printf ("... You're beyond a bribe to get a better grade \n");
            break;

        case 'F':

            printf ("\n Looks like you Failed. Grade is a F \n");
            break;

        default: /* if it gets here, not a valid grade */

            printf ("\n Invalid/Incomplete Grade ... can not process ...\n");
            break;  /* optional, but recommended */

    } /* switch */

    return (0);

} /* main */
