Ultima modifica:
xD titolo bestia comunque è un programma interamente creato da me in c++ per archiviare dei dati in un file esterno e di effettuare ricerche all interno del file per poi stamparne i risultati.
ho usato tutte procedure i valore dei vettore all interno delle procedure sono memorizzati per indirizzo
chiedete per qualsiasi dubbio e commentate:
compilate e provatelo.
EDITATO:creerà in automatico directory e file
ho usato tutte procedure i valore dei vettore all interno delle procedure sono memorizzati per indirizzo
chiedete per qualsiasi dubbio e commentate:
Codice:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <dir.h>
using namespace std;
#define nf "c:\\fatture\\fatture.dat"
struct fattura{
char codice_cliente[255];
char codice_prodotto[255];
int qnt;
int gg;
int mm;
int aa;
};
void carica();
void lettura(fattura v[100]);
void svuota();
void cerca_cp(fattura v[100]);
void cerca_cc(fattura v[100]);
main()
{
FILE *a;
a=fopen("c:\\fatture\\fatture.dat","r");
if(a==NULL)
{
int stat;
stat = mkdir("c:\\fatture");
char* filename = "c:\\fatture\\fatture.dat";
ofstream fout ( filename );
}
int s;
fattura v[1000];
do{
lettura(v);
cout<<endl;
cout<<"1.Carica fattura."<<endl;
cout<<"2.Cerca fatture (codice prodotto)."<<endl;
cout<<"3.Cerca fatture (codice cliente)."<<endl;
cout<<"4.Svuota archivio."<<endl;
cout<<"5.Esci."<<endl<<endl;
cout<<"Scegli operazione: ";
cin>>s;
cout<<endl<<endl;
switch (s)
{
case 1:
carica();
break;
case 2:
cerca_cp(v);
break;
case 3:
cerca_cc(v);
break;
case 4:
svuota();
cout<<"Archivio svuotato!\n";
break;
}
}while(s!=5);
return 0;
}
void carica()
{
fattura cr;
cout<<"Inserisci codice cliente:"<<endl;
cin>>cr.codice_cliente;
cout<<"Inserisci codice prodotto:"<<endl;
cin>>cr.codice_prodotto;
cout<<"Inserisci quantita\':"<<endl;
cin>>cr.qnt;
cout<<"Inserisci data in formato gg/mm/aaaa:"<<endl;
cout<<"giorno: ";
cin>>cr.gg;
cout<<"mese: ";
cin>>cr.mm;
cout<<"anno: ";
cin>>cr.aa;
FILE *f;
f=fopen(nf,"a");
fprintf(f,"%s\n",cr.codice_cliente);
fprintf(f,"%s\n",cr.codice_prodotto);
fprintf(f,"%i\n",cr.qnt);
fprintf(f,"%i\n",cr.gg);
fprintf(f,"%i\n",cr.mm);
fprintf(f,"%i\n",cr.aa);
fclose(f);
cout<<"Scrittura eseguita con successo!"<<endl;
}
void lettura(fattura v[1000])
{
FILE *f;
f=fopen(nf,"r");
int i;
for(i=0;i<1000;i++)
{
fscanf(f,"%s\n",&v[i].codice_cliente);
fscanf(f,"%s\n",&v[i].codice_prodotto);
fscanf(f,"%i\n",&v[i].qnt);
fscanf(f,"%i\n",&v[i].gg);
fscanf(f,"%i\n",&v[i].mm);
fscanf(f,"%i\n",&v[i].aa);
}
fclose(f);
}
void svuota()
{
FILE *f;
f=fopen(nf,"w");
fclose(f);
}
void cerca_cp(fattura v[100])
{
int i;
string x;
cout<<"Inserisci il codice prodotto: ";
cin>>x;
bool trovati=false;
for(i=0;i<100;i++)
{
if(x==v[i].codice_prodotto)
{
cout<<endl;
cout<<"Codice prodotto: "<<v[i].codice_prodotto<<endl;
cout<<"Codice cliente: "<<v[i].codice_cliente<<endl;
cout<<"Quantita\': "<<v[i].qnt<<endl;
cout<<"Data: "<<v[i].gg<<"/"<<v[i].mm<<"/"<<v[i].aa<<endl;
trovati=true;
}
}
if(!trovati)
cout<<"Nessuna fattura trovata!\n";
}
void cerca_cc(fattura v[100])
{
bool trovati=false;
int i;
string x;
cout<<"Inserisci il codice cliente: ";
cin>>x;
for(i=0;i<100;i++)
{
if(x==v[i].codice_cliente)
{
cout<<endl;
cout<<"Codice cliente: "<<v[i].codice_cliente<<endl;
cout<<"Codice prodotto: "<<v[i].codice_prodotto<<endl;
cout<<"Quantita\': "<<v[i].qnt<<endl;
cout<<"Data: "<<v[i].gg<<"/"<<v[i].mm<<"/"<<v[i].aa<<endl;
trovati=true;
}
}
if(!trovati)
cout<<"Nessuna fattura trovata!\n";
}
compilate e provatelo.
EDITATO:creerà in automatico directory e file