(C++) Construct a Customer class that keeps track of a Customer purchases, credit line, and total balance. An object in the Customer class will have a name, an address, a credit limit (set to $1500) as well as other data fields. Declare and define data fields, include a constructor to populate the data fields, and implement member functions such that you can perform the following:
• Extract data members if needed.
• Keep track of number of sales, and total balance.
• Specify if a new purchase would exceed the credit limit. If the cost of an item to be purchased, added to the unpaid balance, surpasses the Customer’s credit limit , do not allow the sale and output “Not enough credit limit.Purchase cannot be completed.” . Otherwise show “Purchase successful.”
Write a program that tests the features of the Customer class. Figure 1 shows a sample output. You can use the following pseudocode as a template:
#include header files
using namespace std;
class Customer
{public:
Customer(parameters);
string get_name() const;
double get_credit_limit() const;
double get_total_balance() const;
int get_num_purchases() const;
Private:
//data field};
//definition of constructor and member functions
int main()
{
construct Customer object
cout << “Customer: ” << Customer name << endl;
cout << “Credit Limit: ” << Customer credit imit << endl;
//while loop
purchase value?
cin >> val;
c.add_purchase (val);
Purchase another item (y/n)?
cout << “The total of ” << number of purchases << “purchase(s) is $ ” << total balance << endl;
return 0;
}
Expert Answer
#include <iostream>
using namespace std;
class Customer
{
public:
Customer(string name, double creditLimit);
string get_name() const;
double get_credit_limit() const;
double get_total_balance() const;
int get_num_purchases() const;
void add_purchase (double val);
private:
string name;
double credit_limit;
double total_balance;
int num_purchases;
};
Customer::Customer(string name, double credit_limit) {
this->name = name;
this->credit_limit = credit_limit;
this->total_balance = 0;
this->num_purchases = 0;
}
string Customer::get_name() const{
return name;
}
double Customer::get_credit_limit() const{
return credit_limit;
}
double Customer::get_total_balance() const {
return total_balance;
}
int Customer::get_num_purchases() const {
return num_purchases;
}
void Customer::add_purchase (double val) {
if (total_balance + val > credit_limit) {
cout << “Limit exceeded. Cannot purchase” << endl;
return;
}
total_balance = total_balance + val;
num_purchases++;
}
int main()
{
Customer c(“Alpha”, 30000);
string name;
double credit_limit;
cout << “Customer: ” << c.get_name() << endl;
cout << “Credit Limit: ” << c.get_credit_limit() << endl;
char ch = ‘y’;
while (ch == ‘y’) {
cout << “enter purchase value: “;
double val;
cin >> val;
c.add_purchase (val);
cout << “Purchase another item (y/n)? “;
cin >> ch;
}
cout << “The total of ” << c.get_num_purchases() << ” purchase(s) is $” << c.get_total_balance() << endl;
return 0;
}