簡體   English   中英

為什么我的銀行管理系統無法正常工作?

[英]Why is my Bank Management System not working properly?

因此,我在 c++ 中制作了這個銀行管理系統,我將不得不為用戶提供創建帳戶、存入資金、提取資金和顯示詳細信息的選項。 我還需要存儲在對象數組中,以便用戶退出后可以顯示整個數據。 限制是我不能使用文件處理。 但它不能正常工作。

請幫忙。

當我運行它時,它一直在詢問我的全名。 我該如何解決這個問題? 我覺得這個問題是由於銀行帳戶類型的 person 數組而發生的,但我沒有看到任何其他可能的方法來做到這一點。 我刪除了一些函數的細節,因為它變成了一個冗長的代碼塊。

#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;
        }
        }
    }
}

這是輸出:

bankaccount persons[100]=0;

在這里,您構建了 100 個您的bankaccount的對象。

您的bankaccount構造函數有以下兩行:

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

因此,每次創建銀行帳戶bankaccount時,系統都會提示您輸入其名稱。 你可能不是故意的。 您需要將其解耦,因此詢問用戶全名、將其分配給銀行賬戶和構建銀行賬戶 object 是分開的。

例如,您可以創建選項 6 來為銀行帳戶分配名稱,而不是在您的銀行帳戶bankaccount的構造函數中進行。

如果您沒有限制使用指針,或者您不必專門將其存儲在 static 數組中,您可以試試這個。 您可以創建一個銀行帳戶類型指針數組。 在這種情況下,一個包含 100 個指針的數組。 每個指針將指向一個單獨的 object 銀行賬戶。 https://imgur.com/a/KflNVbc以獲得更好的視覺理解。

您可以像這樣創建它:

bankaccount* persons[100];

因此,在情況 1 中,當您創建一個新帳戶並將其添加到數組中時,您可以執行以下操作:

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

這樣您就不必更改構造函數。 只是這樣做的一種很酷的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM