Advertisement
Guest User

Untitled

a guest
May 24th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #include "billetreduit.h"
  7. #include "Cellule.h"
  8. #include "ListeChainee.h"
  9.  
  10. using namespace std;
  11.  
  12. ostream&operator<<(ostream&out, Billet *b)
  13. {
  14.     b->affichage(out);
  15.     return out;
  16. }
  17.  
  18. long int saisieEntier()
  19. {
  20.     int base=10, i;
  21.     char chaine[30];
  22.     char *str;
  23.     long int val;
  24.  
  25.     //printf("Entrez un entier:\n");
  26.     do
  27.     {
  28.         fgets(chaine, sizeof chaine, stdin);
  29.         if (chaine[0]=='\n')
  30.         {
  31.             continue;
  32.         }
  33.         for(i=0;i<=30;i++)
  34.         {
  35.             if(chaine[i]=='\n')
  36.             {
  37.                 chaine[i]='\0';
  38.                 break;
  39.             }
  40.         }
  41.         val=strtol(chaine, &str, base);
  42.         if (str[0] != '\0')
  43.         {
  44.             printf("Saisie invalide !\nEntrez un entier:\n");
  45.         }
  46.     } while (str[0]!='\0');
  47.     return val;
  48. }
  49.  
  50. int main()
  51. {
  52.     // Test de la classe Cellule
  53.    
  54.     /*Cellule<int> c(5);
  55.     cout << c.getData() << endl;
  56.     Cellule <int> d(3.4);
  57.     c.setNext(&d);
  58.     cout << c.getNext() << " " << &d << endl;
  59.     c.setData(4);
  60.     cout << c.getData() << endl;*/
  61.    
  62.     // Fin du test de la classe Cellule
  63.    
  64.     //
  65.  
  66.     // Test avec des int
  67.     /*ListeChainee<int> l;
  68.     l.addT(1);
  69.     l.addH(2);
  70.     l.addT(3);
  71.     l.addH(4);
  72.     l.addT(5);
  73.     l.addH(6);
  74.     l.addT(7);
  75.     l.addH(8);
  76.     l.addT(9);
  77.     l.addH(0);
  78.     l.print();
  79.     /*l.removeH();
  80.     l.print();
  81.     l.removeT();
  82.     l.print();*/
  83.     //l.addP(15,0);
  84.     //l.print();
  85.     //l.removeP(4);
  86.     //l.print();
  87.     //cout << l.accessP(5) << endl;*/
  88.    
  89.     // Test avec des float
  90.    
  91.     /*ListeChainee<float> l;
  92.     l.addT(3.4);
  93.     l.addH(5.6);
  94.     l.print();
  95.     l.removeH();
  96.     l.print();
  97.     l.addT(4.7);
  98.     l.addH(15.5);
  99.     l.addH(14.3);
  100.     l.removeT();
  101.     l.addP(10.0, 3);
  102.     l.print();
  103.     l.removeP(2);
  104.     l.print();*/
  105.    
  106.      //Test avec des chaînes
  107.     /*ListeChainee<string> l;
  108.     l.addT("Je suis");
  109.     l.addH("Beau");
  110.     l.print();
  111.     l.removeT();
  112.     l.print();
  113.     l.addT("C'est vrai !");
  114.     l.addT("Sisi !");
  115.     l.addH("Héhéééé !");
  116.     l.addP("La claaaaaasse !", 3);
  117.     l.print();
  118.     l.removeH();
  119.     l.removeP(2);
  120.     l.print();*/
  121.    
  122.     //Billets*
  123.    
  124.     /*ListeChainee<Billet*> lb;
  125.     BilletReduit* b;
  126.     b=new BilletReduit;
  127.     b->saisir();
  128.     lb.addH(b);
  129.     lb.print();*/
  130.    
  131.     int choix, choix2, choix3, pos;
  132.     double d;
  133.     string s;
  134.     ListeChainee<Billet*> lb;
  135.     Billet *bn, *b1;
  136.     BilletReduit *br, *b2;
  137.     do
  138.     {
  139.     cout
  140.         <<"[1] Ajouter un billet" << endl
  141.         <<"[2] Supprimer un billet" << endl
  142.         <<"[3] Visualiser un billet" << endl
  143.         <<"[4] Modifier un billet" << endl
  144.         <<"[9] Afficher tous les billets" << endl
  145.         <<"[0] Quitter" <<endl;
  146.     //cin>>choix;
  147.     choix=saisieEntier();
  148.     switch (choix)
  149.     {
  150.         case 1:
  151.         cout
  152.             <<"[1] Normal" << endl
  153.             <<"[2] Réduit" << endl;
  154.         //cin >> choix2;
  155.         choix2=saisieEntier();
  156.        
  157.         switch (choix2)
  158.         {
  159.        
  160.             case 1:
  161.             cout
  162.                 <<"[1] Ajouter en tête" << endl
  163.                 <<"[2] Ajouter en queue" << endl
  164.                 <<"[3] Ajouter à une position précise" << endl;
  165.             //cin >> choix3;
  166.             choix3=saisieEntier();
  167.             bn=new Billet;
  168.             switch (choix3)
  169.             {
  170.                 case 1:
  171.                 bn->saisir();
  172.                 lb.addH(bn);
  173.                 break;
  174.                 case 2:
  175.                 bn->saisir();
  176.                 lb.addT(bn);
  177.                 break;
  178.                 case 3:
  179.                 cout
  180.                     << "Position:" << endl;
  181.                 //cin >> pos;
  182.                 pos=saisieEntier();
  183.                 bn-> saisir();
  184.                 lb.addP(bn, pos);
  185.                 break;
  186.                 default:
  187.                 "Erreur";
  188.             }
  189.             break;
  190.             case 2:
  191.             cout
  192.                 <<"[1] Ajouter en tête" << endl
  193.                 <<"[2] Ajouter en queue" << endl
  194.                 <<"[3] Ajouter à une position précise" << endl;
  195.             //cin >> choix3;
  196.             choix3=saisieEntier();
  197.             br=new BilletReduit;
  198.             switch (choix3)
  199.             {
  200.                 case 1:
  201.                 br->saisir();
  202.                 lb.addH(br);
  203.                 break;
  204.                 case 2:
  205.                 br->saisir();
  206.                 lb.addT(br);
  207.                 break;
  208.                 case 3:
  209.                 cout
  210.                     << "Position:" << endl;
  211.                 //cin >> pos;
  212.                 pos=saisieEntier();
  213.                 br-> saisir();
  214.                 lb.addP(br, pos);
  215.                 break;
  216.                 default:
  217.                 "Erreur";
  218.             }
  219.             break;
  220.             default:
  221.             cout
  222.                 << "Erreur" << endl;
  223.             break;
  224.         }
  225.                        
  226.         break;
  227.         case 2:
  228.         cout
  229.             <<"[1] Supprimer en tête" << endl
  230.             <<"[2] Supprimer en queue" << endl
  231.             <<"[3] Supprimer à une position précise" << endl;
  232.         //cin >> choix2;
  233.         choix2=saisieEntier();
  234.         switch (choix2)
  235.         {
  236.             case 1:
  237.             lb.removeH();
  238.             break;
  239.             case 2:
  240.             lb.removeT();
  241.             break;
  242.             case 3:
  243.             cout
  244.                 << "Position:" << endl;
  245.             //cin >> pos;
  246.             pos=saisieEntier();
  247.             lb.removeP(pos);
  248.             break;
  249.             default:
  250.             "Erreur";
  251.         }
  252.         break;
  253.         case 3:
  254.         cout
  255.             << "Position:" << endl;
  256.         //cin >> pos;
  257.         pos=saisieEntier();
  258.         cout
  259.             << lb.accessP(pos) << endl;
  260.         break;
  261.         case 4:
  262.         cout
  263.             << "Position:" << endl;
  264.         //cin >> pos;
  265.         pos=saisieEntier();
  266.         lb.accessP(pos)->saisir();
  267.         break;
  268.            
  269.        
  270.         case 9:
  271.         lb.print();
  272.         break;
  273.         case 0:
  274.         cout << "Sortie" << endl;
  275.         break;
  276.         default:
  277.         cout << "Erreur" << endl;  
  278.         break;
  279.     }
  280.    
  281.        
  282.     } while (choix!=0);
  283.    
  284.  
  285.     return 0;
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement