Problem Solving with C++ (9th Edition)
Problem Solving with C++ (9th Edition)
9th Edition
ISBN: 9780133591743
Author: Walter Savitch
Publisher: PEARSON
Question
Book Icon
Chapter 16, Problem 1P
Program Plan Intro

  • Include required library files.
  • Define a class named “NegativeAmount” and “InsufficientFunds”.
  • Inside the “Account” class,
    • Add the negative amount exception in the “deposit()” function.
    • Add the negative amount and insufficient funds exception in the “withdraw()” function.
  • Define a “main()” function to test the program to deposit and withdraw amounts.
    • Create an object and test the deposit and withdraw using the appropriate function.
    • Then print the result.

Expert Solution & Answer
Check Mark
Program Description Answer

Program to rewrite the given class “Account” that throws an appropriate exceptions and test the program to deposit and withdraw amounts are as follows,

Explanation of Solution

// Include required library files

#include <iostream>

using namespace std;

// Definition of class NegativeAmount

class NegativeAmount

{

};

// Definition of class insufficientFunds

class InsufficientFunds

{

};

// Definition of class Account

class Account

{

  // Access specifier

  private:

    // Declaration of double variable

    double balance;

  // Access specifier

  public:

    // Definition of default constructor

    Account()

    {

      // Assign 0 to balance

      balance = 0;

    }

    // Definition of constructor to assign value

    Account(double initialDeposit)

    {

      // Assign initialDeposit to balance

      balance = initialDeposit;

    }

  // Definition of getBalance() function to return balance

    double getBalance()

    {

      // Return balance

      return balance;

    }

  // Definition of deposit() function to return new balance

  // or throw NegativeAmount exception

  double deposit(double amount) throw (NegativeAmount)

  {

    // Check amount is greater than 0

    if (amount > 0)

      // Condition is trur, compute balance

      balance += amount;

    // Otherwise

    else

      // Throw exception

      throw NegativeAmount();

    // Return balance

    return balance;

  }

  // Definition of withdraw function to return new balance

  // or throw NegativeAmount or InsufficientFunds

  double withdraw(double amount) throw (NegativeAmount,

  InsufficientFunds)

  {

    // Check amount is greater than balance

    if (amount > balance)

      // Throw insufficient exception

      throw InsufficientFunds();

    // Otherwise check amount is lesser than 0

    else if (amount < 0)

      // Throw negative amount execption

      throw NegativeAmount();

    // Otherwise

    else

      // Compute balance

      balance -= amount;

    // Return balance

    return balance;

  }

};

// Definition of main() function

int main()

{

  // Creation of object and passing 100 to the constructor

  Account a(100);

  // Try block

  try

  {

    // Call deposit() function to deposit 50

    a.deposit(50);

    // Call deposit() function to deposit 10

    a.deposit(10);

    // Call withdraw() function to deposit 220

    a.withdraw(220);

  // Call getBalance() function to get print balance amount

    cout << a.getBalance() << endl;

  }

  // Catch block for negative amount

  catch (NegativeAmount)

  {

    // Print the message regarding negative amount

      cout << "You can't deposit or withdraw a negative amount."

    << endl;

  }

  // Catch block for insufficient funds

  catch (InsufficientFunds)

  {

    // Print the message for insufficient funds

    cout << "Insufficient funds for withdrawal." << endl;

  }

  // Declaration of character variable

  char ch;

  // Get an character

  cin >> ch;

  // Return 0

  return 0;

}

Sample Output

Output:

Insufficient funds for withdrawal.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
I cannot program smart home automation rules from my device using a computer or phone, and I would like to know how to properly connect devices such as switches and sensors together ? Cisco Packet Tracer 1. Smart Home Automation:o Connect a temperature sensor and a fan to a home gateway.o Configure the home gateway so that the fan is activated when the temperature exceedsa set threshold (e.g., 30°C).2. WiFi Network Configuration:o Set up a wireless LAN with a unique SSID.o Enable WPA2 encryption to secure the WiFi network.o Implement MAC address filtering to allow only specific clients to connect.3. WLC Configuration:o Deploy at least two wireless access points connected to a Wireless LAN Controller(WLC).o Configure the WLC to manage the APs, broadcast the configured SSID, and applyconsistent security settings across all APs.
using r language for integration theta = integral 0 to infinity (x^4)*e^(-x^2)/2 dx (1) use the density function of standard normal distribution N(0,1) f(x) = 1/sqrt(2pi) * e^(-x^2)/2 -infinity <x<infinity as importance function and obtain an estimate theta 1 for theta set m=100 for the estimate whatt is the estimate theta 1? (2)use the density function of gamma (r=5 λ=1/2)distribution f(x)=λ^r/Γ(r) x^(r-1)e^(-λx) x>=0 as importance function and obtain an estimate theta 2 for theta set m=1000 fir the estimate what is the estimate theta2? (3) use simulation (repeat 1000 times) to estimate the variance of the estimates theta1 and theta 2 which one has smaller variance?
using r language A continuous random variable X has density function f(x)=1/56(3x^2+4x^3+5x^4).0<=x<=2 (1) secify the density g of the random variable Y you find for the acceptance rejection method. (2) what is the value of c you choose to use for the acceptance rejection method (3) use the acceptance rejection method to generate a random sample of size 1000 from the distribution of X .graph the density histogram of the sample and compare it with the density function f(x)
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Programming with Microsoft Visual Basic 2017
Computer Science
ISBN:9781337102124
Author:Diane Zak
Publisher:Cengage Learning