Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être
avec la boucle
dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut
m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs
. Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de
non-fumeurs (1 à 40).
Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à
40). De plus, le
programme devrait afficher à l'écran un document de voyage qui indique si le
passager est
dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a
dans l'autobus
//autobus.h
#ifndef AUTOBUS_H
#define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1;
const int NONFUMEUR = 2;
class autobus {
public:
autobus (int statutf) : statut (statutf),
nb_siege (40),
nb_siege_alloue (0) {
}
~autobus() {
}
int isFumeur () {
return statut;
}
int siegeAlloue() {
return nb_siege_alloue;
}
int reserverSiege() {
return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0);
}
private:
int nb_siege;
int nb_siege_alloue;
int statut ;
};
#endif
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
benoitB
Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être avec la boucle dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs . Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de non-fumeurs (1 à 40). Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à 40). De plus, le programme devrait afficher à l'écran un document de voyage qui indique si le passager est dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a dans l'autobus
//autobus.h #ifndef AUTOBUS_H #define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1; const int NONFUMEUR = 2;
class autobus { public: autobus (int statutf) : statut (statutf), nb_siege (40), nb_siege_alloue (0) { } ~autobus() { } int isFumeur () { return statut; } int siegeAlloue() { return nb_siege_alloue; } int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } private: int nb_siege; int nb_siege_alloue; int statut ; }; #endif
int main(int argc, char **argv) { Reservation reserv; int reponse = 0; int nb_siege; char g; //while (reponse != 3) { do { (reponse = 0); cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cin >> reponse; if (reponse == 1) { nb_siege = reserv.reserver_non_fumeur(); } if (nb_siege > 0) { cout << "Non-fumeurs " << nb_siege << endl; } if (reponse == 2) { nb_siege = reserv.reserver_fumeur(); } //if (nb_siege > 0) { if (nb_siege > 1) { cout << "Fumeurs " << nb_siege << endl; } if (reponse == 3) { cout << "Reponse invalide" << endl; } std::cout << "Appuyez sur une touche..." << std::endl; std::cin >> g; } while (reponse != 3); return 0; }
Deux choses :
1. A la place de : int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } j'écrirai : int reserverSiege () { return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0); }
2. J'écrirai le main ainsi : int main(int argc, char** argv) { Reservation reserv; int reponse = 0; int nb_siege; do { cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cout << "(3 pour quitter...)"<< endl; cin >> reponse;
cout << "Appuyez sur une touche..." << endl; cin >> reponse; }while( reponse != 3 ); return 0; }
Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être
avec la boucle
dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut
m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs
. Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de
non-fumeurs (1 à 40).
Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à
40). De plus, le
programme devrait afficher à l'écran un document de voyage qui indique si le
passager est
dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a
dans l'autobus
//autobus.h
#ifndef AUTOBUS_H
#define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1;
const int NONFUMEUR = 2;
class autobus {
public:
autobus (int statutf) : statut (statutf),
nb_siege (40),
nb_siege_alloue (0) {
}
~autobus() {
}
int isFumeur () {
return statut;
}
int siegeAlloue() {
return nb_siege_alloue;
}
int reserverSiege() {
return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0);
}
private:
int nb_siege;
int nb_siege_alloue;
int statut ;
};
#endif
int main(int argc, char **argv) {
Reservation reserv;
int reponse = 0;
int nb_siege;
char g;
//while (reponse != 3) {
do {
(reponse = 0);
cout << "Appuyez sur 1 pour Non-fumeurs "<< endl;
cout << "Appuyez sur 2 pour Fumeurs "<< endl;
cin >> reponse;
if (reponse == 1) {
nb_siege = reserv.reserver_non_fumeur();
}
if (nb_siege > 0) {
cout << "Non-fumeurs " << nb_siege << endl;
}
if (reponse == 2) {
nb_siege = reserv.reserver_fumeur();
}
//if (nb_siege > 0) {
if (nb_siege > 1) {
cout << "Fumeurs " << nb_siege << endl;
}
if (reponse == 3) {
cout << "Reponse invalide" << endl;
}
std::cout << "Appuyez sur une touche..." << std::endl;
std::cin >> g;
} while (reponse != 3);
return 0;
}
Deux choses :
1. A la place de :
int reserverSiege() {
return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0);
}
j'écrirai :
int reserverSiege ()
{
return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0);
}
2. J'écrirai le main ainsi :
int main(int argc, char** argv)
{
Reservation reserv;
int reponse = 0;
int nb_siege;
do {
cout << "Appuyez sur 1 pour Non-fumeurs "<< endl;
cout << "Appuyez sur 2 pour Fumeurs "<< endl;
cout << "(3 pour quitter...)"<< endl;
cin >> reponse;
Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être avec la boucle dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs . Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de non-fumeurs (1 à 40). Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à 40). De plus, le programme devrait afficher à l'écran un document de voyage qui indique si le passager est dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a dans l'autobus
//autobus.h #ifndef AUTOBUS_H #define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1; const int NONFUMEUR = 2;
class autobus { public: autobus (int statutf) : statut (statutf), nb_siege (40), nb_siege_alloue (0) { } ~autobus() { } int isFumeur () { return statut; } int siegeAlloue() { return nb_siege_alloue; } int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } private: int nb_siege; int nb_siege_alloue; int statut ; }; #endif
int main(int argc, char **argv) { Reservation reserv; int reponse = 0; int nb_siege; char g; //while (reponse != 3) { do { (reponse = 0); cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cin >> reponse; if (reponse == 1) { nb_siege = reserv.reserver_non_fumeur(); } if (nb_siege > 0) { cout << "Non-fumeurs " << nb_siege << endl; } if (reponse == 2) { nb_siege = reserv.reserver_fumeur(); } //if (nb_siege > 0) { if (nb_siege > 1) { cout << "Fumeurs " << nb_siege << endl; } if (reponse == 3) { cout << "Reponse invalide" << endl; } std::cout << "Appuyez sur une touche..." << std::endl; std::cin >> g; } while (reponse != 3); return 0; }
Deux choses :
1. A la place de : int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } j'écrirai : int reserverSiege () { return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0); }
2. J'écrirai le main ainsi : int main(int argc, char** argv) { Reservation reserv; int reponse = 0; int nb_siege; do { cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cout << "(3 pour quitter...)"<< endl; cin >> reponse;
cout << "Appuyez sur une touche..." << endl; cin >> reponse; }while( reponse != 3 ); return 0; }
patrice brassard
"benoitB" a écrit dans le message de news: 42e45636$0$22275$
Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être avec la boucle dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs . Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de non-fumeurs (1 à 40). Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à 40). De plus, le programme devrait afficher à l'écran un document de voyage qui indique si le passager est dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a dans l'autobus
//autobus.h #ifndef AUTOBUS_H #define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1; const int NONFUMEUR = 2;
class autobus { public: autobus (int statutf) : statut (statutf), nb_siege (40), nb_siege_alloue (0) { } ~autobus() { } int isFumeur () { return statut; } int siegeAlloue() { return nb_siege_alloue; } int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } private: int nb_siege; int nb_siege_alloue; int statut ; }; #endif
int main(int argc, char **argv) { Reservation reserv; int reponse = 0; int nb_siege; char g; //while (reponse != 3) { do { (reponse = 0); cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cin >> reponse; if (reponse == 1) { nb_siege = reserv.reserver_non_fumeur(); } if (nb_siege > 0) { cout << "Non-fumeurs " << nb_siege << endl; } if (reponse == 2) { nb_siege = reserv.reserver_fumeur(); } //if (nb_siege > 0) { if (nb_siege > 1) { cout << "Fumeurs " << nb_siege << endl; } if (reponse == 3) { cout << "Reponse invalide" << endl; } std::cout << "Appuyez sur une touche..." << std::endl; std::cin >> g; } while (reponse != 3); return 0; }
Deux choses :
1. A la place de : int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } j'écrirai : int reserverSiege () { return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0); }
2. J'écrirai le main ainsi : int main(int argc, char** argv) { Reservation reserv; int reponse = 0; int nb_siege; do { cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cout << "(3 pour quitter...)"<< endl; cin >> reponse;
cout << "Appuyez sur une touche..." << endl; cin >> reponse; }while( reponse != 3 ); return 0; }
Merci pour ta réponse. Le main ne se comporte pas comme je le souhaiterais. Lorsque l'usager appuie sur 1, l'affichage ne devrait pas afficher au départ que l'autobus non-fumeur est plein. Il devrait afficher Non-fumeurs 1 Si l'usager appuie de nouveau sur 1, l'affichage indiquerait Non-fumeurs 2
Merci !
Patrice
"benoitB" <nordsudestouest@voila.fr> a écrit dans le message de news:
42e45636$0$22275$8fcfb975@news.wanadoo.fr...
Mon prog est sensé effectué la tâche suivante, mais un problème,
peut-être avec la boucle
dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut
m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs
. Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de
non-fumeurs (1 à 40).
Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1
à 40). De plus, le
programme devrait afficher à l'écran un document de voyage qui indique si
le passager est
dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y
a dans l'autobus
//autobus.h
#ifndef AUTOBUS_H
#define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1;
const int NONFUMEUR = 2;
class autobus {
public:
autobus (int statutf) : statut (statutf),
nb_siege (40),
nb_siege_alloue (0) {
}
~autobus() {
}
int isFumeur () {
return statut;
}
int siegeAlloue() {
return nb_siege_alloue;
}
int reserverSiege() {
return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0);
}
private:
int nb_siege;
int nb_siege_alloue;
int statut ;
};
#endif
int main(int argc, char **argv) {
Reservation reserv;
int reponse = 0;
int nb_siege;
char g;
//while (reponse != 3) {
do {
(reponse = 0);
cout << "Appuyez sur 1 pour Non-fumeurs "<< endl;
cout << "Appuyez sur 2 pour Fumeurs "<< endl;
cin >> reponse;
if (reponse == 1) {
nb_siege = reserv.reserver_non_fumeur();
}
if (nb_siege > 0) {
cout << "Non-fumeurs " << nb_siege << endl;
}
if (reponse == 2) {
nb_siege = reserv.reserver_fumeur();
}
//if (nb_siege > 0) {
if (nb_siege > 1) {
cout << "Fumeurs " << nb_siege << endl;
}
if (reponse == 3) {
cout << "Reponse invalide" << endl;
}
std::cout << "Appuyez sur une touche..." << std::endl;
std::cin >> g;
} while (reponse != 3);
return 0;
}
Deux choses :
1. A la place de :
int reserverSiege() {
return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0);
}
j'écrirai :
int reserverSiege ()
{
return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0);
}
2. J'écrirai le main ainsi :
int main(int argc, char** argv)
{
Reservation reserv; int reponse = 0;
int nb_siege;
do {
cout << "Appuyez sur 1 pour Non-fumeurs "<< endl;
cout << "Appuyez sur 2 pour Fumeurs "<< endl;
cout << "(3 pour quitter...)"<< endl;
cin >> reponse;
cout << "Appuyez sur une touche..." << endl;
cin >> reponse;
}while( reponse != 3 );
return 0;
}
Merci pour ta réponse. Le main ne se comporte pas comme je le souhaiterais.
Lorsque l'usager appuie sur 1, l'affichage ne devrait pas afficher au départ
que l'autobus non-fumeur est plein. Il devrait afficher Non-fumeurs 1
Si l'usager appuie de nouveau sur 1, l'affichage indiquerait Non-fumeurs 2
"benoitB" a écrit dans le message de news: 42e45636$0$22275$
Mon prog est sensé effectué la tâche suivante, mais un problème, peut-être avec la boucle dans le main, l'empêche de bien l'accomplir. Est-ce que quelqu'un peut m'aider à le débugger
svp.
Merci de votre collaboration!
Le programme doit afficher le menu suivant :
. Appuyez sur 1 pour non-fumeurs . Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de non-fumeurs (1 à 40). Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à 40). De plus, le programme devrait afficher à l'écran un document de voyage qui indique si le passager est dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a dans l'autobus
//autobus.h #ifndef AUTOBUS_H #define AUTOBUS_H
#include <iostream>
using namespace std;
const int FUMEUR = 1; const int NONFUMEUR = 2;
class autobus { public: autobus (int statutf) : statut (statutf), nb_siege (40), nb_siege_alloue (0) { } ~autobus() { } int isFumeur () { return statut; } int siegeAlloue() { return nb_siege_alloue; } int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } private: int nb_siege; int nb_siege_alloue; int statut ; }; #endif
int main(int argc, char **argv) { Reservation reserv; int reponse = 0; int nb_siege; char g; //while (reponse != 3) { do { (reponse = 0); cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cin >> reponse; if (reponse == 1) { nb_siege = reserv.reserver_non_fumeur(); } if (nb_siege > 0) { cout << "Non-fumeurs " << nb_siege << endl; } if (reponse == 2) { nb_siege = reserv.reserver_fumeur(); } //if (nb_siege > 0) { if (nb_siege > 1) { cout << "Fumeurs " << nb_siege << endl; } if (reponse == 3) { cout << "Reponse invalide" << endl; } std::cout << "Appuyez sur une touche..." << std::endl; std::cin >> g; } while (reponse != 3); return 0; }
Deux choses :
1. A la place de : int reserverSiege() { return (nb_siege - nb_siege_alloue ? nb_siege_alloue++ : 0); } j'écrirai : int reserverSiege () { return (nb_siege_alloue < nb_siege ? nb_siege_alloue++ : 0); }
2. J'écrirai le main ainsi : int main(int argc, char** argv) { Reservation reserv; int reponse = 0; int nb_siege; do { cout << "Appuyez sur 1 pour Non-fumeurs "<< endl; cout << "Appuyez sur 2 pour Fumeurs "<< endl; cout << "(3 pour quitter...)"<< endl; cin >> reponse;
cout << "Appuyez sur une touche..." << endl; cin >> reponse; }while( reponse != 3 ); return 0; }
Merci pour ta réponse. Le main ne se comporte pas comme je le souhaiterais. Lorsque l'usager appuie sur 1, l'affichage ne devrait pas afficher au départ que l'autobus non-fumeur est plein. Il devrait afficher Non-fumeurs 1 Si l'usager appuie de nouveau sur 1, l'affichage indiquerait Non-fumeurs 2