Question: Make an execution chart like the example below for the code provided.
m6
C++
Question: Make an execution chart like the example below for the code provided.
Example chart:
An execution chart is a text version of the hierarchy. Indentation is used to indicate the
sublevels or calls inside a call. It also contains the data exchange between the components as
designated in the hierarchy chart. Given below is the execution chart that corresponds to the
hierarchy chart of the property tax calculation
1.0 Main()
2.0 CalculatePropertyTax()
3.0 displayMessage( input string messageToDisplay)
3.1 return double getHomeValue()
3.2 return boolean checkHomeValue()
3.3 return double applyPropertyTax(input double homeValue)
3.4 displayPropertyTax(input homeValue)
3.5 return Boolean queryMoreData()
4.0 displayMessage(input string messageToDisplay)
4.1 return char getYesNo()
4.2 return char convertCase(input char)
3.6 displayErrorMessage()
More exlanation:
example: 1.0 means it's of depth 1, line 0 then 2.0 means it's one call inside a function (aka it's inside another function) then 2.1 means it's of the same depth,
My code:
#include <iostream>
#include <fstream>
#include <
#include "BankAccount.h"
using namespace std;
bool removeDuplicates(vector<BankAccount> &accountsVector);
void displayAccounts(vector<BankAccount> accountsVector);
int main()
{
ifstream fin;
fin.exceptions(ifstream::failbit | ifstream::badbit);
try{
fin.open("BankData.dat"); // provide full path to file
vector<BankAccount> accountsVector;
string firstName, lastName;
int accountId;
int accountNumber;
double accountBalance;
while(!fin.eof())
{
fin>>firstName>>lastName>>accountId>>accountNumber>>accountBalance;
BankAccount account(firstName+" "+lastName,accountId,accountNumber,accountBalance);
accountsVector.push_back(account);
}
fin.close(); // close the input file
if(accountsVector.size() > 0 )
{
BankAccount largest = accountsVector[0];
BankAccount smallest = accountsVector[0];
displayAccounts(accountsVector);
for(unsigned int i=0;i<accountsVector.size();i++)
{
if(accountsVector[i].getAccountBalance() > largest.getAccountBalance())
largest = accountsVector[i];
if(accountsVector[i].getAccountBalance() < smallest.getAccountBalance())
smallest = accountsVector[i];
}
cout<<"\nLargest Balance : "<<endl;
cout<<largest.toString()<<endl<<endl;
cout<<"Smallest Balance : "<<endl;
cout<<smallest.toString()<<endl<<endl;
cout<<"Using the static count, there are "<<BankAccount::count<<" accounts"<<endl;
cout<<"Using vector size, there are "<<accountsVector.size()<<" accounts"<<endl;
if(removeDuplicates(accountsVector))
{
cout<<"\nDuplicate Account Found : Reprinting List"<<endl;
displayAccounts(accountsVector);
}else
cout<<"\nDuplicate Account Not Found"<<endl;
cout<<"Using the static count, there are "<<BankAccount::count<<" accounts"<<endl;
cout<<"Using vector size, there are "<<accountsVector.size()<<" accounts"<<endl;
BankAccount account1("Amy Machado",387623 ,1244 ,1023.67);
BankAccount account2("Tak Phen",981243 ,1262 ,6423.03);
BankAccount account3("Celia Beatle",465281 ,1276 ,3.56 );
accountsVector.insert(accountsVector.begin()+2,account1);
accountsVector.insert(accountsVector.begin()+4,account2);
accountsVector.insert(accountsVector.begin()+6,account3);
cout<<"\nInserted Three New Accounts : Reprinting List"<<endl;
displayAccounts(accountsVector);
cout<<"Using the static count, there are "<<BankAccount::count<<" accounts"<<endl;
cout<<"Using vector size, there are "<<accountsVector.size()<<" accounts"<<endl;
}
}catch(ifstream::failure &e)
{
cerr<<"Error while opening/reading the input file"<<endl;
}
return 0;
}
// function to remove duplicate accounts from the vector, return true if duplicate records present else false
bool removeDuplicates(vector<BankAccount> &accountsVector)
{
bool duplicate = false;
for(unsigned int i=0;i<accountsVector.size()-1;i++)
{
for(unsigned int j=i+1;j<accountsVector.size();)
if(accountsVector[i].equals(accountsVector[j]))
{
duplicate = true;
accountsVector.erase(accountsVector.begin()+j);
}else
j++;
}
return duplicate;
}
void displayAccounts(vector<BankAccount> accountsVector)
{
cout<<"FAVORITE BANK - CUSTOMER DETAILS"<<endl;
cout<<string(50,'-')<<endl;
for(unsigned int i=0;i<accountsVector.size();i++)
{
cout<<accountsVector[i].toString()<<endl<<endl;
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images