TP de C++
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

file.cpp 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #include "figures.h"
  2. #include "cellule.h"
  3. #include "file.h"
  4. file::file(){
  5. courante=NULL;
  6. premiere=NULL;
  7. derniere=NULL;
  8. nb_cellules=0;
  9. }
  10. void file::inserer_Element(figure *el){
  11. if(nb_cellules==0){
  12. courante=new cellule(el);
  13. premiere=courante;
  14. derniere=courante;
  15. }
  16. else if(derniere==courante){
  17. cellule *n_cellule = new cellule(el);
  18. n_cellule->suiv = courante->suiv;
  19. courante->suiv=n_cellule;
  20. derniere=n_cellule;
  21. }
  22. else{
  23. cellule *n_cellule = new cellule(el);
  24. n_cellule->suiv = courante->suiv;
  25. courante->suiv=n_cellule;
  26. }
  27. cout << "L'élément a bien été inséré" << endl;
  28. nb_cellules++;
  29. }
  30. void file::supprimer_Element(){
  31. cellule *temp = premiere;
  32. try{
  33. while(temp->suiv!=courante){
  34. avancer();
  35. }
  36. if(courante==derniere){
  37. derniere=temp;
  38. }
  39. else if(courante!=derniere){
  40. temp->suiv=temp->suiv->suiv;
  41. }
  42. delete(courante);
  43. courante=temp;
  44. nb_cellules--;
  45. }catch(vide v){
  46. v.grondage();
  47. }
  48. }
  49. bool file::est_Vide(){
  50. if(nb_cellules==0){
  51. return 1;
  52. }
  53. else{
  54. return 0;
  55. }
  56. }
  57. figure* file::file::get_Tete_De_Queue(){
  58. return derniere->element;
  59. }
  60. int file::get_Nb_Elements(){
  61. return nb_cellules;
  62. }
  63. cellule* file::get_Courante(){
  64. return courante;
  65. }
  66. cellule* file::get_Derniere(){
  67. return derniere;
  68. }
  69. void file::avancer(){
  70. courante=courante->suiv;
  71. }
  72. void file::libereeeeeeeeer(){
  73. courante=premiere;
  74. cellule *liberateur;
  75. while(courante!=NULL){
  76. liberateur=courante;
  77. avancer();
  78. delete liberateur;
  79. }
  80. }
  81. void file::vide::grondage(){
  82. cout << "Vous êtes en train de manipuler une classe vide, arrêtez tout de suite" << endl;
  83. exit(-1);
  84. }