Question: I am using strcpy in bool CustomerList::updateStore() that will allow me to update input for the Store class, but all I am getting is the

I am using strcpy in bool CustomerList::updateStore() that will allow me to update input for the Store class, but all I am getting is the same input from before. Here is what I am trying to do:

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()

{ m_pHead = NULL; }

CustomerList::~CustomerList()

{ delete m_pHead; }

bool CustomerList:: addStore(Store *s)

{

if(m_pHead==NULL)

{ m_pHead = new Store(s->getStoreID(),s->getStoreName(), s->getStoreAddress(), s->getStoreCity(), s->getStoreState(), s->getStoreZip()); return true; }

else

{ Store * temp;

temp=m_pHead;

while(temp->m_pNext != NULL)

{ temp = temp->m_pNext; }

temp->m_pNext = new Store(s->getStoreID(),s->getStoreName(), s->getStoreAddress(), s->getStoreCity(), s->getStoreState(), s->getStoreZip());

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, *newNode; temp = m_pHead;

newNode = new Store();

while((temp!= NULL)&&(ID != temp->getStoreID())) { temp = temp->m_pNext; }

if(temp == NULL) { return false; }

else { strcpy(temp->getStoreName(),name); strcpy(temp->getStoreAddress(),addr); strcpy(temp->getStoreCity(),city); strcpy(temp->getStoreState(),st); strcpy(temp->getStoreZip(),zip); return true; } }

void CustomerList::printStoresInfo()

{

Store *temp;

if(m_pHead == NULL)

{ cout << " The List is empty. " ; }

else

{

temp = m_pHead;

while(temp != NULL)

{ temp->printStoreInfo(); temp = temp->m_pNext; }

} }

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!