Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include "Car.h"
- #include "Plane.h"
- #include "Rocket.h"
- #include "Vehicle.h"
- using namespace std;
- void setEngine(Engine &engine, string engineManufacturer, string engineType,
- double power, int rpm) {
- engine.engineManufacturer = engineManufacturer;
- engine.engineType = engineType;
- engine.power = power;
- engine.rpm = rpm;
- }
- void readCars(Car *cars, ifstream &inFile, int numOfCars) {
- for (int i=0; i < numOfCars; i++) {
- string manufacturer;
- inFile >> manufacturer;
- string model;
- inFile >> model;
- int numOfWheels;
- inFile >> numOfWheels;
- //
- string engineType;
- inFile >> engineType;
- string engineManufacturer;
- inFile >> engineManufacturer;
- double power;
- inFile >> power;
- int rpm;
- inFile >> rpm;
- setEngine(cars->getEngine(), engineType, engineManufacturer, power, rpm);
- //
- double topSpeed;
- inFile >> topSpeed;
- string color;
- inFile >> color;
- int numOfDoors;
- inFile >> numOfDoors;
- double mileage;
- inFile >> mileage;
- int maxPassengers;
- inFile >> maxPassengers;
- cars->setManufacturer(manufacturer);
- cars->setModel(model);
- cars->setNumOfWheels(numOfWheels);
- cars->setTopSpeed(topSpeed);
- cars->setColor(color);
- cars->setNumOfDoors(numOfDoors);
- cars->setMileage(mileage);
- cars->setMaxPassengers(maxPassengers);
- }
- }
- void readRockets(Rocket *rockets, ifstream &inFile, int numOfRockets) {
- for (int i=0; i < numOfRockets; i++){
- int numOfEngines;
- inFile >> numOfEngines;
- //
- string engineType;
- inFile >> engineType;
- string engineManufacturer;
- inFile >> engineManufacturer;
- double power;
- inFile >> power;
- int rpm;
- inFile >> rpm;
- setEngine(rockets->getEngine(), engineType, engineManufacturer, power, rpm);
- //
- double topSpeed;
- inFile >> topSpeed;
- int numOfWheels;
- inFile >> numOfWheels;
- bool isSelfLanding;
- inFile >> isSelfLanding;
- double cargoLimit;
- inFile >> cargoLimit;
- rockets->setNumOfEngines(numOfEngines);
- rockets->setTopSpeed(topSpeed);
- rockets->setNumOfWheels(numOfWheels);
- rockets->setIsSelfLanding(isSelfLanding);
- rockets->setCargoLimit(cargoLimit);
- }
- }
- void readPlanes(Plane *planes, ifstream &inFile, int numOfPlanes) {
- for (int i=0; i < numOfPlanes; i++) {
- string planeType;
- inFile >> planeType;
- int numOfEngines;
- inFile >> numOfEngines;
- //
- string engineType;
- inFile >> engineType;
- string engineManufacturer;
- inFile >> engineManufacturer;
- double power;
- inFile >> power;
- int rpm;
- inFile >> rpm;
- setEngine(planes->getEngine(), engineType, engineManufacturer, power, rpm);
- //
- double topSpeed;
- inFile >> topSpeed;
- int numOfWheels;
- inFile >> numOfWheels;
- double wingspan;
- inFile >> wingspan;
- string businessType;
- inFile >> businessType;
- int maxOccupancy;
- inFile >> maxOccupancy;
- planes->setPlaneType(planeType);
- planes->setNumOfEngines(numOfEngines);
- planes->setNumOfWheels(numOfWheels);
- planes->setTopSpeed(topSpeed);
- planes->setWingspan(wingspan);
- planes->setBusinessType(businessType);
- planes->setMaxOccupancy(maxOccupancy);
- }
- }
- void printVehicles(Vehicle **vehicles, Car* cars, Plane* planes, Rocket* rockets, int numOfTypes[3]) {
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < numOfTypes[i]; j++) {
- vehicles[i][j].print();
- }
- }
- }
- void deleteVehicles(Vehicle **vehicles, Car *cars, Plane *planes, Rocket *rockets) {
- }
- int main(int argc, char* argv[]) {
- ifstream inFile;
- string fileName = argv[1];
- int numOfCars = atoi(argv[2]);
- int numOfPlanes = atoi(argv[3]);
- int numOfRockets = atoi(argv[4]);
- int numOfTypes[] = {numOfCars, numOfPlanes, numOfRockets};
- inFile.open(fileName);
- if (inFile.fail()) {
- cout << "Error! File does not exist." << endl;
- return 1;
- }
- // Create 3 objects
- Car *cars = new Car[numOfCars];
- Plane *planes = new Plane[numOfPlanes];
- Rocket *rockets = new Rocket[numOfRockets];
- // Call function(s) to read the input file
- readCars(cars, inFile, numOfCars);
- readPlanes(planes, inFile, numOfPlanes);
- readRockets(rockets, inFile, numOfRockets);
- inFile.close();
- // Create double pointer vehicle to store all vehicle types
- Vehicle **vehicles = new Vehicle *[3];
- // Print function will be called from child class (not Base Class)
- printVehicles(vehicles, cars, planes, rockets, numOfTypes);
- // Clean up new memory allocation after using
- deleteVehicles(vehicles, cars, planes, rockets);
- return 0;
- }
Add Comment
Please, Sign In to add comment