//File ISBN Validation System.cpp //Purpose: // Program to identify and validate an ISBN number. #include #include using namespace std; int main() { char one = 0; // variable that is always a number char two = 0; // variable that can either be a variable or a hyphen char three = 0; // variable that can either be a variable or a hyphen char four = 0; // variable that can either be a variable or a hyphen char five = 0; // variable that can either be a variable or a hyphen char six = 0; // variable that can either be a variable or a hyphen char seven = 0; // variable that can either be a variable or a hyphen char eight = 0; // variable that can either be a variable or a hyphen char nine = 0; // variable that can either be a variable or a hyphen char ten = 0; // variable that can either be a variable or a hyphen char eleven = 0; // variable that can either be a variable or a hyphen char twelve = 0; // variable that is always a hyphen char thirteen = 0; // variable that is always a number int sum = 0; // sum of the first nine characters int remainder = 0; // remainder variable used to check validation cout << " ISBN Validation System"<< endl << endl; cout << "Enter ISBN number: "; // Where the ISBN number is entered cin >> one >> two >> three >> four >> five >> six >> seven >> eight >> nine >> ten >> eleven >> twelve >> thirteen; // Where character variables will get their value switch (one) // corrects if invalid character is entered for each variable { case '0': one = '0'; break; case '1': one = 1; break; case '2': one = '2'; break; case '3': one = '3'; break; case '4': one = '4'; break; case '5': one = '5'; break; case '6': one = '6'; break; case '7': one = '7'; break; case '8': one = '8'; break; case '9': one = '9'; break; default: cout << "Wrong character entered for first number, please try again" << endl; } switch (two) { case '0': two = '0'; break; case '1': two = '1'; break; case '2': two = '2'; break; case '3': two = '3'; break; case '4': two = '4'; break; case '5': two = '5'; break; case '6': two = '6'; break; case '7': two = '7'; break; case '8': two = '8'; break; case '9': two = '9'; break; case '-': two = '-'; break; default: cout << "Wrong character entered for second number, please try again" << endl; } switch (three) { case '0': three = '0'; break; case '1': three = '1'; break; case '2': three = '2'; break; case '3': three = '3'; break; case '4': three = '4'; break; case '5': three = '5'; break; case '6': three = '6'; break; case '7': three = '7'; break; case '8': three = '8'; break; case '9': three = '9'; break; case '-': three = '-'; break; default: cout << "Wrong character entered for third number, please try again" << endl; } switch (four) { case '0': four = '0'; break; case '1': four = '1'; break; case '2': four = '2'; break; case '3': four = '3'; break; case '4': four = '4'; break; case '5': four = '5'; break; case '6': four = '6'; break; case '7': four = '7'; break; case '8': four = '8'; break; case '9': four = '9'; break; case '-': four = '-'; break; default: cout << "Wrong character entered for fourth number, please try again" << endl; } switch (five) { case '0': five = '0'; break; case '1': five = '1'; break; case '2': five = '2'; break; case '3': five = '3'; break; case '4': five = '4'; break; case '5': five = '5'; break; case '6': five = '6'; break; case '7': five = '7'; break; case '8': five = '8'; break; case '9': five = '9'; break; case '-': five = '-'; break; default: cout << "Wrong character entered for fifth number, please try again" << endl; } switch (six) { case '0': six = '0'; break; case '1': six = '1'; break; case '2': six = '2'; break; case '3': six = '3'; break; case '4': six = '4'; break; case '5': six = '5'; break; case '6': six = '6'; break; case '7': six = '7'; break; case '8': six = '8'; break; case '9': six = '9'; break; case '-': six = '-'; break; default: cout << "Wrong character entered for sixth number, please try again" << endl; } switch (seven) { case '0': seven = '0'; break; case '1': seven = '1'; break; case '2': seven = '2'; break; case '3': seven = '3'; break; case '4': seven = '4'; break; case '5': seven = '5'; break; case '6': seven = '6'; break; case '7': seven = '7'; break; case '8': seven = '8'; break; case '9': seven = '9'; break; case '-': seven = '-'; break; default: cout << "Wrong character entered for seventh number, please try again" << endl; } switch (eight) { case '0': eight = '0'; break; case '1': eight = '1'; break; case '2': eight = '2'; break; case '3': eight = '3'; break; case '4': eight = '4'; break; case '5': eight = '5'; break; case '6': eight = '6'; break; case '7': eight = '7'; break; case '8': eight = '8'; break; case '9': eight = '9'; break; case '-': eight = '-'; break; default: cout << "Wrong character entered for eighth number, please try again" << endl; } switch (nine) { case '0': nine = '0'; break; case '1': nine = '1'; break; case '2': nine = '2'; break; case '3': nine = '3'; break; case '4': nine = '4'; break; case '5': nine = '5'; break; case '6': nine = '6'; break; case '7': nine = '7'; break; case '8': nine = '8'; break; case '9': nine = '9'; break; case '-': nine = '-'; break; default: cout << "Wrong character entered for ninth number, please try again" << endl; } switch (ten) { case '0': ten = '0'; break; case '1': ten = '1'; break; case '2': ten = '2'; break; case '3': ten = '3'; break; case '4': ten = '4'; break; case '5': ten = '5'; break; case '6': ten = '6'; break; case '7': ten = '7'; break; case '8': ten = '8'; break; case '9': ten = '9'; break; case '-': ten = '-'; break; default: cout << "Wrong character entered for tenth number, please try again" << endl; } switch (eleven) { case '0': eleven = '0'; break; case '1': eleven = '1'; break; case '2': eleven = '2'; break; case '3': eleven = '3'; break; case '4': eleven = '4'; break; case '5': eleven = '5'; break; case '6': eleven = '6'; break; case '7': eleven = '7'; break; case '8': eleven = '8'; break; case '9': eleven = '9'; break; case '-': eleven = '-'; break; default: cout << "Wrong character entered for tenth number, please try again" << endl; } switch (eleven) { case '0': eleven = '0'; break; case '1': eleven = '1'; break; case '2': eleven = '2'; break; case '3': eleven = '3'; break; case '4': eleven = '4'; break; case '5': eleven = '5'; break; case '6': eleven = '6'; break; case '7': eleven = '7'; break; case '8': eleven = '8'; break; case '9': eleven = '9'; break; default: cout << "Wrong character entered for eleventh number, please try again" << endl; } switch (twelve) { case '-': twelve = '-'; break; default: cout << "Wrong character entered for twelvth number, please try again" << endl; } switch (thirteen) { case '0': thirteen = '0'; break; case '1': thirteen = '1'; break; case '2': thirteen = '2'; break; case '3': thirteen = '3'; break; case '4': thirteen = '4'; break; case '5': thirteen = '5'; break; case '6': thirteen = '6'; break; case '7': thirteen = '7'; break; case '8': thirteen = '8'; break; case '9': thirteen = '9'; break; default: cout << "Wrong character entered for thirteenth number, please try again" << endl; } // corrects if invalid character is entered if(two != '-'){ // picks which equation to use if(three != '-'){ if(four != '-'){ if(five != '-'){ if(six != '-'){ if(seven != '-'){ sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*seven + 8*nine + 9*eleven - 2160);} else if(nine != '-'){ sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*eight + 8*ten + 9*eleven - 2160); } else if(eight != '-'){ if(nine != '-'){ sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*nine + 8*ten + 9*eleven - 2160); } else if(seven != '-'){ if(eight != '-'){ if(nine != '-'){ sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*four + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160); } else if(six != '-'){ if(seven != '-'){ if(eight != '-'){ if(nine != '-'){ sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*three + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160); } else if(five != '-'){ if(six != '-'){ if(seven != '-'){ if(eight != '-'){ if(nine != '-'){ sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*four + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*four + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*two + 3*four + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160); } else if(four != '-'){ if(five != '-'){ if(six != '-'){ if(seven != '-'){ if(eight != '-'){ if(nine != '-'){ sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);} else sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);} else sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*three + 3*four + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*three + 3*four + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*three + 3*four + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);} else sum = (one + 2*three + 3*five + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160); remainder = (sum%11) + 48; // finds the remainder of the sum if(thirteen == remainder) // validates ISBN number by thirteenth character cout << endl << "The ISBN number, " << one << two << three << four << five << six << seven << eight << nine << ten << eleven <