Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ricerca in un file di testo
Forum - C/C++ - Ricerca in un file di testo

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
bobo22 (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 14:37
Sabato, 02/01/2010
Ciao sono uno studente universitario sto realizzando un programma per la gestione di un supermercato.Mi sono creato il mio programma con le relative funzioni, quando inserisco i prodotti questi vengono scritti su un file. Il mio problema sta nella ricerca.Io ho messo nel menu diversi tipi di ricerca: per codice nome ecc...la funzione l'ho fatta però non sò come applicarla al file...potete darmi una mano??..grazie

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string.h>
  4. #include <fstream>
  5. #include <windows.h>
  6.  
  7.  
  8. using namespace std;
  9.  
  10. void inserimento ();
  11. void altri ();
  12. void modifica ();
  13. void ordina ();
  14. void magazzino ();
  15. void uscita ();
  16. void ConsultaFile();
  17. void CreaFile();
  18. void CancellaFile();
  19. void CercaProdotti();
  20. int ADMIN();
  21. int UTENTE();
  22.  
  23. int NumeroProd;
  24. char NomiProdotti[100];
  25. char CodiciProdotti[100];
  26. char MarcaProdotti[100];
  27. int PrezziProdotti;
  28.  
  29. struct Prodotti
  30. {
  31.         char NomeProdotto[100];
  32.         char Codice[100];
  33.         char Marca[100];
  34.         int Prezzo;
  35.         int Quantita;
  36. };
  37. Prodotti Inserimento[100];
  38.  
  39.  
  40.  
  41. void inserimento()
  42. {
  43.     int i=0;
  44.      cout << "Quanti prodotti vuoi inserire? " << endl;
  45.          cin >> NumeroProd;
  46.          
  47.          
  48.          for(i=0; i<NumeroProd; i++)
  49.         {
  50.                 system ("CLS");
  51.                 cout << "Inserisci il nome del "<< i+1 << " Prodotto " << endl;
  52.                 cin >> Inserimento[i].NomeProdotto;
  53.                 cout << "Inserisci Codice Prodotto " << endl;
  54.                 cin >> Inserimento[i].Codice;
  55.                 cout << "Inserisci Marca Prodotto " << endl;
  56.                 cin >> Inserimento[i].Marca;
  57.                 cout << "Inserisci il prezzo del Prodotto " << "€" << endl;
  58.                 cin >> Inserimento[i].Prezzo;
  59.                 cout << "Inserisci quantità Prodotto " << endl;
  60.                 cin >> Inserimento[i].Quantita;
  61.         }
  62.         CreaFile();
  63.  }
  64.  
  65.  void CercaProdotti()
  66. {      
  67.         system("cls");
  68.        
  69.         int i=0;
  70.         int Ricerca;
  71.        
  72.        
  73.         cout << "Ricerca Prodotti per: " << endl;
  74.         cout << endl;
  75.         cout << "1.Nome " << endl;
  76.         cout << "2.Codice " << endl;
  77.         cout << "3.Marca " << endl;
  78.         cout << "4.Prezzo " << endl;
  79.         cin >> Ricerca;
  80.  
  81.         switch(Ricerca)
  82.         {
  83.         case 1:
  84.                 {
  85.             system("cls");
  86.                        
  87.                         cout << "Inserisci il Nome del Prodotto " << endl;
  88.                         cin >> NomiProdotti;
  89.  
  90.                         for(i=0;i<NumeroProd;i++)
  91.                         {
  92.                                 if(strcmp(NomiProdotti,Inserimento[i].NomeProdotto)==0)
  93.                                 {
  94.                                         cout << "========================" << endl;
  95.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  96.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  97.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  98.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  99.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  100.                                         cout << "========================" << endl;
  101.                                 }
  102.                         }
  103.    
  104.  }break;
  105.        
  106.         case 2:
  107.                 {
  108.             system("cls");
  109.                        
  110.                         cout << "Inserisci il codice del Prodotto " << endl;
  111.                         cin >> CodiciProdotti;
  112.  
  113.                         system("cls");for(i=0;i<NumeroProd;i++)
  114.                         {
  115.                                 if(strcmp(CodiciProdotti,Inserimento[i].Codice)==0)
  116.                                 {
  117.                                         cout << "========================" << endl;
  118.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  119.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  120.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  121.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  122.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  123.                                         cout << "========================" << endl;
  124.                                 }
  125.                         }
  126.  
  127.                 }break;
  128.         case 3:
  129.                 {
  130.                         system("cls");
  131.                        
  132.                         cout << "Inserisci la marca del Prodotto " << endl;
  133.                         cin >> MarcaProdotti;
  134.  
  135.                         system("cls");
  136.                        
  137.  
  138.                         for(i=0;i<NumeroProd;i++)
  139.                         {
  140.                                 if(strcmp(MarcaProdotti,Inserimento[i].Marca)==0)
  141.                                 {
  142.                                         cout << "========================" << endl;
  143.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  144.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  145.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  146.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  147.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  148.                                         cout << "========================" << endl;
  149.                                 }
  150.                         }
  151.  
  152.                 }break;
  153.                
  154.         case 4:
  155.         { system("cls");
  156.                        
  157.                         cout << "Inserisci il prezzo del Prodotto " << endl;
  158.                         cin >> PrezziProdotti;
  159.  
  160.                         system("cls");
  161.                        
  162.  
  163.                         for(i=0;i<NumeroProd;i++)
  164.                         {
  165.                                 if(PrezziProdotti==Inserimento[i].Prezzo)
  166.                                 {
  167.                                         cout << "========================" << endl;
  168.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  169.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  170.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  171.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  172.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  173.                                         cout << "========================" << endl;
  174.                                 }
  175.                         }
  176.  
  177.                 }break;  
  178.         default:
  179.  
  180.                 cout << "Scelta non consentita " << endl;
  181.         }
  182.  
  183. }
  184.  
  185.  
  186.  
  187.  void CreaFile()
  188. {
  189.     int i=0;
  190.         ofstream out("Magazzino.txt", ios::app);
  191.         for(i=0; i<NumeroProd; i++)
  192.         {
  193.                 out << "========================" << endl;
  194.                 out << "Nome Prodotto: " << Inserimento[i].NomeProdotto << endl;
  195.                 out << "Codice Prodotto: " << Inserimento[i].Codice << endl;
  196.                 out << "Marca Prodotto: " << Inserimento[i].Marca << endl;
  197.                 out << "Prezzo: " << Inserimento[i].Prezzo << "€" << endl;
  198.                 out << "Quantità Prodotto" << Inserimento[i].Quantita << endl;
  199.                 out << "========================" << endl;
  200.         }
  201. }
  202.  
  203. void ConsultaFile()
  204. {
  205.         FILE*puntafile;
  206.         char c;
  207.         puntafile=fopen("Magazzino.txt","r");
  208.         if(puntafile!=NULL)
  209.         {
  210.                 c=fgetc(puntafile);
  211.                 while(c!=EOF)
  212.                 {
  213.                         putchar(c);
  214.                         c=fgetc(puntafile);
  215.                 }
  216.                 fclose(puntafile);
  217.         }
  218.         else
  219.         {
  220.                 cout << "Il file non esiste." << endl;
  221.         }
  222. }
  223.  
  224. void CancellaFile()
  225. {
  226.         FILE*puntafile;
  227.         char c;
  228.         puntafile=fopen("Magazzino.txt","r");
  229.         if(puntafile!=NULL)
  230.         {
  231.                 c=fgetc(puntafile);
  232.                 while(c!=EOF)
  233.                 {
  234.                         putchar(c);
  235.                         c=fgetc(puntafile);
  236.                 }
  237.                 fclose(puntafile);
  238.                 system("DEL Magazzino.txt");
  239.                 cout << "Il file e' stato rimosso con successo " << endl;
  240.         }
  241.         else
  242.         {
  243.                 cout << "Il file non esiste." << endl;
  244.         }
  245. }
  246.  
  247.  
  248.  
  249.  void uscita()
  250. {
  251.         system("EXIT");
  252. }
  253.  
  254. int ADMIN()
  255. {
  256.     int scelta;
  257.     do
  258.     {  
  259.         system("cls");
  260.         cout<<"Menu'' Amministratore: "<<endl;
  261.         cout<<"1 - Inserimento prodotti"<<endl;
  262.         cout<<"2 - Cerca prodotti"<<endl;
  263.         cout<<"3 - Modifica prodotti"<<endl;
  264.         cout<<"4 - Visualizza magazzino"<<endl;
  265.         cout<<"5 - Cancella lista magazzino"<<endl;
  266.         cout<<"6 - Uscita"<<endl;
  267.         cout<<"Operazione scelta: ";
  268.         cin>>scelta;
  269.     }while(scelta<1||scelta>7);
  270.     return scelta;
  271. }
  272.  
  273. int UTENTE()
  274. {
  275.     int scelta;
  276.     do
  277.     {  
  278.         system("cls");
  279.         cout<<"Menu'' Utente: "<<endl;
  280.         cout<<"1 - Cerca prodotti"<<endl;
  281.         cout<<"2 - Ordina prodotto"<<endl;
  282.         cout<<"3 - Uscita"<<endl;
  283.         cout<<"Operazione scelta: ";
  284.         cin>>scelta;
  285.     }while(scelta<1||scelta>3);
  286.     return scelta;
  287. }
  288.      
  289. int main()
  290.   {
  291.     char a='s';
  292.         int menu;
  293.         do{
  294.         system ("CLS");
  295.    
  296.     cout << "1.Amministratore" <<"\n" << endl;
  297.         cout << "2.Cliente " <<"\n" << endl;
  298.         cout << "3.Uscita " <<"\n" << endl;
  299.         cout << "Che operazione vuoi effettuare? Inserisci il numero:" <<endl;
  300.         cin >> menu;
  301.        
  302.         switch(menu)
  303.         {
  304.                
  305.       case 1:
  306.        {
  307.            system ("CLS");
  308.            ADMIN();
  309.            int menu2;
  310.            menu2=ADMIN();
  311.            
  312.              switch(menu2)
  313.              {
  314.                 case 1:
  315.                   {
  316.                     system ("CLS");
  317.                     inserimento();
  318.                   }
  319.                   break;
  320.                          
  321.                  
  322.              case 2:
  323.                   {
  324.                     system ("CLS");
  325.                     CercaProdotti();
  326.                   }
  327.                   break;
  328.                          
  329.                  
  330.              case 4:
  331.                   {
  332.                     system ("CLS");
  333.                     ConsultaFile();
  334.                   }
  335.                   break;
  336.              }      
  337.            
  338.            
  339.        
  340.        }
  341.        break;
  342.        
  343.        case 2:
  344.        {
  345.             system ("CLS");
  346.             UTENTE();
  347.        }
  348.        break;
  349.        
  350.        case 3:
  351.        {
  352.             uscita ();
  353.        }
  354.        break;default:
  355.                 cout << "Scelta non consentita " << "\n" << endl;
  356.         }
  357.  
  358.         cout << endl;
  359.         cout << "Vuoi uscire dal programma? (s/n) " << endl;
  360.         cin >> a;
  361.         }while(a=='n');
  362.        
  363.        
  364.        system("PAUSE");
  365.      
  366.        
  367.        
  368.        
  369. }


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:00
Sabato, 02/01/2010
sicuramente ci sarà un metodo migliore e più efficiente ma cosi in mente mi viene di dirti di provare a salvare ogni volta che si cercando un prodotto le stringhe contenute nel file in un array di stringhe e verificare la ricerca nell'array....che è di sicuro molto più facile...:rofl:

PM Quote
Avatar
bobo22 (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 15:12
Sabato, 02/01/2010
mmm..non ho ben capito cosa mi vuoi dire..8-|

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:29
Sabato, 02/01/2010
intendevo dire che puoi(al momento della ricerca del prodotto da parte dell'utente del tuo programma) fare in modo che si acceda al file in cui hai salvato il prodotti e ricopiare per intero il tutto in un array di stringhe...cosi effettui la ricerca sull'array e non sul file...anche se però credo ci sia qualche funzione della classe string che possa fare al caso tuo(ma che io non conosco :))

PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 18:36
Sabato, 02/01/2010
Una possibile soluzione è caricarsi in memoria, come già stato detto, tutto il contenuto del file per poi riutilizzarlo insieme alle relative funzioni di modifica, ricerca etc...
Per esempio per cercare in base ad una stringa ti basta usare la strcmp all'interno di un ciclo su tutti i campi interessati ( quindi tra la stringa dell'utente e quella corrente durante il ciclo ) . La stessa cosa vale anche per gli altri campi...
Ciao GuglielmoS

PM Quote
Avatar
bobo22 (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 19:16
Sabato, 02/01/2010
io ho già impostato una funzione di ricerca con la strcmp.Però non riesco ad applicarla al file...cioè come faccio a caricare il file?..e a cercare il campo sul file desiderato?

PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 20:05
Sabato, 02/01/2010
Testo quotato

Postato originariamente da bobo22:

io ho già impostato una funzione di ricerca con la strcmp.Però non riesco ad applicarla al file...cioè come faccio a caricare il file?..e a cercare il campo sul file desiderato?


Devi impostarti una funzione che parsa il file (legge carattere per carattere posizionando il tutto nella struttura dati utilizzata dal programma) , in modo da avere un array di tipo Prodotti, da consulatre poi con le varie funzioni...

PM Quote
Avatar
bobo22 (Normal User)
Newbie


Messaggi: 6
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 20:30
Sabato, 02/01/2010
guglielmoS ho provato a realizzare un'altra funzione di ricerca ma non me la apre nemmeno..:rofl:...come mai??..mi sembra giusta a me..

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string.h>
  4. #include <fstream>
  5. #include <windows.h>
  6.  
  7.  
  8. using namespace std;
  9. [b]void ricerca();[/b]
  10. void inserimento ();
  11. void altri ();
  12. void modifica ();
  13. void ordina ();
  14. void magazzino ();
  15. void uscita ();
  16. void ConsultaFile();
  17. void CreaFile();
  18. void CancellaFile();
  19. void CercaProdotti();
  20. int ADMIN();
  21. int UTENTE();
  22.  
  23. int NumeroProd;
  24. char NomiProdotti[100];
  25. char CodiciProdotti[100];
  26. char MarcaProdotti[100];
  27. int PrezziProdotti;
  28.  
  29. struct Prodotti
  30. {
  31.         char NomeProdotto[100];
  32.         char Codice[100];
  33.         char Marca[100];
  34.         int Prezzo;
  35.         int Quantita;
  36. };
  37. Prodotti Inserimento[100];
  38.  
  39.  
  40.  
  41. void inserimento()
  42. {
  43.     int i=0;
  44.      cout << "Quanti prodotti vuoi inserire? " << endl;
  45.          cin >> NumeroProd;
  46.          
  47.          
  48.          for(i=0; i<NumeroProd; i++)
  49.         {
  50.                 system ("CLS");
  51.                 cout << "Inserisci il nome del "<< i+1 << " Prodotto " << endl;
  52.                 cin >> Inserimento[i].NomeProdotto;
  53.                 cout << "Inserisci Codice Prodotto " << endl;
  54.                 cin >> Inserimento[i].Codice;
  55.                 cout << "Inserisci Marca Prodotto " << endl;
  56.                 cin >> Inserimento[i].Marca;
  57.                 cout << "Inserisci il prezzo del Prodotto " << "€" << endl;
  58.                 cin >> Inserimento[i].Prezzo;
  59.                 cout << "Inserisci quantità Prodotto " << endl;
  60.                 cin >> Inserimento[i].Quantita;
  61.         }
  62.         CreaFile();
  63.  }
  64.  
  65.  void CercaProdotti()
  66. {      
  67.         system("cls");
  68.        
  69.         int i=0;
  70.         int Ricerca;
  71.        
  72.        
  73.         cout << "Ricerca Prodotti per: " << endl;
  74.         cout << endl;
  75.         cout << "1.Nome " << endl;
  76.         cout << "2.Codice " << endl;
  77.         cout << "3.Marca " << endl;
  78.         cout << "4.Prezzo " << endl;
  79.         cin >> Ricerca;
  80.  
  81.         switch(Ricerca)
  82.         {
  83.         case 1:
  84.                 {
  85.             system("cls");
  86.                        
  87.                         cout << "Inserisci il Nome del Prodotto " << endl;
  88.                         cin >> NomiProdotti;
  89.  
  90.                         for(i=0;i<NumeroProd;i++)
  91.                         {
  92.                                 if(strcmp(NomiProdotti,Inserimento[i].NomeProdotto)==0)
  93.                                 {
  94.                                         cout << "========================" << endl;
  95.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  96.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  97.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  98.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  99.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  100.                                         cout << "========================" << endl;
  101.                                 }
  102.                         }
  103.    
  104.  }break;
  105.        
  106.         case 2:
  107.                 {
  108.             system("cls");
  109.                        
  110.                         cout << "Inserisci il codice del Prodotto " << endl;
  111.                         cin >> CodiciProdotti;
  112.  
  113.                         system("cls");for(i=0;i<NumeroProd;i++)
  114.                         {
  115.                                 if(strcmp(CodiciProdotti,Inserimento[i].Codice)==0)
  116.                                 {
  117.                                         cout << "========================" << endl;
  118.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  119.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  120.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  121.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  122.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  123.                                         cout << "========================" << endl;
  124.                                 }
  125.                         }
  126.  
  127.                 }break;
  128.         case 3:
  129.                 {
  130.                         system("cls");
  131.                        
  132.                         cout << "Inserisci la marca del Prodotto " << endl;
  133.                         cin >> MarcaProdotti;
  134.  
  135.                         system("cls");
  136.                        
  137.  
  138.                         for(i=0;i<NumeroProd;i++)
  139.                         {
  140.                                 if(strcmp(MarcaProdotti,Inserimento[i].Marca)==0)
  141.                                 {
  142.                                         cout << "========================" << endl;
  143.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  144.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  145.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  146.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  147.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  148.                                         cout << "========================" << endl;
  149.                                 }
  150.                         }
  151.  
  152.                 }break;
  153.                
  154.         case 4:
  155.         { system("cls");
  156.                        
  157.                         cout << "Inserisci il prezzo del Prodotto " << endl;
  158.                         cin >> PrezziProdotti;
  159.  
  160.                         system("cls");
  161.                        
  162.  
  163.                         for(i=0;i<NumeroProd;i++)
  164.                         {
  165.                                 if(PrezziProdotti==Inserimento[i].Prezzo)
  166.                                 {
  167.                                         cout << "========================" << endl;
  168.                                         cout << "Nome: " << Inserimento[i].NomeProdotto << endl;
  169.                                         cout << "Codice: " << Inserimento[i].Codice << endl;
  170.                                         cout << "Marca: " << Inserimento[i].Marca << endl;
  171.                                         cout << "Prezzo: " << Inserimento[i].Prezzo << endl;
  172.                                         cout << "Quantità: " << Inserimento[i].Quantita << endl;
  173.                                         cout << "========================" << endl;
  174.                                 }
  175.                         }
  176.  
  177.                 }break;  
  178.         default:
  179.  
  180.                 cout << "Scelta non consentita " << endl;
  181.         }
  182.  
  183. }
  184.  
  185. [b]void ricerca()[/b]
  186. {
  187.      ifstream fin("Magazzino.txt"); //apri il file dei dati
  188.  
  189.         //crea una stringa per ogni riga
  190.         string Nome;
  191.         string Codice;
  192.         string Marca;
  193.         string Prezzo;
  194.  
  195.         bool trovata = false;    //flag per indicare il successo della ricerca
  196.  
  197.         //inizia il ciclo di ricerca
  198.         while (!trovata && !fin.eof())
  199.         {
  200.                 // leggi dal file le quattro righe
  201.                 getline(fin, Nome);
  202.                 getline(fin, Codice);
  203.                 getline(fin, Marca);
  204.                 getline(fin, Prezzo);
  205.  
  206.                 //cerca se nella riga targa é compresa la targa da cercare
  207.                 size_t found;
  208.                 found = Nome.find("Numero_Targa_Da_Cercare");
  209.                 if (found != string::npos)
  210.                 {
  211.                         cout << "trovata" << endl;
  212.  
  213.                        //se la targa é quella, stampa gli altri dati    
  214.                         cout << Nome << endl;
  215.                         cout << Codice << endl;
  216.                         cout << Marca << endl;
  217.                         cout << Prezzo << endl;
  218.                         trovata = true;   //per uscire da ciclo
  219.                 }
  220.         }
  221.  
  222. }
  223.  
  224.  void CreaFile()
  225. {
  226.     int i=0;
  227.         ofstream out("Magazzino.txt", ios::app);
  228.         for(i=0; i<NumeroProd; i++)
  229.         {
  230.                 out << "========================" << endl;
  231.                 out << "Nome Prodotto: " << Inserimento[i].NomeProdotto << endl;
  232.                 out << "Codice Prodotto: " << Inserimento[i].Codice << endl;
  233.                 out << "Marca Prodotto: " << Inserimento[i].Marca << endl;
  234.                 out << "Prezzo: " << Inserimento[i].Prezzo << "€" << endl;
  235.                 out << "Quantità Prodotto" << Inserimento[i].Quantita << endl;
  236.                 out << "========================" << endl;
  237.         }
  238. }
  239.  
  240. void ConsultaFile()
  241. {
  242.         FILE*puntafile;
  243.         char c;
  244.         puntafile=fopen("Magazzino.txt","r");
  245.         if(puntafile!=NULL)
  246.         {
  247.                 c=fgetc(puntafile);
  248.                 while(c!=EOF)
  249.                 {
  250.                         putchar(c);
  251.                         c=fgetc(puntafile);
  252.                 }
  253.                 fclose(puntafile);
  254.         }
  255.         else
  256.         {
  257.                 cout << "Il file non esiste." << endl;
  258.         }
  259. }
  260.  
  261. void CancellaFile()
  262. {
  263.         FILE*puntafile;
  264.         char c;
  265.         puntafile=fopen("Magazzino.txt","r");
  266.         if(puntafile!=NULL)
  267.         {
  268.                 c=fgetc(puntafile);
  269.                 while(c!=EOF)
  270.                 {
  271.                         putchar(c);
  272.                         c=fgetc(puntafile);
  273.                 }
  274.                 fclose(puntafile);
  275.                 system("DEL Magazzino.txt");
  276.                 cout << "Il file e' stato rimosso con successo " << endl;
  277.         }
  278.         else
  279.         {
  280.                 cout << "Il file non esiste." << endl;
  281.         }
  282. }
  283.  
  284.  
  285.  
  286.  void uscita()
  287. {
  288.         system("EXIT");
  289. }
  290.  
  291. int ADMIN()
  292. {
  293.     int scelta;
  294.     do
  295.     {  
  296.         system("cls");
  297.         cout<<"Menu'' Amministratore: "<<endl;
  298.         cout<<"1 - Inserimento prodotti"<<endl;
  299.         cout<<"2 - Cerca prodotti"<<endl;
  300.         cout<<"3 - Modifica prodotti"<<endl;
  301.         cout<<"4 - Visualizza magazzino"<<endl;
  302.         cout<<"5 - Cancella lista magazzino"<<endl;
  303.         cout<<"6 - Uscita"<<endl;
  304.         cout<<"Operazione scelta: ";
  305.         cin>>scelta;
  306.     }while(scelta<1||scelta>7);
  307.     return scelta;
  308. }
  309.  
  310. int UTENTE()
  311. {
  312.     int scelta;
  313.     do
  314.     {  
  315.         system("cls");
  316.         cout<<"Menu'' Utente: "<<endl;
  317.         cout<<"1 - Cerca prodotti"<<endl;
  318.         cout<<"2 - Ordina prodotto"<<endl;
  319.         cout<<"3 - Uscita"<<endl;
  320.         cout<<"Operazione scelta: ";
  321.         cin>>scelta;
  322.     }while(scelta<1||scelta>3);
  323.     return scelta;
  324. }
  325.      
  326. int main()
  327.   {
  328.     char a='s';
  329.         int menu;
  330.         do{
  331.         system ("CLS");
  332.    
  333.     cout << "1.Amministratore" <<"\n" << endl;
  334.         cout << "2.Cliente " <<"\n" << endl;
  335.         cout << "3.Uscita " <<"\n" << endl;
  336.         cout << "Che operazione vuoi effettuare? Inserisci il numero:" <<endl;
  337.         cin >> menu;
  338.        
  339.         switch(menu)
  340.         {
  341.                
  342.       case 1:
  343.        {
  344.            system ("CLS");
  345.            ADMIN();
  346.            int menu2;
  347.            menu2=ADMIN();
  348.            
  349.              switch(menu2)
  350.              {
  351.                 case 1:
  352.                   {
  353.                     system ("CLS");
  354.                     inserimento();
  355.                   }
  356.                   break;
  357.                          
  358.                  
  359.              case 2:
  360.                   {
  361.                     system ("CLS");
  362.                     ricerca();
  363.                   }
  364.                   break;
  365.                          
  366.                  
  367.              case 4:
  368.                   {
  369.                     system ("CLS");
  370.                     ConsultaFile();
  371.                   }
  372.                   break;
  373.              }      
  374.            
  375.            
  376.        
  377.        }
  378.        break;
  379.        
  380.        case 2:
  381.        {
  382.             system ("CLS");
  383.             UTENTE();
  384.        }
  385.        break;
  386.        
  387.        case 3:
  388.        {
  389.             uscita ();
  390.        }
  391.        break;default:
  392.                 cout << "Scelta non consentita " << "\n" << endl;
  393.         }
  394.  
  395.         cout << endl;
  396.         cout << "Vuoi uscire dal programma? (s/n) " << endl;
  397.         cin >> a;
  398.         }while(a=='n');
  399.        
  400.        
  401.        system("PAUSE");
  402.      
  403.        
  404.        
  405.        
  406. }


PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 21:37
Sabato, 02/01/2010
Un esempio potrebbe essere questo...
Codice sorgente - presumibilmente C++

  1. ...
  2. void ricercaPerNome(string nome)
  3. {
  4.     ifstream fin("Magazzino.txt"); //apri il file dei dati
  5.     Prodotti tmpProd;
  6.     char tmpStr[100];
  7.  
  8.     bool trovata = false;    //flag per indicare il successo della ricerca
  9.  
  10.     //inizia il ciclo di ricerca
  11.     while (!trovata && !fin.eof())
  12.     {
  13.         // leggi dal file le quattro righe
  14.         fin.getline(tmpProd.NomeProdotto, 100);
  15.         fin.getline(tmpProd.Codice, 100);
  16.         fin.getline(tmpProd.Marca, 100);
  17.         fin.getline(tmpStr, 100);
  18.         tmpProd.Prezzo = atoi(tmpStr);
  19.  
  20.         //cerca se nella riga targa é compresa la targa da cercare
  21.         if (strstr(tmpProd.NomeProdotto, nome.c_str()) != NULL)
  22.         {
  23.             cout << "trovata" << endl;
  24.  
  25.                        //se la targa é quella, stampa gli altri dati
  26.             cout << tmpProd.NomeProdotto << endl;
  27.             cout << tmpProd.Codice << endl;
  28.             cout << tmpProd.Marca << endl;
  29.             cout << tmpProd.Prezzo << endl;
  30.             trovata = true;   //per uscire da ciclo
  31.         }
  32.     }
  33.  
  34. }


Ultima modifica effettuata da GuglielmoS il 02/01/2010 alle 21:38
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo