Bonjour!

J'ai un probl�me avec un exercice. Il faut cr�er une classe Conta et deux sub-classes ContaP et ContaO (comptes d'une banque, la premi�re avec des taux d'int�ret et la seconde une compte ordinaire). Mon probl�me n'est pas tant les classes ContaP et ContaO mais quand j'�x�cute le code, switch(j) ne se termine pas quand je tape 0 depuis d'avoir mon saldo(l'argent disponible) et continue dans le cas j=2 et j=3. Personne sais pourquoi? Merci.

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
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
 
using namespace std;
 
class Conta {
 
private:
  char* nome;
 
public:
    Conta(){nome = " ";}
    Conta(char* n){nome = n;}
 
virtual char* get_nome() const {return nome;}
 
};
 
class ContaP : public Conta {
 
private:
    double saldo;
 
public:
    ContaP():Conta() {};
    ContaP(char* n):Conta(n) {saldo = 300;}
 
virtual double get_saldo() const {return saldo;}
virtual void levantar(int m) 
{saldo = saldo - m;}
virtual void depositar(int m)
{saldo = saldo + m;}
virtual void transferir(int m) 
{saldo = saldo - m;}
 
};
 
class ContaO : public Conta {
 
private:
    double saldo;
 
public:
    ContaO():Conta() {};
    ContaO(char* n):Conta(n) {saldo = 300;}
 
virtual double get_saldo() const {return saldo;}
virtual void levantar(double m) 
{saldo = saldo - m;}
virtual void depositar(double m)
{saldo = saldo + m;}
 
};
 
int main() {
 
    ContaP cp("Ferro");
    ContaO co("Ferro");
    int i = 1;
    int j = 1;
    int k = 1;
    int l = 1;
    while (i != 0) {
        cout << " 1. Conta de poupança" << endl;
        cout << " 2. Conta à ordem" << endl;
        cout << " 0. Saída" << endl;
        cin >> i;
        if (i == 1)
            { cout << "Opções: " << endl;
              cout << " 1. Saldo " << endl;
              cout << " 2. Levantar " << endl;
              cout << " 3. Transferência para a conta a ordem " << endl;
              cout << " 0. Saída " << endl;
              cin >> j;
              switch (j) {
              case 1: { cout << " Caro(a) " << cp.get_nome() << endl << endl;
                  cout << "O seu saldo da conta de poupança é actualmente ";
                  cout << cp.get_saldo() << " euros." << endl << endl;
                  cout << "Para continuar carregue numa tecla.";
                  cin >> k;}
              case 2: { cout << " Caro (a) " << cp.get_nome() << endl << endl;
                  cout << "O montante a levantar: ";
                  cin >> k;
                  cp.levantar(k);
                  cout << " O seu saldo da conta poupança após ter levantado "; 
                  cout << k << " euros é de " << cp.get_saldo() << " euros. " << endl << endl;
                  cout << "Para continuar carregue numa tecla.";
                  cin >> k;}
              case 3: { cout << "Caro(a) " << cp.get_nome() << endl << endl;
                  cout << "O montante que pretende transferir para a sua conta à ordem: ";
                  cin >> k;
                  cp.transferir(k);
                  cout << "O seu saldo da conta poupança após ter transferido para a sua conta à ordem "; 
                  cout << k << "euros é de " << cp.get_saldo() << " euros. " << endl << endl;}
              case 0: { cout << "                        ***** OBRIGADO ***** " << endl;}
              }
            }
        if (i == 2)
            { cout << "Opções: " << endl;
              cout << " 1. Saldo " << endl;
              cout << " 2. Levantar " << endl;
              cout << " 0. Saída " << endl;
              cin >> j;
              switch (j) {
              case 1: { cout << " Caro(a) " << cp.get_nome() << endl << endl;
                  cout << "O seu saldo da conta de poupança é actualmente ";
                  cout << cp.get_saldo() << " euros." << endl << endl;
                  cout << "Para continuar carregue numa tecla.";
                  cin >> k;}
              case 2: { cout << " Caro (a) " << cp.get_nome() << endl << endl;
                  cout << "O montante a levantar: ";
                  cin >> k;
                  cp.levantar(k);
                  cout << " O seu saldo da conta poupança após ter levantado "; 
                  cout << k << " euros é de " << cp.get_saldo() << " euros. " << endl << endl;
                  cout << "Para continuar carregue numa tecla.";
                  cin >> k;}
              case 0: { cout << "                        ***** OBRIGADO ***** " << endl;}
              }      
            }
    }
};
[/list]