#include #include #include class Vehicle { private: char make[40]; char model[40]; char lp[7]; char color[10]; int doors; int makeyear; int hp; int cylinders; int enginvol; public: //Constructors Vehicle(); Vehicle(char[],char[],char[],char[],int,int,int,int,int); //Get methods char* getMake(); char* getModel(); char* getLp(); char* getColor(); int getDoors(); int getMakeyear(); int getHp(); int getCylinders(); int getEnginvol(); //Set methods tou programmatisti void setVehicle(char[],char[],char[],char[],int,int,int,int,int); void setMake(char[]); void setModel(char[]); void setLp(char[]); void setColor(char[]); void setDoors(int); void setMakeyear(int); void setHp(int); void setCylinders(int); void setEnginvol(int); //Input methods tou xristi void inputVehicle(); void inputMake(); void inputModel(); void inputLp(); void inputColor(); void inputDoors(); void inputMakeyear(); void inputHp(); void inputCylinders(); void inputEnginvol(); //Other methods void printVehicle(); bool checkLp(); bool checkChar(char); }; class Employee{ private: char name[30]; char address[40]; int phone; char afm[10]; Vehicle myCar; public: Employee(); Employee(char *, char *, int, char *, Vehicle); void setEmployee(); void setEmployee(char *, char *, int, char *, Vehicle); void setName(char[]); void setAddress(char[]); void setPhone(int); void setAfm(char[]); void setMyCar(Vehicle); char* getName(); char* getAddress(); int getPhone(); char* getAfm(); Vehicle getmyCar(); void printEmployee(); } char* charphone(); int main() { Vehicle pel1,pel2; pel1.setVehicle("Daihatsu","Sirion CX","NZP2473","Silver",4,2004,102,4,1300); pel1.printVehicle(); pel2.inputVehicle(); pel2.printVehicle(); pel1.setLp("NZI5689"); pel1.printVehicle(); pel2.inputColor(); pel2.printVehicle(); return 0; } Employee::Employee(){ strcpy(name,""); strcpy(address,""); phone = 0; strcpy(afm,""); myCar = new Vehicle(); } Employee::Employee(char* a, char* b, int c, char* d, Vehicle Car){ strcpy(name, a); strcpy(address, b); phone = c; strcpy(afm, d); myCar = Car; } void Employee::setEmployee(char* a, char* b, int c, char* d, Vehicle Car){ strcpy(name, a); strcpy(address, b); phone = c; strcpy(afm, d); myCar = Car; } void Employee::setEmployee(){ strcpy(name,""); strcpy(address,""); phone = 0; strcpy(afm,""); myCar = new Vehicle(); } void setName(char[]){ cout << "Dwse to onoma : "; cin >> name; } void setAddress(char[]){ cout << "Dwse th diefthunsh : "; cin >> address; } void setPhone(int){ cout << "Dwse to thlefono : "; cin >> phone; } void setAfm(char[]){ cout << "Dwse to AFM"; cin >> afm; } void setMyCar(Vehicle){ myCar.inputVehicle(); } char* getName(){ return name; } char* getAddress(){ return address; } int getPhone(){ return phone; } char* getAfm(){ return afm; } Vehicle getmyCar(){ return myCar; } void printEmployee(){ cout << "Name:\t" name << endl << "Address:\t" << address << endl << "Telephone:\t" << charphone(phone) << endl << "AFM:\t" << afm << endl; myCar.printVehicle(); } char* charphone(int a){ char b[16]; for (i=15;i>11;i--){ c = a%10 b[i] = c; } b[11] = '-'; for (i=10;i>7;i--){ c = a%10 b[i] = c; } b[7] = '-'; for (i=6;i>2;i--){ c = a%10 b[i] = c; } b[2] = '0'; b[1] = '3'; b[0] = '+'; return b; } //Class Vehicle implementation Vehicle::Vehicle() { strcpy(make,""); strcpy(model,""); strcpy(lp,""); strcpy(color,""); doors = 0; makeyear = 0; hp = 0; cylinders = 0; enginvol = 0; } Vehicle::Vehicle(char* a,char* b,char* c,char* d,int e,int f,int g,int h,int i) { strcpy(make,a); strcpy(model,b); strcpy(lp,c); strcpy(color,d); doors = e; makeyear = f; hp = g; cylinders = h; enginvol = i; } //Get methods char* Vehicle::getMake() { return make; } char* Vehicle::getModel() { return model; } char* Vehicle::getLp() { return lp; } char* Vehicle::getColor() { return color; } int Vehicle::getDoors() { return doors; } int Vehicle::getMakeyear() { return makeyear; } int Vehicle::getHp() { return hp; } int Vehicle::getCylinders() { return cylinders; } int Vehicle::getEnginvol() { return enginvol; } //Set methods tou programmatisti void Vehicle::setVehicle(char* a,char* b,char* c,char* d,int e,int f,int g,int h,int i) { strcpy(make,a); strcpy(model,b); strcpy(lp,c); strcpy(color,d); doors = e; makeyear = f; hp = g; cylinders = h; enginvol = i; } void Vehicle::setMake(char* a) { strcpy(make,a); } void Vehicle::setModel(char* a) { strcpy(model,a); } void Vehicle::setLp(char* a) { strcpy(lp,a); } void Vehicle::setColor(char* a) { strcpy(color,a); } void Vehicle::setDoors(int a) { doors = a; } void Vehicle::setMakeyear(int a) { makeyear = a; } void Vehicle::setHp(int a) { hp = a; } void Vehicle::setCylinders(int a) { cylinders = a; } void Vehicle::setEnginvol(int a) { enginvol = a; } //Input methods tou xristi void Vehicle::inputVehicle() { inputMake(); inputModel(); inputLp(); inputColor(); inputDoors(); inputMakeyear(); inputHp(); inputCylinders(); inputEnginvol(); } void Vehicle::inputMake() { cout<>make; } void Vehicle::inputModel() { cout<>model; } void Vehicle::inputLp() { cout<>lp; while(!checkLp()) { cout<<"Lathos morfi. Dose ksana ton arithmo pinakidas"<>lp; } } void Vehicle::inputColor() { cout<>color; } void Vehicle::inputDoors() { cout<>doors; while(doors<2 || doors>7) { cout<<"Ektos orion. Dose ksana ton arithmo"<>doors; } } void Vehicle::inputMakeyear() { cout<>makeyear; while(makeyear<1980 || makeyear>2008) { cout<<"Ektos orion. Dose ksana tin xronia"<>makeyear; } } void Vehicle::inputHp() { cout<>hp; while(hp<60 || hp>1000) { cout<<"Ektos orion. Dose ksana tous ipous"<>hp; } } void Vehicle::inputCylinders() { cout<>cylinders; while(cylinders<4 || cylinders>16) { cout<<"Ektos orion. Dose ksana ta kibika"<>cylinders; } } void Vehicle::inputEnginvol() { cout<>enginvol; while(enginvol<60 || enginvol>6000) { cout<<"Ektos orion. Dose ksana ton volume mixanis"<>enginvol; } } //Other bool Vehicle::checkLp() { int i; for(i=0; i<3; i++) { lp[i] -= (lp[i]>90) ? 32 : 0; if(!checkChar(lp[i])) return false; } if(lp[3]<'1' || lp[3]>'9') return false; for(i=4; i<7; i++) { if(lp[i]<'0' || lp[i]>'9') return false; } return true; } bool Vehicle::checkChar(char c) { switch(c) { case 'E': case 'T': case 'Y': case 'I': case 'O': case 'P': case 'A': case 'H': case 'K': case 'Z': case 'X': case 'B': case 'N': case 'M': return true; } return false; } void Vehicle::printVehicle() { cout<<"Marka:" <