-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAirline.cpp
More file actions
58 lines (52 loc) · 1.57 KB
/
Copy pathAirline.cpp
File metadata and controls
58 lines (52 loc) · 1.57 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
//Rytham Dawar
//Student ID: 921313627
#include <iostream>
using namespace std;
#include "Airline.h"
Airline::Airline(int nA321, int nB777, int nB787):nAirplanes(nA321+nB777+nB787){
airplaneList = new Airplane*[nAirplanes];
int i = 0;
for(int j = 0; j < nA321; j++){
airplaneList[i] = new Airplane(10);
cout << "Airplane " << i+1 << " maximum load " << airplaneList[i]->maxLoad() << endl;
i++;
}
for(int j = nA321; j < (nB777 + nA321); j++){
airplaneList[i] = new Airplane(32);
cout << "Airplane " << i+1 << " maximum load " << airplaneList[i]->maxLoad() << endl;
i++;
}
for(int j = (nB777 + nA321); j < nAirplanes; j++){
airplaneList[i] = new Airplane(40);
cout << "Airplane " << i+1 << " maximum load " << airplaneList[i]->maxLoad() << endl;
i++;
}
}
Airline::~Airline(void){
for(int i = 0; i < nAirplanes; i++){
cout << "deallocating airplane " << i+1 << endl;
delete airplaneList[i];
}
delete airplaneList;
}
void Airline::addShipment(int size){
if(size < 0){
throw invalid_argument("must be positive");
}else{
for(int i = 0; i < nAirplanes; i++){
if(airplaneList[i]->addContainers(size)){
cout << size << " containers added to airplane " << (i + 1) << endl;
return;
}
}
cout << " could not fit " << size << " containers" << endl;
}
}
void Airline::printSummary(void) const{
cout << "Summary:" << endl;
for(int i = 0; i < nAirplanes; i++){
if(airplaneList[i]->currentLoad() != 0){
cout << "airplane " << i+1 << " " << airplaneList[i]->currentLoad() << "/" << airplaneList[i]->maxLoad() << endl;
}
}
}