Ragazzi, ho un listato che crea un archivio di studenti, però non riesco a capire perchè viene usato ifndef, quale sarebbe la condizione da far verificare al preprocessore?
Questo è il file Archivio.cpp se può essere d'aiuto:codice:#ifndef _STUDENTE_ #define _STUDENTE_ #include <iostream> using namespace std; const int size=20; typedef struct Studente { char nome[size]; int matricola; int numeroEsami; }; void crea_record(Studente &); #endif
Grazie a tutticodice:#include "Archivio.h" Archivio crea_archivio(int & dim, int& num) { cout << "\n Quante entry ha l'archivio?"; cin >> dim; Archivio t=new Studente[dim]; num=0; return t; } bool inserisci_record(Archivio t, int & num, const Studente s, const int n) { bool ok=true; if (num<n && t!=0) { t[num]=s; num++; } else ok=false; return ok; } bool ricerca_record(const Archivio t, const int m, const int num, int & pos) { bool trovato=false; int i=0; while(i<num && !trovato) if(m==t[i].matricola) { trovato=true; pos=i; } else i++; return trovato; } void stampa_archivio(const Archivio t, const int num){ if(t==0 || num==0) cout << "L'archivio è vuoto o non esiste"; else for (int i=0; i<num; i++) { cout << "\n"; cout << "\n" << i; cout << "[" << t[i].matricola << ','<< t[i].nome << ',' << t[i].numeroEsami << "]" << endl; } } void stampa_dati(const Archivio t, const int pos, const int n, const int num) { if(pos >num || pos<0 || pos>n) cout << "\n posizione record non valida!"; else cout << "\n [" << t[pos].matricola << ','<< t[pos].nome << ',' << t[pos].numeroEsami << "]" << endl; } void distruggi_archivio(Archivio & t, int & num, int & n) { delete [] t; t=0; n=0; num=0; } void crea_record(Studente & s){ cout << "\n ******** Inserimento dati studente ********"; cout << "\n Inserisci il numero di matricola: "; cin >> s.matricola; cin.ignore(); cout << "\n Inserisci nome e cognome: "; cin.getline(s.nome,size); cout << "\n Inserisci il numero di esami: "; cin >> s.numeroEsami; }

Rispondi quotando