Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Bugbear Wurm
    Registriert seit
    01.09.2007
    Beiträge
    255

    Standard C++ Anfängerprojekt [BELOHNUNG vorhanden]

    hi,ich brauche leider hilfe bei einem c++ anfänger schulprojekt.
    Zur Aufgabe:
    Es sollen 3 Werte eingelesen werden:
    -Luftdruck
    -Temperatur
    -Niederschlag
    Der Benutzer gibt fuer jeden Tag einen Wert an es sollen insgesammt Werte fuer ein Jahr gespeichert werden können.Das ganze soll in einem Menue dargestellt werden.
    Darüber hinaus soll der Benutzer die Möglichkeit haben einen Durchschnittswert errechnen zu lassen(jeweils fuer alle 3 Variablen).
    Wer Interesse hat mir bei dieser Aufgabe zu helfen kann in den Thread posten oder mich per icq kontaktieren.
    Mein Lösungsansatz:
    Code:
    #include <iostream>
    using namespace std;
    int main()
    {
     double Niederschlag[367],Temperatur[367],Luftdruck[367];
     int menue0, menue1,menue2,tag;
     char check1,check2,check3;
     do 
     {
      cout << "Herzlich Willkommen,was moechten sie tun?" <<endl;
      cout << "Wenn sie neue Werte eingeben moechten druecken sie die 1" << endl;
      cout << "Wenn sie alte Werte ausgeben lassen moechten druecken sie die 2" << endl;
      cout << "Wenn sie einen alten Wert bearbeiten wollen druecken sie die 3" << endl; 
      cout << "Beenden = 0" << endl;
      cout << endl;
      cin >> menue0;
     
      if (menue0==1)
      {
       cout << "Wenn sie einen neuen Niederschlagswert eingeben moechten druecken sie die 1"<< endl;
       cout << "Wenn sie einen neuen Temperaturwert eingeben moechten druecken sie die 2"<< endl;
       cout << "Wenn sie einen neuen Luftdruckwert eingeben moechten druecken sie die 3"<< endl;
       cin >> menue1;
      }
     
     
     
      if (menue0==2)
      {
        cout << "Wenn sie einen alten Niederschlagswert ausgeben moechten druecken sie die 1"<< endl;
        cout << "Wenn sie einen alten Temperaturwert ausgeben moechten druecken sie die 2"<< endl;
        cout << "Wenn sie einen alten Luftdruckwert ausgeben moechten druecken sie die 3"<< endl;
        cin >> menue2;
      }
     
     
      if (menue0==3)
      {
        cout << "Moechten sie einen Niederschlagswert bearbeiten?J/N " << endl;
        cin >> check1;
        cout << "Moechten sie einen Temperaturwert bearbeiten?J/N? " << endl;
        cin >> check2;
        cout << "Moechten sie einen Luftdruckwert bearbeiten?J/N " << endl;
        cin >> check3;
     
      }
     
      if (menue1==1)
      {  
       cout << "Geben sie bitte ein den wievielten Tag dieses Jahres wir heute haben" << endl;
       cin >> tag;
        cout << "Gib  den Niederschlagswert fuer den heutigen Tag ein " << endl; // Eingabe von neuen Niederschlagswerten
        cin >> Niederschlag[tag] ;
        system("pause");
     
      }
      if (menue1==2)
      {
       cout << "Geben sie bitte ein den wievielten Tag dieses Jahres wir heute haben" << endl;
       cin >> tag;
        cout << "Gib den Temperaturwert fuer den heutigen Tag ein" << endl; //Eingabe von neuen Temperaturwerten
        cin >> Temperatur[tag];
        system("pause");
     
      }
     
      if (menue1==3)
      {
       cout << "Geben sie bitte ein den wievielten Tag dieses Jahres wir heute haben" << endl;
       cin >> tag;
        cout << "Gib den Luftdruckwert fuer den heutigen Tag ein" << endl; //Eingabe von neuen Luftdruckwerten
        cin >> Luftdruck[tag];  
        system("pause");
      }
     
     
     
     
        if (menue2==1)
        {
        cout << "Geben sie bitte den Tag an den sie ausgeben moechten" << endl;
        cin >> tag;
        cout << "Der Niederschlag fuer diesen Tag betraegt:" << Niederschlag[tag] << endl; //Augsgabe von alten Niederschlagswerten
        }
        if (menue2==2)
        {
         cout << "Geben sie bitte den Tag an den sie ausgeben moechten" << endl;
        cin >> tag;
        cout << "Der Temperaturwert fuer diesen Tag betraegt:" << Temperatur[tag] << endl; //Ausgabe von alten Temperaturwerten
        }
     
        if  (menue2==3)
        {
         cout << "Geben sie bitte den Tag an den sie ausgeben moechten" << endl;
        cin >> tag;
        cout << "Der Luftdruck fuer den Tag betraegt:" <<Luftdruck[tag] <<endl; //Ausgabe von alten Luftdruckwerten
        }
     
     
     
     
        if (check1=='J')
         cout << "Welchen Tag wollen sie ueberpruefen?" << endl;  //Bearbeitung der Niederschlagswerte
        cin >> tag;
         cout << "Geben sie einen neuen Wert fuer diesen Tag ein" << endl;
         cin >> Niederschlag[tag];
     
        if (check2=='J')
         cout << "Welchen Tag wollen sie ueberpruefen?" << endl;   //Bearbeitung der Temperaturwerte
        cin >> tag;
         cout << "Geben sie einen neuen Wert fuer diesen Tag ein" << endl;
         cin >> Temperatur[tag];
        if (check3=='J')
         cout << "Welchen Tag wollen sie ueberpruefen?" << endl;  //Bearbeitung der Luftdruckwerte
        cin >> tag;
        cout << "Geben sie einen neuen Wert fuer diesen Tag ein" << endl;
        cin >>Luftdruck[tag];
     
       } while  (menue0 != 0);
     
     
       system("pause");
       return 0;
      }
    Würde mich auch über komplett neue Lösungsansätze freuen allerdings bitte ich darum nicht allzuviele neue Befehle zu verwenden.
    Geändert von zulu1336 (28.02.2009 um 14:38 Uhr)

  2. #2
    Fortgeschrittener
    Registriert seit
    13.11.2008
    Beiträge
    42

    Standard

    Du fragst hier zwar nach Hilfe, aber ich finde, das man das auch alleine schaffen kann.
    Dafür brauchste nicht groß wen anders und dann kannste dir auch deine Belohnung sparen. Das ist doch ne tolle Sache. Man kann super Lösungen erarbeiten, indem man einfach mal die Referenzen etwas durchsucht ... wie wärs mit MSDN oder für C++ vll besser: cplusplus.com
    http://cplusplus.com/

    Glaub mir ... wenn man sich selbst einen Erfolg erarbeitet macht das viel mehr Spaß
    ... und man lernt mehr ... außerdem ist Teamerbeit nicht immer das Gelbe vom Ei (Kommentierung die beide verstehen, Versionen tauschen (evt. Module dann zusammen fügen), Arbeit aufteilen usw.)

    MFG
    Fab
    Eins hab ich erkannt - ich werde immer Schüler bleiben - ein Leben lang




    KISS - Keep it simple stupid ... Die Lösung kann so einfach sein.
    => Packs mal selber an

  3. #3
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard

    wenn du noch bissle wartest könnt ich dir auch ohne psc helfen^^ außerdem is der psc handel eh verboten
    also ma sehn wann ich zeit hab... mal sehn ob ichs mir heut noch anguck geht aber schnell

  4. #4
    W32.FunLove
    Registriert seit
    11.08.2008
    Beiträge
    128

    Standard

    Ich würde das Menü vielleicht in eine switch-case Abfrage einbauen, würde den Code übersichtlicher gestalten.

  5. #5
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Schau dir das mal an:
    http://rapidshare.com/files/203991151/apt.rar.html
    (1x .C-Datei, 1x .H-Datei)

    Das ganze ist in C geschreiben, ist aber auch C++ kompatibel.
    Ich habe den Sourcecode ausreichend kommentiert - es sollte also gut verständlich sein.

    Man könnte jetzt noch ein paar extra Funktionen hinzufügen (zB. Monat und Tag werden mit eingetragen um doppelte Werte verhindern zu können)

    Ein (Zeit-)Fehler könnte noch auftreten, wenn TM_YEAR_BASE von System zu System unterschiedlich ist.
    Ich habe das mal wie dieser Programmierer hier: http://www.jbox.dk/sanos/source/lib/strftime.c.html
    als 1900 definiert.

    Mein time.h sagt:
    Zitat Zitat von time.h
    struct tm
    {
    [...]
    int tm_year; /* Years since 1900 */
    [...]
    Falls das also bei deinem System anders ist musst du das Makro eben anpassen.

    Ansonsten:
    Des Programm hat zwei Optionen:
    1) Einen neuen Datensatz einfügen
    2) Eine Statistik für ein Jahr anzeigen

    Bei 1 werden Druck, Temperatur und Niederschalg eingelesen und sammt Jahr in einer Datei (values.dat) gespeichert

    Bei 2 wird eine Statistik für ein vom Benutzer gewähltes Jahr erzeugt. Die Statistik enthält die Durchschnittswerte für die einzelnen Werte. Falls keine Werte für das gewählte Jahr vorhanden sind wird ein Fehler ausgegeben.


    mfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  6. #6
    Bugbear Wurm
    Registriert seit
    01.09.2007
    Beiträge
    255

    Standard

    danke für eure Hilfe und Ratschläge eraser konnte mir sehr gut weiterhelfen allerdings müsste das feauture mit dem speichern + laden auch noch rein.Hab mir das Programm von dir mal angeschaut blackberry .Allerdings hatten wir viele Befehle nochnicht und mit deutschen kommentaren wäre es vllt auch ein wenig besser nachvollziehbar gewesen
    Ich hab mal das momentane programm geupped: http://rapidshare.com/files/204130752/werte2.cpp.html

    Vllt kann mir ja noch jmd erklären wie man einen dateispeicher anlegt und diesen läd
    also mit fstream fin etc
    Würde mich auch über Kontakt per icq(796-134) oder pm freuen falls ihr eine ggl wollt wäre ich natürlich auch bereit euch bei guter Hilfe eine anzubieten

  7. #7
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von zulu1336 Beitrag anzeigen
    Allerdings hatten wir viele Befehle nochnicht und mit deutschen kommentaren wäre es vllt auch ein wenig besser nachvollziehbar gewesen
    Ich kann mich dabei nur auf folgenden Satz beziehen: "Die Sprache für Source-Code ist Englisch. Dies gilt für alle Teile eines Programms, von Variablennamen über Funktionsnamen bis zu Kommentaren im Source-Code." ( siehe Sticky: http://free-hack.com/showthread.php?t=4759 ).

    Zudem lernt man in Deutschland doch schon teilweise ab der 4. Klasse Englisch, also sollte das kein so großes Problem sein

    Zum Thema fstream kann ich auch nur auf Cplusplus.com verweisen: http://www.cplusplus.com/reference/iostream/fstream/
    Bei jeder Methode/Funktion wirst du ein Beispiel finden, also klick dich einfach mal durch.

    Falls du noch mehr Fragen hast kannst du sie ja einfach hier stellen oder mich in ICQ adden (Nummer ist im Profil; Gegenleistung brauche ich nicht).


    mfG. BlackBerry

    EDIT:
    Ich habe mir mal deinen Sourcecode durchgelesen und ein paar Verbesserungsvorschläge in Form von Kommentaren (diesmal auf Deutch ) eingefügt.
    Download:
    http://rapidshare.com/files/20420916...ektur.cpp.html
    Geändert von blackberry (02.03.2009 um 00:21 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  8. #8
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Habe auch mal eine Lösung gemacht.

    Ansonsten ist es halt ziemlich unübersichtlich^^

    Wenn du keine Structs benutzen kannst, kannst du auch halt die drei Werte überall eintragen, nur beim lesen/speichern muss dann statt
    o.read((char*) &Tage[pos++], sizeof(sTag)); bzw o.write
    da stehen:
    o.read((char*) &niederschlag[pos], sizeof(double));//das gleiche dann natürlich auch beim saven() mit write
    o.read((char*) &temperatur[pos], sizeof(double));
    o.read((char*) &luftdruck[pos++], sizeof(double));

    und dann halt beim speichern auch.
    Kommt halt drauf an, wie deine Variabeln heißen.
    irgendwas++; Erhöht irgendwas um 1 und
    irgendwas --; Vermindert irgendwas um 1

    Hoffe habs ausreichend Kommentiert und sowas halt^^

    EDIT:

    Jetzt tote Hose?

    Dachte bekomm ein thx oder so =/

    Scheint echt nichts mehr zu kommen.

    -.-'
    Geändert von AlterHacker (04.03.2009 um 16:05 Uhr) Grund: *AUFREG*

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  9. #9
    Bad Times Virus
    Registriert seit
    30.07.2008
    Beiträge
    602

    Standard

    @AlterHacker

    ich bin auch gerade am lernen und mir hilft das
    also vielen dank
    Geändert von blackberry (06.03.2009 um 16:59 Uhr) Grund: Vollständige Zitate des Vorposters sind nach 2.6 der Boardregeln verboten

  10. #10
    Anfänger
    Registriert seit
    21.07.2008
    Beiträge
    13

    Standard

    ich hab mir jetzt nich den ganzen thread durchgelesen aber ich würd statt
    if (menue0==1)
    einfach:
    Code:
    switch( menu0 ){
    case 1 : //mach was-1
    case 2 ://mach was-2
    case ....
    default //ausgabe wenn falsche eingabe;)
    MfG DeCeN
    Geändert von DeCeN (09.03.2009 um 22:08 Uhr)
    Entweder man hat ne Linie oder geht auf'n Strich!!!

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •