[clase]

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++

[clase]

Mesajde davidush » 29 Iun 2016, 15:04

[*]Header
#define AUTOTURISM
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

class Motor
{
public:
bool pornit;
void start();
void stop();
};

class Electromotor
{
public:
void start(Motor&);
};

class SistemPornire
{
Motor m;
Electromotor e;
public:
SistemPornire (){}
void porneste_motor();
void opreste_motor();
};

class SistemPornireCuPreincalzire
{
SistemPornire sistem_pornire;
bool carburant_incalzit;
public:
SistemPornireCuPreincalzire();
void incalzeste_carburantul();
void raceste_carburantul();
};

class Autoturism
{
Electromotor electromotor; //autoturismul poseda un electromotor
Motor motor; //autoturismul poseda un motor
SistemPornire sistem_pornire; //autoturismul poseda un sistem de pornire
SistemPornireCuPreincalzire sistem_pornire_cuPreincalzire;
bool sistem_preincalzire;
int anvelope[4];//4 anvelope
public:
Autoturism();
void porneste_autoturism();
void condu_la_destinatie(string locatie,string& destinatie);
void parcheaza_autoturism();
void schimba_anvelope();
void adauga_sistem();
};

[*]Main
#include "Autoturism.h"

void Motor::start()
{
if (pornit != true)
{
pornit = true;
}
cout<<" Motorul a fost pornit si autoturismul se indreapta spre destinatie.\n ";
}
void Motor::stop()
{
pornit = false;
cout<<" Motorul este oprit.\n ";
}

void Electromotor::start(Motor &motor)
{
if (motor.pornit == false)
{
motor.start();
}
}

void SistemPornire::porneste_motor(){
e.start(m);
}

void SistemPornire::opreste_motor(){
m.stop();
}

SistemPornireCuPreincalzire::SistemPornireCuPreincalzire()
{
carburant_incalzit = false;
}

void SistemPornireCuPreincalzire::incalzeste_carburantul(){
if (carburant_incalzit == false)
{
carburant_incalzit = true;
printf(" Carburantul a fost incalzit.\n");
}
sistem_pornire.porneste_motor();
}

void SistemPornireCuPreincalzire::raceste_carburantul(){
carburant_incalzit = false;
sistem_pornire.opreste_motor();
}

Autoturism::Autoturism(){
int i;
sistem_preincalzire = false;
for (i=1;i<=4;i++)
anvelope[i]=1;
}
void Autoturism::porneste_autoturism(){
if (sistem_preincalzire == true)
sistem_pornire_cuPreincalzire.incalzeste_carburantul();
else
sistem_pornire.porneste_motor();
}
void Autoturism::condu_la_destinatie(string unde_mergem,string& de_unde_mergem)
{
int anvelope_schimb,i;

cout<<"Dumneavoastra ati ajuns cu succes la "<<unde_mergem<<endl;
de_unde_mergem=unde_mergem;
parcheaza_autoturism();
cout<<"\nAnvelopele: \n";
for (i=1;i<=4;i++)
if (anvelope[i]==1)
cout<<"Anvelopa "<<i<<" este de vara.\n";
else
cout<<"Anvelopa "<<i<<" este de iarna.\n";

cout<<"Doriti sa schimbati anvelopele? (1.Da 2.Nu)\n";
cin>>anvelope_schimb;
if (anvelope_schimb==1)
schimba_anvelope();
}
void Autoturism::schimba_anvelope()
{
int nr_anvelopa,tip=1;
cout<<" Autoturismul este parcat si gata de schimbul anvelopelor.\n";
while (tip)
{
cout<<"Roata(1,2,3,4) : ";
cin>>nr_anvelopa;
cout<<"Cauciuc (1-vara,2-iarna) : ";
cin>>tip;
if (tip==1 || tip==2)
anvelope[nr_anvelopa]=tip;
else cout<<"Dumneavoastra nu ati introdus corect codul tipului anvelopei \n";
cout<<"Mai doriti sa schimbati o anvelopa (1-da , 0-nu )?";
cin>>tip;
}
}

void Autoturism::parcheaza_autoturism()
{
if (sistem_preincalzire == true)
sistem_pornire_cuPreincalzire.raceste_carburantul();
else
sistem_pornire.opreste_motor();
cout<<"Autoturismul a fost parcat cu succes .";
}

void Autoturism::adauga_sistem()
{
sistem_preincalzire = true;
}
davidush
Junior
Junior
 
Mesaje: 7
Membru din: 12 Ian 2016, 23:32
Judet: Iaşi

Înapoi la Limbajul C++

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron