• T4CH
  • NEWS
  • VIDEO
Forum > Software

Aiuto programma C++

Discussione inserita in 'Software' da Monkey.D.Eddie, 27 Maggio 2009.

  1. Monkey.D.Eddie techNewbie

    Aiuto programma C++

    Ciao ragazzi, sono nuovo, mi servirebbe un aiuto urgentissimo per questi due programmi, devo consegnarli al mio prof entro venerdì ma nn riesco a capire perchè nn partono, premetto che nn sono un genio dell'informatica xD, se qualcuno mi aiutasse a coreggere gli errori mi farebbe un gran favore, uso il Dev c++ per programmare.

    Primo programma:

    In pratica il primo programma devo caricare una lista ordinata di nome "libro" con autore e titolo di un libro, finchè nn trovo il carattere sentinella che mi fa finere il caricamento, finito il caricamento inserisco il nome di un autore e controllo se ci sono libri di quell'autore o meno.

    Il codice è questo:

    #include <cstdlib>

    #include <iostream>



    using namespace std;



    int main(int argc, char *argv[])

    {

    struct libro

    {

    string lib;

    string autore;

    libro*ps;

    };

    libro*pt=null;

    void inserimento (string, string);

    void ricerca ();

    int main

    {

    string t,a;

    cout<<"Inserisci titolo: ";

    cin>>t;

    while (t!="///")

    {

    cout<<"Inserisci autore: ";

    cin>>a;

    inserimento(t,a);

    cout<<"Inserisci titolo: ";

    cin>>t;

    }

    ricerca();

    }

    void inserimento (string t, string a)

    {

    int contc=0;

    int conts=0;

    libro*p;

    libro*nuovo;

    libro*prec=null;

    nuovo=new libro;

    nuovo->titolo=t;

    nuovo->autore=a;

    for (p=pt;p!=null&&p->titolo!=t;p=p->ps)

    {}

    if(p==null)

    {

    for(p=pt;p!=null&&p->titolo<nuovo->titolo;p=p->ps)

    {

    prec=p;

    }

    if (prec==null)

    {

    nuovo->succ=pt;

    pt=nuovo;

    }

    else

    {

    nuovo->succ=prec->succ;

    prec->succ=nuovo;

    {

    }



    contc=contc+1;

    }

    else

    {

    cout<<"Titolo duplicato";

    conts=conts+1;

    }

    cout"I libri caricati sono: "<<contc;

    cout"I libri scaritati sono; "<<conts;

    }

    void ricerca()

    {

    int cont=0;

    libro*p;

    string aut;

    cout<<"Autore da cercare: ";

    cin>>aut;

    for(p=pt;p!=nulla;p=p->ps)

    {

    if(p->autore==aut)

    {

    cout<<"Autore trovato, il libro e'"<<p->titolo;

    cont++;

    }

    }

    if(cont==0)

    {

    cout<<"Autore non esistente";

    }

    }



    system("PAUSE");

    return EXIT_SUCCESS;

    }
    Il secondo programma invece dice che devo sempre caricare con la lista ordinata di nome "Animali" con i campi razza, nazione e numero zampe finchè nn trovo la sentinella che mi fa finire il caricamento, finito il caricamento inserisco due nazioni, con la prima controllo tutti gli animali con 4 zampe e ne faccio la somma, poi controllo tutti gli animali con 4 zampe della seconda e ne faccio la somma e poi vedo quale nazione ha più zampe.

    Il codice del secondo problema è questo:



    #include <cstdlib>

    #include <iostream>



    using namespace std;



    int main(int argc, char *argv[])

    {

    struct animali;

    {

    string razza;

    string nazione;

    int nzampe;

    animali*ps;

    };

    animali*pt=null;

    void inserimento(string,string,int);

    void ricerca();

    int main{

    string r,n;

    int nz;

    cout<<"Inserisci razza: ";

    cin>>r;

    while (r!="bye")

    {

    cout<<"Inserisci nazione: ";

    cin>>n;

    cout<<"Numero Zampe: ";

    cin>>nz;

    inserimento(r,n,nz)

    cout<<"Inserisci razza";

    cin>>r;

    }

    ricerca()

    }

    void inserimento (string r, string n, int nz)

    {

    animali*p;

    animali*nuovo;

    animali*prec=null;

    nuovo=new animali;

    nuovo->razza=r;

    nuovo->nazione=n;

    nuovo->nzampe=nz;

    for(p=pt;p!=null&&p->nazione<nuovo->nazione;p=p->ps)

    {

    prec=p;

    }

    if(prec==nulla)

    {

    nuovo->succ=pt;

    pt=nuovo;

    }

    else

    {

    nuovo->succ=prec->succ;

    prec->succ=nuovo;

    }

    }

    void ricerca()

    {

    int tot1;

    int tot2;

    int cont1=0;

    int cont2=0;

    string naz1;

    string naz2;

    cout<<"Dammi la prima nazione: ";

    cin>>naz1;

    cout<<"Dammi la seconda nazione: ";

    cin>>naz2;

    for(p=pt;p!=null;p=p->ps)

    {

    if(p->nazione==naz1)

    {

    if(p->nzampe==4)

    {

    tot1+=p->nzampe;

    }

    }

    if(p->nazione==naz2)

    {

    if(p->nzampe==4)

    {

    tot2+=p->nzampe;

    }

    }

    }

    if(tot1>tot2)

    {

    cout<<"La nazione: "<<naz1<<"Vince con numero zampe= "<<tot1;

    }

    if(tot1<tot2)

    {

    cout<<"La nazione: "<<naz2<<"Vince con numero zampe= "<<tot2;

    }

    if(tot1==tot2)

    {

    cout"Le due nazione hanno lo stesso numero di zampe= "<<tot1;

    }

    system("PAUSE");

    return EXIT_SUCCESS;

    }
    Monkey.D.Eddie, 27 Maggio 2009
    #1
  2. fabriziooo83 techAdvanced

    leggi il regolamento prima di postare.

    non abbreviarestorpiare le parole.
    fabriziooo83, 27 Maggio 2009
    #2
  3. Monkey.D.Eddie techNewbie

    [quote name='fabriziooo83']leggi il regolamento prima di postare.

    non abbreviarestorpiare le parole.
    [/quote]

    Scusa è vero, ma c'è solo il "NN" è un abitudine da anni scusate:eek:o:
    Monkey.D.Eddie, 27 Maggio 2009
    #3
  4. Monkey.D.Eddie techNewbie

    Grazie a tutti, ho fatto^^
    Monkey.D.Eddie, 30 Maggio 2009
    #4
Password dimenticata?
SU TERMINI DI SERVIZIO CONTATTACI