Creazione libreria c++
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 3 di 3

Discussione: Creazione libreria c++

Cambio titolo
  1. #1
    Aspirant Engineer L'avatar di Tha Doctor
    Registrato il
    01-06
    Località
    L'Aquila, Italy
    Messaggi
    1.472

    Creazione libreria c++

    Ciao a tutti, premetto di non essere un abile e grande programmatore (ancora non sostengo l'esame di programmazione ad oggetti e non so programmare ad oggetti). Sinteticamente sto creando una libreria che contenga uno struct cliente e tanti altri stuct interni con diverse funzioni da applicarvi sopra. Ho un problema, negli struct sono presenti tipi string e altri...ora succede che quando nel programma richiamo la libreria con il doppio apice (perchè la libreria è nella stessa directory del programma) il compilatore da errore non riconoscendo il tipo stringa e alcune funzioni void inserite nella libreria.
    Dove sbaglio? Ho provato sia nel programma che nella libreria a includere la libreria <string> ma non ne vuole proprio sapere. Uso DevC++ per compilare. Aiutatemi, grazie!
    "Attach additional responsibilities to an object dynamically."

  2. #2
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    posta i sorgenti

  3. #3
    Aspirant Engineer L'avatar di Tha Doctor
    Registrato il
    01-06
    Località
    L'Aquila, Italy
    Messaggi
    1.472
    Questo è il database:
    Spoiler:

    struct data
    {
    int giorno, mese, anno;
    };

    struct indirizzo
    {
    string citta;
    string via;
    string cap;
    string provincia;
    };

    struct prodotto
    {
    string nome;
    string marca;
    string prezzo;
    string descrizione;
    };

    struct ordine
    {
    prodotto oggetto;
    string quantita;
    ordine* succ;
    };

    struct cliente
    {
    string nome;
    string cognome;
    indirizzo indresidenza;
    string numtelefono;
    data datanascita;
    indirizzo indnegozio;
    int numordini; //cardinalità dell'array dinamico
    ordine* vendite; //array dinamico
    cliente* succ; //puntatore ad elemento successivo della lista
    };
    typedef cliente* lista;

    void LetturaStringa(string & st)
    {
    char ch;
    st="";
    do cin.get(ch);
    while( ch=='\n' );
    while( ch!='\n' )
    {
    st=st+ch;
    cin.get(ch);
    }
    };

    lista CreaLista(int n)
    {
    lista list, paux;
    paux=new cliente;
    paux->succ=list;
    list=paux;
    paux=paux->succ;
    for(int i=0; i<n; ++i)
    {
    paux->succ=new cliente;
    paux=paux->succ;
    cout<<"Inserire i dati del "<<i+1<<" cliente:"<<endl;
    cout<<"Inserire nome: ";
    cin>>paux->nome;
    cout<<endl;
    cout<<"Inserire cognome: ";
    cin>>paux->cognome;
    cout<<endl;
    cout<<"Inserire indirizzo di residenza: "<<endl,
    cout<<"Città: ";
    cin>>paux->indresidenza.citta;
    cout<<endl;
    cout<<"Via: ";
    cin>>paux->indresidenza.via;
    cout<<endl;
    cout<<"Cap: ";
    cin>>paux->indresidenza.cap;
    cout<<endl;
    cout<<"Provincia: ";
    cin>>paux->indresidenza.provincia;
    cout<<endl;
    cout<<"Inserire numero di telefono: ";
    cin>>paux->numtelefono;
    cout<<endl;
    cout<<"Inserire data di nascita: "<<endl;
    cout<<"Giorno: ";
    cin>>paux->datanascita.giorno;
    cout<<endl;
    cout<<"Mese: ";
    cin>>paux->datanascita.mese;
    cout<<endl;
    cout<<"Anno: ";
    cin>>paux->datanascita.anno;
    cout<<endl;
    cout<<"Inserire indirizzo del negozio: "<<endl;
    cout<<"Città: ";
    cin>>paux->indnegozio.citta;
    cout<<endl,
    cout<<"Via: ";
    cin>>paux->indnegozio.via;
    cout<<endl;
    cout<<"Cap: ";
    cin>>paux->indnegozio.cap;
    cout<<endl;
    cout<<"Provincia: ";
    cin>>paux->indnegozio.provincia;
    cout<<endl;
    cout<<"Numero di ordini: ";
    cin>>paux->numordini;
    cout<<endl;
    int v=paux->numordini;
    paux->vendite=new ordine[v];
    for(int j=0; j<v; ++j)
    {
    cout<<"Ordine "<<j+1<<" inizializza:"<<endl;
    cout<<"Nome prodotto: ";
    cin>>paux->vendite[j].oggetto.nome;
    cout<<endl;
    cout<<"Marca: ";
    cin>>paux->vendite[j].oggetto.marca;
    cout<<endl;
    cout<<"Prezzo: ";
    cin>>paux->vendite[j].oggetto.prezzo;
    cout<<endl;
    cout<<"Descrizione (inserire \n per terminare): ";
    LetturaStringa(paux->vendite[j].oggetto.descrizione);
    cout<<"Quantità: ";
    cin>>paux->vendite[j].quantita;
    cout<<endl;
    }
    }
    paux->succ=NULL;
    paux=list;
    list=list->succ;
    delete paux;
    return list;
    }

    void Stampa(lista list)
    {
    lista paux=list;
    int i=1;
    while(list!=NULL)
    {
    cout<<"Cliente "<<i<<endl;
    cout<<"Nome: "<<paux->nome<<endl;
    cout<<"Cognome: "<<paux->cognome<<endl,
    cout<<"Indirizzo di residenza:"<<endl;
    cout<<"Città: "<<paux->indresidenza.citta<<endl;
    cout<<"Via: "<<paux->indresidenza.via<<endl;
    cout<<"Cap: "<<paux->indresidenza.cap<<endl;
    cout<<"Provincia: "<<paux->indresidenza.provincia<<endl;
    cout<<"Numero di telefono: "<<paux->numtelefono<<endl;
    cout<<"Data di nascita: "<<paux->datanascita.giorno<<"/"<<paux->datanascita.mese<<"/"<<paux->datanascita.anno<<endl;
    cout<<"Indirizzo negozio:"<<endl;
    cout<<"Città: "<<paux->indnegozio.citta<<endl;
    cout<<"Via: "<<paux->indnegozio.via<<endl;
    cout<<"Cap: "<<paux->indnegozio.cap<<endl;
    cout<<"Provincia: "<<paux->indnegozio.provincia<<endl;
    cout<<"Numero di ordini: "<<paux->numordini<<endl;
    int x=paux->numordini;
    for(int j=0; j<x; ++j)
    {
    cout<<"Ordine "<<j+1<<" :"<<endl;
    cout<<"Nome prodotto: "<<paux->vendite[x].oggetto.nome<<endl;
    cout<<"Marca: "<<paux->vendite[x].oggetto.marca<<endl;
    cout<<"Prezzo: "<<paux->vendite[x].oggetto.prezzo<<endl;
    cout<<"Descrizione: "<<paux->vendite[x].oggetto.descrizione<<endl;
    cout<<"Quantità: "<<paux->vendite[x].quantita<<endl;
    cout<<endl;
    }
    ++i;
    }
    }


    E questo è un semplice programma per provarlo:
    Spoiler:
    #include <iostream>
    #include <cstdlib>
    #include <fstream>
    #include <string>
    #include "clienti.h"
    using namespace std;

    int main()
    {
    lista l;
    int numc;
    cout<<"Quanti clienti si vuole inserire: ";
    cin>>numc;
    cout<<endl;
    l=CreaLista(numc);
    Stampa(l);
    system("PAUSE");
    return 0;
    }

    Ho incluso fstream perchè volevo aggiungere anche la possibilità di scrivere e leggere file...
    "Attach additional responsibilities to an object dynamically."

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •