I keep on get a redefinition error and an undefined error.
Customer List
(1) CustomerList() and ~CustomerList() - default constructor and destructor.
(2) bool addStore(Store*s) - Add an instance of store to the linked list. Return true if successful.
(3) Store *removeStore(int ID) - Locate a Store in the list if it exists, remove and return it.
(4) Store *getStore(int ID) - Locate a Store in the list and return a pointer to it.
(5) bool updateStore(int ID, char *name, char *addr, char *city, char *st, char *zip) - Locate a
store in the list then update all its information. Return true if successful.
(6) void printStoreInfo() - Iterate over the list of store and have each print itself.
Employee Record
(1) Add a pointer to a class of type CustomerList called m_pCustomerList.
(2) Add a function CustomerList *getCustomerList to return the pointer to the
EmployeeRecord's CustomerList object.
-------------------------------------------------------------
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. " ;
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 << " ";
}
----------------------------------------------------------
EmployeeRecord.h
#pragma once
#include "CustomerList.h"
class EmployeeRecord
{
private:
int m_iEmployeeID;
char m_sLastName[32];
char m_sFirstName[32];
int m_iDeptID;
double m_dSalary;
public:
CustomerList *getCustomerList();
CustomerList *m_pCustomerList;
//The default constructor
EmployeeRecord();
// Constructor shall set the member values passed into the function.
EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal);
// The destructor
~EmployeeRecord();
// shall return the value stored in the member variable
int getID();
// will set the member variable m_iEmployeeID to the value of its' argument.
void setID(int ID);
// The getName() function shall copy the member variables m_sFirstName and
m_sLastName into the character arrays pointed to by the function arguments.
void getName(char *fName, char *lName);
// The setName() function will copy the function arguments into the member variables
m_sFirstName and m_sLastName
void setName(char *fName, char *lName);
// The getDept() function shall be defined as a reference function. That is, a call to this
function will copy the member variable m_iDeptID into the int variable referenced by the
function argument.
int getDept();
// The setDept() function will copy the function argument into the member variable
m_iDeptID.
void setDept(int d);
// The getSalary() function shall be defined as a pointer function.
double getSalary();
// The function setSalary() shall copy the function argument into the member variable
m_dSalary.
void setSalary(double sal);
//This function shall print to the screen all data found in the employee's record
void printRecord();
};
-----------------------------------------------------------------------------
EmployeeRecord.cpp
#include
#include "EmployeeRecord.h"
using namespace std;
//Default Constructor
EmployeeRecord::EmployeeRecord()
{
// The default constructor shall set the member variables to the following
m_iEmployeeID = 0;
m_sFirstName[0] = '0';
m_sLastName[0] = '0';
m_iDeptID = 0;
m_dSalary = 0.0;
}
EmployeeRecord::EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal)
{
// Copying the member varibles for First and Last name
strcpy(m_sFirstName, fName);
strcpy(m_sLastName, lName);
// Copying other member variables
m_iEmployeeID = ID;
m_iDeptID = dept;
m_dSalary = sal;
fName = NULL;
lName = NULL;
}
// Default Desctrutor
EmployeeRecord::~EmployeeRecord()
{
// It was tested in sprint 1
}
int EmployeeRecord:: getID()
{
/*cout <<" ====================================="<< endl;
cout << " Testing data:" << endl;
cout <<"====================================="<< endl;
// Testing ID
cout << "Testing getID(). Result = " << m_iEmployeeID << endl;*/
return m_iEmployeeID;
}
void EmployeeRecord::setID(int ID)
{
m_iEmployeeID = ID;
/*cout <<"====================================="<< endl;
cout << " Setting data in Record:" << endl;
cout <<"====================================="<< endl;
cout << "ID = " << m_iEmployeeID << endl;*/
}
void EmployeeRecord::getName(char *fName, char *lName)
{
//Copying member variables to parameters for name.
strcpy(fName, m_sFirstName);
strcpy(lName, m_sLastName);
//cout << "Testing getName(). Result = " << m_sFirstName << " " << m_sLastName <<
endl;
}
void EmployeeRecord::setName(char *fName, char *lName)
{
strcpy(m_sFirstName, fName);
strcpy(m_sLastName, lName);
//cout << "First Name = " << m_sFirstName <
//cout << "Last Name = " << m_sLastName <
}
int EmployeeRecord::getDept()
{
//Copying member variables to parameters for Dept ID
return m_iDeptID;
// testing getDept()
//cout << "Testing getDept(). Result = " << d << endl;
}
void EmployeeRecord::setDept(int d)
{
m_iDeptID = d;
// cout << "Dept = " << m_iDeptID << endl;
}
double EmployeeRecord::getSalary()
{
return m_dSalary;
//cout << "Testing getSalary(). Result = " << *sal << endl;
//cout << endl << endl;
}
void EmployeeRecord::setSalary(double sal)
{
m_dSalary = sal;
//cout << "Salary = $" << m_dSalary << " ";
//cout << endl << endl;
}
void EmployeeRecord::printRecord()
{
// Print out Employee Record
cout <<" Print Record " << endl
cout << "ID: " << m_iEmployeeID << "t";
cout << "tName: " << m_sLastName << " , " << m_sFirstName << "t";
cout << "tDept: " << m_iDeptID << "t" << "t";
cout << "Salary: $" << m_dSalary << "t" << endl << endl;
}
---------------------------------------------------------------------------------
MainProgram.cpp
#include
#include "EmployeeRecord.h"
#include
using namespace std;
int main()
{
int employee_id = 100, dept_id = 42, IDNum;
char fname [32];
char lname [32];
double salary = 65000;
double salaryp;
double *p_salary ;
salaryp = 65000;
p_salary = &salaryp;
//===================================================================
======EmployeeRecord
Testing===============================================================
===========================
EmployeeRecord *Employee1 = new EmployeeRecord(dept_id, fname, lname, dept_id,
salary);
Employee1->setID(employee_id);
Employee1->setName("John", "Doe");
Employee1->setDept(42);
Employee1->setSalary(salary);
IDNum = Employee1-> getID();
Employee1->getName(fname,lname);
Employee1->getDept();
Employee1->getSalary();
if(IDNum == employee_id)
//Test Successful
if((strcmp(fname, "John") == 0)&&(strcmp(lname,"Doe") == 0))
//Test Successful
if(dept_id == 42)
//Test Successful
if(*p_salary == salary)
//Test Successful
Employee1->printRecord();
Employee1->setID(456);
Employee1->setName("Jane", "Smith");
Employee1->setDept(45);
Employee1->setSalary(4000);
IDNum = Employee1-> getID();
Employee1->getName(fname,lname);
Employee1->getDept();
Employee1->getSalary();
if(IDNum == 456)
//Test Successful
if((strcmp(fname, "Jane") == 0)&&(strcmp(lname,"Smith") == 0))
//Test Successful
if(dept_id == 45)
//Test Successful
if(*p_salary == 4000)
Employee1->printRecord();
//=====================================Customer List
Testing====================================
CustomerList *cl = Employee1 ->getCustomerList();
//----Testing the addStore, and printStoresInfo functions:--------------------------------------
Store *s = new Store(4567,"A Computer Store", "1111 Main St." ,"West City"
,"Alabama", "12345");
cl -> addStore(s);
cl -> printStoresInfo();
//----------------------------------------------------------------------------------------------
//---Testing the get store function:---------
Store *s = NULL;
s=cl->getStore(1234);
if((s != NULL) && (s->getStoreID() == 1234))
s = cl->getStore(9999);
if(s == NULL)
//-------------------------------------------
//---Testing updateStore Function: ----------------------------------------------------------------------
bool chk = cl->updateStore(1234, "Test Name", "1111 TestAddress", "TestCity",
"TestState", "TestZip");
if(chk)
cl ->printStoresInfo();
else
cout << "updateStore test failed ";
bool chk = cl -> updateStore(9999, "NoName", "1111 NoAddress", "NoCity",
"NoState", "NoZip");
if(!chk)
cout << "updateStore negative test passed. ";
else
cout << "updateStore negative test failed. ";
//---------------------------------------------------------------------------------------------------------
//--Testing the removeStore function---------------
Store *s;
s = cl ->removeStore(4567);
if(s == NULL)
Store *s = cl -> removeStore(4567);
if(( s != NULL) && (s->getStoreID() == 4567))
cl -> printStoresInfo();
//------------------------------------------------
//---Testing the destructor-----------------
EmployeeRecord *e = new EmployeeRecord();
delete e;
//------------------------------------------
system ("pause");
return 0;
}
Solution
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. " ;
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
};
EmployeeRecord.cpp
#include
#include "EmployeeRecord.h"
using namespace std;
//Default Constructor
EmployeeRecord::EmployeeRecord()
{
// The default constructor shall set the member variables to the following
m_iEmployeeID = 0;
m_sFirstName[0] = '0';
m_sLastName[0] = '0';
m_iDeptID = 0;
m_dSalary = 0.0;
}
EmployeeRecord::EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal)
{
// Copying the member varibles for First and Last name
strcpy(m_sFirstName, fName);
strcpy(m_sLastName, lName);
// Copying other member variables
m_iEmployeeID = ID;
m_iDeptID = dept;
m_dSalary = sal;
fName = NULL;
lName = NULL;
}
// Default Desctrutor
EmployeeRecord::~EmployeeRecord()
{
// It was tested in sprint 1
}
int EmployeeRecord:: getID()
{
/*cout <<" ====================================="<< endl;
cout << " Testing data:" << endl;
cout <<"====================================="<< endl;
// Testing ID
cout << "Testing getID(). Result = " << m_iEmployeeID << endl;*/
return m_iEmployeeID;
}
void EmployeeRecord::setID(int ID)
{
m_iEmployeeID = ID;
/*cout <<"====================================="<< endl;
cout << " Setting data in Record:" << endl;
cout <<"====================================="<< endl;
cout << "ID = " << m_iEmployeeID << endl;*/
}
void EmployeeRecord::getName(char *fName, char *lName)
{
//Copying member variables to parameters for name.
strcpy(fName, m_sFirstName);
strcpy(lName, m_sLastName);
//cout << "Testing getName(). Result = " << m_sFirstName << " " << m_sLastName <<
endl;
}
void EmployeeRecord::setName(char *fName, char *lName)
{
strcpy(m_sFirstName, fName);
strcpy(m_sLastName, lName);
//cout << "First Name = " << m_sFirstName <
//cout << "Last Name = " << m_sLastName <
}
int EmployeeRecord::getDept()
{
//Copying member variables to parameters for Dept ID
return m_iDeptID;
// testing getDept()
//cout << "Testing getDept(). Result = " << d << endl;
}
void EmployeeRecord::setDept(int d)
{
m_iDeptID = d;
// cout << "Dept = " << m_iDeptID << endl;
}
double EmployeeRecord::getSalary()
{
return m_dSalary;
//cout << "Testing getSalary(). Result = " << *sal << endl;
//cout << endl << endl;
}
void EmployeeRecord::setSalary(double sal)
{
m_dSalary = sal;
//cout << "Salary = $" << m_dSalary << " ";
//cout << endl << endl;
}
void EmployeeRecord::printRecord()
{
// Print out Employee Record
cout <<" Print Record " << endl
cout << "ID: " << m_iEmployeeID << "t";
cout << "tName: " << m_sLastName << " , " << m_sFirstName << "t";
cout << "tDept: " << m_iDeptID << "t" << "t";
cout << "Salary: $" << m_dSalary << "t" << endl << endl;
}
---------------------------------------------------------------------------------
MainProgram.cpp
#include
#include "EmployeeRecord.h"
#include
using namespace std;
int main()
{
int employee_id = 100, dept_id = 42, IDNum;
char fname [32];
char lname [32];
double salary = 65000;
double salaryp;
double *p_salary ;
salaryp = 65000;
p_salary = &salaryp;
//===================================================================
======EmployeeRecord
Testing===============================================================
===========================
EmployeeRecord *Employee1 = new EmployeeRecord(dept_id, fname, lname, dept_id,
salary);
Employee1->setID(employee_id);
Employee1->setName("John", "Doe");
Employee1->setDept(42);
Employee1->setSalary(salary);
IDNum = Employee1-> getID();
Employee1->getName(fname,lname);
Employee1->getDept();
Employee1->getSalary();
if(IDNum == employee_id)
//Test Successful
if((strcmp(fname, "John") == 0)&&(strcmp(lname,"Doe") == 0))
//Test Successful
if(dept_id == 42)
//Test Successful
if(*p_salary == salary)
//Test Successful
Employee1->printRecord();
Employee1->setID(456);
Employee1->setName("Jane", "Smith");
Employee1->setDept(45);
Employee1->setSalary(4000);
IDNum = Employee1-> getID();
Employee1->getName(fname,lname);
Employee1->getDept();
Employee1->getSalary();
if(IDNum == 456)
//Test Successful
if((strcmp(fname, "Jane") == 0)&&(strcmp(lname,"Smith") == 0))
//Test Successful
if(dept_id == 45)
//Test Successful
if(*p_salary == 4000)
Employee1->printRecord();
//=====================================Customer List
Testing====================================
CustomerList *cl = Employee1 ->getCustomerList();
//----Testing the addStore, and printStoresInfo functions:--------------------------------------
Store *s = new Store(4567,"A Computer Store", "1111 Main St." ,"West City"
,"Alabama", "12345");
cl -> addStore(s);
cl -> printStoresInfo();
//----------------------------------------------------------------------------------------------
//---Testing the get store function:---------
Store *s = NULL;
s=cl->getStore(1234);
if((s != NULL) && (s->getStoreID() == 1234))
s = cl->getStore(9999);
if(s == NULL)
//-------------------------------------------
//---Testing updateStore Function: ----------------------------------------------------------------------
bool chk = cl->updateStore(1234, "Test Name", "1111 TestAddress", "TestCity",
"TestState", "TestZip");
if(chk)
cl ->printStoresInfo();
else
cout << "updateStore test failed ";
bool chk = cl -> updateStore(9999, "NoName", "1111 NoAddress", "NoCity",
"NoState", "NoZip");
if(!chk)
cout << "updateStore negative test passed. ";
else
cout << "updateStore negative test failed. ";
//---------------------------------------------------------------------------------------------------------
//--Testing the removeStore function---------------
Store *s;
s = cl ->removeStore(4567);
if(s == NULL)
Store *s = cl -> removeStore(4567);
if(( s != NULL) && (s->getStoreID() == 4567))
cl -> printStoresInfo();
//------------------------------------------------
//---Testing the destructor-----------------
EmployeeRecord *e = new EmployeeRecord();
delete e;
//------------------------------------------
system ("pause");
return 0;
}

