Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ need help editing my code so it can run successfully its giving me a error on line 184 someone help please: SimpleVector.h -------------- #ifndef

C++ need help editing my code so it can run successfully its giving me a error on line 184 someone help please:

SimpleVector.h --------------

#ifndef SimpleVector_h #define SimpleVector_h

#include #include using namespace std;

template class SimpleVector { private: T *elements; int numElements; int capacity; public: SimpleVector(int capacity = 10); SimpleVector(const SimpleVector &v); SimpleVector& operator = (const SimpleVector& v); void add(T elem); void set(int index, T elem); int search(T elem); void sort(); void listAll(); int getNumElements(); T get(int index); ~SimpleVector(); };

template SimpleVector::SimpleVector(int cap) { capacity = cap; elements = new T[cap]; numElements = 0;

}

template SimpleVector::SimpleVector(const SimpleVector &v) { capacity = v.capacity; elements = new T[capacity]; numElements = v.numElements; for(int i = 0; i < numElements; i++) elements[i] = v.elements[i]; }

template SimpleVector& SimpleVector::operator = (const SimpleVector& v) { delete []elements; capacity = v.capacity; elements = new T[capacity]; numElements = v.numElements; for(int i = 0; i < numElements; i++) elements[i] = v.elements[i];

}

template void SimpleVector::add(T elem) { if(numElements == capacity) //is it full, expadn to double capacity { capacity *= 2; T* temp = new T[capacity]; for(int i = 0; i < numElements; i++) temp[i] = elements[i]; delete []elements; elements = temp; }

elements[numElements] = elem; numElements++; }

template void SimpleVector::set(int index, T elem) { if(index >= 0 && index < numElements) elements[index] = elem; }

template int SimpleVector::search(T elem) { for(int i = 0 ; i < numElements; i++) { if(elements[i] == elem) return i; } return -1; }

template void SimpleVector::sort() { for(int i = 0; i < numElements; i++) { int minIdx = i; for(int j = i+1; j < numElements; j++) { if(elements[j] < elements[minIdx]) minIdx = j; }

if(i != minIdx) { T temp = elements[i]; elements[i] = elements[minIdx]; elements[minIdx] = temp; } } }

template void SimpleVector::listAll() { for(int i = 0; i < numElements; i++) cout << elements[i] << endl;

cout << endl; }

template int SimpleVector::getNumElements() { return numElements; }

template T SimpleVector::get(int index) { return elements[index]; }

template SimpleVector::~SimpleVector() { delete []elements; }

#endif /* SimpleVector_h */

Item.h --------------

#ifndef Item_h #define Item_h #include using namespace std; class Item { private:

int SKU; string description; int quantity; public: Item(); Item(int sku, string desc, int qty); int getSKU(); string getDescription(); int getQuantity(); void setSKU(int sku); void setDescription(string desc); void setQuantity(int qty); friend ostream& operator << (ostream& out, const Item& item); bool operator <(const Item &i); bool operator >(const Item &i); bool operator ==(const Item &i);

}; #endif /* Item_h */

Item.cpp --------------

#include "Item.h" Item::Item() { SKU = 0; description = ""; quantity = 0; } Item::Item(int sku, string desc, int qty) { SKU = sku; description = desc; quantity = qty; } int Item::getSKU() { return SKU; } string Item::getDescription() { return description; } int Item::getQuantity() { return quantity; } void Item::setSKU(int sku) { SKU = sku; } void Item::setDescription(string desc) { description = desc; } void Item::setQuantity(int qty) { quantity = qty; } ostream& operator << (ostream& out, const Item& item) { out << "SKU: " << item.SKU << ", " << item.description << "[ stock = " << item.quantity << "]" ; return out; } bool Item::operator <(const Item &i) { return SKU < i.SKU; } bool Item::operator >(const Item &i) { return SKU > i.SKU; } bool Item::operator ==(const Item &i) { return SKU == i.SKU; }

main.cpp --------------

#include #include #include "SimpleVector.h" #include "Item.h" using namespace std;

int main() { string choice = " "; string desc; int sku, qty; SimpleVector items;

while(choice != "q" && choice != "Q") { cout << "Inventory Menu" << endl; cout << "A - add an item" << endl; cout << "S - search for an Item" << endl; cout << "L - list all items" << endl; cout << "Q - Quit" << endl; cout << "Your choice: "; cin >> choice; cout << endl; if(choice == "a" || choice == "A") { cout << "Enter SKU: "; cin >> sku; cout << "Enter description: "; cin >> desc; cout << "Enter quantity: "; cin >> qty; Item it(sku, desc, qty); items.add(it); } else if(choice == "s" || choice == "S") { cout << "Enter SKU to find: "; cin >> sku; Item toFind(sku, "", 0); int index = items.search(toFind); if( index == -1) cout << sku << " is not a valid SKU"; else { cout << items.get(index) << endl; Item it = items.get(index); cout << "Update description (y/n)? "; string ans; cin >> ans; if(ans == "y" || ans == "Y") { cout << "Enter new description: "; cin >> desc; it.setDescription(desc); cout << "Description updated" << endl; }

cout << "Update quantity (y/n)? "; cin >> ans; if(ans == "y" || ans == "Y") { cout << "Enter new quantity: "; cin >> qty; it.setQuantity(qty); cout << "Quantity updated" << endl; }

cout << it << endl;

items.set(index, it);

} } else if(choice == "l" || choice == "L") { if(items.getNumElements() == 0) cout << "No items" << endl; else { items.sort(); items.listAll(); } } cout << endl << endl; }

cout << "Good bye!" << endl; }

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

output should be:

------ Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: s

Enter SKU to find: 10 10 is not a valid SKU

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: a

Enter SKU: 100 Enter description: keyboard Enter quantity: 10

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: l

SKU: 100, keyboard[ stock = 10]

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: a

Enter SKU: 200 Enter description: mouse Enter quantity: 20

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: a

Enter SKU: 110 Enter description: USBdrive Enter quantity: 2

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: L

SKU: 100, keyboard[ stock = 10] SKU: 110, USBdrive[ stock = 2] SKU: 200, mouse[ stock = 20]

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: s

Enter SKU to find: 110 SKU: 110, USBdrive[ stock = 2]Update description (y/n)? n Update quantity (y/n)? y Enter new quantity: 7 Quantity updated SKU: 110, USBdrive[ stock = 7]

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: l

SKU: 100, keyboard[ stock = 10] SKU: 110, USBdrive[ stock = 7] SKU: 200, mouse[ stock = 20]

Inventory Menu A - add an item S - search for an Item L - list all items Q - Quit Your choice: q

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Securing SQL Server Protecting Your Database From Attackers

Authors: Denny Cherry

1st Edition

1597496251, 978-1597496254

More Books

Students also viewed these Databases questions

Question

2. Why has the conflict escalated?

Answered: 1 week ago