c ++: как получить баланс (в банковской системе) - PullRequest
0 голосов
/ 29 мая 2011

Я занимаюсь этим проектом Банковская система Эта система отслеживает счета клиентов в банке. У каждой учетной записи есть номер, имя и баланс. Система предоставляет следующие функции: создание новой учетной записи, снятие, внесение и закрытие учетной записи.
Система имеет следующий интерфейс:
Выбрать:
1- Добавить новую учетную запись
2- Снять
3- Депозит
4- Получить баланс
5- Выход
 Когда пользователь выбирает 1 , система генерирует новый идентификатор, а затем просит пользователя ввести имя для этой учетной записи. Начальный баланс установлен на ноль.

 Когда пользователь выбирает 2 , система просит пользователя ввести идентификатор учетной записи и сумму, которую необходимо снять. Если эта сумма превышает остаток, отображается сообщение о том, что эта транзакция не удалась из-за недостаточного баланса. Если остаток достаточен, он уменьшается на сумму, подлежащую снятию.

 Когда пользователь выбирает 3 . Система просит пользователя ввести идентификатор учетной записи и сумму для депозита. Система увеличивает баланс на эту сумму.

 Когда пользователь выбирает 4 , система просит пользователя ввести идентификатор учетной записи, а затем печатает имя учетной записи и баланс.

 Каждый раз, когда задача завершается, система возвращается в главное меню выше, пока пользователь не выберет 5.

# include <iostream>
#include <string>
using namespace std;
# include<iomanip>

class Bank
{
private:
    char name;
    int acno;
    float balance;
public:
    void newAccount();
    void withdraw();
    void deposit();
    void getbalance();
    void disp_det();
    };
//member functions of bank class
void Bank::newAccount()
{
cout<<"New Account";
cout<<"Enter the Name of the depositor : ";
cin>>name;
cout<<"Enter the Account Number : ";
cin>>acno;
cout<<"Enter the Amount to Deposit : ";
cin >>balance;
}
void Bank::deposit()
{
float more;
cout <<"Depositing";
cout<<"Enter the amount to deposit : ";
cin>>more;
balance+=more;
}
void Bank::withdraw()
{
float amt;
cout<<"Withdrwal";
cout<<"Enter the amount to withdraw : ";
cin>>amt;
balance-=amt;
}
void Bank::disp_det()
{
cout<<"Account Details";
cout<<"Name of the depositor : "<<name<<endl;
cout<<"Account Number        : "<<acno<<endl;
cout<<"Balance               : $"<<balance<<endl;
}
// main function , exectution starts here
void main(void)
{
Bank obj;
int choice  =1;
while (choice != 5 )
{
cout<<"Enter \n 1- to create new account \n 2- Withdraw\n 3- Deposit \n 4- get balance\n 5 Exit"<<endl;
cin>>choice;
switch(choice)
{
    case '1' :obj.newAccount();
        break;
    case '2' :obj.withdraw();
        break;
    case 3: obj.deposit();
        break;
    case 4: getbalance();
        break;
    case 5: 
        break;
    default: cout<<"Illegal Option"<<endl;
}
}

}

Ответы [ 3 ]

2 голосов
/ 29 мая 2011

Задача 1:
Вы сделали опечатку в методе, который возвращает вам баланс и тот, который вы вызываете, переименуйте Bank::disp_det() в Bank::getbalance()

void Bank::getbalance()
{
    cout<<"Account Details";
    cout<<"Name of the depositor : "<<name<<endl;
    cout<<"Account Number        : "<<acno<<endl;
    cout<<"Balance               : $"<<balance<<endl;
}

Задача 2:
Вы не вызываете Bank::getbalance через объект Bank, так как это функция-член, вы должны вызывать ее следующим образом:

case 4: 
     obj.getbalance();
     break;
1 голос
/ 29 мая 2011

В случае 4 вам следует позвонить obj.getbalance().И это еще не написано: кажется, что вы написали disp_det() вместо этого показывает баланс.Попробуйте переименовать.

0 голосов
/ 29 мая 2011

Это не совсем то, что вам нужно, так как метки дел имеют разные типы:

switch(choice)
{
    case '1' :obj.newAccount();
        break;
    case '2' :obj.withdraw();
        break;
    case 3: obj.deposit();
        break;
    case 4: getbalance();
        break;
    case 5: 
        break;
    default: cout<<"Illegal Option"<<endl;
}

Чтобы выбрать опции '1' или '2', пользователю придется набрать 31 и 32когда выбор int.

...