Oppure

Loading
01/03/07 14:22
ilciolla
salve a tutti ho un piccolo problema riguardo a un progetto che sto facendo.

in pratica devo costruire una classe data per gestire i prestiti scaduti di una biblioteca.
in pratica deve funzionare in modo tale che quando vado a controllare (nella mia classe prestiti con questi tre memri: cod_utente
cod_libro data_prestito) la data di un certo prestito riceva come parametro questa data e mi dica inserendo la data di oggi quanti giorni sono passati dal prestito effettuato .


ho letto una discussione precedente dove vi era un argomento simile ma non riesco proprio ad adattarlo...

vi prego di aiutarmi perche sono nel panico grazie.
aaa
05/03/07 0:29
pierotofy
Magari se posti il codice che hai già costruito e la parte in cui non riesci ad andare avanti possiamo risparmiare un po' di fatica e risponderti più velocemente e meno genericamente ;)
Il mio blog: piero.dev
09/03/07 20:06
ilciolla
Queta e la mia classe data:

class data
{
public:
friend ostream &operator<<(ostream &,const data&;);

friend istream &operator>>(istream &, data&;);

int giorno;
int mese;
int anno;
};

Ora devo creare delle funzioni le quali mi servono per agire sui prestiti scaduti dei libri.
Mi servira dunque una funzione che ritorna un int alla quale passo la data di oggi e mi faccia il confronto fra tutte le date dei prestiti contenute nell array elenco_prestiti , e mi ritorni (1) se il prestito e scaduto (cioe dopo 30 giorni dalla data in cui e stato preso il libro)oppure zero se invece il prestito non e ancora scaduto.
Poi mi serivira anche una funzione che mi controlli che la data inserita e giusta.
Questa e la mia classe prestiti e il file .cpp per capire dove andranno utilizzate le funzioni della classe data.

using namespace std;

class prestiti{ friend ostream &operator<<( ostream &,const prestiti &;);

private: int code_utente;
string code_libro;
data giorno;

public : void salva();
void carica();
void prestito();
void restituzione();
void ricerche();


}; prestiti elenco_prestiti[1000];



prestiti.cpp


void crediti::prestito()
{ bool g;
int gg,mm,aa;
int j;
int k=0,n=0;
int i;
int ute;
string lib;
cout<<"Inserire il codice utente della persona a cui viene prestato il libro...."<<endl;
cin>>ute;
while(elenco_prestiti[i].code_utente == 0)
{ i++; }

if(ute=='?') {
elenco_utenti[k].ricercau();    
                        
        }
else
     {
elenco_prestiti[i].code_utente=ute;
                                            
                                            
     }
cout<<"inserisci ora il codice del libro che l utente vuole in prestito....."<<endl;
getline(cin,lib);
while(elenco_prestiti[j].code_libro=="";)
{ j++; }
if(lib=="?";)
{
elenco_libri[n].ricercal();
}
else
{
elenco_prestiti[n].code_libro=lib;
}
do{
        cout<<"ora andremo ad inserire la data del prestito...."<<endl;

cout<<"dammi il giorno...."<<endl;
cin>>gg;
cout<<"dammi il mese..."<<endl;
cin>>mm;
cout<<"dammi l anno..."<<endl;
cin>>aa;

g=.ins(gg,mm,aa); //controllare qui l inserimento della data e il controllo del fatto che sia corretta che dovrebbe avvenire richiamando una funzione
// della classe data che ritorno false se e sbagliata e true se e giusta.

if(g==false)

cout<<"reinserire la data..."<<endl;



}while(g=true);
}



