c++ - 为什么我的银行管理系统无法正常工作?
问题描述
所以,我正在用 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
对象时,系统都会提示您输入其名称。你可能不是故意的。您需要将其解耦,因此向用户询问全名、将其分配给银行帐户和构建银行帐户对象是分开的。
例如,您可以创建选项 6 来为银行帐户分配名称,而不是在bankaccount
类的构造函数中进行。
推荐阅读
- java - 在 3x3 数组中查找元素
- python - Python3:用于 Android 测试的 Uiautomator 包装器
- php - 在 Laravel 中使用 Vue 组件
- openebs - 如何使用 ext3 文件系统在 OpenEBS 中运行应用程序?
- r - 使用 R 包“OSRM”查找两点之间的距离和旅行时间
- mysql - 根据不同的order_id,mysql计算总数
- css - 在焦点上更改 mat-input 占位符(浮动标签)样式
- c# - 如何修复 ASP.Net MVC 5 中的多个文件上传最大路径长度限制?
- c# - 不应发生的 DataGrid 重复数据
- ios - Eureka 表单(Swift)中的 MultipleSelectorRow 如何将 FormValues 转换为字符串数组?