-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2.42.cpp
More file actions
77 lines (75 loc) · 2.45 KB
/
2.42.cpp
File metadata and controls
77 lines (75 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include "Sales_data.h"
int main(int argc, char** argv) {
if (argc < 2) {
std::cout << "Add argument for previous exercise (1.20/1.21/1.22/1.23)" << std::endl;
return -1;
}
std::string exc = argv[1];
if (exc == "1.20") {
// 1.20
Sales_data data1;
double price = 0.0;
while (std::cin >> data1.bookNo >> data1.units_sold >> price) {
data1.revenue = data1.units_sold * price;
std::cout << data1.bookNo << " " << data1.units_sold << " " << data1.revenue << " " << price << std::endl;
}
} else if (exc == "1.21") {
// 1.21
Sales_data data1;
double price = 0.0;
if (std::cin >> data1.bookNo >> data1.units_sold >> price) {
data1.revenue = data1.units_sold * price;
unsigned totalCnt = data1.units_sold;
double totalRevenue = data1.revenue;
Sales_data data2;
if (std::cin >> data2.bookNo >> data2.units_sold >> price) {
data2.revenue = data2.units_sold * price;
totalCnt += data2.units_sold;
totalRevenue += data2.revenue;
double avg = totalRevenue / totalCnt;
if (data1.bookNo == data2.bookNo) {
std::cout << data1.bookNo << " " << data1.units_sold + data2.units_sold << " " << data1.revenue + data2.revenue << " " << avg << std::endl;
}
}
}
} else if (exc == "1.22") {
// 1.22
Sales_data sum, data1;
double price = 0.0;
if (std::cin >> sum.bookNo >> sum.units_sold >> price) {
sum.revenue = sum.units_sold * price;
unsigned totalCnt = sum.units_sold;
double totalRevenue = sum.revenue;
while (std::cin >> data1.bookNo >> data1.units_sold >> price) {
data1.revenue = data1.units_sold * price;
totalCnt += data1.units_sold;
totalRevenue += data1.revenue;
sum.units_sold += data1.units_sold;
sum.revenue += data1.revenue;
}
double avg = totalRevenue / totalCnt;
std::cout << sum.units_sold << " " << sum.revenue << " " << avg << std::endl;
}
} else if (exc == "1.23") {
// 1.23
Sales_data book1, book2;
double price;
if (std::cin >> book1.bookNo >> book1.units_sold >> price) {
book1.revenue = book1.units_sold * price;
unsigned cnt = 1;
while (std::cin >> book2.bookNo >> book1.units_sold >> price) {
book2.revenue = book2.units_sold * price;
if (book1.bookNo == book2.bookNo) {
++cnt;
} else {
std::cout << cnt << " transactions for " << book1.bookNo << std::endl;
book1.bookNo = book2.bookNo;
cnt = 1;
}
}
std::cout << cnt << " transactions for " << book1.bookNo << std::endl;
}
}
return 0;
}