int _tmain(int argc, _TCHAR* argv[])
{
	double balance = 500;
	double deposit, withdraw;

	// set floating-point output formatting
	cout << fixed << setprecision(2);

	// Vector of 2 base class pointers
	vector <Account *> accounts(2);

	// Initialize vectors with various accounts
	accounts[0] = new SavingAccount(balance, 15);
	accounts[1] = new CheckingAccount(balance, 2.50);
	
	// polymorphically process each element in vector employees
	for (size_t i = 0; i < accounts.size(); i++)
	{		
		// Downcast pointer
		SavingAccount *derivedPtr = dynamic_cast <SavingAccount *>(accounts[i]);

		if (derivedPtr != 0) // 0 if not CheckingAccount
		{
			system("cls");
			cout << "Account: " << typeid(*accounts[i]).name();
			
			// Calculate interest on existing balance
			cout << "\n\nWith an interest rate of 15%, you have accumulated: $" << derivedPtr->calculateInterest();
			cout << "\nCurrent Account Balance: $" << derivedPtr->credit();
			
			// Depositing funds into account
			cout << "\n\nEnter Deposit Amount: $";
			cin >> deposit;
			derivedPtr->setCreditAmount(deposit);
			derivedPtr->credit();
			cout << "Updated Account Balance: $" << derivedPtr->getAccountBalance();
			
			// Withdrawing funds from account
			cout << "\n\nEnter Withdraw Amount: $";
			cin >> withdraw;
			derivedPtr->setDebitAmount(withdraw);
			derivedPtr->debit();
			cout << "Updated Account Balance: $" << derivedPtr->getAccountBalance() << endl << endl;;
			
			system("pause");
		}
		// This falls into CheckingAccount
		else
		{
Пример #2
0
int main()
{
	Account a = Account(100.00);
	SavingAccount sa = SavingAccount(1000.00, 0.03);
	CheckingAccount ca = CheckingAccount(3000.00, 100.00);

	a.credit(100.00);
	cout << a.getBalance() << endl;
	a.debit(50.00);
	cout << a.getBalance() << endl;

	sa.credit(1000.00);
	cout << sa.getBalance() << endl;
	sa.calculateInterest();
	sa.debit(1000);
	cout << sa.getBalance() << endl;

	ca.credit(10.00);
	cout << ca.getBalance() << endl;
	ca.debit(1000.00);
	cout << ca.getBalance() << endl;

	return 0;
}
Пример #3
0
int atm()
{
    CinReader reader;
    BankAccount myBanking;
    bool end_program = false;
    bool done = false;
    long dollars;
    int cents;
    do
    {
        cout << "Select the type of account you wish to create" << endl;
        cout << "1 Bank Account 2 - Checking 3 - Savings 4 - Credit\n" << endl;
        int choice = reader.readInt(1,4);
        string account_name;
        long balance_dollars;
        int balance_cents;
        double interest_rate;
        switch(choice)
        { 
            //Bank account options
            case 1:
            {
                cout << "Set the dollar amount of your account balance\n" << endl;
                balance_dollars = reader.readInt(0);
                cout << "Set the cent amount of your account balance\n" << endl;
                balance_cents = reader.readInt(0,99);
                myBanking.SetDollars(balance_dollars);
                myBanking.SetCents(balance_cents);
                cout << "Please select from the following options." << endl;
                while(!done)
                {
                    cout << "1 - Show account balance\n2 - Deposit\n3 - Withdraw\n4 - Show recent transactions\n5 - Clear Transaction history\n6 - Exit ATM\n" << endl;
                    int choice = reader.readInt(1,6);
                    switch(choice)
                    {
                        case 1:
                        {
                            cout << myBanking.ShowBalance() << endl;
                        break;
                        }
                        
                        case 2:
                        {
                            cout << "Please enter the amount in dollars you would like to deposit, followed by the amount in cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            myBanking.DepositAccount(dollars, cents);
                        break;
                        }
                        
                        case 3:
                        {
                            cout << "Please enter the amount in dollars you would like to withdraw, followed by the amount in cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            myBanking.WithdrawAccount(dollars, cents);
                        break;
                        }
                        
                        case 4:
                        {
                            for(int i = 0;i<10;i++)
                            {
                                if(myBanking.GetRecentTransactions(i) == "")
                                {
                                    cout << "none" << endl;
                                }else
                                {
                                cout << myBanking.GetRecentTransactions(i) << endl;
                                }
                            }
                            
                            cout << "Your last transaction was: " << myBanking.GetLastTransaction() << endl;
                        break;
                        }
                        
                        case 5:
                        {
                            myBanking.ClearRecentTransactions();
                        break;
                        }
                        
                        case 6:
                        {
                            done = true;
                        }
                    }
                }
            break;
            }
            
            //Checking account options
            case 2:
            {
                CheckingAccount myChecking;
                cout << "Set the dollar amount of your account balance" << endl;
                balance_dollars = reader.readInt(0);
                cout << "Set the cent amount of your account balance\n" << endl;
                balance_cents = reader.readInt(0,99);
                myChecking.SetDollars(balance_dollars);
                myChecking.SetCents(balance_cents);
                cout << "Please select from the following options." << endl;
                
                while(!done)
                {
                    cout << "1 - Show account balance\n2 - Deposit Money/Check\n3 - Withdraw/Write a check\n4 - Show recent transactions\n5 - Clear Transaction history\n6 - Exit ATM\n" << endl;
                    int choice = reader.readInt(1,6);
                    switch(choice)
                    {
                        case 1:
                        {
                            cout << myChecking.ShowBalance() << endl;
                        break;
                        }
                        
                        case 2:
                        {
                            cout << "Would you like to deposit money into your account or cash a check?" << endl;
                            cout << "Press 1 to deposit money and 2 to cash a check" << endl;
                            int choice = reader.readInt(1,2);
                            if(choice == 1)
                            {
                                cout << "Please enter the amount in dollars you would like to deposit, followed by the amount in cents\n" << endl;
                                dollars = reader.readInt(0);
                                cents = reader.readInt(0,99);
                                myChecking.DepositAccount(dollars, cents);
                            } else 
                            {
                                cout << "Please enter the dollar value of the check you are cashing, followed by the cent value" << endl;
                                dollars = reader.readInt(0);
                                cents = reader.readInt(0,99);
                                cout << "Please enter the amount you'd like to keep in dollars, followed by cents\n" << endl;
                                long kept_dollars = reader.readInt(0);
                                int kept_cents = reader.readInt(0,99);
                                myChecking.CashCheck(dollars, cents, kept_dollars, kept_cents);
                            }
                        break;
                        }
                        
                        case 3:
                        {
                            cout << "Please enter the check number that you are writing" << endl;
                            int check_number = reader.readInt(0);
                            cout << "Please enter the amount the check is for in dollars, followed by the amount in cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            myChecking.WriteCheck(check_number, dollars, cents);
                        break;
                        }
                        
                        case 4:
                        {
                            for(int i = 0;i<10;i++)
                            {
                                if(myChecking.GetRecentTransactions(i) == "")
                                {
                                    cout << "none" << endl;
                                }else
                                {
                                cout << myChecking.GetRecentTransactions(i) << endl;
                                }
                            }
                            
                        break;
                        }
                        
                        case 5:
                        {
                            myChecking.ClearRecentTransactions();
                        break;
                        }
                        case 6:
                        {
                            done = true;
                        }
                    }
                }
            break;
            }
            
            //Savings account options
            case 3:
            {
                SavingAccount mySavings;
                cout << "Set the dollar amount of your account balance" << endl;
                balance_dollars = reader.readInt(0);
                cout << "Set the cent amount of your account balance" << endl;
                balance_cents = reader.readInt(0,99);
                cout << "Select your interest rate\n" << endl;
                interest_rate = reader.readDouble();
                mySavings.SetDollars(balance_dollars);
                mySavings.SetCents(balance_cents);
                mySavings.SetInterestRate(interest_rate);
                cout << "Please select from the following options." << endl;
                while(!done)
                {
                    cout << "1 - Show account balance\n2 - Deposit\n3 - Withdraw\n4 - Show recent transactions\n5 - Clear Transaction history\n6 - Calculate Interest\n7 - Show interest accumulated\n8 - Exit ATM\n" << endl;
                    int choice = reader.readInt(1,8);
                    switch(choice)
                    {
                        case 1:
                        {
                            cout << mySavings.ShowBalance() << endl;
                        break;
                        }
                        
                        case 2:
                        {
                            cout << "Please enter the amount in dollars you would like to deposit, followed by the amount in cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            mySavings.DepositAccount(dollars, cents);
                        break;
                        }
                        
                        case 3:
                        {
                            cout << "Please enter the amount in dollars you would like to withdraw, followed by the amount in cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            mySavings.WithdrawAccount(dollars, cents);
                        break;
                        }
                        
                        case 4:
                        {
                            for(int i = 0;i<10;i++)
                            {
                                if(mySavings.GetRecentTransactions(i) == "")
                                {
                                    cout << "none" << endl;
                                }else
                                {
                                cout << mySavings.GetRecentTransactions(i) << endl;
                                }
                            }
                            
                        break;
                        }
                        
                        case 5:
                        {
                            mySavings.ClearRecentTransactions();
                        break;
                        }
                        
                        case 6:
                        {
                            mySavings.CalculateInterest();
                        break;
                        }
                        
                        case 7:
                        {
                            cout << "Interest accumulated this month: " << mySavings.GetInterestAccumulatedMonth() << endl;
                            cout << "Interest accumulated this year: " << mySavings.GetInterestAccumulatedYear() << "\n" << endl;
                        break;
                        }
                        
                        case 8:
                        {
                            done = true;
                        }
                    }
                }
            break;
            }
            
            //Credit Account options
            case 4:
            {
                CreditAccount myCredit;
                cout << "Set the dollar amount of your account balance" << endl;
                balance_dollars = reader.readInt(0);
                cout << "Set the cent amount of your account balance" << endl;
                balance_cents = reader.readInt(0,99);
                cout << "Select your interest rate. NOTE: Must be greater or equal to 0.0" << endl;
                interest_rate = reader.readDouble();
                cout << "Set the dollar amount for your max balance" << endl;
                long max_dollars = reader.readInt(0);
                cout << "Set the cent amount for your max balance\n" << endl;
                int max_cents = reader.readInt(0, 99);
                myCredit.SetDollars(balance_dollars);
                myCredit.SetCents(balance_cents);
                myCredit.SetMaxBalanceDollars(max_dollars);
                myCredit.SetMaxBalanceCents(max_cents);
                myCredit.SetInterestRate(interest_rate);
                
                cout << "Please select from the following options." << endl;
                while(!done)
                {
                    cout << "1 - Show account balance\n2 - Deposit\n3 - Withdraw\n4 - Calculate Interest\n5 - Clear Transaction history\n6 - Calculate interest\n7 - Show interest accumulated\n8 - Exit ATM\n" << endl;
                    int choice = reader.readInt(1,8);
                    switch(choice)
                    {
                        case 1:
                        {
                            cout << myCredit.ShowBalance() << endl;
                        break;
                        }
                        
                        case 2:
                        {
                            cout << "Please enter the amount you would like pay towards your balance in dollars, followed by cents\n" << endl << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            myCredit.MakePayment(dollars, cents);
                        break;
                        }
                        
                        case 3:
                        {
                            cout << "Please enter the transaction number for the charge" << endl;
                            int transaction = reader.readInt(0);
                            cout << "Please enter the amount of the transaction in dollars, followed by cents\n" << endl;
                            dollars = reader.readInt(0);
                            cents = reader.readInt(0,99);
                            myCredit.ChargeCard(transaction, dollars, cents);
                        break;
                        }
                        
                        case 4:
                        {
                            for(int i = 0;i<10;i++)
                            {
                                if(myCredit.GetRecentTransactions(i) == "")
                                {
                                    cout << "none" << endl;
                                }else
                                {
                                cout << myCredit.GetRecentTransactions(i) << endl;
                                }
                            }
                            
                        break;
                        }
                        
                        case 5:
                        {
                            myCredit.ClearRecentTransactions();
                        break;
                        }
                        
                        case 6:
                        {
                            myCredit.CalculateInterest();
                        break;
                        }
                        
                        case 7:
                        {
                            cout << "Interest accumulated this month: " << myCredit.GetInterestAccumulatedMonth() << endl;
                            cout << "Interest accumulated this year: " << myCredit.GetInterestAccumulatedYear() << "\n" << endl;
                        break;
                        }
                        
                        
                        case 8:
                        {
                            done = true;
                        }
                    }
                }
            }//break
        }
    }while(!end_program);
}