Question: Passing a pointer through the function bool CustomerList::updateStore() that will allow me to modify an input, but all I am getting is the same values
Passing a pointer through the function bool CustomerList::updateStore() that will allow me to modify an input, but all I am getting is the same values from before. Here is what I am using in my main for testing the bool function:
bool check = cl->updateStore(1234, "Test Name", "1111 TestAddress", "TestCity", "TestState", "TestZip"); if(check) { cout <<" ===============================================================================================================" << endl; cout << " Stores in List " << endl; cout <<"===============================================================================================================" << endl; cl ->printStoresInfo(); cout <<"===============================================================================================================" << endl; } else cout << "updateStore test failed ";
bool check1 = cl -> updateStore(9999, "NoName", "1111 NoAddress", "NoCity", "NoState", "NoZip");
if(!check1) cout << "updateStore negative test passed. "; else cout << "updateStore negative test failed. ";
Ex.
(1234, "Name", "Street Address", "City", "State", "Zip")
Using the function bool CustomerList::updateStore()
Updating..successful
New Address:
(1234, "Store", "111 Main St.", "Townsville", "GA", "67893")
CustomerList.h
#pragma once;
#include #include "Store.h"
class CustomerList {
public: Store *m_pHead; CustomerList(); ~CustomerList(); bool addStore(Store *s); Store *removeStore(int ID); Store *getStore(int ID); bool updateStore(int ID, char *name, char *addr, char *city, char *st, char *zip); void printStoresInfo();
};
CustomerList.cpp
#include #include "CustomerList.h" #include "Store.h" using namespace std;
CustomerList::CustomerList() { // Default constructor
}
CustomerList::~CustomerList() {
// Destructor
}
bool CustomerList:: addStore(Store *s) { //creating a new instance s = new Store();
if(s==NULL)
return true;
}
Store *CustomerList::removeStore(int ID) { Store *temp, *back; temp = m_pHead; back = NULL; while((temp != NULL)&&(ID != temp ->getStoreID())) { back=temp; temp=temp->m_pNext; }
if(temp==NULL) return NULL; else if(back==NULL) { m_pHead = m_pHead ->m_pNext; return temp; } else { back -> m_pNext = temp-> m_pNext; return temp; }
return NULL; }
Store *CustomerList::getStore(int ID) { Store *temp; temp = m_pHead;
while((temp != NULL) && (ID != temp ->getStoreID())) { temp = temp->m_pNext; }
if(temp == NULL) return NULL;
else { Store *retStore = new Store; *retStore = *temp; retStore->m_pNext = NULL; return retStore; }
} bool CustomerList::updateStore(int ID, char *name, char *addr, char *city, char *st, char *zip)
{ Store *temp; temp = m_pHead; while((temp!= NULL)&&(ID != temp->getStoreID())) { temp = temp->m_pNext; }
if(temp == NULL) { return false; }
else { strcpy(addr,temp->getStoreAddress()); strcpy(city,temp->getStoreCity()); strcpy(st,temp->getStoreState()); strcpy(zip,temp->getStoreZip()); return true; } }
void CustomerList::printStoresInfo() { Store *temp; cout << " ===================================================================================== " << endl; if(m_pHead == NULL) { cout << " The List is currently empty. " ; } else {
temp = m_pHead; while(temp != NULL) { cout << temp->m_pNext << endl; } } }
Store.h
#pragma once;
#include #include
using namespace std;
class Store { private: int m_iStoreID; char m_sStoreName[64]; char m_sAddress[64]; char m_sCity[32]; char m_sState[32]; char m_sZip[11];
public: Store *m_pNext;
Store(); // Default constructor Store(int ID, // Constructor char *name, char *addr, char *city, char *st, char *zip); ~Store(); // Destructor int getStoreID(); // Get/Set store ID void setStoreID(int ID); char *getStoreName(); // Get/Set store name void setStoreName(char *name); char *getStoreAddress(); // Get/Set store address void setStoreAddress(char *addr); char *getStoreCity(); // Get/Set store city void setStoreCity(char *city); char *getStoreState(); // Get/Set store state void setStoreState(char *state); char *getStoreZip(); // Get/Set store zip code void setStoreZip(char *zip); void printStoreInfo(); // Print all info on this store };
Store.cpp
#include "Store.h" #include
using namespace std;
Store::Store() { m_pNext = NULL; }
Store::Store(int ID, char *name, char *addr, char *city, char *st, char *zip) { m_iStoreID = ID; strcpy(m_sStoreName, name); strcpy(m_sAddress, addr); strcpy(m_sCity, city); strcpy(m_sState, st); strcpy(m_sZip, zip); m_pNext = NULL; }
Store::~Store() { // Nothing to do here }
int Store::getStoreID() { return m_iStoreID; }
void Store::setStoreID(int ID) { m_iStoreID = ID; }
char *Store::getStoreName() { char *name = new char[strlen(m_sStoreName) + 1]; strcpy(name, m_sStoreName); return name; }
void Store::setStoreName(char *name) { strcpy(m_sStoreName, name); }
char *Store::getStoreAddress() { char *addr = new char[strlen(m_sAddress) + 1]; strcpy(addr, m_sAddress); return addr; }
void Store::setStoreAddress(char *addr) { strcpy(m_sAddress, addr); }
char *Store::getStoreCity() { char *city = new char[strlen(m_sCity) + 1]; strcpy(city, m_sCity); return city; }
void Store::setStoreCity(char *city) { strcpy(m_sCity, city); }
char *Store::getStoreState() { char *state = new char[strlen(m_sState) + 1]; strcpy(state, m_sState); return state; }
void Store::setStoreState(char *state) { strcpy(m_sState, state); }
char *Store::getStoreZip() { char *zip = new char[strlen(m_sZip) + 1]; strcpy(zip, m_sZip); return zip; }
void Store::setStoreZip(char *zip) { strcpy(m_sZip, zip); }
void Store::printStoreInfo() { cout << m_iStoreID << setw(20) << m_sStoreName << setw(15) << m_sAddress << setw(15) << m_sCity << ", " << m_sState << setw(10) << m_sZip << " "; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
