我正在编写一个模拟自动取款机的程序,程序中的帐户数组有问题。帐户数组保存帐户号、密码和帐户余额。代码中的第一个函数允许用户使用他们的引脚和帐号登录,但是我在将用户输入与帐户数组进行比较时遇到了问题:
#include <iostream>
#include <string>
using namespace std;
class Account
{
private: int accountNum;
int accountPin;
double accountBalance;
int setPin();
int setAccountNum();
public: Account();
Account(int, string, double);
double setAccountBalance(int) ;
int getAccountNum();
int confirmPin(string) ;
double updateBalance(double) ;
};
void confirmPin(string accountPin, int accountNum)
{
//confirm pin segment
// returns true or false value, allows access to account balance information
}
int main () {
Account account[3] =
{
{123, "abc123", 100.00}, {456, "def456", 50.00},{789, "ghi789", 500.63}
};
int option;
cout << "LOGIN\nEnter Account#: "<< endl;
cin >> accountNum;
cout << "Enter password";
cin >> accountPin;
//confirm pin function我现在尽可能多地编码。我不知道从哪里开始比较输入和帐户信息。提前感谢您的帮助!
发布于 2020-10-13 18:47:07
下面是一些让你开始学习的例子。
过载相等比较
class Account
{
//...
public:
bool operator==(const Account& a) const
{
if (accountNum != a.accountNum) return accountNum < a.accountNum;
else
{
if (accountPin != a.accountPin) return accountPin < a.accountPin;
else
{
double difference = abs(accountBalance - a.accountBalance);
if (difference < 1.0E-6) return true;
}
return false;
}
};这允许您输入一个实例,并将其与另一个实例进行比较。
创建比较函数
向您的类中添加一个比较帐户号的方法:
class Account
{
//...
public:
bool is_equal_account_number(const Account& a) const
{
return accountNum == a.accountNum;
}
};以上方法只允许您比较帐号。这可能是有用的,因为重复的帐号可能是不允许的。
按价值比较
另一个例子是编写一种将帐户号与给定帐号进行比较的方法。
class Account
{
//...
public:
bool same_account_number(const int acct_num) const
{ return accountNum == acctnum);
};以上是比较帐户的一些例子。还有其他的,比如使用getter函数和比较这些值。
https://stackoverflow.com/questions/64341004
复制相似问题