C ++ pomoc

Programovacie jazyky, rady, poradňa...
ven0m
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 969
Registrovaný: 04 feb 2006, 22:23
Bydlisko: Banská Bystrica

C ++ pomoc

Príspevok od používateľa ven0m »

Vytvořte jednoduchý program, který bude představovat základ závodní počítačové hry. Vytvořte třídu Auto. Každé auto má následující vlastnosti: množství paliva v nádrži, hmotnost automobilu. Tyto vlastnosti jsou soukromé (private).

Dále třída obsahuje následující metody: vratHmotnost a vratMnozstviPaliva. Ty vracejí hodnoty v příslušných atributech. Dále obsahuje metodu vypisInformace. Da vypíše na obrazovku veškeré informace o autě. Metoda natankuj obsahuje parametr mnozstviPaliva. Implementujte metodu natankuj tak, aby se množství paliva v parametru přičetlo do příslušného atributu a zároveň se hmotnost automobilu zvýšila o 0.75 násobek množství natankovaného paliva.

Parametrický konstruktor třídy auto vynutí zadání počáteční hmotnosti auta a množtví paliva v nádrži.

Hlavní funkce programu vytvoří dvě různé instance třídy Auto. Předveďte zvýšení paliva v nádrži a výpis informací o automobilu jak pomocí metody vypisInformace, tak ručně pomocí metod vracejících hodnoty atributů.

Kód: Vybrať všetko

# include <iostream>
# include <cstdlib>
using namespace std;

class Auto{
private:
      int palivo;
      int hmotnost;
      
      
public:
       
     void vypisInformace(){
          cout << "Mnozstvo paliva je: " << palivo << endl;
          cout << "Hmotnost auta je: " << hmotnost << endl;
          
}
     void nactiPalivo(){
     cout <<"Zadaj mnozstvo paliva: ";
     cin >> palivo; 
     }          
     void nactiHmotnost(){
     cout <<"Zadaj hmotnost auta: ";
     cin >> hmotnost;
     }
                        
     int vratHmotnost(){
            return hmotnost;
        }
        int vratMnozstviPaliva(){
            return palivo;
        }
};
int main(){ 
    Auto* fiat = new Auto;
    
    fiat->nactiPalivo();
    fiat->nactiHmotnost();
    fiat->vypisInformace();
    
    
    delete fiat;
    system ("PAUSE");
    return 0;
}
neviem vobec ci to robim dobre, a ani netusim ako mam spravit to natankovanie... pomoze niekto ??
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

chýba ti tam parametrický konštruktor, ktorý by mal dva parametre a to hmotnost a palivo. Pri vytváraní toho objektu fiat nemusíš používat smerník na auto, takže to bude iba Auto fiat = new Auto() a pri volaní druhého konštruktora to bude Auto fiat = new Auto(hm, pal). V tom konstruktore bude iba priradenie argumentov do atributov, palivo = pal; hmotnost = hm;
V main máš potom podla zadania demonstrovat ako volanie klasického konstruktora (implicitného bezparametrického, teda to čo robíš) a naplnenie hodnot, tak aj zavolanie toho druhého konštruktora (napríklad na novú inštanciu, ktorú pomenuješ opel alebo nejak inak). Potom spravíš výpisy info o týchto autách aby bolo vidno že to funguje
ven0m
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 969
Registrovaný: 04 feb 2006, 22:23
Bydlisko: Banská Bystrica

Príspevok od používateľa ven0m »

ale potom mi to vobec nefunguje bez smernika.. teda mne to tak ci tak nefunguje, ani tankovanie, nechce to zobrazit potom stale len hmotnost a palivo... ach :(
Preetro
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 269
Registrovaný: 16 nov 2005, 19:40
Bydlisko: škatuľka od topánok

Príspevok od používateľa Preetro »

no tankovanie ti nefunguje, lebo ho vobec nemas naprogramovane :) .. tak som ti ho tam doplnil

Kód: Vybrať všetko

# include <iostream>
# include <cstdlib>
using namespace std;

class Auto{
private:
      int palivo;
      double hmotnost;
     
     
public:
       
     void vypisInformace(){
          cout << "Mnozstvo paliva je: " << palivo << endl;
          cout << "Hmotnost auta je: " << hmotnost << endl;
         
}
     void nactiPalivo(){
     cout <<"Zadaj mnozstvo paliva: ";
     cin >> palivo;
     }  
	 void natankuj()
	 {
		 cout <<"Zadaj mnozstvo natankovaneho paliva: ";
		 int pal = 0;
		 cin >> pal;
		 palivo += pal;
		 int hm=hmotnost;
		 hmotnost +=0.75*pal;
	 }
     void nactiHmotnost(){
     cout <<"Zadaj hmotnost auta: ";
     cin >> hmotnost;
     }
	 const Auto(int pal,double hm)
	 {
		 palivo=pal;
		 hmotnost=hm;
	 }
	 const Auto()
	 {
		 palivo=0;
		 hmotnost=0;
	 }
                       
     int vratHmotnost(){
            return hmotnost;
        }
        int vratMnozstviPaliva(){
            return palivo;
        }
};
int main(){
    Auto* fiat = new Auto();
   
    fiat->nactiPalivo();
    fiat->nactiHmotnost();
    fiat->vypisInformace();
   
	fiat->natankuj();
	fiat->vypisInformace();
	cout <<endl;
	Auto* skoda=new Auto(5,4.7);
	skoda->vypisInformace();
    delete skoda;
    delete fiat;
    system ("PAUSE");
    return 0;
}
Napísať odpoveď