#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 */
/* convert character to upper case using the C library function toupper */
/* Skip a few lines */
/* 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): ");
/* 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): ");
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 */
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPiAvKiBmb3IgdGhlIHRvdXBwZXIgZnVuY3Rpb24gKi8KCmludCBtYWluICgpCnsKCiAgICBjaGFyIGFuc3dlciBbODBdOyAgLyogc3RyaW5nIHRvIGhvbGQgdXNlciByZXNwb25zZSAqLwogICAgY2hhciBncmFkZTsgICAgICAgIC8qIHlvdXIgZXhhbSBncmFkZSAqLwoKICAgIC8qIEFzayBzdHVkZW50IGZvciB0aGVpciBleGFtIGdyYWRlICovCiAgICBwcmludGYgKCJcbiA4MCAiKTsKICAgIGdyYWRlID0gZ2V0Y2hhcigpOwoKICAgIC8qIGNvbnZlcnQgY2hhcmFjdGVyIHRvIHVwcGVyIGNhc2UgdXNpbmcgdGhlIEMgbGlicmFyeSBmdW5jdGlvbiB0b3VwcGVyICovCiAgICBncmFkZSA9IHRvdXBwZXIgKCBncmFkZSApOwoKICAgIC8qIFNraXAgYSBmZXcgbGluZXMgKi8KICAgIHByaW50ZiAoIlxuXG4iKTsKCiAgICAvKiBTdHVkZW50IFNlbGYgU2VydmljZSBiYXNlZCBvbiB0aGVpciBncmFkZSAqLwogICAgc3dpdGNoICggZ3JhZGUgKQogICAgewoKICAgICAgICBjYXNlICdBJzoKCiAgICAgICAgICAgIHByaW50ZiAoIlxuRXhjZWxsZW50IEpvYjogR3JhZGUgaXMgYW4gQSBcbiIpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnQic6CgogICAgICAgICAgICBwcmludGYgKCJcbkdvb2QgSm9iOiBHcmFkZSBpcyBhIEIgXG4iKTsKICAgICAgICAgICAgcHJpbnRmICgiXG5Xb3VsZCB5b3UgbGlrZSBhbiBBPyAoeS9uKTogIik7CiAgICAgICAgICAgIHNjYW5mICgiJXMiLCBhbnN3ZXIpOwoKICAgICAgICAgICAgLyogQ29tZSBvbiwgYW5zd2VyIHllcywgcHJvZmVzc29yIG5lZWRzIGEgbmV3IGVsZWN0cm9uaWMgdG95ICovCiAgICAgICAgICAgIGlmICggYW5zd2VyIFswXSA9PSAneScgfHwgYW5zd2VyIFswXSA9PSAnWScgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiBBbGwgcmlnaHQsIGEgY3VzdG9tZXIgKi8KICAgICAgICAgICAgICAgIHByaW50ZiAoIlxuIE1ha2UgY2hlY2sgcGF5YWJsZSB0byBUaW0gTmllc2VuIGZvciAkMjAwIFxuIik7CiAgICAgICAgICAgICAgICBwcmludGYgKCIuLi4gYSBzbWFsbCBwcmljZSB0byBwYXkgZm9yIHlvdXIgZWR1Y2F0aW9uIFxuIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdDJzoKCiAgICAgICAgICAgIHByaW50ZiAoIlxuRmFpciBKb2I6IEdyYWRlIGlzIGEgQyBcbiIpOwogICAgICAgICAgICBwcmludGYgKCJXb3VsZCB5b3UgbGlrZSBhbiBBPyAoeS9uKTogIik7CiAgICAgICAgICAgIHNjYW5mICgiJXMiLCBhbnN3ZXIpOyAgLyogd2UnbGwgZGlzY3VzcyBzdHJpbmdzIG5leHQgd2VlaywgYnV0IGl0cyBhIHNlcmllcyBvZiBjaGFyYWN0ZXJzICovCgogICAgICAgICAgICAvKiB0aW1lIHRvIG1ha2Ugc29tZSByZWFsIG1vbmV5LCBteSBmYXZvcml0ZSBzdHVkZW50cyAqLwogICAgICAgICAgICBpZiAoIGFuc3dlciBbMF0gPT0gJ3knIHx8IGFuc3dlciBbMF0gPT0gJ1knICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmICgiXG4gTWFrZSBjaGVjayBwYXlhYmxlIHRvIFRpbSBOaWVzZW4gZm9yICQ2MDAgXG4iKTsKICAgICAgICAgICAgICAgIHByaW50ZiAoIi4uLiBhbiBleGNlbGxlbnQgcHJpY2UgdG8gcGF5IGZvciB5b3VyIGVkdWNhdGlvbiBcbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZiAoIlxuV291bGQgeW91IGxpa2UgYW4gQj8gKHkvbik6ICIpOwogICAgICAgICAgICAgICAgc2NhbmYgKCIlcyIsIGFuc3dlcik7CgogICAgICAgICAgICAgICAgaWYgKCBhbnN3ZXIgWzBdID09ICAneScgIHx8ICBhbnN3ZXIgWzBdID09ICAnWScgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgcHJpbnRmICgiXG5NYWtlIGNoZWNrIHBheWFibGUgdG8gVGltIE5pZXNlbiBmb3IgJDQwMCBcbiIpOwogICAgICAgICAgICAgICAgICAgcHJpbnRmICgiLi4uIGEgZ3JlYXQgcHJpY2UgdG8gcGF5IGZvciB5b3VyIGVkdWNhdGlvbiBcbiIpOwogICAgICAgICAgICAgICAgfSAvKiBpZiAqLwogICAgICAgICAgICB9IC8qIGVsc2UgKi8KCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdEJzoKCiAgICAgICAgICAgIHByaW50ZiAoIlxuIFBvb3IgSm9iOiBHcmFkZSBpcyBhIEQgXG4iKTsKICAgICAgICAgICAgcHJpbnRmICgiLi4uIFlvdSdyZSBiZXlvbmQgYSBicmliZSB0byBnZXQgYSBiZXR0ZXIgZ3JhZGUgXG4iKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ0YnOgoKICAgICAgICAgICAgcHJpbnRmICgiXG4gTG9va3MgbGlrZSB5b3UgRmFpbGVkLiBHcmFkZSBpcyBhIEYgXG4iKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6IC8qIGlmIGl0IGdldHMgaGVyZSwgbm90IGEgdmFsaWQgZ3JhZGUgKi8KCiAgICAgICAgICAgIHByaW50ZiAoIlxuIEludmFsaWQvSW5jb21wbGV0ZSBHcmFkZSAuLi4gY2FuIG5vdCBwcm9jZXNzIC4uLlxuIik7CiAgICAgICAgICAgIGJyZWFrOyAgLyogb3B0aW9uYWwsIGJ1dCByZWNvbW1lbmRlZCAqLwoKICAgIH0gLyogc3dpdGNoICovCgogICAgcmV0dXJuICgwKTsKCn0gLyogbWFpbiAqLwo=