void crediti::restituzione()
{
int codu;
string codl;
int i=0,j=0,k=0;


cout<<"inserire perfavoreilcodice del libro...";
getline(cin,codl);
cout<<"ok inserisci allora il codice utente..."<<endl;
cin>>codu;

while((elenco_prestiti[i].code_utente==codu) && (elenco_prestiti[i].code_libro==codl))
{
i++; }

elenco_prestiti[i].code_utente=0;
elenco_prestiti[i].code_libro="";
elenco_prestiti[i].giorno.giorno=0;// controlla se e giusto utilizzare questo metodo cioe utilizzare l array[].giorno.giorno
elenco_prestiti[i].giorno.mese=0;
elenco_prestiti[i].giorno.anno=0;
                                                
while( elenco_utenti[j].codice==codu )
{ j++; }

if (elenco_utenti[j].prestiti > 0)

elenco_utenti[j].prestiti=elenco_utenti[j].prestiti-1;

while(elenco_libri[k].codice==codl)

{ k++; }

elenco_libri[k].prestito=false;

}

void crediti::ricerche()
{ data oggi;
bool f;
int scelta,i,j,k,codeu;
string codl;

cout<<"Che operazione vuoi effetuare?"<<endl;
cout<<" 1. sapere se un libro e disponibile...."<<endl;
cout<<" 2. dato codice utente sapere tutti i libri che egli ha in prestito..."<<endl;
cout<<" 3. sapere i prestiti scaduti...."<<endl;
cin>>scelta;
switch(scelta){

case 1:{
cout<<"Dimme il codice del libro....."<<endl;
cin>>codl;
while(elenco_libri[i].codice==codl)
{ i++; }

if (elenco_libri[i].prestito==false)
cout<<"Il libro e disponibile perche nessun utente lo ha in prestito";

else
while (elenco_prestiti[j].code_libro==codl)
{ j++; }

cout<<"il libro e in prestito all'utente numero"<<elenco_prestiti[j].code_utente<<endl;
cout<<"dal giorno : "<<elenco_prestiti[i].giorno.giorno<<"/"<<elenco_prestiti[i].giorno.mese<<"/"<<elenco_prestiti[i].giorno.anno<<endl;     // devO ridefinire << per il tipo data!
cout<<"la scheda relativa all'utente che ha in prestitoil libro e la seguente...:"<<endl; //COME FACCIO?

while(elenco_utenti[k].codice==elenco_prestiti[j].code_utente)
{ k++; }

cout<<elenco_utenti[i].cognome<<endl;
cout<<elenco_utenti[i].recapito<<endl;
cout<<elenco_utenti[i].mail<<endl;
cout<<elenco_utenti[i].codice<<endl;
cout<<elenco_utenti[i].prestiti<<endl;
break;}

case 2:{ cout<<"Dammi il codice utente..."<<endl;
cin>>codeu;
for(int u=0;u<=1000;u++)
{ if(elenco_prestiti[u].code_utente==codeu)
{
cout<<"L'utente ha in prestito il liro numero: ";
cout<<elenco_prestiti[u].code_libro<<endl;
cout<<"dalla data :";
cout<<elenco_prestiti[i].giorno.giorno<<"/"<<elenco_prestiti[i].giorno.mese<<"/"<<elenco_prestiti[i].giorno.anno<<endl;
}
}
break;}


case 3:{ cout<<"Dammi la data di oggi..."<<endl; //credo sia sbagliata questo case serve per visualizzare
// tutti i prestiti scaduti e chiama una funzione della classe data
f=data.ins(); //la quale dovrebbe controllare la data e restituire treu se e giusta e false se e sbagliata
if (f==true)

for(int s=0;s<=1000;s++)
{
if (elenco_prestiti[s].giorno > oggi ) // qui dovrei chiamare una funzione della classe data
// per vedere se la data di oggi e inferiore a quella del prestito e quindi stampare i prestiti scaduti
{
cout<<elenco_prestiti[s].code_utente<<endl;
cout<<elenco_prestiti[s].code_libro<<endl;
cout<<elenco_prestiti[s].giorno<<endl;
}

}

}



}}
SCUSATE SPERO CHE RIUSCIRETE A CAPIRCI SONO NEL PANICO MARTEDI HO DA PRESENTARLO...
GRAZIE IN ANTICIPO A TUTTI
aaa
12/03/07 10:54
ilciolla
NON RISPONDE NESSUNO?
aaa