vuoi
o PayPal
tutte le volte che vuoi
Il programma gestisce i dati degli scontrini emessi da una cassa utilizzando le struct.
#include <iostream.h>
#include <string.h>
#include <conio.h>
struct data { //dichiarazione struct data
int giorno, mese, anno;
};
struct ora { //dichiarazione struct ora
int minuti, ore;
};
struct scontrino { //dichiarazione struct scontrino (contiene i dati
dello scontrino
unsigned int importo;
data data; //data di emissione dello scontrino
ora ora; //ora di emissione dello scontrino
char causale[20];
};
scontrino scontrini[10]; �
int flag=0; //controlla se i dati degli scontrini sono gi
stati inseriti (1 = si, 0 = no)
void input_scontrini(); //lettura dati scontrini
void stampa_scontrino(int); //stampa dati di uno scontrino
void scontrini_giorno(); //calcola quanti scontrini sono stati emessi in un
determinato giorno
void data_scontrino();
void importo_alimenti(); �
int data_valida(int, int, int); //controlla se una data immessa valida
int main(){
int esci=0; //determina l'uscita dal programma
while(esci==0){ //ciclo di visualizzazione menu di scelta
clrscr();
cout<<"\n\t\t\tGESTIONE SCONTRINI\n"<<endl;
cout<<"1. Inserimento dei dati degli scontrini"<<endl;
cout<<"2. Stampa del numero degli scontrini emessi in un determinato
giorno"<<endl;
cout<<"3. Stampa la data di emissione di uno scontrino dato l'importo e il
genere"<<endl;
cout<<"4. Stampa dell'importo totale speso in alimenti in un determinato
mese"<<endl;
cout<<"5. Esci dal programma"<<endl;
cout<<"\nEffettua la tua scelta (1-5): ";
int scelta;
cin>>scelta;
switch(scelta){
case 1: input_scontrini(); break;
case 2: scontrini_giorno(); break;
case 3: data_scontrino(); break;
case 4: importo_alimenti(); break;
case 5: esci=1;
}
}
return 0;
}
void input_scontrini(){
int valida=1;
for(int i=0; i<10; i++){
clrscr(); �
cout<<"SCONTRINO N "<<(i+1)<<endl;
cout<<"\n1) Inserire la data di emissione dello scontrino:\n\n";
cout<<" Giorno: "; cin>>scontrini[i].data.giorno; //legge il giorno di
emissione dello scontrino
cout<<" Mese: "; cin>>scontrini[i].data.mese; //legge il mese di
emissione dello scontrino
cout<<" Anno: "; cin>>scontrini[i].data.anno; //legge l'anno di
emissione dello scontrino
valida=data_valida(scontrini[i].data.giorno, scontrini[i].data.mese,
scontrini[i].data.anno);
while(valida==1){ �
cout<<"\nLa data inserita non valida!!!\nReinserisci la data di
emissione dello scontrino: \n\n";
cout<<" Giorno: "; cin>>scontrini[i].data.giorno; //legge il
giorno di emissione dello scontrino
cout<<" Mese: "; cin>>scontrini[i].data.mese; //legge il mese
di emissione dello scontrino
cout<<" Anno: "; cin>>scontrini[i].data.anno; //legge l'anno
di emissione dello scontrino
valida=data_valida(scontrini[i].data.giorno, scontrini[i].data.mese,
scontrini[i].data.anno);
}
cout<<"\n2) Inserire l'importo speso: ";
cin>>scontrini[i].importo; //legge l'importo
dello scontrino
cout<<"\n3) Inserire la causale dello scontrino: \n"<<endl;
cout<<" 1. Dischi"<<endl;
cout<<" 2. Alimenti"<<endl;
cout<<" 3. Abbigliamento"<<endl;
cout<<"\n Effettua la tua scelta (1-3): ";
int scelta; �
cin>>scelta; //legge n
causale dello scontrino
//assegna al campo "causale" la causale dello scontrino relativa al numero
inserito
switch (scelta){
case 1: strcpy(scontrini[i].causale, "Dischi"); break;
case 2: strcpy(scontrini[i].causale, "Alimenti"); break;
case 3: strcpy(scontrini[i].causale, "Abbigliamento"); break;
}
flag=1;
}
}
void scontrini_giorno(){
int valida=0;
clrscr();
int contatore=0;
if(flag==1){
data dd; //struttura dati di tipo data contenente la data da
controllare cout<<"Inserire la data da controllare: \n"<<endl;
cout<<"Inserisci il giorno: ";
cin>>dd.giorno; //legge il giorno
cout<<"Inserisci il mese: ";
cin>>dd.mese; //legge il mese
cout<<"Inserisci l'anno: ";
cin>>dd.anno; //legge l'anno
valida=data_valida(dd.giorno, dd.mese, dd.anno);
while (valida==1){ �
cout<<"\n\nLa data inserita non valida!!!!\nReinserire la
data da controllare: \n\n";
cout<<"Giorno: ";
cin>>dd.giorno; //legge il giorno
cout<<"Mese: ";
cin>>dd.mese; //legge il mese
cout<<"Anno: ";
cin>>dd.anno; //legge l'anno
valida=data_valida(dd.giorno, dd.mese, dd.anno);
}
for(int i=0; i<10; i++){
if(scontrini[i].data.giorno==dd.giorno &&
scontrini[i].data.mese==dd.mese && scontrini[i].data.anno==dd.anno)
contatore++;
}
cout<<"\nNel giorno immesso sono stati emessi "<<contatore<<"
scontrini.\n"<<endl;
cout<<"Premere un tasto per ritornare al menu principale...";
getch();
}
else{ cout<<"ERRORE!!"<<endl;
cout<<"--------"<<endl;
cout<<"Non sono ancora stati inseriti i dati degli
scontrini!!!"<<endl;
cout<<"Premere un tasto per tornare al menu principale...";
getch();
}
}
void data_scontrino(){
clrscr();
int importo, cont=0;
char causale[20];
if(flag==1){
cout<<"Inserire l'importo dello scontrino da ricercare: ";
cin>>importo;
cout<<"Inserire la causale dello scontrino da ricercare: \n"<<endl;
cout<<" 1. Dischi"<<endl;
cout<<" 2. Alimenti"<<endl;
cout<<" 3. Abbigliamento"<<endl;
cout<<"\n Effettua la tua scelta (1-3): ";
int scelta; �
cin>>scelta; //legge n
causale dello scontrino
switch (scelta){
case 1: strcpy(causale, "Dischi"); break;
case 2: strcpy(causale, "Alimenti"); break;
case 3: strcpy(causale, "Abbigliamento"); break;
}
for(int i=0; i<10; i++){
if(scontrini[i].importo==importo && strcmp(causale,
scontrini[i].causale)==0 ){
cont++;
clrscr();
cout<<"Scontrino trovato ("<<cont<<"):\n\n";
stampa_scontrino(i);
cout<<"\n\nPremere un tasto per continuare la ricerca...";
getch();
}
}
cout<<"\nNon sono stati trovati altri scontrini."<<endl;
cout<<"Premere un tasto per tornare al menu principale...";
getch();
}
else{ cout<<"ERRORE!!"<<endl;