Problem Solving with C++ plus MyProgrammingLab with Pearson eText-- Access Card Package (9th Edition)
Problem Solving with C++ plus MyProgrammingLab with Pearson eText-- Access Card Package (9th Edition)
9th Edition
ISBN: 9780133862218
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
Now unmount the filesystem. Create a sparse image file, called book.img, of the 2GiB hard drive. Use a hexdump program to look at book.img and work out the offsets that store the contents of the book youdownloaded. Record the offsets as a sequence of one or more ranges of hexadecimal numbers. For example, in the following hexdump the text The rain in Spain falls mainly on the plain. is stored at 0x10-0x1f, 0x30-0x4b (inclusive). 00000000: 0000 0000 0000 0000 0000 0000 0000 0000 .................00000010: 5468 6520 7261 696e 2069 6e20 5370 6169 The rain in Spai00000020: 0000 0000 0000 0000 0000 0000 0000 0000.................00000030: 6e20 6661 6c6c 7320 6d61 696e 6c79 206f n falls mainly 000000040: 6e20 7468 6520 706c 6169 6e2e 0000 0000 n the plain........ Compress the filesystem using gzip by running: #gzip book.img This should leave you with a file book.img.gz. You will use scp to transfer this file in a later task. Enter your ranges in answers2.json as the answer for question1. To…
Task 4: Examine floppy.img Mount floppy.img at a suitable mountpoint inside your VM. Look inside the mountpoint directory. You should see a number of files in the top-level directory. Look inside your answers2.json at the strings labelled contentA and contentB. Exactly one of those two strings appears as the content of a file in the floppy disk's filesystem. I.e., there is a file that contains contentA or a file that contains contentB but not both. Additionally, the other string has been written into unused space of the floppy disk, so the data is in floppy.img but cannot be seen inside any of the files at the mountpoint. However it can be seen in a hexdump of floppy.img. I.e., if there is a file that contains contentA then contentB has been written into unused space. You must search through your mountpoint directory to find out which of contentA and contentB is stored in a file of the filesystem and which is stored in unused space. Suppose that contentA is stored in a file, and…
Download your personalized assignment files, answers2.json and floppy.img, into your Kali Linux Vm. Use wget as before. For example, you'd use "wget
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