I keep on get a redefinition error and an undefined error.Customer.pdf

  • 1.
    I keep onget a redefinition error and an undefined error. Customer List (1) CustomerList() and ~CustomerList() - default constructor and destructor. (2) bool addStore(Store*s) - Add an instance of store to the linked list. Return true if successful. (3) Store *removeStore(int ID) - Locate a Store in the list if it exists, remove and return it. (4) Store *getStore(int ID) - Locate a Store in the list and return a pointer to it. (5) bool updateStore(int ID, char *name, char *addr, char *city, char *st, char *zip) - Locate a store in the list then update all its information. Return true if successful. (6) void printStoreInfo() - Iterate over the list of store and have each print itself. Employee Record (1) Add a pointer to a class of type CustomerList called m_pCustomerList. (2) Add a function CustomerList *getCustomerList to return the pointer to the EmployeeRecord's CustomerList object. ------------------------------------------------------------- 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
  • 2.
    #include #include "CustomerList.h" #include "Store.h" usingnamespace 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;
  • 3.
    } 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 << " =====================================================================
  • 4.
    ================ " <<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);
  • 5.
    ~Store(); // Destructor intgetStoreID(); // 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() {
  • 6.
    // Nothing todo 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);
  • 7.
    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 << " "; } ---------------------------------------------------------- EmployeeRecord.h #pragma once #include "CustomerList.h" class EmployeeRecord
  • 8.
    { private: int m_iEmployeeID; char m_sLastName[32]; charm_sFirstName[32]; int m_iDeptID; double m_dSalary; public: CustomerList *getCustomerList(); CustomerList *m_pCustomerList; //The default constructor EmployeeRecord(); // Constructor shall set the member values passed into the function. EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal); // The destructor ~EmployeeRecord(); // shall return the value stored in the member variable int getID(); // will set the member variable m_iEmployeeID to the value of its' argument. void setID(int ID); // The getName() function shall copy the member variables m_sFirstName and m_sLastName into the character arrays pointed to by the function arguments. void getName(char *fName, char *lName); // The setName() function will copy the function arguments into the member variables m_sFirstName and m_sLastName void setName(char *fName, char *lName); // The getDept() function shall be defined as a reference function. That is, a call to this function will copy the member variable m_iDeptID into the int variable referenced by the function argument. int getDept(); // The setDept() function will copy the function argument into the member variable m_iDeptID.
  • 9.
    void setDept(int d); //The getSalary() function shall be defined as a pointer function. double getSalary(); // The function setSalary() shall copy the function argument into the member variable m_dSalary. void setSalary(double sal); //This function shall print to the screen all data found in the employee's record void printRecord(); }; ----------------------------------------------------------------------------- EmployeeRecord.cpp #include #include "EmployeeRecord.h" using namespace std; //Default Constructor EmployeeRecord::EmployeeRecord() { // The default constructor shall set the member variables to the following m_iEmployeeID = 0; m_sFirstName[0] = '0'; m_sLastName[0] = '0'; m_iDeptID = 0; m_dSalary = 0.0; } EmployeeRecord::EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal) { // Copying the member varibles for First and Last name strcpy(m_sFirstName, fName); strcpy(m_sLastName, lName); // Copying other member variables m_iEmployeeID = ID; m_iDeptID = dept; m_dSalary = sal; fName = NULL; lName = NULL;
  • 10.
    } // Default Desctrutor EmployeeRecord::~EmployeeRecord() { //It was tested in sprint 1 } int EmployeeRecord:: getID() { /*cout <<" ====================================="<< endl; cout << " Testing data:" << endl; cout <<"====================================="<< endl; // Testing ID cout << "Testing getID(). Result = " << m_iEmployeeID << endl;*/ return m_iEmployeeID; } void EmployeeRecord::setID(int ID) { m_iEmployeeID = ID; /*cout <<"====================================="<< endl; cout << " Setting data in Record:" << endl; cout <<"====================================="<< endl; cout << "ID = " << m_iEmployeeID << endl;*/ } void EmployeeRecord::getName(char *fName, char *lName) { //Copying member variables to parameters for name. strcpy(fName, m_sFirstName); strcpy(lName, m_sLastName); //cout << "Testing getName(). Result = " << m_sFirstName << " " << m_sLastName << endl; } void EmployeeRecord::setName(char *fName, char *lName) {
  • 11.
    strcpy(m_sFirstName, fName); strcpy(m_sLastName, lName); //cout<< "First Name = " << m_sFirstName < //cout << "Last Name = " << m_sLastName < } int EmployeeRecord::getDept() { //Copying member variables to parameters for Dept ID return m_iDeptID; // testing getDept() //cout << "Testing getDept(). Result = " << d << endl; } void EmployeeRecord::setDept(int d) { m_iDeptID = d; // cout << "Dept = " << m_iDeptID << endl; } double EmployeeRecord::getSalary() { return m_dSalary; //cout << "Testing getSalary(). Result = " << *sal << endl; //cout << endl << endl; } void EmployeeRecord::setSalary(double sal) { m_dSalary = sal; //cout << "Salary = $" << m_dSalary << " "; //cout << endl << endl; } void EmployeeRecord::printRecord() { // Print out Employee Record cout <<" Print Record " << endl cout << "ID: " << m_iEmployeeID << "t"; cout << "tName: " << m_sLastName << " , " << m_sFirstName << "t";
  • 12.
    cout << "tDept:" << m_iDeptID << "t" << "t"; cout << "Salary: $" << m_dSalary << "t" << endl << endl; } --------------------------------------------------------------------------------- MainProgram.cpp #include #include "EmployeeRecord.h" #include using namespace std; int main() { int employee_id = 100, dept_id = 42, IDNum; char fname [32]; char lname [32]; double salary = 65000; double salaryp; double *p_salary ; salaryp = 65000; p_salary = &salaryp; //=================================================================== ======EmployeeRecord Testing=============================================================== =========================== EmployeeRecord *Employee1 = new EmployeeRecord(dept_id, fname, lname, dept_id, salary); Employee1->setID(employee_id); Employee1->setName("John", "Doe"); Employee1->setDept(42); Employee1->setSalary(salary); IDNum = Employee1-> getID(); Employee1->getName(fname,lname); Employee1->getDept(); Employee1->getSalary(); if(IDNum == employee_id)
  • 13.
    //Test Successful if((strcmp(fname, "John")== 0)&&(strcmp(lname,"Doe") == 0)) //Test Successful if(dept_id == 42) //Test Successful if(*p_salary == salary) //Test Successful Employee1->printRecord(); Employee1->setID(456); Employee1->setName("Jane", "Smith"); Employee1->setDept(45); Employee1->setSalary(4000); IDNum = Employee1-> getID(); Employee1->getName(fname,lname); Employee1->getDept(); Employee1->getSalary(); if(IDNum == 456) //Test Successful if((strcmp(fname, "Jane") == 0)&&(strcmp(lname,"Smith") == 0)) //Test Successful if(dept_id == 45) //Test Successful if(*p_salary == 4000) Employee1->printRecord(); //=====================================Customer List Testing==================================== CustomerList *cl = Employee1 ->getCustomerList(); //----Testing the addStore, and printStoresInfo functions:-------------------------------------- Store *s = new Store(4567,"A Computer Store", "1111 Main St." ,"West City" ,"Alabama", "12345"); cl -> addStore(s); cl -> printStoresInfo(); //----------------------------------------------------------------------------------------------
  • 14.
    //---Testing the getstore function:--------- Store *s = NULL; s=cl->getStore(1234); if((s != NULL) && (s->getStoreID() == 1234)) s = cl->getStore(9999); if(s == NULL) //------------------------------------------- //---Testing updateStore Function: ---------------------------------------------------------------------- bool chk = cl->updateStore(1234, "Test Name", "1111 TestAddress", "TestCity", "TestState", "TestZip"); if(chk) cl ->printStoresInfo(); else cout << "updateStore test failed "; bool chk = cl -> updateStore(9999, "NoName", "1111 NoAddress", "NoCity", "NoState", "NoZip"); if(!chk) cout << "updateStore negative test passed. "; else cout << "updateStore negative test failed. "; //--------------------------------------------------------------------------------------------------------- //--Testing the removeStore function--------------- Store *s; s = cl ->removeStore(4567); if(s == NULL) Store *s = cl -> removeStore(4567); if(( s != NULL) && (s->getStoreID() == 4567)) cl -> printStoresInfo(); //------------------------------------------------ //---Testing the destructor----------------- EmployeeRecord *e = new EmployeeRecord(); delete e; //------------------------------------------ system ("pause");
  • 15.
    return 0; } Solution 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;
  • 16.
    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;
  • 17.
    return retStore; } } bool CustomerList::updateStore(intID, 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. " ; 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];
  • 18.
    char m_sCity[32]; char m_sState[32]; charm_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 }; EmployeeRecord.cpp #include #include "EmployeeRecord.h" using namespace std; //Default Constructor EmployeeRecord::EmployeeRecord() { // The default constructor shall set the member variables to the following m_iEmployeeID = 0;
  • 19.
    m_sFirstName[0] = '0'; m_sLastName[0]= '0'; m_iDeptID = 0; m_dSalary = 0.0; } EmployeeRecord::EmployeeRecord(int ID, char *fName, char *lName, int dept, double sal) { // Copying the member varibles for First and Last name strcpy(m_sFirstName, fName); strcpy(m_sLastName, lName); // Copying other member variables m_iEmployeeID = ID; m_iDeptID = dept; m_dSalary = sal; fName = NULL; lName = NULL; } // Default Desctrutor EmployeeRecord::~EmployeeRecord() { // It was tested in sprint 1 } int EmployeeRecord:: getID() { /*cout <<" ====================================="<< endl; cout << " Testing data:" << endl; cout <<"====================================="<< endl; // Testing ID cout << "Testing getID(). Result = " << m_iEmployeeID << endl;*/ return m_iEmployeeID; } void EmployeeRecord::setID(int ID) { m_iEmployeeID = ID;
  • 20.
    /*cout <<"====================================="<< endl; cout<< " Setting data in Record:" << endl; cout <<"====================================="<< endl; cout << "ID = " << m_iEmployeeID << endl;*/ } void EmployeeRecord::getName(char *fName, char *lName) { //Copying member variables to parameters for name. strcpy(fName, m_sFirstName); strcpy(lName, m_sLastName); //cout << "Testing getName(). Result = " << m_sFirstName << " " << m_sLastName << endl; } void EmployeeRecord::setName(char *fName, char *lName) { strcpy(m_sFirstName, fName); strcpy(m_sLastName, lName); //cout << "First Name = " << m_sFirstName < //cout << "Last Name = " << m_sLastName < } int EmployeeRecord::getDept() { //Copying member variables to parameters for Dept ID return m_iDeptID; // testing getDept() //cout << "Testing getDept(). Result = " << d << endl; } void EmployeeRecord::setDept(int d) { m_iDeptID = d; // cout << "Dept = " << m_iDeptID << endl; } double EmployeeRecord::getSalary() {
  • 21.
    return m_dSalary; //cout <<"Testing getSalary(). Result = " << *sal << endl; //cout << endl << endl; } void EmployeeRecord::setSalary(double sal) { m_dSalary = sal; //cout << "Salary = $" << m_dSalary << " "; //cout << endl << endl; } void EmployeeRecord::printRecord() { // Print out Employee Record cout <<" Print Record " << endl cout << "ID: " << m_iEmployeeID << "t"; cout << "tName: " << m_sLastName << " , " << m_sFirstName << "t"; cout << "tDept: " << m_iDeptID << "t" << "t"; cout << "Salary: $" << m_dSalary << "t" << endl << endl; } --------------------------------------------------------------------------------- MainProgram.cpp #include #include "EmployeeRecord.h" #include using namespace std; int main() { int employee_id = 100, dept_id = 42, IDNum; char fname [32]; char lname [32]; double salary = 65000; double salaryp; double *p_salary ; salaryp = 65000; p_salary = &salaryp;
  • 22.
    //=================================================================== ======EmployeeRecord Testing=============================================================== =========================== EmployeeRecord *Employee1 =new EmployeeRecord(dept_id, fname, lname, dept_id, salary); Employee1->setID(employee_id); Employee1->setName("John", "Doe"); Employee1->setDept(42); Employee1->setSalary(salary); IDNum = Employee1-> getID(); Employee1->getName(fname,lname); Employee1->getDept(); Employee1->getSalary(); if(IDNum == employee_id) //Test Successful if((strcmp(fname, "John") == 0)&&(strcmp(lname,"Doe") == 0)) //Test Successful if(dept_id == 42) //Test Successful if(*p_salary == salary) //Test Successful Employee1->printRecord(); Employee1->setID(456); Employee1->setName("Jane", "Smith"); Employee1->setDept(45); Employee1->setSalary(4000); IDNum = Employee1-> getID(); Employee1->getName(fname,lname); Employee1->getDept(); Employee1->getSalary(); if(IDNum == 456) //Test Successful if((strcmp(fname, "Jane") == 0)&&(strcmp(lname,"Smith") == 0))
  • 23.
    //Test Successful if(dept_id ==45) //Test Successful if(*p_salary == 4000) Employee1->printRecord(); //=====================================Customer List Testing==================================== CustomerList *cl = Employee1 ->getCustomerList(); //----Testing the addStore, and printStoresInfo functions:-------------------------------------- Store *s = new Store(4567,"A Computer Store", "1111 Main St." ,"West City" ,"Alabama", "12345"); cl -> addStore(s); cl -> printStoresInfo(); //---------------------------------------------------------------------------------------------- //---Testing the get store function:--------- Store *s = NULL; s=cl->getStore(1234); if((s != NULL) && (s->getStoreID() == 1234)) s = cl->getStore(9999); if(s == NULL) //------------------------------------------- //---Testing updateStore Function: ---------------------------------------------------------------------- bool chk = cl->updateStore(1234, "Test Name", "1111 TestAddress", "TestCity", "TestState", "TestZip"); if(chk) cl ->printStoresInfo(); else cout << "updateStore test failed "; bool chk = cl -> updateStore(9999, "NoName", "1111 NoAddress", "NoCity", "NoState", "NoZip"); if(!chk) cout << "updateStore negative test passed. "; else cout << "updateStore negative test failed. ";
  • 24.
    //--------------------------------------------------------------------------------------------------------- //--Testing the removeStorefunction--------------- Store *s; s = cl ->removeStore(4567); if(s == NULL) Store *s = cl -> removeStore(4567); if(( s != NULL) && (s->getStoreID() == 4567)) cl -> printStoresInfo(); //------------------------------------------------ //---Testing the destructor----------------- EmployeeRecord *e = new EmployeeRecord(); delete e; //------------------------------------------ system ("pause"); return 0; }