ARRAY DI RECORD

di il
2 risposte

ARRAY DI RECORD

Salve Ragazzi .. Ho bisogno del vostro aiuto! l'esercizio che ho deciso di svolgere riguarda la stampa di uno scontino... vi mostro il codice:

#include <stdio.h>
#include <iostream>
using namespace std;

struct scontrino
{
    int codice;
    float prezzo;
    int quantita;
    float importo;
};

void carica(scontrino v[], int &n);
void elimina(scontrino v[], int &n, int &cod);
void stampa(scontrino v[], int n);

int main()
{

    scontrino v[100];
    int n;
    int cod;
    carica(v, n);
    elimina(v, n, cod);
    stampa(v, n);

    return 0;
}

void carica(scontrino v[], int &n)
{
    cout<<"quanti prodotti ci sono nello scontrino? ";
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"dammi il codice: ";
        cin>>v[i].codice;
        cout<<"dammi il prezzo: ";
        cin>>v[i].prezzo;
        cout<<"dammi la quantita: ";
        cin>>v[i].quantita;
        cout<<endl<<endl;
    if(v[i].quantita>1)
        v[i].importo=v[i].prezzo*v[i].quantita;
    else
        v[i].importo=v[i].prezzo;
    }    
}

void elimina(scontrino v[],int &n,int &cod)
{
    char scelta; 
    do{
        cout<<"vuoi eliminare qualche prodotto? ";
        cin>>scelta;
    }while(scelta!='y' && scelta!='n');
    while(scelta=='y')
    {
        bool trovato=false;
        cout<<"inserisci il codice corrispondente al prodotto che vuoi eliminare: ";
        cin>>cod;
        
        for(int i=0; i<n; i++)
            {
                if(v[i].codice==cod)
                    {
                        trovato=true;
                        v[i]=v[i+1];
                        
                    }
                   v[i]=v[i+1]; 
            }
             n=n-1;
            
            if(!trovato)
               cout<<"codice non trovato!!"<<endl; 
            do{
                cout<<"vuoi eliminare un altro prodotto? ";
                cin>>scelta;
            }while(scelta!='y' && scelta!='n');
    }
    
}

void stampa(scontrino v[],int n)
{
   for(int i=0; i<n; i++)
   {
       cout<<endl;
       cout<<"Codice: "<<v[i].codice<<endl;
       cout<<"Prezzo: "<<v[i].prezzo<<endl;
       cout<<"Quantita: "<<v[i].quantita<<endl;
       cout<<"Importo: "<<v[i].importo;
       cout<<endl<<endl;
   }
}


in pratica con questo programma se voglio posso eliminare una voce dello scontrino prima della stampa... il programma funziona ...tranne in un caso se io voglio cancellare l'ultima voce! Potete aiutarmi?
p.s.: l'output lo devo migliorare

2 Risposte

  • Re: ARRAY DI RECORD

    Giustoo! non ci avevo pensato! Grazie mille!
  • Re: ARRAY DI RECORD

    Si ora devo riuscire ad eliminare i record fisicamente! Grazie mille!!
Devi accedere o registrarti per scrivere nel forum
2 risposte