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.
[/list]
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;} } } } };
Partager