C++ Programm

Tutorials.at
Verfügbare Informationen zu "C++ Programm"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Kimi - DrPhil_Guth
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 3
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: C++ Programm
  • Letzte Antwort: vor 16 Jahren, 25 Tagen, 18 Stunden, 2 Minuten
  • Alle Beiträge und Antworten zu "C++ Programm"

    Re: C++ Programm

    Kimi - 02.04.2008, 19:02

    C++ Programm
    Hi also ich habe mal eine Frage im Bezug auf eine Aufgabenstellung die ich wie folgt gelöst habe bzw. es versucht.

    Ich weiß das vieles noch nicht richtig gut ist und das hier und da noch vieles zu Verbessern gilt. Deswegen bitte ich Euch mir das mal mitzuteile und das folgende Programm anzuschauen.

    Danke schonmal im Voraus!


    Aufgabenstellung:



    Die Klasse fahr soll die Umrechnung von Fahrenheit nach Celsius ermöglichen. Die private-Member lower, upper
    und step beschreiben die untere und obere Temperatur und step die Schrittweite, alles in der Maßeiheit Fahrenheit.
    Der public-Konstruktor mit drei Parametern lower=-20f, upper=100.0f und step=5.0f soll die
    Initialisierung der gleichnamigen Datenmember lower, upper und step ermöglichen. Dabei soll der Konstruktor
    explizit (außerhalb der Klasse) definiert werden, die Ausschrift "Instantiierung fahr\n" und die Werte der drei
    Member ausgeben.
    Des weiteren sollen der Destruktor und die Methoden void read() und void compute() als public deklariert werden.
    Der Destruktor soll in der Klasse implizit definiert werden und die Ausschrift "Destruktor fahr" ausgeben.
    Die Methode void read() soll außerhalb der Klasse definiert werden und gegen Eingabefehler abgesichert die Werte
    für lower, upper und step mittels cin>> über Tastatur einlesen.
    Die Methode void compute() soll ebenfalls außerhalb der Klasse definiert werden, die Werte berechnen und ausgeben
    (Umrechnungsformel: celsius=5.0*(fahrenheit-32.0)/9.0 ). Die Ausgabe soll neben "Fahrenheit
    Celsius" in der Kopfzeile in jeder Zeile rechtsbündig ein Wertepaar mit 2 Dezimalstellen nach dem Dezimalpunkt
    erzeugen. Dabei sind der Operator << , die Manipulatoren setprecision und setw und cout.flags(ios::fixed) zu nutzen.
    Das Headerfile iomanip.h wird hierzu benötigt.
    In der Funktion main() soll eine Instanz f vom Typ fahr angelegt und die Methoden read() und compute() für f
    aufgerufen werden. Dabei soll beispielsweise der Wertebereich von -20 Grad Fahrenheit bis 100 Grad Fahrenheit
    mit Schrittweite 5 Grad durchlaufen werden.





    Code: //fahrenheit.cpp - Fahrenheit berechnung mittels class
    #include <iostream>
    #include <iomanip>
    using namespace std;


    class fahr
    {
    private:

       float lower;
       float upper;
       float step;

    public:

       void read();
       
       void compute();
       //Konstruktor
       fahr();
       //Destruktor
       ~fahr()
       {
          cout << "Destruktor fahr" << endl;
       }

    };


     fahr::fahr()
    {
       float lower= -20;
       float upper= 100.0;
       float step= 5.0;
       cout << "Instantiierung fahr\n" << lower << endl;
       cout << upper << endl;
       cout << step << endl;
    }

    void fahr::read()
    {
       cout << "Bitte Werte eingeben: ";
       cin >> lower;
       cin >> upper;
       cin >> step;
    }


    void fahr::compute()
    {
       float celcius;
       float fahren;

       cout << "Bitte Fahrenheit eingeben: ";
       cin >> fahren;
       celcius = 5*(fahren-32)/9;
       cout.setf(ios::right | ios::fixed);
       cout << fahren << " Fahrenheit betraegt " << celcius << " Grad Celcius " << endl;
    }

    int main ()
    {
       fahr f;

       cout << "E I N G A B E  Z U R  B E R E C H N U N G " << endl;
       f.read();
       
       cout << "D I E  B E R E C H N U N G " << endl;
       f.compute();
       return 0;
    }



    Ich weiß das ich z.b. keine Schleife drinne habe dessen war mir noch nicht bewusst wo ich diese hinprogrammieren sollte und wie ich dies relaiseren sollte.

    Aber vielen Dank für die Unterstützung!



    Re: C++ Programm

    DrPhil_Guth - 02.04.2008, 20:50

    Re: C++ Programm
    Hm, so wie ich das vertanden habe ist a) die aufgabenstellung etwas nutzlos (wer braucht eine Klasse für eine einfache umrechenfunktion???) und b) deine lösung nicht ganz das was die Aufgabenstellung erwartet. Unter "gegen Eingabefehler abgesichert" versteht man meines wissens mehr als ein einfaches cin... denn wenn du da einen falschen Wert eingibst dann geht gar nichts mehr, denn dann ist cin "kaputt" und kann gar nichts mehr lesen, das was in den Variablen steht bleibt dem zufall überlassen. Du musst die eingabe in eine schleife packen und etweder jedes mal nach dem einlesen auf cin.fail() oder so überprüfen oder du packst das ganze in einen try- block, schaltest die exceptions mit cin.exceptions(ifstream::eofbit|ifstream::failbit| ifstream::badbit); ein und lässt in einem catch() block die schleife nochmal durchlaufen.
    [edit] und natürlich bei einem fehler cin.clear() nicht vergessen! [/edit]

    Und ich dachte der sinn des programms war einen Bestimmten Wertebereich zu auszugeben oder? Da musst du zuerst berechnen wie oft die schleife durchlaufen muss (wie viele schritte nötig sind) und lässt die schleife bei lower starten.
    Ansonsten ganz ok... Abgesehen von der sinnlosen aufgabenstellung, aber ich denke das ist normal für beispiele.



    Re: C++ Programm

    Kimi - 03.04.2008, 00:24


    Hi danke erstmal. Das mit der Aufgabenstellung denke ich hängt damit zusammen um die Klassen darzustellen denn ich muss dir sagen für mich ist C++ absolutes Neuland und ich blicke langsam aber sicher mit den Klassen durch.
    Was heißt durch im gegensatz zu Dir werde ich das nicht so behaupten können. Aber letzendlich sind die Aufgabenstellungen denke ich mal dazu da um uns das näher zu bringen das könnte man evtl auch anders machen.


    Ok deswegen frage ich nach der Art soweit natürlich ist der Quelltext im gegensatz zu dem was C++ kann oder was ein Profi kann absoluter Müll aber wir fangen alle bei Null auch meine Mitschüler und deshalb wollte ich da um Rat beten.


    Aber danke dir erstmal!



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    % - gepostet von ottiotti am Samstag 07.10.2006
    Serielle Schnittstelle ansteuern (C) - gepostet von mitti am Sonntag 03.06.2007
    C bzw C++ um roboter zu programmieren?? - gepostet von Joe am Sonntag 05.08.2007
    Suche: [color=red]ADA 2005 Compiler[/colo, [co und[color=red - gepostet von anarchist am Sonntag 20.05.2007
    Was habt ihr am Anfang programmiert? - gepostet von J. am Freitag 08.12.2006
    PC-Spiele programmieren - gepostet von Dominik92 am Mittwoch 13.09.2006
    Befehle / Funktionen - gepostet von Walgo am Mittwoch 18.07.2007
    COMPILER - gepostet von BASIC am Samstag 08.07.2006
    LOOP without DO Problem - gepostet von Dubbel am Dienstag 09.01.2007



    Ähnliche Beiträge wie "C++ Programm"

    wtb caster equipment (armor + staff) SC - panachier (Montag 18.08.2008)
    ... und zeigen das auch - Bonsaipanther (Sonntag 06.04.2008)
    Grabung Glauberg 2006 - Iris (Mittwoch 24.05.2006)
    Glauberg 2006 - Sascha (Freitag 04.08.2006)
    mera luna 08 - blackadel (Mittwoch 02.04.2008)