同級生に聞いてみたのですが、理由がわかりません。プログラムは、銀行プログラムであると想定されています。特に自分の機能に問題があることに最初に気付きましたfindCustomer
。それがすべきことは、構造「アカウント」の特定の部分を取り込んで、アカウント番号が入力した入力と一致するかどうかを見つけ、それを一致と宣言することです。
int findCustomer(account arr[], int customers)
{
int index;
cout << "Account Number?: ";
cin >> index;
for (int i = 0; i <= customers + 1; i++)
if (arr[i].acctNum == index)
{
cout << "You dun good!"; //I put this here to try to figure out what the problem was when it was passing in.
return i;
break;
}
else if (arr[i].acctNum != index)
{
cout << "Account Number (" << index << ") Does Not exist!" << endl;
system("Pause");
system("CLS");
return -1;
}
その後、入金/出金関数に渡されることになっています (どちらも同じように動作しますが、わずかな違いがあります)。
void deposit(account arr[], int customers)
{
char type;
float money;
int i;
i = findCustomer(arr, customers);
cout << i << "At this point" << endl;
if (i = -1)
{
cout << "You dun goofed!"; //again put here as a trigger
// what normally goes here is a return; statement to break the function
}
type = submenu();
cout << "How much would you like to deposit?: ";
cin >> money;
cout << "Number \t Name \t Balance" << endl;
cout << "=========================================" << endl;
if (type = 's')
{ arr[i].sBal += money;
cout << arr[i].acctNum << "\t" << arr[i].name << "\t" << arr[i].sBal;
}
else if (type = 'c')
{ arr[i].cBal += money;
cout << arr[i].acctNum << "\t" << arr[i].name << "\t" << arr[i].cBal;
}
}
私が得ている出力は、関数の途中で 0 から -1 への変更が宣言されていないことを示唆しています (私の頭の上に巨人が残っています)。また、以前の機能で読み込まれたと言われている特定の口座番号の読み取りに問題があるようです。ありとあらゆる助けをいただければ幸いです。