// Declaration of the class Contract - with a small set of strings
// File: contrct6.h
// Used in Chapter 10
#ifndef CONTRACT_H
#define CONTRACT_H
class Contract
{public:
Contract(int ID, int sqFootage, int numDesks, int numDays,
char* name,
char* oStreetAddress = "", char* oCity = "",
char* oStat = "", char* oZip = "");
/*
Purpose: to instantiate (create) an instance of the class 'contract'.
Goal: a new instance of class 'contract' now exists
Receives: ID, Square Footage, Number of Desks, Number of Days (all Integers)
name, oStreetAddress, oCity, oState, oZip, oCountry (all strings)
Returns: NONE
*/
Contract();
/*
Purpose: to instantiate (create) an instance of the class 'contract' with
default values.
Goal: a new instance of class 'contract' now exists
Receives: NONE
Returns: NONE
*/
Contract(const Contract& c);
// The Copy Constructor - used to copy one instance to another, for example,
// when an instance is passed as a parameter.
Contract:: ~Contract(); // destructor
void CopyContract(Contract c);
void ChangeSquareFootage(int sqFootage);
/*
Purpose: To change the value of the square footage data member
Goal: The square footage data member has a new value
Receives The New Square Footage (an integer)
Returns: NONE
*/
void ChangeNumDesks( int numDesks);
// Design comments go here.
void ChangeNumDays( int numDays);
// Design comments go here.
void ChangeID( int ID);
// Design comments go here.
int ProvideSquareFootage();
/*
Purpose: To Return the Square Footage of an Office
Goal: The Square Footage is returned
Receives: NONE
Returns the Square Footage (an integer)
*/
int ProvideNumberOfDesks();
// Design comments go here.
int ProvideNumberOfDays();
// Design comments go here.
int ProvideID();
// Design comments go here.
double ProvidePerWeekCharge ();
/*
Purpose: To calculate and return the per week charge for an office
Goal: The per week charge is returned
Receives: Square Footage, Number of Days Per Week, Number of Desks (all integers)
Returns: The Per Week Charge (a double)
*/
// All the Provide and Change functions below follow the same format
// so we will skip the analysis
char* ProvideContracteeName();
void ChangeContracteeName(char* name);
char* ProvideOfficeStreetAddress();
void ChangeOfficeStreetAddress(char* streetAddr);
char* ProvideOfficeCity();
void ChangeOfficeCity(char* city);
char* ProvideOfficeState();
void ChangeOfficeState(char* state);
char* ProvideOfficeZip();
void ChangeOfficeZip(char* zip);
private:
int contractID;
int squareFootage;
int numberOfDaysPerWeek;
int numberOfDesks;
char* contracteeName;
char* officeStreetAddress;
// most complete addresses include space for a 2nd street address
// We will skip it here for simplicity
char* officeCity;
char* officeState;
char* officeZip;
};
#endif