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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| #include"CChaine.h"
#include <stdexcept>
#include <limits> //pour std::limits
#include<iostream>
//********************************************************
//Implémenter une classe CChaine. Chaque objet de cette classe représente
//une chaîne de caractères. Avec cette classe, l’utilisateur doit être capable de :
//• créer une chaîne de plusieurs manières différentes
// --> quels constructeurs faut-il prévoir ?
//• Définition du constructeur par copie
//********************************************************
int Menu()
{
int dChoix = 0;
//-----------------------------------------------------------
// Affiichage du menu
// lecture et verification du choix de l'utlisateur
// Tant qu'input n'est pas 1 chiffre => ignoré
// Traitement du cas où le choix ,'est pas dans l'intervalle
// retour du choix
//-----------------------------------------------------------
std::cout << "Veuillez choisir 1 des actions suivantes :" << std::endl;
while(dChoix < 1 || dChoix > 3)
{
std::cout << "1 - creer une nouvelle chaine et l'afficher " << std::endl
/* << "2 - afficher la chaine " << std::endl*/
<< "2 - quitter" << std::endl;
std::cout << "\nVotre choix ? ";
while(!(std::cin >> dChoix))
{
std::cout << "veuillez introduire s.v.p des chiffres uniquement..." << std::endl
<< "Votre choix ?";
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
if(dChoix < 1 || dChoix > 2)
std::cout << "veuillez choisir s.v.p une nombre entre 1 et 2" << std::endl;
}
return dChoix;
}
int MenuCreation()
{
int dChoixCr;
//---------------------------------------------------------------
// Affiichage du menu pour les différentes manières pour créer 1 chaine
// lecture et verification du choix de l'utlisateur
// Traitement du cas ou le choix n'est pas 1 chiffre => ignoré
// Traitement du cas où le choix,n'est pas dans l'intervalle
// retour du choix
//---------------------------------------------------------------
std::cout << "\n10 - creer une nouvele chaine avec le c'tor avec 1 parametre " << std::endl
<< "11 - creer une nouvele chaine avec le c'tor par copie " << std::endl
<< "12 - quitter" << std::endl;
std::cout << "\nVotre choix ? ";
while(!(std::cin >> dChoixCr))
{
std::cout << "veuillez introduire des nombres uniquement..."<<std::endl
<< "Votre choix ?";
std::cin.clear();
std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
}
if(dChoixCr < 10 || dChoixCr > 12)
std::cout << "veuillez choisir s.v.p une nombre entre 10 et 12" << std::endl;
return dChoixCr;
}
int main()
{
int dLong;
std::cout << "PRJ03 Class CChaine\n\n"
<< "Application permettant la gestion de chaines de caracteres"
<< std::endl;
std::cout << "Que voulez-vous faire ?";
try
{
int dChoix = 0;
while(dChoix != 2)
{
dChoix = Menu(); // on demande le choix de l'utilisateur
if(dChoix == 1)
{
int dCh_Create = 0;
char sTabMsg[100];//
while(dCh_Create != 13)
{
dCh_Create = MenuCreation();
switch(dCh_Create)
{
//---------------------------------------------------------
//création de la chaine avec le construccteur à 1 paramètre
//---------------------------------------------------------
case 10:
{
std::cout << "entrer la chaine : " ;
std::cin >> sTabMsg;
CChaine oChaine1(sTabMsg);
oChaine1.Afficher();//aficher la chaine
}
break;
//-----------------------------------------------------
//création de la chaine avec le construccteur par copie
//-----------------------------------------------------
case 11:
{
std::cout << "\nEntrer la chaine : " ;
std::cin >> sTabMsg;
CChaine oChaine1(sTabMsg);
CChaine oChaine2(oChaine1);
oChaine2.Afficher();//afciher la chaine
}
break;
default:
std::cout << "vous avec decide de quitter!!! au revoir \n" << std::endl;
exit(0);//pour permettre de quitter sinon boucle!!!!!
break;
}
}
}//fin dChoix==1
if(dChoix == 2)
std::cout << "\nVous avec decide de quitter au revoir!!!\n" << std::endl;
}
}
catch(std::bad_alloc &e)
{
std::cout << "une erreur est survenue lors de l'initialisation " << std::endl
<< "il m'est impossible de continuer"<<std::endl;
return 1;//1 problème est survenu
}
return 0;//tout est ok
} |
Partager