#include #include main () { char isbn [11] ; char CheckDigit (char [11]) ; int choice ; char dummy ; do { clrscr () ; printf ("\n\n\n\n\n\n") ; printf (" ISBN Checker\n") ; printf (" ------------\n\n") ; printf (" 1 : Calculate a check digit\n") ; printf (" 2 : Validate a ten-character ISBN\n") ; printf (" 3 : Quit\n\n") ; printf (" Select an action : ") ; scanf ("%d%c", &choice, &dummy) ; switch (choice) { case 1 : clrscr () ; printf ("\n\n\n\n\n\n") ; printf (" Calculate a check digit\n") ; printf (" -----------------------\n\n") ; printf (" Enter a nine-character ISBN: ") ; scanf ("%s", isbn) ; printf ("\n The full ISBN is ") ; printf ("%s-", isbn) ; printf ("%c\n", CheckDigit (isbn)) ; printf ("\n Hit a key to continue ") ; getch (); break ; case 2 : clrscr () ; printf ("\n\n\n\n\n\n") ; printf (" Validate a ten-character ISBN\n") ; printf (" -----------------------------\n\n") ; printf (" Enter a ten-character ISBN: ") ; scanf ("%s", isbn) ; if (CheckDigit (isbn) == isbn [9]) printf ("\n Valid ISBN.\n") ; else printf ("\n Invalid ISBN\n") ; printf ("\n Hit a key to continue ") ; getch (); break ; } } while (choice < 3) ; } char CheckDigit (char isbn [11]) { int count, number, check_digit, sum = 0 ; for (count = 0; count <9; count ++) { number = isbn [count] - '0' ; sum = sum + number * (10 - count) ; } check_digit = (11 - (sum % 11)) % 11 ; if (check_digit == 10) return 'X' ; else return check_digit + '0'; }