Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std ;
- const int N_MAX = 10;
- const char NOMEFILE[] = "magazzino.txt";
- struct prodotti_t
- {
- bool check;
- int indice;
- int lunghezza;
- char * codice;
- float prezzo;
- };
- void inizializza ( prodotti_t &modello )
- {
- modello.check = false;
- modello.indice = -1;
- modello.codice = NULL;
- modello.prezzo = 0;
- }
- void modifica_modello ( prodotti_t &modello )
- {
- if ( modello.check == false )
- {
- cout<<"Prima modifica a modello corrente:"<<endl;
- }
- /* if ( modello.check == true )
- {
- cout<<"Modello precedente sovrascritto!"<<endl;
- delete [] modello.codice;
- }
- */
- cout<<"Lunghezza massima codice prodotto modello corrente:"<<endl;
- cin>>modello.lunghezza;
- modello.codice = new char[modello.lunghezza];
- cout<<"Inserisci codice modello corrente di lunghezza "<<modello.lunghezza<<" :"<<endl;
- cin>>modello.codice;
- cout<<"Prezzo modello corrente:"<<endl;
- cin>>modello.prezzo;
- modello.check = true;
- }
- void stampa_modello ( prodotti_t &modello )
- {
- if ( modello.check == false )
- {
- cout<<"Modello corrente non ancora inserito !"<<endl;
- return;
- }
- if ( modello.check == true )
- {
- cout<<"Modello corrente :"<<endl;
- }
- cout<<modello.codice<<" "<<modello.prezzo<<endl;
- }
- void aggiungi_prodotto ( prodotti_t magazzino[] , prodotti_t &modello )
- {
- if ( modello.check == false )
- {
- cout<<"Modifica il modello per continuare!"<<endl;
- return;
- }
- if ( modello.indice >= N_MAX )
- {
- cout<<"Numero prodotti massimo superato!"<<endl;
- return;
- }
- if ( modello.indice == -1 )
- {
- modello.indice = 0;
- }
- magazzino[modello.indice].codice = modello.codice;
- magazzino[modello.indice].prezzo = modello.prezzo;
- modello.indice++;
- }
- void stampa_prodotti ( prodotti_t magazzino[] , prodotti_t &modello )
- {
- if ( modello.indice == -1 )
- {
- cout<<"Devi prima aggiungere un prodotto!"<<endl;
- return;
- }
- for ( int i = 0 ; i < modello.indice ; i++ )
- {
- cout<<magazzino[i].codice<<" "<<magazzino[i].prezzo<<endl;
- }
- }
- void salva_magazzino ( prodotti_t magazzino[] , prodotti_t modello )
- {
- if ( modello.indice == -1 )
- {
- cout<<"Devi prima aggiungere prodotti nel magazzino !"<<endl;
- return;
- }
- ofstream f ( NOMEFILE );
- if ( !f ) cerr<<"Apertura fallita!"<<endl;
- f<<modello.check<<" "<<modello.indice<<" "<<modello.codice<<" "<<modello.prezzo<<" "<<modello.lunghezza<<endl;
- for ( int i = 0 ; i < modello.indice ; i++ )
- {
- f<<magazzino[i].codice<<" "<<magazzino[i].prezzo<<endl;
- }
- f.close();
- }
- void carica_magazzino ( prodotti_t magazzino[] , prodotti_t &modello )
- {
- if ( modello.check == true )
- {
- cout<<"Il precedente contenuto andrĂ perso!"<<endl;
- delete [] modello.codice;
- }
- ifstream f2 ( NOMEFILE );
- if (!f2) cerr<<"Apertura fallita!"<<endl;
- f2>>modello.check>>modello.indice>>modello.codice>>modello.prezzo>>modello.lunghezza;
- modello.codice = new char[modello.lunghezza];
- for ( int i = 0 ; i < modello.indice ; i++ )
- {
- f2>>magazzino[i].codice>>magazzino[i].prezzo;
- }
- f2.close();
- }
- int main()
- {
- const char menu[] =
- "1. Modifica modello\n"
- "2. Stampa modello\n"
- "3. Aggiungi prodotto\n"
- "4. Stampa prodotti\n"
- "5. Salva Magazzino\n"
- "6. Carica magazzino\n"
- "7. Esci\n" ;
- prodotti_t modello;
- prodotti_t magazzino[N_MAX];
- inizializza ( modello );
- while (true) {
- cout<<menu<<endl ;
- int scelta ;
- cin>>scelta ;
- switch(scelta) {
- case 1:
- modifica_modello ( modello );
- break ;
- case 2:
- stampa_modello ( modello );
- break ;
- case 3:
- aggiungi_prodotto ( magazzino , modello );
- break ;
- case 4:
- stampa_prodotti ( magazzino , modello );
- break ;
- case 5:
- salva_magazzino ( magazzino , modello );
- break ;
- case 6:
- carica_magazzino ( magazzino , modello );
- break;
- case 7:
- return 0 ;
- default:
- cout<<"Scelta errata"<<endl ;
- }
- }
- return 1 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment