online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <fstream> #include <vector> #include <string> #include <functional> #include <iterator> #include "Bus.h" #include "Coach.h" #include "Driver.h" #include "Staff.h" #include "Taxi.h" #include "Truck.h" /* // NOTE: No neeed for all of these classes (as long as you do not add any new functionality for them). You can just make yoru Brigadiers, Masters and Heads be of type Worker. class Brigadier: public Worker { public: void showworkerinfo() const override{ cout<<"|"<<'\t'<<fullname<<'\t'<<"|"<<'\t'<<age<<'\t'<<"|"<<'\t'<<experience<<'\t'<<"|"<<endl; } }; class Master: public Brigadier { }; class Head: public Brigadier { };*/ std::string readString(std::ifstream & file, char delim = '|') { std::string str; getline(file, str, delim); return std::move(str); } double readDouble(std::ifstream & file, char delim = '|', int size = 256) { char buffer[size]; file.getline(buffer, size, delim); return atof(buffer); } int readInt(std::ifstream & file, char delim = '|', int size = 256) { char buffer[size]; file.getline(buffer, size, delim); return atoi(buffer); } int main() { std::vector<Bus> buses; std::ifstream fbus("buses.txt"); if (fbus.is_open()) { while (!fbus.eof()) { std::string number = readString(fbus); std::string color = readString(fbus); std::string brand = readString(fbus); int year = readInt(fbus); float petrol = readDouble(fbus); int seat = readInt(fbus); std::string route = readString(fbus); buses.push_back(Bus(number, color, brand, year, petrol, seat, route)); } fbus.close(); } else { std::cout << std::endl << "Ôàéë, ùî ì³ñòèòü äàí³ ïðî ìàðøðóòí³ àâòîáóñè, íå çíàéäåíî." << std::endl; } std::vector<Driver> drivers; std::ifstream fdriver("drivers.txt"); if (fdriver.is_open()) { while (!fdriver.eof()) { std::string name = readString(fdriver); int age = readInt(fdriver); float experience = readDouble(fdriver); std::string licence = readString(fdriver); std::string category = readString(fdriver); drivers.push_back(Driver(name, age, experience, licence, category)); } fdriver.close(); } else { std::cout << std::endl << "Ôàéë, ùî ì³ñòèòü äàí³ ïðî âî䳿â, íå çíàéäåíî." << std::endl; } for (int i = 0; i < buses.size(); i++) { for (int j = 0; j < 3; j++) { buses[i].add_driver(&drivers[j]); } } std::cout << "Enter the car number "; std::string carnumber; std::cin >> carnumber; for (int i = 0; i < buses.size(); i++) { if (carnumber == buses[i].get_number()) { buses[i].show_drivers(); } } }
0098|червоний|Ikarus|1999|32.6|38|Івано-Франківськ-Львів| 4400|зелений|Hyundai|2020|16.3|56|Івано-Франківськ-Одеса| 8967|оранжевий|Daewoo|2017|12.3|24|Івано-Франківськ-Тернопіль| 7344|чорний|Mercedes-Benz|2001|36.5|84|Івано-Франківськ-Київ| 3434|білий|MAN|2003|23|40|Івано-Франківськ-Ужгород| 6834|рожевий|Volvo|2009|34.2|48|Івано-Франківськ-Харків| 4814|коричневий|Scania|2005|40.4|80|Івано-Франківськ-Чернігів| 7561|фіолетовий|VolgaBus|2013|40.1|76|Івано-Франківськ-Чернівці| 6522|синій|Ikarus|2007|11.5|20|Івано-Франківськ-Тернопіль| 9274|сірий|Mercedes-Benz|2017|46.4|54|Івано-Франківськ-Чернівці| 8887|чорний|Hyundai|2005|58.1|88|Івано-Франкцівськ-Луцьк| 5782|білий|Ikarus|2015|12.2|24|Івано-Франківськ-Дніпро| 3294|зелений|Daewoo|1995|66.3|54|Івано-Франківськ-Київ| 4323|червоний|Scania|1994|32.8|42|Івано-Фрнанківськ-Київ| 4314|фіолетовий|Ikarus|2000|16.2|30|Івано-Франківськ-Чернівці
Петренко Олексій|27|4.5|397530|D| Давиденко Денис|34|10.5|397531|D| Легін Олег|41|12.5|397532|D| Сегін Андрій|49|19.5|397533|D| Борбулевич Антон|29|5.5|397534|D| Винник Арсен|38|8.5|397535|B| Литвиненко Віктор|59|29.5|397536|B| Карпенко Андрій|45|25.5|397537|B| Глінський Борис|47|27.5|397538|B| Тарасенко Гліб|50|30.5|397539|B| Варварич Данило|58|35.5|397510|C| Шевчук Михайло|43|13.5|397511|C| Бойко Ярослав|33|13.5|397512|С| Якименко Віталій|56|16.5|397513|C| Гаврилюк Павло|39|19.5|397514|C
#pragma once #include <ostream> #include <string> class Worker { protected: std::string fullname; unsigned int age; float experience; virtual void printFields(std::ostream & output) const; public: Worker(std::string fullName, unsigned int age, float experience); std::string get_fullname() const; void set_fullname(std::string name); unsigned int get_age() const; void set_age(unsigned int years); float get_experience() const; void set_experience(float expr); void showInfo(std::ostream & output) const; };
#include "Worker.h" Worker::Worker(std::string fullName, unsigned int age, float experience) : fullname(fullName), age(age), experience(experience) { } std::string Worker::get_fullname() const { return fullname; } void Worker::set_fullname(std::string name) { fullname = name; } unsigned int Worker::get_age() const { return age; } void Worker::set_age(unsigned int years) { age = years; } float Worker::get_experience() const { return experience; } void Worker::set_experience(float expr) { experience = expr; } void Worker::printFields(std::ostream & output) const { output << "|\t" << fullname << "t|\t" << age << "\t|\t" << experience; }
#pragma once #include <string> #include "Worker.h" class Driver : public Worker { private: std::string licencenumber; std::string category; virtual void printFields(std::ostream & output) const override; public: Driver(std::string fullName, unsigned int age, float experience, std::string licenceNumber, std::string category); std::string get_licencenumber() const; void set_licencenumber(std::string licence); std::string get_category() const; void set_category(std::string cat); };
#include "Driver.h" #include <iostream> Driver::Driver(std::string fullName, unsigned int age, float experience, std::string licenceNumber, std::string category) : Worker(fullName, age, experience), licencenumber(licenceNumber), category(category) { } std::string Driver::get_licencenumber() const { return licencenumber; } void Driver::set_licencenumber(std::string licence) { licencenumber = licence; } std::string Driver::get_category() const { return category; } void Driver::set_category(std::string cat) { category = cat; } void Driver::printFields(std::ostream & output) const { Worker::printFields(output); output << "\t|\t" << licencenumber << "\t|\t" << category; }
#pragma once #include "Worker.h" class Staff : public Worker { protected: int category; virtual void printFields(std::ostream & output) const override; public: Staff(std::string fullName, unsigned int age, float experience, int category); void set_category(int cat); int get_category() const; };
#include "Staff.h" #include <iostream> Staff::Staff(std::string fullName, unsigned int age, float experience, int category) : Worker(fullName, age, experience), category(category) { } int Staff::get_category() const { return category; } void Staff::set_category(int cat) { category = cat; } void Staff::printFields(std::ostream & output) const { Worker::printFields(output); output << "\t|\t" << category; }
#pragma once #include "Staff.h" class Welder : public Staff { private: int level; virtual void printFields(std::ostream & output) const override; public: Welder(std::string fullName, unsigned int age, float experience, int category, int level); int get_level() const; void set_level(int lev); };
#include "Welder.h" Welder::Welder(std::string fullName, unsigned int age, float experience, int category, int level) : Staff(fullName, age, experience, category), level(level) { } int Welder::get_level() const { return level; } void Welder::set_level(int lev) { level = lev; } void Welder::printFields(std::ostream & output) const { Staff::printFields(output); output << "\t|\t" << level; }
#pragma once class Garage { private: float area; public: Garage(float area); float get_area() const; void set_area(float m2); };
#include "Garage.h" Garage::Garage(float area) : area(area) { } float Garage::get_area() const { return area; } void Garage::set_area(float m2) { area = m2; }
#pragma once #include <ostream> #include <string> #include <vector> #include "Driver.h" class Vehicle { protected: std::string number; std::string color; std::string brand; unsigned int year_of_production; float petrol; std::vector<Driver*> drivers; virtual void printFields(std::ostream & output) const; public: Vehicle(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol); std::string get_brand() const; void set_brand(std::string brandname); std::string get_color() const; void set_color(std::string colour); std::string get_number() const; void set_number(std::string nmb); unsigned int get_year_of_production() const; void set_year_of_production(unsigned int year); float get_petrol() const; void set_petrol(float ptrl); void add_driver(Driver * driver); void show_drivers() const; void showInfo(std::ostream & output) const; };
#include "Vehicle.h" #include <iostream> Vehicle::Vehicle(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol) : number(number), color(color), brand(brand), year_of_production(year_of_production), petrol(petrol) { } std::string Vehicle::get_brand() const { return brand; } void Vehicle::set_brand(std::string brandname) { brand = brandname; } std::string Vehicle::get_color() const { return color; } void Vehicle::set_color(std::string colour) { color = colour; } std::string Vehicle::get_number() const { return number; } void Vehicle::set_number(std::string nmb) { number = nmb; } unsigned int Vehicle::get_year_of_production() const { return year_of_production; } void Vehicle::set_year_of_production(unsigned int year) { year_of_production = year; } float Vehicle::get_petrol() const { return petrol; } void Vehicle::set_petrol(float ptrl) { petrol = ptrl; } void Vehicle::add_driver(Driver * driver) { drivers.push_back(driver); } void Vehicle::show_drivers() const { for (int i = 0; i < drivers.size(); i++) std::cout << "|\t" << drivers[i]->get_fullname() << "\t|\t" << drivers[i]->get_licencenumber() << "\t|" << std::endl; } void Vehicle::printFields(std::ostream & output) const { output << "|\t" << number << "\t|\t" << color << "\t|\t" << brand << "\t|\t" << year_of_production << "\t|\t" << petrol; } void Vehicle::showInfo(std::ostream & output) const { printFields(output); output << "\t|" << std::endl; }
#pragma once #include "Vehicle.h" class PublicTransport : public Vehicle { protected: unsigned int passengerseats; virtual void printFields(std::ostream & output) const; public: PublicTransport(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats); unsigned int get_passengerseats() const; void set_passengersseats(unsigned int seats); };
#include "PublicTransport.h" PublicTransport::PublicTransport(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats) : Vehicle(number, color, brand, year_of_production, petrol), passengerseats(passangerSeats) { } void PublicTransport::set_passengersseats(unsigned int seats) { passengerseats = seats; } unsigned int PublicTransport::get_passengerseats() const { return passengerseats; } void PublicTransport::printFields(std::ostream & output) const { Vehicle::printFields(output); output << "\t|\t" << passengerseats; }
#pragma once #include "PublicTransport.h" class Bus: public PublicTransport { private: std::string route; virtual void printFields(std::ostream & output) const; public: Bus(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, std::string route); void set_route(std::string rout); std::string get_route() const; };
#include "Bus.h" #include <iostream> Bus::Bus(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, std::string route) : PublicTransport(number, color, brand, year_of_production, petrol, passangerSeats), route(route) { } std::string Bus::get_route() const { return route; } void Bus::set_route(std::string rout) { route = rout; } void Bus::printFields(std::ostream & output) const { PublicTransport::printFields(output); output << "\t|\t" << route; }
#pragma once #include "PublicTransport.h" class Taxi : public PublicTransport { private: float kg; virtual void printFields(std::ostream & output) const; public: Taxi(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, float kg); void set_kg(float kh); float get_kg() const; };
#include "Taxi.h" Taxi::Taxi(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, float kg) : PublicTransport(number, color, brand, year_of_production, petrol, passangerSeats), kg(kg) { } float Taxi::get_kg() const { return kg; } void Taxi::set_kg(float kh) { kg = kh; } void Taxi::printFields(std::ostream & output) const { PublicTransport::printFields(output); output << "\t|\t" << kg; };
#pragma once #include "PublicTransport.h" class Coach : public PublicTransport { private: float moneyperhour; virtual void printFields(std::ostream & output) const; public: Coach(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, float moneyPerHour); void set_moneyperhour(float money); float get_moneyperhour() const; };
#include "Coach.h" Coach::Coach(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, int passangerSeats, float moneyPerHour) : PublicTransport(number, color, brand, year_of_production, petrol, passangerSeats), moneyperhour(moneyPerHour) { } float Coach::get_moneyperhour() const { return moneyperhour; } void Coach::set_moneyperhour(float money) { moneyperhour = money; } void Coach::printFields(std::ostream & output) const { PublicTransport::printFields(output); output << "\t|\t" << moneyperhour; };
#pragma once #include "Vehicle.h" class Truck : public Vehicle { protected: float tons; virtual void printFields(std::ostream & output) const; public: Truck(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, float tons); void set_tons(float ton); float get_tons() const; };
#include "Truck.h" Truck::Truck(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, float tons) : Vehicle(number, color, brand, year_of_production, petrol), tons(tons) { } void Truck::set_tons(float ton) { tons = ton; } float Truck::get_tons() const { return tons; } void Truck::printFields(std::ostream & output) const { Vehicle::printFields(output); output << "\t|\t" << tons; };
#pragma once #include "Truck.h" class AuxiliaryTransport : public Truck { private: float length; float width; virtual void printFields(std::ostream & output) const; public: AuxiliaryTransport(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, float tons, float length, float width); float get_length() const; void set_length(float m); float get_width() const; void set_width(float m); };
#include "AuxiliaryTransport.h" AuxiliaryTransport::AuxiliaryTransport(std::string number, std::string color, std::string brand, unsigned int year_of_production, float petrol, float tons, float length, float width) : Truck(number, color, brand, year_of_production, petrol, tons), length(length), width(width) { } float AuxiliaryTransport::get_length() const { return length; } void AuxiliaryTransport::set_length(float m) { length = m; } float AuxiliaryTransport::get_width() const { return width; } void AuxiliaryTransport::set_width(float m) { width = m; } void AuxiliaryTransport::printFields(std::ostream & output) const { Truck::printFields(output); output << "\t|\t" << length << "\t|\t" << width; };

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue