ECCO ORA L'HO FINITO, MA MI DA DEGLI ERRORI, ME LO POTRESTI CORREGGERE. GRAZIE
#include <iostream>
#include "string.h"
using namespace std;
typedef struct _Data{
int giorno;
int mese;
int anno;
} Data;
typedef struct _Tesserati{
char nome[20];
char cognome[20];
Data nascita;
char codice[14];
int numero;
char libropreso;
bool restituzione;
} Tesserati;
typedef struct _Libri{
char titolo[20];
char autore[20];
char editore[20];
char codicelibro[9];
int numerolibro;
} Libri;
int main () {
char s[20];sp1[20],sp2[20],all1[20],all2[20],cod[10];
int sc1,i,sc2,sc3,o=0,nv=0,nw=0,q,q1,q2,q3,z1,z,o1=0,i1,l1,l,iw;
int numerotesserati=1,numerolibri=1;
Tesserati v[255];
Libri w[255];
do {
cout<<"1 = tesseremanti"<<endl;
cout<<"2 = gestione libri"<<endl;
cout<<"3 = prestiti"<<endl;
cout<<"4 = uscire"<<endl;
cin>>sc1;
switch(sc1){
case 1:
cout<<"1 = ins nuovo tesserato"<<endl;
cout<<"2 = elenco tesserati"<<endl;
cout<<"3 = trova tesserato"<<endl;
cout<<"4 = indietro"<<endl;
cin>>sc2;
switch(sc2){
case 1:
cout<<"nome?"<<endl;
cin>>v[nv].nome;
cout<<"cognome?"<<endl;
cin>>v[nv].cognome;
cout<<"giorno di nascita?"<<endl;
cin>>v[nv].nascita.giorno;
cout<<"mese di nascita?"<<endl;
cin>>v[nv].nascita.mese;
cout<<"anno di nascita?"<<endl;
cin>>v[nv].nascita.anno;
cout<<"numero tesserato = "<<numerotesserati;
v[nv].numero=numerotesserati;
numerotesserati++;
strcpy(sp1,v[nv].nome);
strcpy(sp2,v[nv].cognome);
sp1[3]='\0';
sp2[3]='\0';
s=v[nv].nascita.anno+v[nv].nascita.mese+v[nv].nascita.giorno;
s[5]='\0';
for (z=0;z<10;z++){
if (z<3){
v[nv].codice[z]=sp1[z];
}
if (z>=3 && z<6){
v[nv].codice[z]=sp2[o];
o++;
}
o=0;
else{
v[nv].codice[z]=s[o]
o++;
}
}
v[nv].codice[10]='\0';
cout<<"codice tesserato = "<<v[nv].codice;
v[nv].restituzione=true;
nv++;
break;
case 2:
for (i=0;i<nv;i++){
cout<<v[i].nome<<endl;
cout<<v[i].cognome<<endl;
cout<<v[i].nascita.giorno<<"/"<<v[i].nascita.mese<<"/"<<v[i].nascita.anno<<endl;
cout<<v[i].numero<<endl;
cout<<v[i].codice<<endl;
if (v[i].restituzione==false){
cout<<"libro = "<<v[i].libropreso<<endl;
}
cout<<endl;
}
break;
case 3:
cout<<"1 = cerca per nome e cognome"<<endl;
cout<<"2 = cerca per codice"<<endl;
cout<<"3 = esci"<<endl;
cin>>sc3;
switch(sc3){
case 1:
cout<<"ins il nome del tesserato"<<endl;
cin>>all1;
cout<<"ins il cognome del tesserato "<<endl;
cin>>all2;
for (q=0;q<nv;q++){
if (strcmp(all1,v[q].nome)==0 && strcmp(all2,v[q].cognome)==0){
cout<<v[q].nome<<endl;
cout<<v[q].cognome<<endl;
cout<<v[q].nascita.giorno<<"/"<<v[q].nascita.mese<<"/"<<v[q].nascita.anno<<endl;
cout<<v[q].numero<<endl;
cout<<v[q].codice<<endl;
if (v[q].restituzione==false){
cout<<"libro = "<<v[q].libropreso<<endl;
}
}
}
break;
case 2:
cout<<"ins il codice del tesserato "<<endl;
cin>>cod;
for (q1=0;q1<nv;q1++){
if (strcmp(all1,v[q1].codice){
cout<<v[q1].nome<<endl;
cout<<v[q1].cognome<<endl;
cout<<v[q1].nascita.giorno<<"/"<<v[q1].nascita.mese<<"/"<<v[q1].nascita.anno<<endl;
cout<<v[q1].numero<<endl;
cout<<v[q1].codice<<endl;
if (v[q1].restituzione==false){
cout<<"libro = "<<v[q1].libropreso<<endl;
}
}
}
break;
case 3:
cout<<"indietro"<<endl;
break;
default:
cout<<"errore_riprovare"<<endl;
break;
case 4:
cout<<"indietro"<<endl;
break;
default:
cout<<"errore_riprovare"<<endl;
}
break;
case 2:
cout<<"1 = ins nuovo libro"<<endl;
cout<<"2 = elenco libri"<<endl;
cout<<"3 = trova libro"<<endl;
cout<<"4 = indietro"<<endl;
cin>>sc2;
switch(sc2){
case 1:
cout<<"titolo?"<<endl;
cin>>w[nw].titolo;
cout<<"editore?"<<endl;
cin>>w[nw].editore;
cout<<"autore?"<<endl;
cin>>w[nw].autore;
cout<<"numero libro = "<<numerolibri;
w[nw].numerolibro=numerolibri;
numerolibri++;
strcpy(sp1,titolo);
strcpy(sp2,autore);
strcpy(s,editore);
sp1[3]='\0';
sp2[3]='\0';
s[3]='\0';
for (z1=0;z1<9;z1++){
if (z<3){
w[nw].codicelibro[z1]=sp1[z1];
}
if (z>=3 && z<6){
w[nw].codicelibro[z1]=sp2[o1];
o1++;
}
o=0;
else{
w[nw].codicelibro[z1]=s[o1]
o1++;
}
}
w[nw].codicelibro[9]='\0';
cout<<"codice libro = "<<w[nw].codicelibro;
nw++;
break;
case 2:
for (i1=0;i1<nw;i1++){
cout<<w[i1].titolo<<endl;
cout<<w[i1].autore<<endl;
cout<<w[i1].editore<<endl;
cout<<w[i1].numerolibro<<endl;
cout<<w[i1].codicelibro<<endl;
cout<<endl;
}
break;
case 3:
cout<<"1 = cerca per titolo e autore"<<endl;
cout<<"2 = cerca per codice"<<endl;
cout<<"3 = esci"<<endl;
cin>>sc3;
switch(sc3){
case 1:
cout<<"ins il titolo del libro"<<endl;
cin>>all1;
cout<<"ins l'autore del libro"<<endl;
cin>>all2;
for (q2=0;q2<nw;q2++){
if (strcmp(all1,w[q2].titolo)==0 && strcmp(all2,w[q2].autore)==0){
cout<<w[q2].titolo<<endl;
cout<<w[q2].autore<<endl;
cout<<w[q2].editore<<endl;
cout<<w[q2].numerolibro<<endl;
cout<<w[q2].codicelibro<<endl;
}
}
break;
case 2:
cout<<"ins il codice del libro "<<endl;
cin>>cod;
for (q3=0;q3<nv;q3++){
if (strcmp(all1,w[q3].codice)==0){
cout<<w[q3].titolo<<endl;
cout<<w[q3].autore<<endl;
cout<<w[q3].editore<<endl;
cout<<w[q3].numerolibro<<endl;
cout<<w[q3].codicelibro<<endl;
}
}
break;
case 3:
cout<<"indietro"<<endl;
break;
default:
cout<<"errore_riprovare"<<endl;
break;
case 4:
cout<<"indietro"<<endl;
break;
default:
cout<<"errore_riprovare"<<endl;
}
break;
case 3:
cout<<"1 = ins nuovo prestito"<<endl;
cout<<"2 = visualiza tutti i prestiti"<<endl;
cout<<"3 = restituzione "<<endl;
cout<<"4 = indietro"<<endl;
cin>>sc4;
switch(sc4){
case 1:
cout<<"ins codice tesserato"<<endl;
cin>>all1;
cout<<"ins codice libro"<<endl;
cin>>all2;
for (l=0;l<nv;l++){
if (strcmp(v[l].codice,all1)==0){
if (v[l].restituzione=false){
cout<<"prima restituire il libro preso!"<<endl;
}
else {
v[l].restituzione=false;
strcpy(v[l].libropreso,all2);
}
}
}
break;
case 2:
for (iw=0;iw<nv;iw++){
if(v[iw].restituzione=false){
cout<<v[iw].nome<<endl;
cout<<v[iw].cognome<<endl;
cout<<v[iw].nascita.giorno<<"/"<<v[iw].nascita.mese<<"/"<<v[iw].nascita.anno<<endl;
cout<<v[iw].numero<<endl;
cout<<v[iw].codice<<endl;
cout<<"libro = "<<v[iw].libropreso<<endl;
}
cout<<endl;
}
break;
case 3:
cout<<"ins codice del libro"<<endl;
cin>>all1;
cout<<"ins codice del tesserato"<<endl;
cin>>all2;
for (l1=0;l1<nv;l1++){
if (strcmp(v[l1].codice,all2)==0 && strcmp(v[l1].libropreso,all1)==0){
v[l1].restituzione=true;
}
}
break;
case 4:
cout<<"indietro"<<endl;
break;
default:
cout<<"errore_riprovare"<<endl;
}
break;
case 4:
cout<<"goodbye"<<endl;
break;
default:
cout<<"errore"<<endl;
}
} while(sc1!=4);
return 0;
}