在课程的最后一个学期,课程必须使用C ++为银行帐户建模。本学期我们正在做同样的事情,除了在objective-c和iOS应用程序的形式。我刚刚开始并设置了一个基本的故事板来测试我的存款,但是我无法将总余额加起来,我很确定这是因为我用存款IBAction实例化我的账户对象。该如何正确完成?我只需要向正确的方向推进,我相信我可以从那里开始与其他人一起跑。见附件:
- (IBAction)deposit:(id)sender {
Account *acc =[[Account alloc]init];
double damount = [_textField.text doubleValue] ;
[acc deposit:(damount)];
_display.text = [NSString stringWithFormat:@"%f", acc.getBalance];
}
请求的原始C ++代码:
int main(){
char szFName[32];
char szLName[32];
char szSIN[12];
char szAccType[10];
double dBalance;
int op;
Account *acc[MAX_ACCOUNTS];
int count=0;
while (count<MAX_ACCOUNTS)
{
cout << "Customer's First Name : " << flush;
cin >> szFName;
cout << "Customer's Last Name : " << flush;
cin >> szLName;
cout << "Customer's SIN : " << flush;
cin >> szSIN;
cout << "Account Type : " << flush;
cin >> szAccType;
cout << "Opening Balance : " << flush;
cin >> dBalance;
if ( !strcmp(szAccType,"Checking") )
acc[count] = new CheckingAcc(szFName, szLName, szSIN, szAccType, dBalance);
else if ( !strcmp(szAccType,"VIP") )
acc[count] = new VIPAcc(szFName, szLName, szSIN, szAccType, dBalance);
else if ( !strcmp(szAccType,"Saving") )
acc[count] = new SavingAcc(szFName, szLName, szSIN, szAccType, dBalance);
else
{
cout << "Incorect account type." << endl;
continue;
}
count++;
}
答案 0 :(得分:0)
您遇到的问题是,您每次都要创建一个新的银行帐户,而不是维护一个帐户并添加到该帐户。
在原始程序中,您创建了一系列帐户acc
,这些帐户在用户输入的生命周期内保持不变。由于您已经从程序程序转移到具有运行循环的UI程序,因此您需要一个更持久的位置来存储它。
通常情况下,如果对象需要比视图控制器持续更长时间,那么一个好位置将是视图控制器上的属性或更高位置:
@property Account *account;
...
- (id)init
{
if (self) {
_account = [[Account alloc] init];
}
return self;
}
...
[self.account deposit:(damount)];
由于这是针对课程的,因此您可能希望查看教科书中的属性和实例变量等主题。