Mi sono permesso di inserirlo nei rispettivi file
main.cpp
codice:
/*
3. Main.cpp: Contiene il programma "main" che dichiara una variabile
"tabella" di tipo Tabella, una variabile intera "num_entry" che
rappresenta il numero di elementi dell'array e chiama le funzioni.
*/
#include <iostream>
#include "funzioni.h"
using namespace std;
int main()
{
Tabella tabella = NULL;
int num_entry;
cout << "Inserisci il numero dei record da inserire: ";
cin >> num_entry;
tabella = creazione_struttura(tabella, num_entry);
tabella = inserimento_dati(tabella, num_entry);
stampa_dati(tabella, num_entry);
distruzione_struttura(tabella);
return 0;
}
funzioni.h // <-- era tabella.cpp
codice:
/*
2. Funzioni.h: Contiene l'implementazione delle 4 funzioni
*/
#include <iostream>
#include "tabella.h"
using namespace std;
Tabella creazione_struttura(Tabella p, int n)
{
try{
p = new Record[n];
cout << "Struttura creata con successo\n";
} catch(bad_alloc xa){
cout << "Errore di allocazione\n";
exit(1);
}
return p;
}
Tabella inserimento_dati(Tabella p, int n)
{
for (int i = 0; i < n; i++)
{
cout << "Record N. " << i+1 << " di " << n << endl << "Inserisci CHIAVE: ";
cin >> p[i].chiave;
cout << "Inserisci VALORE: ";
cin >> p[i].valore;
}
return p;
}
void stampa_dati(Tabella p, int n)
{
for(int i = 0; i < n; i++)
cout << "CHIAVE: " << p[i].chiave << ", VALORE: " << p[i].valore << endl;
}
void distruzione_struttura(Tabella p)
{
p = NULL;
delete [] p;
cout << "Struttura distrutta con successo\n";
}
tabella.h
codice:
/*
1. Tabella.h: contiene la dichiarazione della struttura "Record",
la dichiarazione di un tipo "Tabella" puntatore a "Record"
e i prototipi delle 4 funzioni che implementano
rispettivamente le 4 funzionalità sopra elencate.
*/
struct Record
{
int chiave;
char valore[20];
};
typedef Record *Tabella;
Tabella creazione_struttura(Tabella, int);
Tabella inserimento_dati(Tabella, int);
void stampa_dati(Tabella, int);
void distruzione_struttura(Tabella);