使用向量的银行账户(存款和取款)
Bank Accounts Using Vectors (Deposit and Withdrawal)
本文关键字:向量 更新时间:2023-10-16
我正在做一个项目,该项目应该允许您创建 3 个表单(名称、帐号、余额(的帐户,然后为您提供以下选项:
1( 添加帐户。
2(关闭和现有帐户。
3(存入一定金额。
4( 提现账户
5(没有要求。
到目前为止,我能够成功创建3个帐户,显示它们,添加另一个帐户,再次显示它们,删除一个帐户并再次显示它们。但是,我无法找到从特定帐户存款或取款的方法。所以要清楚,我的问题是:我如何访问所选账户的余额并存入/提取金额(请记住,我正在使用向量来保存所有账户(?
以下是我的代码:
主.cpp
#include <iostream>
#include <vector>
#include "bank.hpp"
#include <string>
#include <fstream>
#include <stdlib.h>
using namespace std;
void fillaccounts(vector<bank>&);
void printaccounts(const vector<bank>&);
void createaccount(vector<bank>&);
void depositaccount(vector<bank>&);
void deleteaccount (vector<bank>&);
int main() {
vector<bank> mybank;
fillaccounts(mybank);
for (int i=0;i<5;i++) {
cout << "Please choose one of the following requests: " << endl;
cout << "(1) Create a new account." << endl;
cout << "(2) Close an existing account." << endl;
cout << "(3) Deposit an amount in one of your accounts." << endl;
cout << "(4) Withdraw an amount from one of your accounts." << endl;
cout << "(5) No request." << endl;
cout << "Enter your choice here: " << endl;
int request;
cin >> request;
switch (request) {
case 1:
createaccount(mybank);
printaccounts(mybank);
break;
case 2:
deleteaccount(mybank);
printaccounts(mybank);
break;
case 3:
depositaccount(mybank);
printaccounts(mybank);
break;
case 4:
break;
case 5:
break;
}
}
}
void fillaccounts(vector<bank>& newmybank) {
string name;
int accountnumber;
double balance;
for (int i=0; i<3;i++) {
cout << "Enter your first name: " << endl;
cin >> name;
cout << "Enter account number: " << endl;
cin >> accountnumber;
cout << "Enter the amount you want to deposit: " << endl;
cin >> balance;
bank newAccount(name, accountnumber,balance);
newmybank.push_back(newAccount);
cout << endl;
}
cout << endl;
}
void createaccount(vector<bank>& newmybank) {
string name;
int accountnumber;
double balance;
cout << "Enter your first name: " << endl;
cin >> name;
cout << "Enter account number: " << endl;
cin >> accountnumber;
cout << "Enter the amount you want to deposit: " << endl;
cin >> balance;
bank newAccount(name,accountnumber,balance);
newmybank.push_back(newAccount);
cout << endl;
}
void printaccounts(const vector<bank>& newmybank) {
for (unsigned int i=0; i<newmybank.size();i++) {
cout << "(" << newmybank[i].getname() << "," << newmybank[i].getaccountnumber() << "," << newmybank[i].getbalance() << ")" << endl;
}
cout << endl;
}
void deleteaccount(vector<bank>& newmybank) {
string name;
cout << "Please enter your name to delete your account: " << endl;
cin >> name;
cout << endl;
for (int i=0; i<newmybank.size(); i++) {
if (newmybank[i].newname == name) {
newmybank.erase(newmybank.begin()+i);
}
}
}
银行.cpp
#include "Bank.hpp"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
bank::bank() {
newname=' ';
newaccountnumber=0;
newbalance=0.0;
}
bank::bank(string name,int accnum,double amount) {
newname=name;
newaccountnumber=accnum;
newbalance=amount;
}
string bank::getname() const {
return newname;
}
int bank::getaccountnumber() const {
return newaccountnumber;
}
double bank::getbalance() const {
return newbalance;
}
void bank::setname(string name) {
newname=name;
}
void bank::setaccountnumber(int accountnumber) {
newaccountnumber=accountnumber;
}
void bank::setbalance(double balance) {
newbalance=balance;
}
银行.hpp
class bank {
public:
string newname;
int newaccountnumber;
double newbalance;
bank(); //Constructor
bank(string,int,double); //Overload Constructor
string getname() const;
int getaccountnumber() const;
double getbalance() const;
void setname(string);
void setaccountnumber(int);
void setbalance(double);
};
关于如何跟进的任何建议?谢谢你们!
一种方法是向您的银行类添加一个函数,该函数将特定金额添加到帐户余额中,然后在您想要更改帐户价值(即存款/取款(时调用此方法,或创建 2 个单独的方法。
像这样:
void bank::deposit(int num)
{
newbalance += num;
}
然后,您将让用户指定银行帐号(或名称(,因为我认为您不希望更改每个帐户的每个余额。函数可能会遍历每个帐户getAccountIndex
以查找指定的数据,然后返回向量中的索引。
当你有索引时,你可以像这样调用deposit
方法mybank[index].deposit(amount);
请注意,bank
类中的变量是公共的,因此您实际上并不需要get/set方法,但这被认为是不好的做法,因此您应该将这些变量设为私有。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何将ampl中的集合表示为c++中的向量
- 变量没有改变?通过向量的函数调用
- 迭代时从向量和内存中删除对象
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 计算排序向量的向量中唯一值的计数
- 矩阵向量乘法(cublasDgemv)返回零
- 一对向量构造函数:初始值设定项列表与显式构造
- 将结构向量排序为子组
- 在C++中调整向量中的索引
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么