Advertisement
Guest User

zug

a guest
Nov 26th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <time.h>
  4.  
  5. using namespace std;
  6.  
  7. class cLok { // Klasse nur minimal definieren
  8.     double leistung;
  9.     public:
  10.     cLok (double lei_in = 16000.0) : leistung (lei_in) {}
  11.  
  12.     void ausgabe(){
  13.         cout<<"Leistung:"<<leistung<<endl; 
  14.     }
  15. };
  16.  
  17. class cWaggon { // Klasse nur minimal definieren
  18.     double laenge;
  19.     double gewicht;
  20. public:
  21.     cWaggon (double len_in = 14.8, double gew_in = 117.5): laenge (len_in), gewicht(gew_in) {}
  22.  
  23.     void setLaenge(double laenge_in){
  24.     laenge = laenge_in;
  25.     }
  26.  
  27.     void setGewicht(double gewicht_in){
  28.     gewicht = gewicht_in;  
  29.     }
  30.  
  31.     double getLaenge(){
  32.     return laenge; 
  33.     }
  34.  
  35.     double getGewicht(){
  36.     return gewicht;
  37.     }
  38.  
  39.     void ausgabe(){
  40.         cout<<"Gewicht:"<<gewicht<<"; Laenge:"<<laenge<<endl;
  41.         }
  42. };
  43.  
  44. class cZug{
  45. private:
  46.     string zugbezeichung;
  47.     cLok lok;
  48.     int anzahl,tmp1,tmp2;
  49.     cWaggon * wagen;
  50.  
  51.     void wagenWerte(){
  52.         srand(time(NULL));
  53.         for(int i = 0 ; i < anzahl; i++){
  54.             tmp1 = (rand()%5) /10;
  55.             tmp2 = (rand()%3 +5) /10;
  56.             double laenge_tmp = (rand()%27+8) + tmp2;
  57.             double gewicht_tmp =(rand()%108 + 12) + tmp1;
  58.  
  59.             wagen[i].setGewicht(gewicht_tmp);
  60.             wagen[i].setLaenge(laenge_tmp);
  61.            
  62.         }
  63.     }
  64.  
  65. public:
  66.     cZug(cLok lok_in, string zugbezeichung_in,int anzahl_in){
  67.     zugbezeichung = zugbezeichung_in;
  68.     lok = lok_in;
  69.     anzahl=anzahl_in;
  70.     wagen = new cWaggon[anzahl_in];
  71.     //Aufruf wagenwerte um wagen mit Werten zu fuellen
  72.     wagenWerte();
  73.     }
  74.  
  75.  
  76.     cZug(cZug &zug_ein){
  77.         lok = zug_ein.lok;
  78.         anzahl = zug_ein.anzahl;
  79.         zugbezeichung =  zug_ein.zugbezeichung;
  80.         //neuer waggon der selben groesse wird erstellt
  81.         wagen = new cWaggon[anzahl];
  82.         for(int i =0 ;i < anzahl; i++){
  83.             wagen[i].setGewicht(zug_ein.wagen[i].getGewicht());
  84.             wagen[i].setLaenge(zug_ein.wagen[i].getLaenge());
  85.            
  86.             }
  87.        
  88.     }
  89.  
  90.     void ausgabe(){
  91.         cout<<"Zugbezeichnung:"<<zugbezeichung<<endl;
  92.         lok.ausgabe();
  93.         cout<<"Anzahl Waggons:"<<anzahl<<endl;
  94.         for(int i = 0; i < anzahl; i ++){
  95.             cout<<"Wagen "<<i+1<<endl;
  96.             wagen[i].ausgabe();
  97.             }
  98.     }
  99.    
  100. };
  101.  
  102.  
  103. int main(){
  104.    
  105.     cLok e40;
  106.     cZug gueterZug(e40, "G23421",45);
  107.  
  108.     cLok e85(21000);
  109.     cZug gueterSchnellZug(e85,"GS4444",12);
  110.  
  111.     cZug kopierterZug = cZug(gueterZug);
  112.  
  113.     gueterZug.ausgabe();
  114.     gueterSchnellZug.ausgabe();
  115.  
  116.  
  117.     system("pause");
  118. return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement