Linguaggio C/C++ – Verifica validità carta di credito

Codice C++

#include <iostream>
#include <iomanip>
using namespace std;

int main (void) {

    short NumeroCarta[] = {4, 8, 1, 0, 6, 4, 2, 9, 4, 2, 7, 3, 2, 8, 8, 5};
    
    short NumeroCifre = sizeof(NumeroCarta)/sizeof(short);
    // 'NumeroCifre' contiene la dimensione del vettore
    if (NumeroCifre != 16) {
        cout << endl << endl << "Lunghezza sequenza non corretta " << endl << endl;
        return 0;
    }
    
    short AppoggioCarta[NumeroCifre];

    short indice;
    
    cout << "Il Numero della Carta e': " << endl;
    for(indice=0; indice< NumeroCifre; indice++) {
        cout << NumeroCarta[indice] << " ";
    }

    
    cout << endl << endl << endl << "Partendo da destra, ";
    cout << "le cifre poste in posizione dispari si prendono come sono." << endl;
    cout << "Le cifre poste in posizione pari si raddoppiano; "; 
    cout << "se il risultato risulta a due cifre, esse si sommano tra loro.";
    
    for (indice=(NumeroCifre-1); indice>=0; indice--) {
        if ((indice) % 2 == 0){
            // Partendo da destra si raddoppiano le cifre poste in posizione pari
            AppoggioCarta[indice]=NumeroCarta[indice] * 2;
            // Se il risultato è a due cifre, esse vanno sommate tra loro
            if(AppoggioCarta[indice] >= 10)
                AppoggioCarta[indice] = 1 + (AppoggioCarta[indice] % 10); 
            }
        else 
        // Le cifre poste in posizione dispari si prendono come sono
            AppoggioCarta[indice]=NumeroCarta[indice];
        }
    
    // Si visualizza la sequenza ottenuta
    cout << endl << endl << "La sequenza dell'elaborazione e': " << endl;
    for(indice=0;indice<NumeroCifre;indice++) {
        cout << AppoggioCarta[indice] << " ";
        }
    short somma=0;
    
    // Si sommano tra loro tutte le cifre ottenute
    for(indice=0;indice<NumeroCifre;indice++) {
        somma+= AppoggioCarta[indice];
        }
    cout << endl << endl << endl;
    cout << "La somma della sequenza vale " << somma << ", ";
    
    // Verificare se la somma è un multiplo di 10, 
    // ovvero se il resto della divisione per 10 è 0

    if (somma % 10 == 0) {  // la somma è divisibile per 10
        cout << "ed e' un multiplo di 10." << endl << endl;
        cout << "Di conseguenza, il numero della carta di credito risulta ";
        cout << "ESATTO!";
        }
    else {  // la somma non è divisibile per 10
           cout << "e NON e' un multiplo di 10." << endl << endl; 
        cout << "Di conseguenza, il numero della carta di credito risulta ";
        cout << "NON ESATTO!";
    }
    cout << endl << endl << endl;

      system ("pause");
    return 0;
}

Visite: 343

Pagine: 1 2 3 4