Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Simulatore di blog
- #include <iostream>
- using namespace std;
- struct Articolo {
- unsigned short int anno;
- unsigned short int mese;
- unsigned short int giorno;
- string titolo;
- Articolo* prossimo;
- };
- int main() {
- Articolo* inizio = NULL;
- Articolo* nuovo = NULL;
- Articolo* secondo = NULL;
- Articolo* tmp = NULL;
- unsigned short int scelta = 1;
- unsigned short int corretto = 0;
- while(scelta != 2) { // Immettendo 2 il programma termina
- cout << "Immetti 1 per inserire un nuovo articolo,\n0 per vedere tutti gli articoli pubblicati finora" << endl;
- cin >> scelta;
- if(scelta == 1) {
- nuovo = new Articolo;
- if(inizio == NULL) nuovo -> prossimo = NULL;
- else {
- nuovo -> prossimo = inizio;
- secondo = inizio;
- }
- inizio = nuovo;
- cout << endl << "Anno: ";
- while(corretto == 0) {
- cin >> nuovo -> anno;
- if(nuovo -> anno < 2015) cout << nuovo -> anno << "? LOL, scrivi l'anno corretto" << endl << endl;
- else if(secondo != NULL && nuovo -> anno < secondo -> anno) cout << "Saresti andato indietro nel tempo? LOL, riscrivi correttamente l'anno" << endl << endl;
- else corretto = 1;
- }
- corretto = 0;
- cout << "Mese: ";
- while(corretto == 0) {
- cin >> nuovo -> mese;
- if(nuovo -> mese < 1 || nuovo -> mese > 12) cout << "Quale sarebbe il " << nuovo -> mese << "° mese? LOL, riscrivilo correttamente" << endl << endl;
- else if(secondo != NULL && nuovo -> anno == secondo -> anno && nuovo -> mese < secondo -> mese) cout << "Saresti andato indietro nel tempo? LOL, riscrivi correttamente il mese" << endl << endl;
- else corretto = 1;
- }
- corretto = 0;
- cout << "Giorno: ";
- while(corretto == 0) {
- cin >> nuovo -> giorno;
- if(secondo != NULL && nuovo -> mese == secondo -> mese && nuovo -> giorno < secondo -> giorno) {
- cout << "Saresti andato indietro nel tempo? LOL, riscrivi correttamente il giorno" << endl << endl;
- continue;
- }
- switch(nuovo -> mese) {
- case 1:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Gennaio non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 2:
- if(nuovo -> giorno < 1) cout << "A Febbraio non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else if(nuovo -> giorno == 29) {
- if(nuovo -> anno % 4 == 0) corretto = 1;
- else cout << "Non siamo in un anno bisestile, il 29 Febbraio non esiste. Riprova" << endl;
- }
- else if(nuovo -> giorno > 29) cout << "A Febbraio non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 3:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Marzo non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 4:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 30) cout << "Ad Aprile non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 5:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Maggio non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 6:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 30) cout << "A Giugno non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 7:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Luglio non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 8:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "Ad Agosto non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 9:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 30) cout << "A Settembre non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 10:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Ottobre non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 11:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 30) cout << "A Novembre non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- case 12:
- if(nuovo -> giorno < 1 || nuovo -> giorno > 31) cout << "A Dicembre non esiste il " << nuovo -> giorno << "° giorno, riscrivilo correttamente" << endl << endl;
- else corretto = 1;
- break;
- }
- }
- corretto = 0;
- cout << "Il titolo dell'articolo è:" << endl;
- cin >> nuovo -> titolo;
- cout << endl;
- }
- else if(scelta == 0) {
- cout << endl << endl;
- tmp = inizio;
- while(tmp != NULL) {
- cout << tmp -> giorno << "/" << tmp -> mese << "/" << tmp -> anno << " " << tmp -> titolo << endl;
- tmp = tmp -> prossimo;
- }
- cout << endl;
- }
- else if(scelta != 0 && scelta != 1 && scelta != 2) cout << "Input non valido" << endl << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement