Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Programmierung

Hilfe ich suche Jemanden der mir einige Programme programmiert. Dringend! Jeder der Ahnung hat und einer Verzweifelten Frau helfen will und kann bitte melden. ???


Antworten zu Programmierung:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Um was geht's? Beschreibe mal genauer...

greez 8)
JoSsiF

Also es geht um alles Mögliche. Ich muss ne Prüfung schreiben will aber er einmal Grundlagen haben um überhaupt einen Durchblick zu bekommen und brauch dringend Hilfe.
Ich habe schon einiges Selbst gemacht komme aber irgendwie nicht weiter und weiß auch nicht ob das stimmt was ich da gemacht habe.
Wenn du mir helfen willst schicke ich dir mal eine Beispielsaufgabe zu.

welche sprache(n) ??????

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Japp, die Sprachen würden mich auch interessieren.

Also wenn's nur Einsteigeraufgaben sind (die demzufolge nicht lange dauern - denn Zeit is bei mir grad Mangelware) und ich die Sprache(n) kann, dann kann man schon drüber reden ;)

greez 8)
JoSsiF

Alles c++!!!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... hab ich mir vorgenommen, dieses Jahr zu lernen ;)

Dann bin ich auch weg aber wenn du was in Java oder PHP brauchst bin ich dein mann.

Gibt es denn hier wirklich niemanden der mir helfen kann????????????? ??? ??? ??? :'(:'(:'(

Ganz einfach:
(a) Aufgabe hier posten
(b) Was du getan hast hier posten

Wenn |(b)| / |(a)| >= PI/10 hilft dir vielleicht jemand :-)

Thema:   - has_a-Relation (Komposition, Aggregation)
======   - geschachtelte Klassen
         - Forward Declaration von Klassen
           
Aufgabe:
========
Realisieren Sie ein objektorientiertes System, das ein Tankstellennetz,
bestehend aus Zentrale und Filialen, simuliert.

1. Ein Filialenobjekt besitzt folgende Attribute:  Anschrift, Name,
   Literpreis, Umsatz, Tankvolumen, Tankfüllstand und Kundenanzahl;    
   Das Attribut Anschrift ist vom Typ Adresse, der als geschachtelte Klasse
   zu realisieren ist.

   Folgende Methoden stellt eine Filiale bereit:  
    - tanken von x Litern Kraftstoff mit Rückgabe des Preises
    - Filialdaten liefern (Anschrift, Umsatz ,Kundenanzahl ...)
      als Rückgabewert;
    - betanken der Filiale durch Tankwagen der Zentrale (Tank auffüllen)
    - Literpreis festlegen
   
   Filialdaten ist ebenfalls als geschachtelte Klasse zu realisieren.

2. Ein Tankstellennetz besteht aus maximal 20 Filialobjekten und einer
   Zentrale. Eine Zentrale hat als Attribute die aktuelle Anzahl der
   Filialobjekte und deren Referenzen sowie den Literpreis.
   Folgende Methoden stellt die Zentrale bereit:

   // neue Filiale erzeugen
   Filiale* baue_Filiale(Filiale::Adresse anschrift, string name);

   // Tankwagen betankt eine Filiale; diese Methode wird von einer
   // Filiale aktiviert, wenn ihr Tank leer ist
   void tankwagen(Filiale *f, int liter);

   // diese Methode holt die Daten aller Filialen ein und gibt dann
   // eine Statistik über den gesamten Umsatz, verkaufte Liter ... aus.
   void statistik();

   // Diese Methode wird für eine Zentrale aktiviert und setzt einen
   // marktkonformer Preis dann in all ihren Filialen
   void setzePreis(float preis);
   
   Weitere Zustände oder Methoden (Konstruktoren..!) sind gegebenenfalls zu
   ergänzen.

3. Es sind folgende Anwendungsfälle zu verwirklichen:
    - Einrichten von einer Zentrale mit 5 Tankstellen
    - tanken bei den Filialen mit Anzeige der getankten Liter und des
      Preises
    - neuen Literpreis festsetzen  
    - Umsatzstatistik erstellen  
    - Filiale fordert den Tankwagen von der Zentrale an, um den
      Tank aufzufüllen.

4. Hinweis :
    - Die Eingabedaten sind selbst zu wählen.
    - Beachten und modellieren Sie die zwischen Zentrale und


Arbeitsschritte

1. Deklarieren Sie die Klassen Filiale und Zentrale.
   Eine Filiale enthält einen Zeiger auf die Zentrale, der im Konstruktor
   der Filiale initialisiert wird.
   Die Zentrale enthält als Attribut einen Zeiger auf eine Filiale.
   Um eine Filiale zu erzeugen, stellt die Klasse Zentrale eine Methode
   baue_Filiale zur Verfügung. Diese Methode erzeugt ein Filial-Objekt,
   speichert den Zeiger auf das Objekt in der Zeigervariable und liefert
   den Zeiger als Rückgabetyp: Filiale* baue_Filiale()

2. Implementieren Sie einen Testrahmen (main-Methode), in dem zunächst
   eine Zentrale erzeugt wird. Aktivieren Sie die Methode baue_Filiale,
   um ein Filialobjekt zu erzeugen.

3. Erweitern Sie den Zustand von Filiale um folgende Attribute:
   Tankvolumen und Tankfüllstand. Beide sind im Konstruktor auf den Wert
   1000 (Liter) zu initialisieren.
   Ergänzen Sie in der Filiale eine Methode tanken. Beim Aktivieren dieser
   Methode wird als Parameter die gewünschte Literzahl übergeben. Als
   Rückgabe liefert diese Methode den zu bezahlenden Preis (Gehen Sie von
   einem Literpreis von 1.08 € aus). Die getankte Anzahl an Litern wird
   vom Tankfüllstand abgezogen.

4. Erweitern Sie den Testrahmen dahingehend, dass bei der Filiale 10mal
   100 Liter getankt werden.

5. Ergänzen Sie in der Klasse Zentrale die Methode Tankwagen.
   Diese Methode erfordert folgende Argumente bei ihrer Aktivierung:
   void Tankwagen(Filiale* f, int Tankvolumen);
   Der Zeiger auf eine Filiale spezifiziert die Filiale, welche den  
   Tankwagen angefordert hat. Tankvolumen gibt an, wie viel Kraftstoff die
   Filiale fassen kann.

   Eine Filiale soll nun die zusätzliche Methode betanken bereitstellen
   (Tankwagen versorgt Filiale). Diese Methode ermöglicht das Auffüllen des
   Tanks bei einer Filiale. Die Menge Kraftstoff die aufgefüllt wird, ist
   ein Parameter der Methode.

6. Erweitern Sie in der Klasse Filiale die Funktionalität der Methode
   float tanken(int liter) dahingehend, dass bei einem Tankfüllstand
   von 0 (Litern) der Tankwagen bei einer Zentrale für diese Filiale
   angefordert wird.

7. Erweitern Sie die Zentrale dahingehend, das mehrere Filialen erzeugt
   werden können.

8. Ergänzen Sie in der Zentrale die Methode void neuerPreis(float Preis).
   Wird diese Methode aktiviert, soll für alle Filialen dieser Preis als
   neuer Literpreis beim Tanken festgelegt werden (Filiale muss um das
   Attribut Literpreis erweitert werden).


Alles was ich bis jetzt habe: :'(

Main:


#include "filiale.h"
#include "zentrale.h"
#include "iostream.h"
#include "stdio.h"

int main(int argc, char* argv[]) {

  Zentrale zentrale;
  Filiale *f = zentrale.baue_Filiale();

  float kosten = f->tanken(1000);

  zentrale.setzePreis(2);

  return 0;
}
//---------------------------------------------------------------------------

Filiale.cpp:


#include "filiale.h"
#include "zentrale.h"

Filiale::Filiale(Zentrale *a) {
  z = a;
  tankvolumen = 1000;
  tankinhalt = 1000;
}
float Filiale::tanken(int liter) {
  tankinhalt = tankinhalt - liter;
  if (tankinhalt<=0) {
     z->tankwagen(this,tankvolumen);
  }
  return liter*literpreis;
}
void Filiale::betanken(int menge) {
  tankinhalt = tankinhalt + menge;
}
void Filiale::setzeLiterPreis(float lp) {
  literpreis = lp;
}


Zentrale.cpp:


#include "filiale.h"
#include "zentrale.h"
Zentrale::Zentrale() {
  anzahl = 0;
}
Filiale* Zentrale::baue_Filiale() {
  Filiale *fobj = new Filiale(this);
  f[anzahl] = fobj;
  anzahl++;
  return fobj;
}
void Zentrale::tankwagen(Filiale *fi,int menge) {
  fi->betanken(menge);
}
void Zentrale::setzePreis(float lp) {
  for (int i=0; i<anzahl; i++) {
    Filiale *fi = f;
    fi->setzeLiterPreis(lp);
  }
}

#ifndef _FILIALE_H
#define _FILIALE_H

#include "zentrale.h"
class Zentrale;

class Filiale {
  public:
    Filiale(Zentrale *a);
    float tanken(int liter);
    void betanken(int menge);
    void setzeLiterPreis(float lp);

  private:
    Zentrale *z;
    int tankvolumen, tankinhalt;
    float literpreis;

};
#endif


Header:


#ifndef _ZENTRALE_H
#define _ZENTRALE_H

#include "filiale.h"
class Filiale;
class Zentrale {
  public:
    Zentrale();
    Filiale* baue_Filiale();
    void tankwagen(Filiale *fi,int menge);
    void setzePreis(float lp);
  private:
   Filiale *f[20];
   int anzahl;
};
#endif

Sieht doch schön aus, wo is das Problem?

Das frag ich mich auch grad  

Ich weiß nicht ob es stimmt und ob ich alles habe

Also was mir so auffällt ist z.B., dass deine Filialen weder Namen noch Adressen haben, obwohl das oben erwähnt wird.

Ausserdem scheinst du die Thematik "Forward Deklaration von Klassen" noch nicht ganz durchschaut zu haben, denn

#include "Filiale.h"
class Filiale;
ist in der Beziehung irgendwie doppelt gemoppelt - entweder du #include'st den Text der gesamten Klasse oder du machst eine Fwd-Deklaration, aber beides ist unnötig.

Wenn du das fixt reicht das bestimmt für ne 4 ... wieso fragst du nichtmal jemanden der die selbe Aufgabe hat, der kann das bestimmt viel besser lösen :-)

« Ergebniss von C++C/C++ Lernen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Zugriffszeit
In Milisekunden angegebene Zeit, die das Speichermedium zum Erreichen der gesuchten Daten braucht. Die Zeit ist abhängig vom technischen Verfahren des Mediums sowie ...

Reaktionszeit
In der Elektronik versteht man unter der Reaktionszeit die Zeit, die ein Flachbildschirm benötigt, um die Farbe und die Helligkeit eines Bildpunktes zu ändern. ...

Java
Java ist eine von der Firma SUN entwickelte Programmiersprache. Da Java unabhängig vom Betriebssystem läuft, kann ein einmal geschriebenes Programm auf allen Ja...