The illustration shows a code segment with the lines numbered from 41 through 85 and the annotations are as follows:

"double fraction(double percent);
//Converts a percentage to a fraction. For example, fraction(50.3)
//returns 0.503."
"double percent(double fractionValue);" annotated as "New."
"//Converts a fraction to a percentage. For example, percent(0.503)
//returns 50.3.
};
int main( )
{
BankAccount account1(100, 2.3), account2;"

"cout << "account1 initialized as follows:\n";" annotated as "Since the body of main is identical to that in Display 10.6,the screen output is also identical to that in Display 10.6."
"account1.output(cout);
cout << "account2 initialized as follows:\n";
account2.output(cout);

account1 = BankAccount(999, 99, 5.5);
cout << "account1 reset to the following:\n";
account1.output(cout);
return 0;
}
BankAccount::BankAccount(int dollars, int cents, double rate)
{
if ((dollars < 0) || (cents < 0) || (rate < 0))
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
dollarsPart = dollars;
centsPart = cents;
interestRate = fraction(rate);” annotated as "In the old implementation of this ADT, the private member function fraction was used in the definition of update. In this implementation,fraction is instead used in the definition of constructors and in the set function."
“}
BankAccount::BankAccount(int dollars, double rate)
{
if ((dollars < 0) || (rate < 0))
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
dollarsPart = dollars;
centsPart = 0;
interestRate = fraction(rate);” annotated similar to that of previous “interestRate = fraction(rate);”
“}
BankAccount::BankAccount( ) : dollarsPart(0), centsPart(0), interestRate(0.0)"