【发布时间】:2014-01-13 02:30:14
【问题描述】:
我正在尝试制作一个银行账户程序:
创建一个具有帐号、PIN 和余额的帐户类。 Acct number 和 PIN 通过构造函数进入。 帐号永远不会改变。 可以更改 PIN,但前提是提供了正确的帐号作为参数。 仅当正确的 PIN 和帐号作为参数(当然,连同新余额一起)提交给此方法时,才能更改余额。 创建一个将帐号和当前余额一起打印的方法。
目前为止:
#include <iostream>
#include <string>
using namespace std;
//account structure
struct account{
char accountNumber[10];
char pin[10];
double balance;
}account1, account2;
int main() {
//set account info
account1.accountNumber = 00011;
account1.pin = 1234;
account1.balance = 0.00;
//set account info
account2.accountNumber = 00022;
account2.pin = 4321;
account2.balance = 100.00;
//program end
return 0;
}
//function to change account pin
void changePin(char accountNumber, char pin, char newPin)//PROBLEM
{
if(strcmp(accountNumber.pin, pin) == 0)
{
accountNumber.pin = newPin;
}
else
{
cout << "Account number or password incorrect.";
}
}
//change account balance
void changeBalance(char number, char pin, double newBalance)//PROBLEM
{
if((strcmp(account.pin, pin) == 0) && (strcmp(account.accountNumber, number) == 0))
{
account.balance = newBalance;
}
else
{
cout >> "Account number or pin incorrect.";
}
}
//function to print account number and balance
void printInfo(char accountNumber)//PROBLEM
{
cout << "Account Number: " << account.accountNumber;
cout << "Account Balance: " << account.balance;
}
现在我的问题是,我不知道如何在函数中引用我想要的帐户来比较输入的信息是否与当前帐户信息匹配。
编辑: 我的程序差不多完成了,我只是在这里遇到了一个问题:
class Account;
class Account{
public:
int accountNumber;
char pin[5];
double balance;
void printInfo();
void changeBalance(int n, char * p, double b);
void changePin(int n, char * p, char * newPin);
};
void Account::changePin(int n, char * p, char * newPin)
{
if((n == accountNumber) && (strcmp(p, pin) == 0))
{
//pin = newPin;
}
}
我正在尝试编写一个可以更改 pin 号的函数,但我不知道如何编写分配,因为我不断收到错误。
【问题讨论】:
-
既然你已经标记了这个
c++,那么你想在account对象上使用方法来完成这种事情似乎是合乎逻辑的.这样,您将使用对现有帐户的引用来调用该方法。这听起来合理吗? -
您似乎是 C++ 新手。您是一般的编程新手,还是来自不同的语言?用您更熟悉的术语解释可能对我们有所帮助。
-
我学过一点java,但我刚开始学c++
-
我不明白您在帐户对象上使用方法的意思。你的意思是 account.changePin()?问题是我不知道如何获取帐户的当前 pin 以进行比较。
-
要将文本字符复制到字符数组中,请使用strncpy——它是“STRing CoPY,大小为 N 的数组”的缩写。但是,你最好使用std::string 而不是字符数组。
标签: c++ function struct structure account