vuoi
o PayPal
tutte le volte che vuoi
ESERCIZIO n°1
Scrivere un programma che gestisce un array di record allocato dinamicamente. Il record è costituito da
un campo “chiave” e da un campo” valore”. Il programma effettua su tale struttura dati le seguenti
operazioni:
1) creazione della struttura
2) inserimento dei dati
3) stampa dei dati
4) distruzione della struttura
Organizzare il programma sui seguenti file:
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.
2. Tabella.cpp: Contiene l’implementazione delle 4 funzioni
3. Main.h: 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 producendo l’output mostrato nel seguente esempio di
esecuzione.
#ifndef _TABELLA_
#define _TABELLA_
#include <iostream.h>
struct Record {
char chiave;
int valore;
};
typedef Record * Tabella;
void crea_Tabella(Tabella &, int &);
void inserisci_dati(Tabella, const int);
void stampa_Tabella(const Tabella, const int);
void distruggi_Tabella(Tabella &);
#endif
#include "tabella.h"
void crea_Tabella(Tabella & t, int & dim) {
cout << "\n Creazione della Tabella. Quante entry? ";
cin >> dim;
t=new Record[dim];
cout << "\n Creata una Tabella con " << dim << "entry" << endl;
}
void inserisci_dati(Tabella t, const int dim) {
cout << "\n Inserimento dati nella Tabella."<< endl;
cout << "\n Ogni entry e' una coppia (chiave,valore)."<< endl;
cout << "\n La chiave deve essere un carattere alfabetico e il valore un numero intero."<< endl;
for (int i=0; i<dim; i++) {
cout << "\n Inserisci la entry di posizione " << i<< endl;
cout << "chiave? ";
cin >> t[i].chiave;
cout << "valore? ";
cin >> t[i].valore;
}
cout << "\n Inserimento terminato!" << endl;
}
void stampa_Tabella(const Tabella t, const int dim){
cout << "\n Stampa dei dati nella Tabella.";
for (int i=0; i<dim; i++) {
cout << "\n Entry di posizione" << i << ": ";
cout << "[" << t[i].chiave << ',' << t[i].valore << "]" << endl;
}
cout << "\n Stampa terminata!" << endl;
}