Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cstdlib>
- #include <string>
- #include <iomanip>
- class Item
- {
- protected:
- std::string item_name;
- std::string unit;
- int to_buy;
- double price;
- double subtotal;
- public:
- Item()
- {
- price = 0.00;
- }
- void set_name(std::string name)
- {
- item_name = name;
- }
- void set_unit(std::string unt)
- {
- unit = unt;
- }
- void set_buy(int buy)
- {
- to_buy = buy;
- }
- void set_price(double cost)
- {
- price = cost;
- }
- std::string get_name()
- {
- return item_name;
- }
- std::string get_unit()
- {
- return unit;
- }
- int get_buy()
- {
- return to_buy;
- }
- double get_price()
- {
- return price;
- }
- double get_sub()
- {
- subtotal = (price * to_buy);
- return subtotal;
- }
- };
- class ClubItem : public Item
- {
- protected:
- double discount_price;
- double sub_discount;
- public:
- ClubItem()
- {
- discount_price = 0.00;
- }
- void set_discount(double price)
- {
- discount_price = (price*0.9);
- }
- double get_discount()
- {
- return discount_price;
- }
- double get_sub_discount()
- {
- sub_discount = (discount_price * to_buy);
- return sub_discount;
- }
- };
- class List : public ClubItem
- {
- protected:
- std::string listName;
- public:
- List()
- {
- }
- void set_name_list(std::string n)
- {
- listName = n;
- }
- std::string get_list_name()
- {
- return listName;
- }
- };
- void addItem(std::vector<List>& add_list, int &count);
- void display_list (std::vector<List>& display, int count, List list_name);
- void remove_item(std::vector<List>& remove_list, int &count);
- int main()
- {
- int choice;
- char option;
- std::vector<List> main_list(100);
- std::string listName;
- int count = 0;
- List mylist;
- do
- {
- std::cout << std::endl;
- std::cout << "Please select the appropriate action: " << std::endl;
- std::cout << "1. Create a new shopping list." << std::endl;
- std::cout << "2. Add item to current list." << std::endl;
- std::cout << "3. Remove an item from list." << std::endl;
- std::cout << "4. Display current list.\n" << std::endl;
- std::cout << "Enter choice: ";
- std::cin >> choice;
- std::cin.ignore();
- std::cout << std::endl;
- while(choice < 1 || choice > 4)
- {
- std::cout << "ERROR, please select a valid choice: ";
- std::cin >> choice;
- std::cin.ignore();
- std::cout << std::endl;
- }
- if(choice == 1)
- {
- std::cout << "Please name the list: ";
- std::getline (std::cin, listName);
- mylist.set_name_list(listName);
- std::cout << std::endl;
- }
- if(choice == 2)
- {
- addItem(main_list, count);
- }
- if(choice == 3)
- {
- remove_item(main_list, count);
- }
- if(choice == 4)
- {
- display_list(main_list, count, mylist);
- }
- std::cout << "Would you like to perform another task? (Y/N): ";
- std::cin >> option;
- std::cin.ignore();
- }while(option == 'y' || option == 'Y');
- return 0;
- }
- void addItem(std::vector<List>& add_list, int &count)
- {
- std::string itemname;
- std::string unit;
- int quantity;
- double cost;
- char sale;
- std::cout << "Is this item a Club on sale item? (Y/N): ";
- std::cin >> sale;
- std::cin.ignore();
- std::cout << "\n" << std::endl;
- std::cout << "Item name: ";
- std::getline(std::cin, itemname);
- std::cout << std:: endl;
- add_list[count].set_name(itemname);
- std::cout << "Units: ";
- std::getline(std::cin, unit);
- std::cout << std::endl;
- add_list[count].set_unit(unit);
- std::cout << "Quantity: ";
- std::cin >> quantity;
- std::cin.ignore();
- std::cout << std::endl;
- add_list[count].set_buy(quantity);
- std::cout << "Non-Sale Price: ";
- std::cin >> cost;
- std::cin.ignore();
- std::cout << std::endl;
- if(sale == 'Y' || sale == 'y')
- {
- add_list[count].set_discount(cost);
- }
- else
- {
- add_list[count].set_price(cost);
- }
- count++;
- }
- void remove_item(std::vector<List>& remove_list, int &count)
- {
- int removed;
- std::cout << "Which item would you like to remove from the list?" << std::endl;
- for(int x = 0; x < count; x++)
- {
- std::cout << (x+1) << ". " << remove_list[x].get_name() << std::endl;
- }
- std::cout << "Enter choice (1-" << (count) << "): ";
- std::cin >> removed;
- remove_list.erase(remove_list.begin()+(removed - 1));
- count--;
- }
- void display_list (std::vector<List>& display, int count, List list_name)
- {
- double total = 0.00;
- std::cout << "List: " << list_name.get_list_name() << std::endl;
- std::cout << std::endl;
- for(int x=0; x < count; x++)
- {
- std::cout << "Item name: ";
- std::cout << display[x].get_name() << std::endl;
- std::cout << "Units: ";
- std::cout << display[x].get_unit() << std::endl;
- std::cout << "Quantity: ";
- std::cout << display[x].get_buy() << std::endl;
- if(display[x].get_price() > 0.00)
- {
- std::cout << "Price: $";
- std::cout << std::fixed << std::showpoint << std::setprecision(2)
- << display[x].get_price() << std::endl;
- std::cout << "Subtotal: $";
- std::cout << std::fixed << std::showpoint << std::setprecision(2)
- << display[x].get_sub() << std::endl;
- std::cout << std::endl;
- total = total + display[x].get_sub();
- }
- if(display[x].get_discount() > 0.00)
- {
- std::cout << "Price: $";
- std::cout << std::fixed << std::showpoint << std::setprecision(2)
- << display[x].get_discount() << std::endl;
- std::cout << "Subtotal: $";
- std::cout << std::fixed << std::showpoint << std::setprecision(2)
- << display[x].get_sub_discount() << std::endl;
- std::cout << std::endl;
- total = total + display[x].get_sub_discount();
- }
- }
- std::cout << "Total for entire list: $";
- std::cout << std::fixed << std::showpoint << std::setprecision(2)
- << total << std::endl;
- std::cout << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement