School-Coding-Cpp/sfusi/esercizio6_stringhe_generaP...

72 lines
1.9 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Genarare una password che soddisfa i criteri:
- Presenza di almeno una:
- minuscola;
- maiuscola;
- cifra;
- punteggiatura;
- Lunghezza della password compresa fra 8 e 12 caratteri;
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
#define SIZE 12
#define NSTAMPA_MIN 5
#define NSTAMPA_MAX 6
#define CARATTERI_MIN 2
#define CARATTERI_MAX 3
#define MINUSCOLA_MIN 97
#define MINUSCOLA_MAX 122
#define MAIUSCOLA_MIN 65
#define MAIUSCOLA_MAX 90
#define CIFRA_MIN 48
#define CIFRA_MAX 57
#define PUNTEGGIATURA_MIN 33
#define PUNTEGGIATURA_MAX 47
using namespace std;
void generaPassword(int size, char nMinuscola[], char nMaiuscola[], char nCifra[], char nPunteggiatura[], char nCaratteri);
int main(void) {
srand(time(NULL));
char nMinuscola[SIZE];
char nMaiuscola[SIZE];
char nCifra[SIZE];
char nPunteggiatura[SIZE];
char nCaratteri;
generaPassword(SIZE, nMinuscola, nMaiuscola, nCifra, nPunteggiatura, nCaratteri);
return 0;
}
void generaPassword(int size, char nMinuscola[], char nMaiuscola[], char nCifra[], char nPunteggiatura[], char nCaratteri) {
int nStampa = rand() % (NSTAMPA_MAX - NSTAMPA_MIN + 1) + NSTAMPA_MIN;
for (int j = 0; j < nStampa; j++) {
nCaratteri = rand() % (CARATTERI_MAX - CARATTERI_MIN + 1) + CARATTERI_MIN;
for (int i = 0; i < nCaratteri; i++) {
nMinuscola[i] = rand() % (MINUSCOLA_MAX - MINUSCOLA_MIN + 1) + MINUSCOLA_MIN;
cout << nMinuscola[i];
nMaiuscola[i] = rand() % (MAIUSCOLA_MAX - MAIUSCOLA_MIN + 1) + MAIUSCOLA_MIN;
cout << nMaiuscola[i];
nCifra[i] = rand() % (CIFRA_MAX - CIFRA_MIN + 1) + CIFRA_MIN;
cout << nCifra[i];
nPunteggiatura[i] = rand() % (PUNTEGGIATURA_MAX - PUNTEGGIATURA_MIN + 1) + PUNTEGGIATURA_MIN;
cout << nPunteggiatura[i];
}
cout << endl;
}
}