카테고리 없음

Exercise 14.1: More classes

07514673 2021. 12. 20. 14:53

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;
}