Guest User

HOLY SH*T

a guest
Apr 19th, 2010
1,581
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //File ISBN Validation System.cpp
  2. //Purpose:
  3. //  Program to identify and validate an ISBN number.
  4.  
  5. #include <iostream>
  6. #include <iomanip>
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     char one = 0; // variable that is always a number
  12.     char two = 0; // variable that can either be a variable or a hyphen
  13.     char three = 0; // variable that can either be a variable or a hyphen
  14.     char four = 0; // variable that can either be a variable or a hyphen
  15.     char five = 0; // variable that can either be a variable or a hyphen
  16.     char six = 0; // variable that can either be a variable or a hyphen
  17.     char seven = 0; // variable that can either be a variable or a hyphen
  18.     char eight = 0; // variable that can either be a variable or a hyphen
  19.     char nine = 0; // variable that can either be a variable or a hyphen
  20.     char ten = 0; // variable that can either be a variable or a hyphen
  21.     char eleven = 0; // variable that can either be a variable or a hyphen
  22.     char twelve = 0; // variable that is always a hyphen
  23.     char thirteen = 0; // variable that is always a number
  24.     int sum = 0; // sum of the first nine characters
  25.     int remainder = 0; // remainder variable used to check validation
  26.    
  27.     cout << "                 ISBN Validation System"<< endl << endl;
  28.     cout << "Enter ISBN number: "; // Where the ISBN number is entered
  29.     cin >> one >> two >> three >> four >> five >> six >> seven >> eight >> nine >> ten >> eleven >> twelve >> thirteen; // Where character variables will get their value
  30.  
  31.     switch (one) // corrects if invalid character is entered for each variable
  32.     {
  33.     case '0':
  34.         one = '0';
  35.         break;
  36.     case '1':
  37.         one = 1;
  38.         break;
  39.     case '2':
  40.         one = '2';
  41.         break;
  42.     case '3':
  43.         one = '3';
  44.         break;
  45.     case '4':
  46.         one = '4';
  47.         break;
  48.     case '5':
  49.         one = '5';
  50.         break;
  51.     case '6':
  52.         one = '6';
  53.         break;
  54.     case '7':
  55.         one = '7';
  56.         break;
  57.     case '8':
  58.         one = '8';
  59.         break;
  60.     case '9':
  61.         one = '9';
  62.         break;
  63.     default:
  64.         cout << "Wrong character entered for first number, please try again" << endl;
  65.     }
  66.     switch (two)
  67.     {
  68.     case '0':
  69.         two = '0';
  70.         break;
  71.     case '1':
  72.         two = '1';
  73.         break;
  74.     case '2':
  75.         two = '2';
  76.         break;
  77.     case '3':
  78.         two = '3';
  79.         break;
  80.     case '4':
  81.         two = '4';
  82.         break;
  83.     case '5':
  84.         two = '5';
  85.         break;
  86.     case '6':
  87.         two = '6';
  88.         break;
  89.     case '7':
  90.         two = '7';
  91.         break;
  92.     case '8':
  93.         two = '8';
  94.         break;
  95.     case '9':
  96.         two = '9';
  97.         break;
  98.     case '-':
  99.         two = '-';
  100.         break;
  101.     default:
  102.         cout << "Wrong character entered for second number, please try again" << endl;
  103.     }
  104.     switch (three)
  105.     {
  106.     case '0':
  107.         three = '0';
  108.         break;
  109.     case '1':
  110.         three = '1';
  111.         break;
  112.     case '2':
  113.         three = '2';
  114.         break;
  115.     case '3':
  116.         three = '3';
  117.         break;
  118.     case '4':
  119.         three = '4';
  120.         break;
  121.     case '5':
  122.         three = '5';
  123.         break;
  124.     case '6':
  125.         three = '6';
  126.         break;
  127.     case '7':
  128.         three = '7';
  129.         break;
  130.     case '8':
  131.         three = '8';
  132.         break;
  133.     case '9':
  134.         three = '9';
  135.         break;
  136.     case '-':
  137.         three = '-';
  138.         break;
  139.     default:
  140.         cout << "Wrong character entered for third number, please try again" << endl;
  141.     }
  142.     switch (four)
  143.     {
  144.     case '0':
  145.         four = '0';
  146.         break;
  147.     case '1':
  148.         four = '1';
  149.         break;
  150.     case '2':
  151.         four = '2';
  152.         break;
  153.     case '3':
  154.         four = '3';
  155.         break;
  156.     case '4':
  157.         four = '4';
  158.         break;
  159.     case '5':
  160.         four = '5';
  161.         break;
  162.     case '6':
  163.         four = '6';
  164.         break;
  165.     case '7':
  166.         four = '7';
  167.         break;
  168.     case '8':
  169.         four = '8';
  170.         break;
  171.     case '9':
  172.         four = '9';
  173.         break;
  174.     case '-':
  175.         four = '-';
  176.         break;
  177.     default:
  178.         cout << "Wrong character entered for fourth number, please try again" << endl;
  179.     }
  180.     switch (five)
  181.     {
  182.     case '0':
  183.         five = '0';
  184.         break;
  185.     case '1':
  186.         five = '1';
  187.         break;
  188.     case '2':
  189.         five = '2';
  190.         break;
  191.     case '3':
  192.         five = '3';
  193.         break;
  194.     case '4':
  195.         five = '4';
  196.         break;
  197.     case '5':
  198.         five = '5';
  199.         break;
  200.     case '6':
  201.         five = '6';
  202.         break;
  203.     case '7':
  204.         five = '7';
  205.         break;
  206.     case '8':
  207.         five = '8';
  208.         break;
  209.     case '9':
  210.         five = '9';
  211.         break;
  212.     case '-':
  213.         five = '-';
  214.         break;
  215.     default:
  216.         cout << "Wrong character entered for fifth number, please try again" << endl;
  217.     }
  218.     switch (six)
  219.     {
  220.     case '0':
  221.         six = '0';
  222.         break;
  223.     case '1':
  224.         six = '1';
  225.         break;
  226.     case '2':
  227.         six = '2';
  228.         break;
  229.     case '3':
  230.         six = '3';
  231.         break;
  232.     case '4':
  233.         six = '4';
  234.         break;
  235.     case '5':
  236.         six = '5';
  237.         break;
  238.     case '6':
  239.         six = '6';
  240.         break;
  241.     case '7':
  242.         six = '7';
  243.         break;
  244.     case '8':
  245.         six = '8';
  246.         break;
  247.     case '9':
  248.         six = '9';
  249.         break;
  250.     case '-':
  251.         six = '-';
  252.         break;
  253.     default:
  254.         cout << "Wrong character entered for sixth number, please try again" << endl;
  255.     }
  256.     switch (seven)
  257.     {
  258.     case '0':
  259.         seven = '0';
  260.         break;
  261.     case '1':
  262.         seven = '1';
  263.         break;
  264.     case '2':
  265.         seven = '2';
  266.         break;
  267.     case '3':
  268.         seven = '3';
  269.         break;
  270.     case '4':
  271.         seven = '4';
  272.         break;
  273.     case '5':
  274.         seven = '5';
  275.         break;
  276.     case '6':
  277.         seven = '6';
  278.         break;
  279.     case '7':
  280.         seven = '7';
  281.         break;
  282.     case '8':
  283.         seven = '8';
  284.         break;
  285.     case '9':
  286.         seven = '9';
  287.         break;
  288.     case '-':
  289.         seven = '-';
  290.         break;
  291.     default:
  292.         cout << "Wrong character entered for seventh number, please try again" << endl;
  293.     }
  294.     switch (eight)
  295.     {
  296.     case '0':
  297.         eight = '0';
  298.         break;
  299.     case '1':
  300.         eight = '1';
  301.         break;
  302.     case '2':
  303.         eight = '2';
  304.         break;
  305.     case '3':
  306.         eight = '3';
  307.         break;
  308.     case '4':
  309.         eight = '4';
  310.         break;
  311.     case '5':
  312.         eight = '5';
  313.         break;
  314.     case '6':
  315.         eight = '6';
  316.         break;
  317.     case '7':
  318.         eight = '7';
  319.         break;
  320.     case '8':
  321.         eight = '8';
  322.         break;
  323.     case '9':
  324.         eight = '9';
  325.         break;
  326.     case '-':
  327.         eight = '-';
  328.         break;
  329.     default:
  330.         cout << "Wrong character entered for eighth number, please try again" << endl;
  331.     }
  332.     switch (nine)
  333.     {
  334.     case '0':
  335.         nine = '0';
  336.         break;
  337.     case '1':
  338.         nine = '1';
  339.         break;
  340.     case '2':
  341.         nine = '2';
  342.         break;
  343.     case '3':
  344.         nine = '3';
  345.         break;
  346.     case '4':
  347.         nine = '4';
  348.         break;
  349.     case '5':
  350.         nine = '5';
  351.         break;
  352.     case '6':
  353.         nine = '6';
  354.         break;
  355.     case '7':
  356.         nine = '7';
  357.         break;
  358.     case '8':
  359.         nine = '8';
  360.         break;
  361.     case '9':
  362.         nine = '9';
  363.         break;
  364.     case '-':
  365.         nine = '-';
  366.         break;
  367.     default:
  368.         cout << "Wrong character entered for ninth number, please try again" << endl;
  369.     }
  370.     switch (ten)
  371.     {
  372.     case '0':
  373.         ten = '0';
  374.         break;
  375.     case '1':
  376.         ten = '1';
  377.         break;
  378.     case '2':
  379.         ten = '2';
  380.         break;
  381.     case '3':
  382.         ten = '3';
  383.         break;
  384.     case '4':
  385.         ten = '4';
  386.         break;
  387.     case '5':
  388.         ten = '5';
  389.         break;
  390.     case '6':
  391.         ten = '6';
  392.         break;
  393.     case '7':
  394.         ten = '7';
  395.         break;
  396.     case '8':
  397.         ten = '8';
  398.         break;
  399.     case '9':
  400.         ten = '9';
  401.         break;
  402.     case '-':
  403.         ten = '-';
  404.         break;
  405.     default:
  406.         cout << "Wrong character entered for tenth number, please try again" << endl;
  407.     }
  408.     switch (eleven)
  409.     {
  410.     case '0':
  411.         eleven = '0';
  412.         break;
  413.     case '1':
  414.         eleven = '1';
  415.         break;
  416.     case '2':
  417.         eleven = '2';
  418.         break;
  419.     case '3':
  420.         eleven = '3';
  421.         break;
  422.     case '4':
  423.         eleven = '4';
  424.         break;
  425.     case '5':
  426.         eleven = '5';
  427.         break;
  428.     case '6':
  429.         eleven = '6';
  430.         break;
  431.     case '7':
  432.         eleven = '7';
  433.         break;
  434.     case '8':
  435.         eleven = '8';
  436.         break;
  437.     case '9':
  438.         eleven = '9';
  439.         break;
  440.     case '-':
  441.         eleven = '-';
  442.         break;
  443.     default:
  444.         cout << "Wrong character entered for tenth number, please try again" << endl;
  445.     }
  446.     switch (eleven)
  447.     {
  448.     case '0':
  449.         eleven = '0';
  450.         break;
  451.     case '1':
  452.         eleven = '1';
  453.         break;
  454.     case '2':
  455.         eleven = '2';
  456.         break;
  457.     case '3':
  458.         eleven = '3';
  459.         break;
  460.     case '4':
  461.         eleven = '4';
  462.         break;
  463.     case '5':
  464.         eleven = '5';
  465.         break;
  466.     case '6':
  467.         eleven = '6';
  468.         break;
  469.     case '7':
  470.         eleven = '7';
  471.         break;
  472.     case '8':
  473.         eleven = '8';
  474.         break;
  475.     case '9':
  476.         eleven = '9';
  477.         break;
  478.     default:
  479.         cout << "Wrong character entered for eleventh number, please try again" << endl;
  480.     }
  481.     switch (twelve)
  482.     {
  483.     case '-':
  484.         twelve = '-';
  485.         break;
  486.     default:
  487.         cout << "Wrong character entered for twelvth number, please try again" << endl;
  488.     }
  489.     switch (thirteen)
  490.     {
  491.     case '0':
  492.         thirteen = '0';
  493.         break;
  494.     case '1':
  495.         thirteen = '1';
  496.         break;
  497.     case '2':
  498.         thirteen = '2';
  499.         break;
  500.     case '3':
  501.         thirteen = '3';
  502.         break;
  503.     case '4':
  504.         thirteen = '4';
  505.         break;
  506.     case '5':
  507.         thirteen = '5';
  508.         break;
  509.     case '6':
  510.         thirteen = '6';
  511.         break;
  512.     case '7':
  513.         thirteen = '7';
  514.         break;
  515.     case '8':
  516.         thirteen = '8';
  517.         break;
  518.     case '9':
  519.         thirteen = '9';
  520.         break;
  521.     default:
  522.         cout << "Wrong character entered for thirteenth number, please try again" << endl;
  523.     } // corrects if invalid character is entered
  524.     if(two != '-'){ // picks which equation to use
  525.         if(three != '-'){
  526.             if(four != '-'){
  527.                 if(five != '-'){
  528.                     if(six != '-'){
  529.                         if(seven != '-'){
  530.                             sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*seven + 8*nine + 9*eleven - 2160);}
  531.    
  532.                         else if(nine != '-'){
  533.                             sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*eight + 8*nine + 9*eleven - 2160);}
  534.                             else
  535.                                 sum = (one + 2*two + 3*three + 4*four + 5*five + 6*six + 7*eight + 8*ten + 9*eleven - 2160);
  536.                         }
  537.                     else if(eight != '-'){
  538.                             if(nine != '-'){
  539.                                 sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);}
  540.                             else
  541.                                 sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);}
  542.                         else
  543.                             sum = (one + 2*two + 3*three + 4*four + 5*five + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);
  544.                     }
  545.                 else if(seven != '-'){
  546.                         if(eight != '-'){
  547.                             if(nine != '-'){
  548.                                 sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);}
  549.                             else
  550.                                 sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);}
  551.                         else
  552.                             sum = (one + 2*two + 3*three + 4*four + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);}
  553.                     else
  554.                         sum = (one + 2*two + 3*three + 4*four + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);
  555.                 }
  556.             else if(six != '-'){
  557.                     if(seven != '-'){
  558.                         if(eight != '-'){
  559.                             if(nine != '-'){
  560.                                 sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);}
  561.                             else
  562.                                 sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);}
  563.                         else
  564.                             sum = (one + 2*two + 3*three + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);}
  565.                     else
  566.                         sum = (one + 2*two + 3*three + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  567.                 else
  568.                     sum = (one + 2*two + 3*three + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);
  569.             }
  570.         else if(five != '-'){
  571.                 if(six != '-'){
  572.                     if(seven != '-'){
  573.                         if(eight != '-'){
  574.                             if(nine != '-'){
  575.                                 sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);}
  576.                             else
  577.                                 sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);}
  578.                         else
  579.                             sum = (one + 2*two + 3*four + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);}
  580.                     else
  581.                         sum = (one + 2*two + 3*four + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  582.                 else
  583.                     sum = (one + 2*two + 3*four + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  584.             else
  585.                 sum = (one + 2*two + 3*four + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);
  586.         }
  587.     else if(four != '-'){
  588.             if(five != '-'){
  589.                 if(six != '-'){
  590.                     if(seven != '-'){
  591.                         if(eight != '-'){
  592.                             if(nine != '-'){
  593.                                 sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*nine + 9*eleven - 2160);}
  594.                             else
  595.                                 sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*eight + 8*ten + 9*eleven - 2160);}
  596.                         else
  597.                             sum = (one + 2*three + 3*four + 4*five + 5*six + 6*seven + 7*nine + 8*ten + 9*eleven - 2160);}
  598.                     else
  599.                         sum = (one + 2*three + 3*four + 4*five + 5*six + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  600.                 else
  601.                     sum = (one + 2*three + 3*four + 4*five + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  602.             else
  603.                 sum = (one + 2*three + 3*four + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);}
  604.         else
  605.             sum = (one + 2*three + 3*five + 4*six + 5*seven + 6*eight + 7*nine + 8*ten + 9*eleven - 2160);
  606.    
  607.        
  608.     remainder = (sum%11) + 48; // finds the remainder of the sum
  609.  
  610.     if(thirteen == remainder) // validates ISBN number by thirteenth character
  611.         cout << endl << "The ISBN number, " << one << two << three << four << five << six << seven << eight << nine << ten << eleven <<twelve << thirteen << " is VALID." << endl << endl; // If ISBN number is valid
  612.     else
  613.         cout << endl << "The ISBN number, " << one << two << three << four << five << six << seven << eight << nine << ten << eleven << twelve << thirteen << " is INVALID. Check digit is invalid" << endl << endl; // if ISBN number is invalid
  614.    
  615. return 0; // end program
  616.  
  617. }
RAW Paste Data