Tuesday, January 30, 2018

Programming Challenge 15.7 - PersonData and CustomerData Classes

Example Files: PersonCustomerData.7z


PersonData.h


#ifndef PERSON_DATA_H_
#define PERSON_DATA_H_

#include <string>
using std::string;

class PersonData
{
    private:
        string lastName;
        string firstName;
        string address;
        string city;
        string state;
        string zip;
        string phone;

    public:
        // Constructor
        PersonData()
        {
            lastName = " ";
            firstName = " ";
            address = " ";
            city = " ";
            state = " ";
            zip = " ";
            phone = " ";
        }

        // Parameterized constructor
        PersonData(string lName, string fName, string addr,
                      string cty, string st, string z, string telNum)
        {
            set(lName, fName, addr, cty, st, z, telNum);
        }

        // Mutator function
        // Sets the attribute data
        virtual void set(string lName, string fName, string addr, string cty,
                              string st, string z, string telNum)
        {
            lastName = lName;
            firstName = fName;
            address = addr;
            city = cty;
            state = st;
            zip = z;
            phone = telNum;
        }

        // Accessor functions
        string getLastName() const
        { return lastName; }

        string getFirstName() const
        { return firstName; }

        string getAddress() const
        { return address; }

        string getCity() const
        { return city; }

        string getState() const
        { return state; }

        string getZip() const
        { return zip; }

        string getPhone() const
        { return phone; }
};

#endif

CustomerData.h


#ifndef CUSTOMER_DATA_H_
#define CUSTOMER_DATA_H_

#include "PersonData.h"

// CustomerData class derived from PersonData class
class CustomerData : public PersonData
{
    private:
        int  customerNumber;
        bool mailingList;

    public:
        // Constructor
        CustomerData()
        {
            customerNumber = 0;
            mailingList = false;
        }

        // Parameterized Constructor
        CustomerData(string lName, string fName, string addr, string cty, string st,
                         string zipNum, string telNum, int custID, bool onList) :
        PersonData(lName, fName, addr, cty, st, zipNum, telNum)
        {
            set(custID, onList);
        }

        // Mutator function
        // Sets the attribute data
        void CustomerData::set(int custID, bool onList)
        {
            customerNumber = custID;
            mailingList = onList;
        }

        // Accessor functions
        int getCustomerNumber() const
        { return customerNumber; }

        bool getMailingList() const
        { return mailingList; }
};

#endif

CustomerDataDm.cpp


#include "CustomerData.h"

#include <array>
using std::array;

#include <iostream>
using std::cin;
using std::cout;

void printCustData(const array<CustomerData, 3> &pData);

int main()
{
    // Create an array of 3 CustomerData objects
    array<CustomerData, 3> pData{ CustomerData("Yamashita", "Tatsuro", "1 Chome-10 Haibaraakanedai",
                                                              "Uda-Shi", "Nara", "633-0256", "08984-1525", 15, false),
                                             CustomerData("Wang", "Kai", "2 Chome-7 Haibaraharumigaoka",
                                                              "Uda-Shi", "Nara", "633-0255", "08984-3256", 632, true),
                                             CustomerData("Hayakawa", "Keiko", "1 Chome-13-9 Haibaraakanedai",
                                                              "Uda-Shi", "Nara", "633-0257", "08984-4278", 947, true) };

    cout << "SunQ CITY SHOPPING MALL - CUSTOMER DATABASE\n\n";

    printCustData(pData);

    cout << "SunQ CITY SHOPPING MALL - Shopping Happiness!";

    cin.get();
    cin.ignore();
    return 0;
}

/* **********************************************************
            void printCustData() : const array &obj
    This function accepts an array of CustomerData objects. It
    outputs the customer information to screen.
   ********************************************************** */

void printCustData(const array<CustomerData, 3> &pData)
{
    for (auto cData : pData)
    {
        cout << "Customer ID:     " << cData.getCustomerNumber() << "\n"
              << "On Mailing List: ";

        cData.getMailingList() == true ? cout << "Yes\n\n" : cout << "No\n\n";

        cout << "Last Name:       " << cData.getLastName() << "\n"
              << "First Name:      " << cData.getFirstName() << "\n"
              << "Address:         " << cData.getAddress() << "\n"
              << "City:            " << cData.getCity() << "\n"
              << "State:           " << cData.getState() << "\n"
              << "ZIP:             " << cData.getZip() << "\n"
              << "Phone Number:    " << cData.getPhone() << "\n";
        cout << "\n---------------------------------------------" << "\n\n";
    }
}

Example Output:



No comments:

Post a Comment