Skynet! Help Me! Programma Biblioteca!

di il
11 risposte

Skynet! Help Me! Programma Biblioteca!

Programma che gestisca libri con: titolo,autore, chi lo ha noleggiato e gestire un elenco per tesserati con nome cognom e numero tessera:
-Suddivis in funzioni
-quando si inserisce i dati si mette solo un nuovo utente
Quindi tramite questo menu aa video:
1_ Inserisci un nuovo libro
2_Inserisci un nuovo tesserato
3_visualizza libro (tutta la lista, titolo e autore)
4_visualizza tesserato (tutta la lista, nome cognome e numero tessera)
FINE.
Me aiuteresti a farlo, Grazie Mille!

11 Risposte

  • Re: Skynet! Help Me! Programma Biblioteca!

    Non c'è nessun altro che sa il C++ in questo forum? Ho visto certi post di gente che ne sa un casino + di me.
  • Re: Skynet! Help Me! Programma Biblioteca!

    Se capisci questo pezzo di codice allora puoi continuare tranquillamente, se non lo capisci non ti posso aiutare.
    
    #include <vector>
    #include <string>
    #include <map>
    
    
    class CLibro
    {
    public:
    	CLibro()
    	{
    		ordinato = false;
    	};
    	virtual ~CLibro(){};
    
    private:
    	std::string nome;
    	std::string autore;
    	bool ordinato;
    
    public:
    	void OrdinaLibro(void);
    	void RiponiLibro(void);
    };
    
    
    class CUtente
    {
    public:
    		CUtente(){};
    		virtual ~CUtente(){};
    private:
    	std::string nome;
    	std::string Cognome;
    	std::string numeroTessera;
    };
    
    //string: numeroTessera, vector<CLibro> : libriOrdinati
    std::map<std::string,std::vector<CLibro>> StatoLibreria;
    
  • Re: Skynet! Help Me! Programma Biblioteca!

    Non l'ho capito, sono ancora alle basi dei comandi in c++, come in quello della struttra studente, comandi base, ma se non mi puoi aiutare più fa lo stesso, chiedo a qualcun'altro!
  • Re: Skynet! Help Me! Programma Biblioteca!

    Cavoli che permaloso!!! .Inizia a scrivere qualcosa e vediamo di corregere il tuo. Se mi ci metto io non capiresti nulla e non ti servirebbe. Come definiresti le strutture di libro e di studente?
  • Re: Skynet! Help Me! Programma Biblioteca!

    Grazie, questo è l'inizio che ho fatto, ma non riesco a proseguire..
    #include <iostream>
    #include <string>
    using namespace std;
    
    typedef string _libri{
    	char Titoli[20];
    	char Autore[20];
    	int Noleggiatore;
    	
    }libri;
    
    typedef string _tesserati{
    	char Nome[20];
    	char Cognome[20];
    	int Numero_Tesserati;
    	
    }tesserati;
    
    
    
    int main(){
    	int scelta;
    	int NumLibri=0;
    	char Ricerca [20];
    	do{
    		cout<<"------------------------------------------\n";
    		cout<<"Menù:\n";
    		cout<<endl;
    		cout<<"[1] Inserisci Libro\n";
    		cout<<"[2] Visualizza Libro\n";
    		cout<<"[3] Inserisci Utente\n";
    		cout<<"[4] Visualizza Utente\n";
    		cout<<"[5] Noleggia\n";
    		cin>>scelta;
  • Re: Skynet! Help Me! Programma Biblioteca!

    Mettiamo a posto quello che hai già.
    #include <string.h> non va bene. #include <string> si. Se usi la classe string non ha senso definire tutti i struct come char*, basta usare string. quindi da cambiare tutti gli struct con:
    string Titolo,string autore ecc. Metti a posto e riposta il codice corretto poi prosseguiamo.
  • Re: Skynet! Help Me! Programma Biblioteca!

    skynet ha scritto:


    mettiamo a posto quello che hai già.
    #include <string.h> non va bene. #include <string> si. Se usi la classe string non ha senso definire tutti i struct come char*, basta usare string. quindi da cambiare tutti gli struct con:
    string Titolo,string autore ecc. Metti a posto e riposta il codice corretto poi prosseguiamo.
    Fatto.
  • Re: Skynet! Help Me! Programma Biblioteca!

    Hai fatto un casino altro che fatto.
    
    typedef _libri{
       string Titolo;
       string Autore;
       int Noleggiatore;
       
    }libri;
    
    questo è fatto.
  • Re: Skynet! Help Me! Programma Biblioteca!

    #include <iostream>
    #include <string>
    using namespace std;
    
    typedef string _libri{
       string Titoli[20];
       string Autore[20];
       int Noleggiatore;
       
    }libri;
    
    typedef string _tesserati{
       string Nome[20];
       string Cognome[20];
       int Numero_Tesserati;
       
    }tesserati;
    
    
    
    int main(){
       int scelta;
       int NumLibri=0;
       char Ricerca [20];
       do{
          cout<<"------------------------------------------\n";
          cout<<"Menù:\n";
          cout<<endl;
          cout<<"[1] Inserisci Libro\n";
          cout<<"[2] Visualizza Libro\n";
          cout<<"[3] Inserisci Utente\n";
          cout<<"[4] Visualizza Utente\n";
          cout<<"[5] Noleggia\n";
          cin>>scelta;
  • Re: Skynet! Help Me! Programma Biblioteca!

    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;
    }
    
  • Re: Skynet! Help Me! Programma Biblioteca!

    Il problema e che tu vuoi fare di testa tua e io non posso correggere codice sbagliato in partenza. Ti ho detto di cambiare le stringhe e hai fatto un maccello per poi ricambiarli in char *. Metti 3000 variabili senza specificare cosa sono. Anche il compilatore andrebbe nel pallone figurati io. Usi strcpy quando hai la possibilità di usare la classe string. Lo so a te magari non te ne frega niente e vuoi l'esercizio finito ma così com'è non si può correggere. Ti ho detto andiamo x stadi, tu hai postato un codice finito esclamando: non va. Non va cosa? Non si compila, non fa ciò che deve, dove si blocca?
Devi accedere o registrarti per scrivere nel forum
11 risposte