/*********************************************
Reads in Bank Account information from BankAccts.txt
and reads in transactions data from Transactions.txt
and prints out account info at end of year.
**********************************************/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
/*********************************************
** PROTOTYPES & STRUCT DEFINITIONS
*********************************************/
struct Account
{
string name;
int number;
double balance;
};
int find(int acctnum, Account *A, int N);
/*********************************************
** MAIN FUNCTION
*********************************************/
int main()
{
// Open input file and read header information
ifstream AIN("BankAccts.txt");
int N;
string s;
AIN >> N >> s;
AIN >> s >> s >> s;
// Read accounts
Account *A = new Account[N];
char c;
for(int i = 0; i < N; i++)
AIN >> A[i].number >> c >> A[i].balance >> A[i].name;
// Read & execute transactions
string date;
int acctnum;
double transamt;
ifstream TIN("Transactions.txt");
while(TIN >> date >> acctnum >> transamt)
{
int i = find(acctnum,A,N);
A[i].balance = A[i].balance + transamt;
}
// Write end-of-year statement
for(int i = 0; i < N; i++)
{
cout << A[i].number << '\t'
<< A[i].name << '\t' << '$'
<< A[i].balance << endl;
}
return 0;
}
/*********************************************
** FUNCTION DEFINITIONS
*********************************************/
// returns index of Account with number acctnum.
// If none is found, the index N is returned.
int find(int acctnum, Account *A, int N)
{
int k = 0;
while (k < N && A[k].number != acctnum)
k++;
return k;
}