// Defintions for the class Contract
// File: contrct6.cpp
// Used in chapter 10
#include <string.h>
#include "contrct6.h"
Contract::Contract(int ID, int sqFootage, int numDesks, int numDays,
char* name, char* oStreetAddr, char* oCity,
char* oState, char* oZip)
{ contractID = ID;
squareFootage = sqFootage;
numberOfDesks = numDesks;
numberOfDaysPerWeek = numDays;
int len = strlen(name);
contracteeName = new char[len + 1];
strcpy(contracteeName, name);
len = strlen(oStreetAddr);
officeStreetAddress = new char[len + 1];
strcpy(officeStreetAddress,oStreetAddr);
len = strlen(oCity);
officeCity = new char[len + 1];
strcpy(officeCity,oCity);
len = strlen(oState);
officeState = new char[len + 1];
strcpy(officeState,oState);
len = strlen(oZip);
officeZip = new char[len + 1];
strcpy(officeZip,oZip);
}
Contract::Contract()
{ contractID = 0;
squareFootage = 0;
numberOfDesks = 0;
numberOfDaysPerWeek = 0;
contracteeName = new char[1];
strcpy(contracteeName, "");
officeStreetAddress = new char[1];
strcpy(officeStreetAddress,"");
officeCity = new char[1];
strcpy(officeCity,"");
officeState = new char[1];
strcpy(officeState,"");
officeZip = new char[1];
strcpy(officeZip,"");
}
Contract :: Contract(const Contract& c)
{ int len = strlen(c.contracteeName);
contracteeName = new char[len + 1];
strcpy(contracteeName, c.contracteeName);
len = strlen(c.officeStreetAddress);
officeStreetAddress = new char[len + 1];
strcpy(officeStreetAddress,c.officeStreetAddress);
len = strlen(c.officeCity);
officeCity = new char[len + 1];
strcpy(officeCity,c.officeCity);
len = strlen(c.officeState);
officeState = new char[len + 1];
strcpy(officeState,c.officeState);
len = strlen(c.officeZip);
officeZip = new char[len + 1];
strcpy(officeZip,c.officeZip);
contractID = c.contractID;
squareFootage = c. squareFootage;
numberOfDaysPerWeek = c.numberOfDaysPerWeek;
numberOfDesks = c.numberOfDesks;
}
void Contract :: CopyContract(Contract c)
{ int len = strlen(c.contracteeName);
contracteeName = new char[len + 1];
strcpy(contracteeName, c.contracteeName);
len = strlen(c.officeStreetAddress);
officeStreetAddress = new char[len + 1];
strcpy(officeStreetAddress,c.officeStreetAddress);
len = strlen(c.officeCity);
officeCity = new char[len + 1];
strcpy(officeCity,c.officeCity);
len = strlen(c.officeState);
officeState = new char[len + 1];
strcpy(officeState,c.officeState);
len = strlen(c.officeZip);
officeZip = new char[len + 1];
strcpy(officeZip,c.officeZip);
contractID = c.contractID;
squareFootage = c. squareFootage;
numberOfDaysPerWeek = c.numberOfDaysPerWeek;
numberOfDesks = c.numberOfDesks;
}
Contract :: ~Contract()
{ delete [] contracteeName;
delete [] officeStreetAddress;
delete [] officeCity;
delete [] officeState;
delete [] officeZip;
}
void Contract::ChangeSquareFootage(int sqFootage)
{ squareFootage = sqFootage;
}
void Contract::ChangeNumDesks( int numDesks)
{ numberOfDesks = numDesks;
}
void Contract::ChangeNumDays( int numDays)
{ numberOfDaysPerWeek = numDays;
}
void Contract::ChangeID( int ID)
{ contractID = ID;
}
int Contract::ProvideSquareFootage()
{ return squareFootage;
}
int Contract::ProvideNumberOfDesks()
{ return numberOfDesks;
}
int Contract::ProvideNumberOfDays()
{ return numberOfDaysPerWeek;
}
int Contract::ProvideID()
{ return contractID;
}
double Contract::ProvidePerWeekCharge ()
{ double perWeekCharge;
perWeekCharge = numberOfDaysPerWeek * (0.05 * squareFootage + 5 * numberOfDesks);
return perWeekCharge;
}
char* Contract:: ProvideContracteeName()
{ return contracteeName;
}
void Contract:: ChangeContracteeName(char* name)
{ delete [] contracteeName; // delete the whole string array
int len = strlen(name);
contracteeName = new char[len + 1]; // don't forget the null char
strcpy(contracteeName, name);
}
char* Contract:: ProvideOfficeStreetAddress()
{ return officeStreetAddress;
}
void Contract:: ChangeOfficeStreetAddress(char* streetAddr)
{ delete [] officeStreetAddress; // delete the whole string array
int len = strlen(streetAddr);
officeStreetAddress = new char[len + 1]; // don't forget the null char
strcpy(officeStreetAddress, streetAddr);
}
char* Contract:: ProvideOfficeCity()
{ return officeCity;
}
void Contract:: ChangeOfficeCity(char* city)
{ delete [] officeCity; // delete the whole string array
int len = strlen(city);
officeCity = new char[len + 1]; // don't forget the null char
strcpy(officeCity, city);
}
char* Contract:: ProvideOfficeState()
{ return officeState;
}
void Contract:: ChangeOfficeState(char* state)
{ delete [] officeState; // delete the whole string array
int len = strlen(state);
officeState = new char[len + 1]; // don't forget the null char
strcpy(officeState, state);
}
char* Contract:: ProvideOfficeZip()
{ return officeZip;
}
void Contract:: ChangeOfficeZip(char* zip)
{ delete [] officeZip; // delete the whole string array
int len = strlen(zip);
officeZip = new char[len + 1]; // don't forget the null char
strcpy(officeZip, zip);
}