Advertisement
Lawnknome

assignment2wholefile.cpp

Apr 26th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdlib>
  4. #include <string>
  5. #include <iomanip>
  6.  
  7. class Item
  8. {
  9.     protected:
  10.         std::string item_name;
  11.         std::string unit;
  12.         int to_buy;
  13.         double price;
  14.         double subtotal;
  15.  
  16.     public:
  17.  
  18.         Item()
  19.         {
  20.             price = 0.00;
  21.         }
  22.  
  23.         void set_name(std::string name)
  24.         {
  25.             item_name = name;
  26.         }
  27.  
  28.         void set_unit(std::string unt)
  29.         {
  30.             unit = unt;
  31.         }
  32.  
  33.         void set_buy(int buy)
  34.         {
  35.             to_buy = buy;
  36.         }
  37.  
  38.         void set_price(double cost)
  39.         {
  40.             price = cost;
  41.         }
  42.  
  43.         std::string get_name()
  44.         {
  45.             return item_name;
  46.         }
  47.  
  48.         std::string get_unit()
  49.         {
  50.             return unit;
  51.         }
  52.  
  53.         int get_buy()
  54.         {
  55.             return to_buy;
  56.         }
  57.  
  58.         double get_price()
  59.         {
  60.             return price;
  61.         }
  62.  
  63.         double get_sub()
  64.         {
  65.             subtotal = (price * to_buy);
  66.             return subtotal;
  67.         }
  68.  
  69. };
  70.  
  71. class ClubItem : public Item
  72. {
  73.     protected:
  74.         double discount_price;
  75.         double sub_discount;
  76.  
  77.     public:
  78.  
  79.         ClubItem()
  80.         {
  81.             discount_price = 0.00;
  82.         }
  83.  
  84.         void set_discount(double price)
  85.         {
  86.             discount_price = (price*0.9);
  87.         }
  88.  
  89.         double get_discount()
  90.         {
  91.             return discount_price;
  92.         }
  93.  
  94.         double get_sub_discount()
  95.         {
  96.             sub_discount = (discount_price * to_buy);
  97.             return sub_discount;
  98.         }
  99. };
  100.  
  101. class List : public ClubItem
  102. {
  103.     protected:
  104.         std::string listName;
  105.  
  106.     public:
  107.         List()
  108.         {
  109.  
  110.         }
  111.  
  112.         void set_name_list(std::string n)
  113.         {
  114.             listName = n;
  115.         }
  116.  
  117.         std::string get_list_name()
  118.         {
  119.             return listName;
  120.         }
  121. };
  122.  
  123. void addItem(std::vector<List>& add_list, int &count);
  124. void display_list (std::vector<List>& display, int count, List list_name);
  125. void remove_item(std::vector<List>& remove_list, int &count);
  126.  
  127. int main()
  128. {
  129.     int choice;
  130.     char option;
  131.     std::vector<List> main_list(100);
  132.     std::string listName;
  133.     int count = 0;
  134.     List mylist;
  135.  
  136.     do
  137.     {
  138.         std::cout << std::endl;
  139.         std::cout << "Please select the appropriate action: " << std::endl;
  140.         std::cout << "1. Create a new shopping list." << std::endl;
  141.         std::cout << "2. Add item to current list." << std::endl;
  142.         std::cout << "3. Remove an item from list." << std::endl;
  143.         std::cout << "4. Display current list.\n" << std::endl;
  144.         std::cout << "Enter choice: ";
  145.  
  146.         std::cin >> choice;
  147.         std::cin.ignore();
  148.         std::cout << std::endl;
  149.  
  150.         while(choice < 1 || choice > 4)
  151.         {
  152.             std::cout << "ERROR, please select a valid choice: ";
  153.             std::cin >> choice;
  154.             std::cin.ignore();
  155.             std::cout << std::endl;
  156.         }
  157.  
  158.         if(choice == 1)
  159.         {
  160.             std::cout << "Please name the list: ";
  161.             std::getline (std::cin, listName);
  162.             mylist.set_name_list(listName);
  163.             std::cout << std::endl;
  164.         }
  165.  
  166.         if(choice == 2)
  167.         {
  168.             addItem(main_list, count);
  169.         }
  170.  
  171.         if(choice == 3)
  172.         {
  173.             remove_item(main_list, count);
  174.         }
  175.  
  176.         if(choice == 4)
  177.         {
  178.             display_list(main_list, count, mylist);
  179.         }
  180.  
  181.         std::cout << "Would you like to perform another task? (Y/N): ";
  182.         std::cin >> option;
  183.         std::cin.ignore();
  184.  
  185.  
  186.     }while(option == 'y' || option == 'Y');
  187.  
  188.     return 0;
  189. }
  190.  
  191. void addItem(std::vector<List>& add_list, int &count)
  192. {
  193.  
  194.     std::string itemname;
  195.     std::string unit;
  196.     int quantity;
  197.     double cost;
  198.     char sale;
  199.  
  200.     std::cout << "Is this item a Club on sale item? (Y/N): ";
  201.     std::cin >> sale;
  202.     std::cin.ignore();
  203.  
  204.     std::cout << "\n" << std::endl;
  205.  
  206.     std::cout << "Item name: ";
  207.     std::getline(std::cin, itemname);
  208.     std::cout << std:: endl;
  209.     add_list[count].set_name(itemname);
  210.  
  211.     std::cout << "Units: ";
  212.     std::getline(std::cin, unit);
  213.     std::cout << std::endl;
  214.     add_list[count].set_unit(unit);
  215.  
  216.     std::cout << "Quantity: ";
  217.     std::cin >> quantity;
  218.     std::cin.ignore();
  219.     std::cout << std::endl;
  220.     add_list[count].set_buy(quantity);
  221.  
  222.     std::cout << "Non-Sale Price: ";
  223.     std::cin >> cost;
  224.     std::cin.ignore();
  225.     std::cout << std::endl;
  226.  
  227.     if(sale == 'Y' || sale == 'y')
  228.     {
  229.         add_list[count].set_discount(cost);
  230.     }
  231.  
  232.     else
  233.     {
  234.         add_list[count].set_price(cost);
  235.     }
  236.  
  237.     count++;
  238. }
  239.  
  240. void remove_item(std::vector<List>& remove_list, int &count)
  241. {
  242.     int removed;
  243.  
  244.     std::cout << "Which item would you like to remove from the list?" << std::endl;
  245.  
  246.     for(int x = 0; x < count; x++)
  247.     {
  248.         std::cout << (x+1) << ". " << remove_list[x].get_name() << std::endl;
  249.     }
  250.  
  251.     std::cout << "Enter choice (1-" <<  (count) << "): ";
  252.     std::cin >> removed;
  253.     remove_list.erase(remove_list.begin()+(removed - 1));
  254.     count--;
  255.  
  256. }
  257.  
  258. void display_list (std::vector<List>& display, int count, List list_name)
  259. {
  260.     double total = 0.00;
  261.  
  262.     std::cout << "List: " << list_name.get_list_name() << std::endl;
  263.  
  264.     std::cout << std::endl;
  265.  
  266.     for(int x=0; x < count; x++)
  267.     {
  268.         std::cout << "Item name: ";
  269.         std::cout << display[x].get_name() << std::endl;
  270.  
  271.         std::cout << "Units: ";
  272.         std::cout << display[x].get_unit() << std::endl;
  273.  
  274.         std::cout << "Quantity: ";
  275.         std::cout << display[x].get_buy() << std::endl;
  276.  
  277.         if(display[x].get_price() > 0.00)
  278.         {
  279.             std::cout << "Price: $";
  280.             std::cout << std::fixed << std::showpoint << std::setprecision(2)
  281.             << display[x].get_price() << std::endl;
  282.  
  283.             std::cout << "Subtotal: $";
  284.             std::cout << std::fixed << std::showpoint << std::setprecision(2)
  285.             << display[x].get_sub() << std::endl;
  286.             std::cout << std::endl;
  287.  
  288.             total = total + display[x].get_sub();
  289.         }
  290.  
  291.         if(display[x].get_discount() > 0.00)
  292.         {
  293.             std::cout << "Price: $";
  294.             std::cout << std::fixed << std::showpoint << std::setprecision(2)
  295.             << display[x].get_discount() << std::endl;
  296.  
  297.             std::cout << "Subtotal: $";
  298.             std::cout << std::fixed << std::showpoint << std::setprecision(2)
  299.             << display[x].get_sub_discount() << std::endl;
  300.             std::cout << std::endl;
  301.  
  302.             total = total + display[x].get_sub_discount();
  303.         }
  304.     }
  305.  
  306.     std::cout << "Total for entire list: $";
  307.     std::cout << std::fixed << std::showpoint << std::setprecision(2)
  308.     << total << std::endl;
  309.     std::cout << std::endl;
  310.  
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement