因此,我正在用c ++制作此银行管理系统,在该系统中,我将不得不为用户提供创建帐户,存入资金,提取资金并显示详细信息的选项。我还需要存储在对象数组中,以便可以在用户退出后显示整个数据。限制是我不能使用文件处理。但是它不能正常工作。
请帮助。
当我运行它时,它一直在问我全名。我该如何解决这个问题? 我觉得这个问题的发生是由于bankaccount类型的persons数组,但是我看不到任何其他可能的方法。 我已经删除了一些函数的详细信息,因为它变成了冗长的代码块。
#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;
}
}
}
}
答案 0 :(得分:2)
bankaccount persons[100]=0;
您在这里构造bankaccount
的100个对象。
您的bankaccount
构造函数包含以下两行:
cout<<"\n Enter Full Name:";
getline(cin,name);
因此,每次创建bankaccount
对象时,都会提示您输入其名称。您可能不打算这样做。您需要对此进行解耦,因此要求用户提供全名,将其分配给一个银行帐户以及构造一个银行帐户对象是独立的。
例如您可以创建选项6为银行帐户分配名称,而不是在bankaccount
类的构造函数中进行设置。
答案 1 :(得分:0)
如果不限制使用指针,或者没有必须将其专门存储在静态数组中,则可以尝试此操作。您可以创建一个银行帐户类型的指针数组。在这种情况下,包含100个指针的数组。每个指针将指向一个单独的bankaccount对象。 https://imgur.com/a/KflNVbc,以获得更好的视觉理解。
您可以这样创建它:
bankaccount* persons[100];
因此,在情况1中,当您创建一个新帐户并将其添加到阵列时,您可以执行以下操作:
persons[number] = new bankaccount();
number++;
这样,您不必更改构造函数。只是一种很酷的方法。