String Operations
Answer:
class cashRegister { private: int cashOnHand; public: cashRegister(); //Constructor Sets the cash in the register to a default amount. cashRegister(int cashIn); //Constructor Sets the cash in the register to a specific amount. int getCurrentBalance(); //The value of cashOnHand is returned. void acceptAmount(int amountIn);//Function to receive the amount deposited by the customer //and update amount in the register. }; //************************************************************ // class dispenserType // This class specifies the members to implement a dispenser. //************************************************************ class dispenserType { private: int numberOfItems; //variable to store the number of items in the dispenser int cost; //variable to store the cost of an item public: dispenserType(); //Constructor Sets the cost and number of items in the dispenser to the default dispenserType(int setNoOfItems, int setCost); //Constructor Sets to the values specified int getNoOfItems(); //The value of numberOfItems is returned. int getCost(); //Function to show the cost of the item. The value of cost is returned. void makeSale(); //Function to reduce the number of items by 1. }; cashRegister::cashRegister() { cashOnHand = 500; } cashRegister::cashRegister(int cashIn) { cashOnHand = cashIn; } int cashRegister::getCurrentBalance() { return cashOnHand; } void cashRegister::acceptAmount(int amountIn) { cashOnHand = cashOnHand + amountIn; } dispenserType::dispenserType() { numberOfItems = 50; cost = 50; } dispenserType::dispenserType(int setNoOfItems, int setCost) { numberOfItems = setNoOfItems; cost = setCost; } int dispenserType::getNoOfItems() { return numberOfItems; } int dispenserType::getCost() { return cost; } void dispenserType::makeSale() { numberOfItems--; } //***************************************************** // This program uses the classes cashRegister and // dispenserType to implement a candy machine. // **************************************************** #includevoid showSelection(); void sellProduct(dispenserType& product, cashRegister& pCounter); int main() { cashRegister counter; dispenserType candy(100, 50); dispenserType chips(100, 65); dispenserType gum(75, 45); dispenserType cookies(50, 85); int choice; showSelection(); cin >> choice; while (choice != 5) { switch (choice) { case 1: sellProduct(candy, counter); break; case 2: sellProduct(chips, counter); break; case 3: sellProduct(gum, counter); break; case 4: sellProduct(cookies, counter); break; default: cout << "Invalid selection." << endl; } showSelection(); cin >> choice; } return 0; } void showSelection() { cout << "*** Welcome to Candy Shop ***" << endl; cout << "To select an item, enter " << endl; cout << "1 for Candy" << endl; cout << "2 for Chips" << endl; cout << "3 for Gum" << endl; cout << "4 for Cookies" << endl; cout << "5 to exit" << endl; } void sellProduct(dispenserType& product, cashRegister& pCounter) { int amount; //variable to hold the amount entered int amount2; //variable to hold the extra amount needed if (product.getNoOfItems() > 0) //if the dispenser is not empty { cout << "Please deposit " << product.getCost() << " cents" << endl; cin >> amount; if (amount < product.getCost()) { cout << "Please deposit another " << product.getCost()- amount << " cents" << endl; cin >> amount2; amount = amount + amount2; } if (amount >= product.getCost()) { pCounter.acceptAmount(amount); product.makeSale(); cout << "Collect your item at the bottom and " << "enjoy." << endl; } else cout << "The amount is not enough. " << "Collect what you deposited." << endl; cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl << endl; } else cout << "Sorry, this item is sold out." << endl; }