Trying to pass a pointer through the function bool CustomerList::updateStore() that will allow me to modify an input.
Ex.
(1234, "Name", "Street Address", "City", "State", "Zip")
Using the function bool CustomerList::updateStore()
Updating..successful
New Address:
(0001, "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)
{
return false;
}
void CustomerList::printStoresInfo()
{
Store *temp;
cout << "
=====================================================================================
" << endl;
if(m_pHead == NULL)
{
cout << " The List is
currently empty.\n" ;
}
else
{
temp = m_pHead;
while(temp != NULL)
{
cout <<
temp->m_pNext << endl;
}
}
}
Store.h
#pragma once;
#include <string.h>
#include <iostream>
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 <iomanip>
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
<< "\n";
}
NOTE: Store_ID will remain same. If you want to change that, you need to give new store_ID in updateStore arguments and add
temp->m_iStoreID = new_ID;
in the else loop.
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(temp->m_sStoreName, name);
strcpy(temp->m_sAddress, addr);
strcpy(temp->m_sCity, city);
strcpy(temp->m_sState, st);
strcpy(temp->m_sZip, zip);
return true;
}
}
Get Answers For Free
Most questions answered within 1 hours.