liste chaînée, que faire des attributs?
Bonjour,
Je souhaite utiliser une liste chaînée sur des départements (d'une université)
Avant même de chercher à utiliser des méthodes sur ma liste chaînée, j'ai des erreurs de compilation.
Le poblème est que je ne sais pas vraiment utiliser ces listes ...
J'utilise 4 fichiers :
- Department.hh
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
class Department{
private:
string departmentname;
string departmentfaculty;
int numberofstudents;
int numberofstaffs;
public:
Department(string, string, int, int);
string getDepartmentName();
string getDepartmentFaculty();
int getNumberOfStudents();
int getNumberOfStaffs();
//create the dynamic linked list
struct NodeDepart
{
string departmentname;
string departmentfaculty;
int numberofstudents;
int numberofstaffs;
NodeDepart* link;
};
typedef NodeDepart* NodePointer;
NodePointer head;
NodePointer currPointer;
NodePointer newNodePointer; |
Déjà ici, je pense pouvoir ne mettre que la définition de la structure et pas parler des attributs et méthodes et donc, je n'aurais pas besoin de fichier Department.cc (voir plus loin pourquoi je les mets quand même)
- Department.cc
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include "Department.hh"
Department::Department(string nom, string faculte, int eleve, int personnel)
{
departmentname=nom;
departmentfaculty=faculte;
numberofstudents=eleve;
numberofstaffs=personnel;
}
//getter for departmentname
string Department::getDepartmentName(){
return departmentname;
}
//getter for departmentfaculty
string Department::getDepartmentFaculty(){
return departmentfaculty;
}
//getter for numberofstudents
int Department::getNumberOfStudents(){
return numberofstudents;
}
//getter for numberofstaffs
int Department::getNumberOfStaffs(){
return numberofstaffs;
} |
- Departmentlist.hh
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
class Departmentlist{
private :
list<Department> mylistofdepartment;
NodePointer head;
public:
Departmentlist(const char*);
Departmentlist();
~Departmentlist();
void printDepartmentNames() const;
void printPropertiesOfParticularDepartment(string nomdepart);
void searchParticularDepartmentName(string recherchedepart);
void AddDepartment(string nomdepartment,string facultedepartment, int etudiantsnumber,int personnelnumber);
void DeleteEvent(string departtodestroy); |
- Departmentlist.cc
Pour le moment, dans ce fichier, je ne fais que lire, dans mon fichier department.txt, ma liste de départements (en utilisant une simple liste). A cause de cette lecture, j'ai besoin de
Citation:
Department personneajouter(var1,var2,var3,var4);
et donc d'un constructeur prenant 4 paramètres dans Department et donc j'ai besoin de la déclaration des attributs...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Departmentlist::Departmentlist(const char* fileName)
{
ifstream fichier(fileName) ;
cout <<"Here are the events contained in the text file event.txt :\n";
string var1;
string var2;
int var3;
int var4;
if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
{
// cette boucle s'arrête dès qu'une erreur de lecture survient
while( fichier >> var1 && fichier >> var2 && fichier >> var3 && fichier >>var4)
{
Department personneajouter(var1,var2,var3,var4);
mylistofdepartment.push_back(personneajouter);
}
fichier.close();
}
else
{
cout << "Impossible d'ouvrir le fichier !" << endl;
}
for (list<Department>::iterator it = mylistofdepartment.begin (); it != mylistofdepartment.end (); ++it)
{
cout << " Name : " << it->getDepartmentName();
cout << " Faculty : " << it->getDepartmentFaculty();
cout<< " Students : " << it->getNumberOfStudents();
cout<< " Staff: " << it->getNumberOfStaffs() <<endl;
}
} |
Department.hh
Voici l'erreur que j'obtiens avec ce code :
Citation:
g++ -c -o Department.o Department.cc
g++ -c Department.cc -o department.o
g++ -c -o Departmentlist.o Departmentlist.cc
In file included from Departmentlist.cc:4:
Departmentlist.hh:17: erreur: ‘NodePointer’ does not name a type
make: *** [Departmentlist.o] Erreur 1
Pour ceux qui me liront jusqu'ici, savez-vous d'où vient cette erreur?
Et que dois-je faire avec mes attributs et méthodes de la classe Department?
Merci pour vos conseils