Ho questo programmano del quale allego solo in .cpp perchè il .h non è importante:
Versione coi puntatori:
codice:
#include <iostream.h>
#include "puntatori.h"
void main()
{
libro *biblio[10];
for(int i=0; i<10; i++)
{
biblio[i] = new (libro);
}
int n, i, tipoop, quale;
// Input dati dei libri
cout << "\nQuanti libri (max 10)? ";
cin >> n;
while(cin.get()!='\n');
n = (n>10 ? 10 : n); //Al massimo 10 libri
for (i=0; i<n; i++)
{
cout << "\nLibro n. " << (i+1) << " ";
biblio[i]->registra();
}
// Gestione prestiti libri
for( ; ; )
{
cout << "\n1 - prestito";
cout << "\n2 - restituzione";
cout << "\n0 - fine";
cout << "\nOperazione ? ";
cin >> tipoop;
if(!tipoop)
break;
cout << "\nQuale libro (1," << n << ")? ";
cin >> quale;
quale = (quale>n ? n : quale); //Al massimo il libro numero 10
quale--; //L'Array va da 0 a 9
biblio[quale]->infoLibro();
if (tipoop==1)
{
if (!biblio[quale]->pEffettuato())
cout << "\nLibro gia' prestato";
else
cout << "\nPrestito effettuato";
}
else
{
if (!biblio[quale]->lRitornato())
cout << "\nLibro gia' presente";
else
cout << "\nRestituzione effettuata";
}
}
}
Versione senza puntatori:
codice:
#include <iostream.h>
#include "puntatori.h"
void main()
{
libro biblio[10];
int n, i, tipoop, quale;
// Input dati dei libri
cout << "\nQuanti libri (max 10)? ";
cin >> n;
while(cin.get()!='\n');
n = (n>10 ? 10 : n); //Al massimo 10 libri
for (i=0; i<n; i++)
{
cout << "\nLibro n. " << (i+1) << " ";
biblio[i].registra();
}
// Gestione prestiti libri
for( ; ; )
{
cout << "\n1 - prestito";
cout << "\n2 - restituzione";
cout << "\n0 - fine";
cout << "\nOperazione ? ";
cin >> tipoop;
if(!tipoop)
break;
cout << "\nQuale libro (1," << n << ")? ";
cin >> quale;
quale = (quale>n ? n : quale); //Al massimo il libro numero 10
quale--; //L'Array va da 0 a 9
biblio[quale].infoLibro();
if (tipoop==1)
{
if (!biblio[quale].pEffettuato())
cout << "\nLibro gia' prestato";
else
cout << "\nPrestito effettuato";
}
else
{
if (!biblio[quale].lRitornato())
cout << "\nLibro gia' presente";
else
cout << "\nRestituzione effettuata";
}
}
}
Va bene la versione coi puntatori come l'ho fatta io?
E' più veloce secondo voi nel caso di un programma di più grosse dimensioni?