|
| 1 | +// |
| 2 | +// Created by zing on 4/28/2020. |
| 3 | +// |
| 4 | + |
| 5 | +#ifndef LEARN_CPP_EXERCISE2_42_H |
| 6 | +#define LEARN_CPP_EXERCISE2_42_H |
| 7 | +#include <string> |
| 8 | +#include <iostream> |
| 9 | + |
| 10 | +struct Sales_data |
| 11 | +{ |
| 12 | + std::string bookNo; |
| 13 | + unsigned units_sold = 0; |
| 14 | + double revenue = 0.0; |
| 15 | + |
| 16 | + void CalcRevenue(double price); |
| 17 | + double CalcAveragePrice(); |
| 18 | + void SetData(Sales_data data); |
| 19 | + void AddData(Sales_data data); |
| 20 | + void Print(); |
| 21 | +}; |
| 22 | + |
| 23 | +void Sales_data::CalcRevenue(double price) |
| 24 | +{ |
| 25 | + revenue = units_sold * price; |
| 26 | +} |
| 27 | + |
| 28 | +void Sales_data::SetData(Sales_data data) |
| 29 | +{ |
| 30 | + bookNo = data.bookNo; |
| 31 | + units_sold = data.units_sold; |
| 32 | + revenue = data.revenue; |
| 33 | +} |
| 34 | + |
| 35 | +void Sales_data::AddData(Sales_data data) |
| 36 | +{ |
| 37 | + if (bookNo != data.bookNo) return; |
| 38 | + units_sold += data.units_sold; |
| 39 | + revenue += data.revenue; |
| 40 | +} |
| 41 | + |
| 42 | +double Sales_data::CalcAveragePrice() |
| 43 | +{ |
| 44 | + if (units_sold != 0) |
| 45 | + return revenue / units_sold; |
| 46 | + else |
| 47 | + return 0.0; |
| 48 | +} |
| 49 | + |
| 50 | +void Sales_data::Print() |
| 51 | +{ |
| 52 | + std::cout << bookNo << " " << units_sold << " " << revenue << " "; |
| 53 | + double averagePrice = CalcAveragePrice(); |
| 54 | + if (averagePrice != 0.0) |
| 55 | + std::cout << averagePrice << std::endl; |
| 56 | + else |
| 57 | + std::cout << "(no sales)" << std::endl; |
| 58 | +} |
| 59 | +#endif //LEARN_CPP_EXERCISE2_42_H |
0 commit comments