Почему моя система управления банком не работает должным образом? - PullRequest
0 голосов
/ 25 сентября 2019

Итак, я делаю эту систему управления банком на c ++, где мне придется дать пользователю возможность создать учетную запись, внести деньги, вывести их и отобразить детали.Мне также нужно хранить в массиве объектов, чтобы все данные могли отображаться после выхода пользователя.Ограничения в том, что я не могу использовать обработку файлов.Но он не работает должным образом.

Пожалуйста, помогите.

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

#include<iostream>
#include<string>
#include <time.h>  
#include <cstdlib>
using namespace std;
class bankaccount {
private:
    int id;
    string name;
    int cash;
    int money;
    int age;
public:
    string get_name() {
        return name;
    }
    int get_id() {
        return id;
    }
    void withdraw();
    void deposit();
    int see_money();
    bankaccount(int id1) {
        id = id1;

        cout << "\n Enter Full Name:";
        getline(cin, name);

    }
    friend ostream& operator<<(ostream& os, const bankaccount& d);




};

ostream& operator<<(ostream& os, bankaccount& d) {
    os << "\n Your name is:" << d.get_name();
    os << "\n Your id is:" << d.get_id();
    os << "\n You have a total of : " << d.see_money();
}
int main() {
    bankaccount persons[100] = 0;
    int option;
    int id;
    int number = 0;
    cout << "BANKING MANAGEMENT SYSTEM!" << endl;
    cout << "-------------------------------------------------------------------------------";
    while (1) {

        cout << "\nEnter 1 to create an account. Enter 2 to deposit money. Enter 3 to withdraw money. Enter 4 to check money. Enter 5 to display. Enter 6 to exit";
        cin >> option;
        switch (option) {
        case 1: {

            bankaccount p(number);
            persons[number] = p;

            cout << "Your ID is:" << number << endl;
            number++;
            break;
        }
        case 2: {
            cout << "\n Enter Your ID:";
            cin >> number;


            persons[number].deposit();
            break;
        }
        case 3: {
            cout << "\n Enter Your ID:";
            cin >> number;
            persons[number].withdraw();
            break;
        }
        case 4: {
            cout << "\n Enter Your ID:";
            cin >> number;
            persons[number].see_money();
            break;
        }
        case 5: {
            cout << "\n Enter Your ID:";
            cin >> number;
            cout << persons[number];
            break;
        }
        }
    }
}

Here is the output:

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

bankaccount persons[100]=0;

Здесь вы создаете 100 объектов вашего bankaccount.

Ваш bankaccount конструктор имеет следующие 2 строки:

cout<<"\n Enter Full Name:";
getline(cin,name);

Итак, каждыйКогда вы создаете объект bankaccount, вам предлагается ввести его имя.Вы, вероятно, не собирались этого.Вам необходимо отменить это, поэтому запросить полное имя у пользователя, присвоить его банковскому счету и создать объект банковского счета.

например, вы можете создать опцию 6, чтобы присвоить имя банковскому счету.вместо того, чтобы делать это внутри конструктора вашего bankaccount класса.

0 голосов
/ 28 сентября 2019

Если вы не ограничены в использовании указателей или у вас нет , чтобы специально хранить его в статическом массиве, вы можете попробовать это.Вы можете создать массив указателей типа банковского счета.В этом случае массив из 100 указателей.Каждый указатель будет указывать на отдельный объект банковского счета.https://imgur.com/a/KflNVbc для лучшего визуального понимания.

Вы можете создать его следующим образом:

bankaccount* persons[100];

Так, в случае 1, когда вы создаете новую учетную запись и добавляете ее вмассив, вы можете сделать это:

persons[number] = new bankaccount();
number++;

Таким образом, вам не придется менять конструктор.Просто классный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...