Exercise 14.1: More classes
Exercise 14.1: More classes
Here is the problem specification:
Create two classes. The first, named Sale, holds data for a sales transaction. Its private data members include the day of the month, amount of the sale, and the salesperson's ID number. The second class, named Salesperson, holds data for a salesperson, and its private data members include each salesperson's ID number and last name. Each class includes a constructor to which you can pass the field values. Create a friend function named display()that is a friend of both classes and displays the date of sale, the amount, and the salesperson ID and name.
Write a short main()demonstration program to test your classes and friend function.
Sample Run
Sale #103 on 12/25/2016 for $559.95 sold by #103 Woods
Sale #106 on 11/15/2016 for $359.95 sold by #106 Hansen
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Sale;
class Salesperson;
class Sale {
public:
friend void display(Sale sale, Salesperson salesperson);
Sale(string d, double a, int s) {
date = d;
amountOfSale = a;
salespersonID = s;
}
Sale() {
date = "0/0/00";
amountOfSale = -1.0;
salespersonID = -1;
}
int GetSalespersonID();
string GetDate();
double GetAmountOfSale();
void SetSalespersonID(int id);
void SetDate(string d);
void SetAmountOfSale(double price);
private:
string date;
double amountOfSale;
int salespersonID;
};
int Sale::GetSalespersonID() {
return salespersonID;
}
string Sale::GetDate() {
return date;
}
double Sale::GetAmountOfSale() {
return amountOfSale;
}
void Sale::SetSalespersonID(int id) {
salespersonID = id;
}
void Sale::SetDate(string d) {
date = date;
}
void Sale::SetAmountOfSale(double price) {
amountOfSale = price;
}
class Salesperson {
public:
friend void display(Sale sale, Salesperson salesperson);
Salesperson(int id, string l) {
idNumber = id;
lastName = l;
}
Salesperson() {
idNumber = -1;
lastName = "N/A";
}
int GetIdNumber();
string GetLastName();
void SetIdNumber(int id);
void SetLastName(string name);
private:
int idNumber;
string lastName;
};
int Salesperson::GetIdNumber() {
return idNumber;
}
string Salesperson::GetLastName() {
return lastName;
}
void Salesperson::SetIdNumber(int id) {
idNumber = id;
}
void Salesperson::SetLastName(string name) {
lastName = name;
}
//Sale #106 on 11 / 15 / 2016 for $359.95 sold by #106 Hansen
void display(Sale sale, Salesperson salesperson) {
cout << "Sale #" << sale.GetSalespersonID() << " on " << sale.GetDate() << "
for $" << sale.GetAmountOfSale() << " sold by #" << salesperson.GetIdNumber() << "
" << salesperson.GetLastName() << endl;
}
int main()
{
Sale sale1("11/25/2016", 559.95, 103);
Sale sale2("11/15/2016", 359.95, 106);
Salesperson salesperson1(103, "Woods");
Salesperson salesperson2(106, "Hansen");
display(sale1, salesperson1);
display(sale2, salesperson2);
return 0;
}