Exemple #1
0
/*
 This function fills up the array (up to max_accts) and
 returns the actual number of accounts read in (referred to as num_accts).
 */
int read_accts(Bank& bank, int max_accts)
{
    int i = 0;
    //ifstream infile("C:\\Users\\Smart PC\\Desktop\\Assignment 3 (3110)\\myinput.txt");
    ifstream infile("myinput");
    
    string whiteSpace;
    
    getline(infile, whiteSpace);
    
    // check is file can be opened
    if (infile)
    {
        // read only first max_accts accounts,
        // in order to avoid overflow
        for (i = 0; i<max_accts; i++)
        {
            string firstName;
            string lastName;
            string ssn;
            string accountType;
            int accountNumber;
            int status;
            double balance;
            int transactions;
            
            infile >> firstName;
            
            // check is end of file reached
            if (!infile.eof())
            {
                infile >> lastName;
                infile >> ssn;
                infile >> accountNumber;
                infile >> accountType;
                infile >> balance;
                infile >> status;
                infile >> transactions;
                
                bank.addAccount(firstName, lastName, ssn, accountNumber, accountType, balance, status);
                
                int index = bank.findAccount(accountNumber);
                Account* acc = bank.getAccount(index);
                for(int i=0; i<transactions; i++)
                {
                    string transactionType;
                    double amount;
                    
                    infile >> transactionType;
                    infile >> amount;
                    
                    if (acc)
                        acc->addTransaction(Transaction(transactionType, amount));
                }
            }
            else {
                break;
            }
        }
int main(){
	Bank *myBank;
	myBank = new Bank("Zinger unlimited");

	cout << "-------------------------------------------------"<<endl;
	cout << " TEST: STATIC members "<<endl;
	cout << "-------------------------------------------------"<<endl;


	myBank->addAccount("Anton Hofmann", 100.0);
	myBank->addAccount("Beta Hofmann", 200.0);
	myBank->addAccount("Gamma Hofmann", 300.0);

	cout << myBank->toString() << endl;


	cout << "--- Delete Account: Anton Hofmann and add Account: Omega Hofmann ---" << endl;
	cout << "Look at the account number!!!"<<endl;

	myBank->delAccount("Anton Hofmann");
	myBank->addAccount("Omega Hofmann", 900.0);

	cout << myBank->toString() << endl;
	cout << endl;

	cout << "-------------------------------------------------"<<endl;
	cout << " TEST: FRIEND class "<<endl;
	cout << "-------------------------------------------------"<<endl;
	cout << " ONLY class bank can create new Account-objects" <<endl;

	int accountNr= myBank->addAccount("Anton Hofmann", 100.0);
	myBank->getAccount(accountNr).deposit(9000.0);

	cout << myBank->toString() << endl;
	cout << endl;


	cout << "-------------------------------------------------"<<endl;
	cout << " TEST: Prepare "<<endl;
	cout << "-------------------------------------------------"<<endl;

	cout << "... 1. double d= myBank->getMaxAccount().getAmount(); "<<endl;
	double d = myBank->getMaxAccount().getAmount();
	cout << "...    Maximal amount = " << d << endl <<endl;

	cout << "... 2. double d= myBank->getMaxAccount().getAmount(); "<<endl;
	d= myBank->getStandardDeviation();
	cout << "...    Standard Deviation = " << d << endl << endl;

	cout << "... 3. myBank->delAccount(myBank->getAverageAmount()); "<<endl;
	cout << "...    delete all Account having less then the average amount"<<endl;
	cout << "...    Average Amount= " << myBank->getAverageAmount() << endl<<endl;
	myBank->delAccount(myBank->getAverageAmount());

	cout << myBank->toString() << endl;
	cout << endl;

	d= myBank->getStandardDeviation();
	cout << "Standard Deviation = " << d << endl << endl;

	delete myBank;

	return 0;
}