MHB Creating a Public Item & Cart Class

  • Thread starter Thread starter needOfHelpCMath
  • Start date Start date
  • Tags Tags
    Cart Class
AI Thread Summary
The discussion centers around the implementation of an "Item" class and a "Cart" class in C++. The "Item" class includes public members for item name, price, and quantity, along with setter and getter functions. The "Cart" class is designed to manage a collection of items, featuring methods for inserting items, deleting items, calculating average prices, and printing the cart contents.Key points include the suggestion to create constructors for both classes to initialize objects properly. It is noted that return statements in void functions are unnecessary unless exiting a loop. Additionally, passing variables by constant reference is recommended to enhance efficiency and avoid unnecessary copying. The code provided has several syntax errors and logical issues, such as incorrect vector usage and missing function definitions, which need to be addressed for proper functionality. Overall, the discussion emphasizes the importance of structuring classes effectively and adhering to best coding practices.
needOfHelpCMath
Messages
70
Reaction score
0
Make everything in public to save time or have public and private data members and functions:

1) Create a "Item" class with the following members and functions:
HTML:
 Item_name
   Item_price
   item_qty
   get/set functions

2) Create a "Cart" class with the following members and functions:

vector to hold items
HTML:
insertToCart // also should update item prices by qty amount when inserting
deleteItem //  searches for items and deletes it
averagePrice //  adds all items prices and computes the average price
cartTotal //  adds all items prices and returns total
printtCart

3) show how to create two items and insert it to the cart.

OUTPUT example:
HTML:
Items: Pens
Prices: $3  // pens price $1.50
Qty: 2
etc...
This is my code and so far I am not sure if I am on the right track. May anyone help guide me please. I have also decided to just input all the functions into public to save time.

HTML:
#include<iostream>
#include<string>
#include<vector>

class Item{
	
	public:
		
		string item_name;
		int item_price;
		int item_qty; 
		
		void setNamePriceQty(string a, int b , int c)
		void Print();
		int getPrice();
		int getQty();
		
	void Item::setNamePriceQty(string a, int b, int c) {
		item_name = a;
		item_price = b;
		item_qty =  c;
		
		return;
	}
	
	
	void Item::Print() {
		
		cout << item_name;
		cout << item_price << item_qty;
		
		return;
	}
};
	class Cart {
		public:
			
		vector<int>list;
		
		int total();
		
		void deleteItem (string a); // also should update item prices by qty amount when inserting
		void insertToCart(item b); // seaches for items and deletes  it
		void averagePrice; // adds all item prices and computers average price
		void printCart(); 
		void cartTotal; // adds all items prices and returns total
		
		
		void Cart::insertToCart(item b) {
		
			for (int i = 0; i <= list.size(); ++i) {
				if (list.at(i).item_name == b.item_name) {
					items.at(i).item_qty += b.itme_qty;
					items.at(i).item_price += b.item_price
					return(); }
					
					items.push_back(b)
					
					return; }
				}
				
		void Cart::deleteItem(string a) {
			for (int i = 0; i < list_size();++i) {
				if (list.at(i).item_name == b.item) {
					temp = list.at(i);
					list.at(i) =  list.at(list.size()-1);
					list.at(list.size() = temp;
					list.pop_back();
				}
			}
				}
			};
	
	
		
		

int main () {
	
	
	return 0;
}
 
Technology news on Phys.org
You know you can test your own code right? One of the great things about it. A few notes:

1. You haven't declared constructors for each class. How will you create objects? What will their initial values be?
2. There's no need to have a return statement in a void function unless you're exiting from a loop perhaps. When you `insertToCart`, the item list will be updated within the class.
3. It's a good habit to pass constant references to variables when possible. e.g.

C++:
    // a,b,c are not modified by the function so they're constants.
    // Passing by reference avoids copying objects around the place.
    void Item::setNamePriceQty(const string& a, const int& b, const int& c) {
        item_name = a;
        item_price = b;
        item_qty =  c;
    }
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Back
Top