Member 12959299 Ответов: 2

Проблема банковского счета класса C++


Я попытался решить следующую программу:-

Реализуйте банк классов. У этого банка есть два объекта-чековый и Сберегательный,
типа счета. Реализуйте следующие функции-члены:

недействительный депозит(двойная сумма, char счет)
void withdraw (двойная сумма, char счет)
пустота print_balances()
Здесь строка учетной записи - "S "или"C". Для пополнения или снятия средств он указывает, какой счет затронут.

Что я уже пробовал:

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
class bank
{
private:
double a1,a2,sa,cu;
char ac,c,s;
public:
bank()
{
sa=0;
cu=0;
}
void deposit(double amount, char account);
void withdraw(double amount, char account);
void print_balances();
};
void bank::deposit(double amount1, char account)
{
a1=amount1,
ac=account;
if (ac=='s')
{
sa=sa+a1;

}
else if(ac=='c')
{
cu=cu+a1;
}
}
void bank::withdraw(double amount2, char account)
{
a2=amount2,
ac=account;
if (ac=='s')
{
sa=sa-a2;
}
else if(ac=='c')
{
cu=cu-a2;
}
}
void bank::print_balances()
{
cout<<"\nthe money in the savings account is: "<<sa;
cout<<"\nthe money in the current  account is: "<<cu;
}
main()
{
char account;
double amount1,amount2;
int l;
clrscr();
bank b;
do
{

cout<<"\nenter your choice";
cout<<"\n1.deposit";
cout<<"\n2. withdraw";
cout<<"\n3.print balances";
cout<<"\n4.exit";
cout<<"\n";
cin>>l;
switch(l)
{
case 1:
cout<<"\nenter account type: ";
cin>>account;
cout<<"\nenter amount to be deposited :" ;
cin>>amount1;
b.deposit(amount1, account);
break;
case 2:
cout<<"\nenter account type: ";
cin>>account;
cout<<"\nenter amount to be withdrawn :" ;
cin>>amount2;
b.deposit(amount2, account);
break;
case 3:
b.print_balances();
break;
case 4:
cout<<"\nthanx ";

}
}while(l!=4);
getch(); 
}

/* now, when I use the void withdraw(double amount, char account); function and withdraw the money, instead of decreasing, the money increases. suppose I have deposited 5 in my savings account. After that I withdraw 5 from my account, the money in the savings account should be 0 but it is 10, i.e instead of decreasing 5 in my account, it increases. */

[no name]

Посмотрите на свой код
cout<< " \nenter сумма должна быть изъятый :" ;
Кин&ГТ;&ГТ;amount2;
б.депозит(amount2, счета);

Ты серьезно не видишь здесь проблемы? Узнайте, как использовать отладчик, и вы сможете найти и исправить эти типы проблем самостоятельно.

OriginalGriff

На вашем месте я бы опубликовал это как решение...: смех:

José Amílcar Casimiro

Я хотел бы быть клиентом вашего банка, любая сделка внесла бы депозит на мой счет.

2 Ответов

Рейтинг:
5

NotPolitcallyCorrect

Просто чтобы убрать это из списка без ответа
Посмотрите на свой код
cout<< " \nenter сумма должна быть изъятый :" ;
Кин&ГТ;&ГТ;amount2;
б.депозит(amount2, счета);

Узнайте, как использовать отладчик, и вы сможете найти и исправить эти типы проблем самостоятельно.


Member 12959299

глупая ошибка. да, это работает. Спасибо за ваше драгоценное время.

Рейтинг:
16

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Member 12959299

спасибо за ваше предложение.