Problem Solving with C++ (9th Edition)
Problem Solving with C++ (9th Edition)
9th Edition
ISBN: 9780133591743
Author: Walter Savitch
Publisher: PEARSON
Expert Solution & Answer
Book Icon
Chapter 15.3, Problem 11STE

Explanation of Solution

Program:

File name: sale.h

//include libraries

#ifndef SALE_H

#define SALE_H

#include <iostream>

using namespace std;

//using the namespace

namespace salesavitch

{

    //create a class

    class Sale

    {

        //define access specifier

        public:

        //declare the constructors

        Sale();

        Sale(double thePrice);

        //define required methods

        double bill() const;

        double savings(const Sale& other) const;

        //define access specifier

        protected:

        //declare required variables

        double price;

    };

    //define an overloaded method

    bool operator <(const Sale& first, const Sale&

  second);

}

#endif // SALE_H

File name: discount.h

//include libraries

#ifndef DISCOUNTSALE_H

#define DISCOUNTSALE_H

#include "sale.h"

//using the namespace

namespace salesavitch

{

    //create a class

    class DiscountSale : public Sale

    {

        //define access specifier

        public:

        //declare the constructors

        DiscountSale();

        DiscountSale(double the_price, double the_discount);

        //Discount is expressed as a percent of the price.

        virtual double bill() const;

        //define access specifier

        protected:

        //declare required variable

        double discount;

    };

}

#endif //DISCOUNTSALE_H

File name: sale.cpp

//include libraries

#include "sale.h"

//using the namespace

namespace salesavitch

{

    //define a constructor

  Sale::Sale() : price(0)

  {}

    //define a constructor

  Sale::Sale(double the_price) : price(the_price)

  {}

    //declare a method

  double Sale::bill() const

  {

        //return statement

  return price;

  }

    //declare a method

  double Sale::savings(const Sale& other) const

  {

        //return statement

  return ( bill() - other...

Blurred answer
Students have asked these similar questions
I need help in construct a matlab code to find the voltage, the currents, and the watts based on that circuit.
Objective Implement Bottom-Up Iterative MergeSort and analyze its efficiency compared to recursive MergeSort. Unlike the recursive approach, which involves multiple function calls and stack overhead, the bottom-up version sorts iteratively by merging small subarrays first, reducing recursion depth and improving performance. Task 1. Implement Bottom-Up Iterative MergeSort о Start with single-element subarrays and iteratively merge them into larger sorted sections. Use a loop-based merging process instead of recursion. ○ Implement an efficient in-place merging strategy if possible. 2. Performance Analysis Compare execution time with recursive MergeSort on random, nearly sorted, and reversed datasets. ○ Measure and plot time complexity vs. input size. O Submission Explain why the iterative version reduces function call overhead and when it performs better. • Code implementation with comments. • A short report (1-2 pages) comparing performance. • Graph of execution time vs. input size for…
Given a shared data set, we allow multiple readers to read at the same time, and only one single writer can access the shared data at the same time. In the lecture slides, a solution is given. However, the problem is that the write cannot write forever, if there are always at least one reader. How to ensure that the writer can eventually write? Propose your solution by using semaphores and implemented in Python from threading import Thread, Semaphore from time import sleep from sys import stdout class Reader(Thread): def__init__(self, name): self.n=name; Thread.__init__(self) defrun(self): globalnr, nw, dr, dw whileTrue: # ⟨await nw == 0 then nr += 1⟩ e.acquire() ifnw>0: #if nw > 0 or dw > 0 : dr+=1; e.release(); r.acquire() nr+=1 ifdr>0: dr-=1; r.release() else: e.release() # read data stdout.write(self.n+' reading\n') sleep(1) # ⟨nr -= 1⟩ e.acquire() nr-=1 ifnr==0anddw>0: dw-=1 ; w.release() else: e.release() class Writer(Thread): def__init__(self, name):…

Chapter 15 Solutions

Problem Solving with C++ (9th Edition)

Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
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
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781305480537
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr