Bonjour,

Je code pr�sentement un exercice qui consiste � attribuer les passagers d'un autobus en fonction qu'ils sont fumeur ou non. La capacit� des autobus est un maximum de 40 passagers.
Jusqu'ici tout va bien dans mon code. C'est lorsque je veux comptabilis� les r�sultats entre les choix que je ne sais plus par quoi proc�der.
Dans quel direction, je dois aller pour que mon code affiche, si par exemple l'autobus des fumeurs est rendu � 30 passagers et l'autobus des non fumeurs est rendu � 22 passagers?

Voici le code:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
 
//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_alloue < nb_siege ? nb_siege_alloue++ : 0);
    }
private:
    int nb_siege;
    int nb_siege_alloue;
    int statut ;
};
#endif
 
//Reservation.h
#ifndef RESERVATION_H
#define RESERVATION_H
#include "autobus.h"
#include <iostream>
 
using namespace std;
class Reservation {
public:
    Reservation() {
        autobus_fumeur = new autobus (FUMEUR);
        autobus_non_fumeur = new autobus (NONFUMEUR);
    }
    ~Reservation () {
        delete autobus_fumeur;
        delete autobus_non_fumeur;
    }
    int reserver_fumeur() {
        return autobus_fumeur->reserverSiege();
    }
    int reserver_non_fumeur() {
        return autobus_non_fumeur->reserverSiege();
    }
    int siege_alloue_fumeur() {
        return autobus_fumeur->siegeAlloue();
    }
    int siege_alloue_non_fumeur() {
        return autobus_non_fumeur->siegeAlloue();
    }
private:
    autobus* autobus_fumeur;
    autobus* autobus_non_fumeur;
};
#endif
 
//file1.cpp
#include <iostream>
#include "reservation.h"
 
using namespace std;
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;
}