Ich benötige Hilfe , denn ich soll einen Fahrkartenautomat simulieren



  • Ich muß gestehen, ich bin müde geworden mich über sowas noch mehr aufzuregen. Es ist nicht nur im Fach Anwendung do , andere Kollegen sind auch nicht besser. Ich finde es nur ätzend, das mein Arbeitsamt um 8500€ erleichtert wird, und ich im prinzip nix davon habe. ....

    Ich bringe mir schon ne menge selbst ebi, aber alles kann ich auch nicht. nochmals vielen vielen dank an alle. Hat jemand noch nen quellcode betreffend des betrages? das fehlt mir da noch, bzw wrde ich ja auch alleine machen kann mir jemand ansätze vermitteln?

    tobi



  • den befehl getch() kennt c++ nicht?!



  • tobiasl schrieb:

    den befehl getch() kennt c++ nicht?!

    im namespace std: cin.get();



  • ichhalt schrieb:

    tobiasl schrieb:

    den befehl getch() kennt c++ nicht?!

    im namespace std: cin.get();

    hilfe was ist der namespace?



  • tobiasl schrieb:

    ichhalt schrieb:

    tobiasl schrieb:

    den befehl getch() kennt c++ nicht?!

    im namespace std: cin.get();

    hilfe was ist der namespace?

    http://www.schornboeck.net/ckurs/namespace.htm 😉



  • ok das habe ich nun soweit verstanden, aber wenn ich die letzen 2 zeilen einfüge und kompilieren will kommt: error C2065: 'getch' : nichtdeklarierter Bezeichner



  • hm für getch(wartet auf Eingabe eines Zeichens) würdest du conio.h includen müssen, was aber weder C noch C++ Standard ist(funktionert nur fast überall)... nur frag ich mich ob die Dozenten das wissen und explizit erwähnt haben das nur reiner Standard verwendet werden darf.

    Aber cin.get() tuts auch ebensogut und ist Standard, nehm das lieber.



  • Hi,
    ein kleines Beispiel,
    ich hoffe es heute nacht noch einmal verbessern zu können.
    Sind wahrscheinlich viele Fehler drinn.

    #include <iostream>
    #include <cstdlib>
    #include <string>
    bool FahrkarteKaufen();    
    bool FahrkarteKaufenDialog(string,int);
    
    int main(int argc, char *argv[])
    {
    enum{
    FAHRKARTE_KAUFEN = 1,
    EXIT =  2
    };
    
    int event;
    bool GoOn=true;
    while(GoOn==true){
        std::cout <<"[1] Fahrkarte kaufen"<< std::endl
                  << "[2] Beenden"<< std::endl;
        std::cin >> event;
            switch(event){
            case FAHRKARTE_KAUFEN :
                FahrkarteKaufen();
                break;
            case EXIT:
                GoOn=false;
                break;
            default:
                std::cout << "Geben sie ein akzeptiertes Zeichen ein!"<<
                std::endl;
                break;
            }
    }
      std::cin.get();
      return 0;
    }
    
    bool FahrkarteKaufen(){
    std::cout << "Fahrkartenkaufen: "<<std::endl<<std::endl
              << "[1]Muenchen"<<std::endl
              << "[2]Berlin"<<std::endl
              << "[3]Hamburg"<<std::endl
              << "[4]Koeln"<<std::endl
              << "[5]Exit"<<std::endl
              << std::endl;
    
    std::cin.clear();
    enum{
    Muenchen = 1,
    Berlin   = 2,
    Hamburg  = 3,
    Koeln    = 4,
    Exit     = 5
    };
    
    int Auswahl;
    std::cin >>Auswahl;
    switch(Auswahl){
        case Muenchen:
        FahrkarteKaufenDialog("Muenchen",100);
        break;
        case Berlin:
        FahrkarteKaufenDialog("Berlin",100);
        break;
        case Hamburg:
        FahrkarteKaufenDialog("Hamburg",100);
        break;
        case Koeln:
        FahrkarteKaufenDialog("Koeln",100);
        break;
        case Exit:
        exit(0);
        break;
        default:
        std::cout << "Geben sie einen akzeptierten wert ein!"<<std::endl;
        break;
    }
    
    std::cin.clear();
    std::cin.get();
    return true;
    }
    
    bool FahrkarteKaufenDialog(string Zielort,int Preis)
    {
        std::cout << "Wollen sie die Fahrkarte nach: " << Zielort 
                  << " fuer " << Preis << " Euro"
                  << " kaufen? " << std::endl << std::endl
                  << "[Y]ES" << std::endl
                  << "[N]O"  << std::endl;
        char eingabe;
        std::cin >>eingabe;
        if(eingabe=='Y')
        {
        std::cout << "Betaetigen sie eine Taste um die Fahrkarte zu erhalten"
                  << std::endl;
                  std::cin.clear();
                      if(cin.get()){
                      std::cout << "Hier ist ihre Fahrkarte!";
                      }
        }
    
        else
        return false; 
    }
    

    MfG Max



  • warum schreibst du

    using namespace std;
    

    aber schreibst weiter unten

    std::cin >> ...
    


  • Operator++ schrieb:

    warum schreibst du

    using namespace std;
    

    aber schreibst weiter unten

    std::cin >> ...
    

    Sorry, das generiert mein Dev-C++ immer wenn ich ein Konsolen-Projekt erstelle
    und ich vergesse es oft zu löschen. -Ich habe es editiert.

    MfG Max



  • cool auch das funktioniert soweit.... was noch wichtig wäre wäre ja der geldeinwurf ausgabe des möglichen rückgeldes und halt der ausdruck auf lpt1

    ich schwöre euch eins: sobald ich dieses projekt überstandne habe, und ich die leistungskonferenz auch überlebe hänge ich bei der schulleitung....

    und euch gebe ich einen aus:) danke muß ich wirklich mal an dieser stelle sagen, selten ein forum erlebt wo einem newbie so schnell geholfen wird!



  • tobiasl schrieb:

    ...und halt der ausdruck auf lpt1

    in C kann man das doch ganz einfach mit file* fopen und printf machen, geht das in Standard-C++ auch?



  • Prinzipiell geht alles, was in C geht, auch in C++.....



  • Ok,
    es ist nicht gut getestet und es sind sicher Bugs drinn:

    #include <iostream>
    #include <cstdlib>
    #include <string>
    using namespace std;
    bool FahrkarteKaufen();    
    bool FahrkarteKaufenDialog(string,int);
    bool GeldeinWurf(int GeldMenge,int Preis,int &Rueckgabewert);
    
    int main(int argc, char *argv[])
    {
    enum{
    FAHRKARTE_KAUFEN = 1,
    EXIT =  2
    };
    
    int event;
    bool GoOn=true;
    while(GoOn==true){
        std::cout <<"[1] Fahrkarte kaufen"<< std::endl
                  << "[2] Beenden"<< std::endl;
        std::cin.sync();
        std::cin.clear();
        std::cin >> event;
            switch(event){
            case FAHRKARTE_KAUFEN :
                FahrkarteKaufen();
                break;
            case EXIT:
                GoOn=false;
                break;
            default:
                std::cout << "Geben sie ein akzeptiertes Zeichen ein!"<<
                std::endl;
                break;
            }
    }
      std::cin.get();
      return 0;
    }
    
    bool FahrkarteKaufen(){
    std::cout << "Fahrkartenkaufen: "<<std::endl<<std::endl
              << "[1]Muenchen"<<std::endl
              << "[2]Berlin"<<std::endl
              << "[3]Hamburg"<<std::endl
              << "[4]Koeln"<<std::endl
              << "[5]Exit"<<std::endl
              << std::endl;
    
    std::cin.clear();
    enum{
    Muenchen = 1,
    Berlin   = 2,
    Hamburg  = 3,
    Koeln    = 4,
    Exit     = 5
    };
    
    int Auswahl;
    std::cin >>Auswahl;
    switch(Auswahl){
        case Muenchen:
        FahrkarteKaufenDialog("Muenchen",150);
        break;
        case Berlin:
        FahrkarteKaufenDialog("Berlin",200);
        break;
        case Hamburg:
        FahrkarteKaufenDialog("Hamburg",110);
        break;
        case Koeln:
        FahrkarteKaufenDialog("Koeln",180);
        break;
        case Exit:
        exit(0);
        break;
        default:
        std::cout << "Geben sie einen akzeptierten wert ein!"<<std::endl;
        break;
    }
    
    std::cin.clear();
    std::cin.get();
    return true;
    }
    
    bool GeldeinWurf(int GeldMenge,int Preis,int &Rueckgabewert){
        if(GeldMenge>=Preis )
        {
        Rueckgabewert = ( GeldMenge - Preis );
        return true;
        }
        return false;   
    }
    
    bool FahrkarteKaufenDialog(string Zielort,int Preis)
    {
        std::cout << "Wollen sie die Fahrkarte nach: " << Zielort 
                  << " fuer " << Preis << " Euro"
                  << " kaufen? " << std::endl << std::endl
                  << "[Y]ES" << std::endl
                  << "[N]O"  << std::endl;
        char eingabe;
        std::cin >>eingabe;
        if(eingabe=='Y')
        {
        std::cout <<"Werfen sie bitte"<<Preis<< " Euro ein" <<std::endl; 
        int Eingeworfen;
        std::cin.clear();
        std::cin >> Eingeworfen;
    
        int Rueckgabe;
        bool isTrue; 
             isTrue = GeldeinWurf(Eingeworfen,Preis,Rueckgabe);
    
        if(isTrue==true)
        {
        std::cout << "Ihr rueckgeld betraegt: "<<Rueckgabe<<" Euro"<<std::endl;
        }
    
        else if(isTrue==false){
        std::cout << "Sie haben nicht das benoetigte Geld eingeworfen!"<<std::endl;
        return false;
        }
    
        std::cout << "Betaetigen sie eine Taste um die Fahrkarte zu erhalten"
                  << std::endl;
                  std::cin.clear();
                      if(cin.get()){
                      std::cout << "Hier ist ihre Fahrkarte!";
                      }
        }
    
        else{
        return false; 
        }
    }
    

    Drucken kann es noch nicht.
    -Dazu schau ich morgen in der Konsolen FAQ,
    soll es auf Windows laufen?

    MfG Max



  • Hi Max,
    uff damit hätt ich jetzt nicht gerechnet......
    also es läuft bis zu dem punkt fahrkarte kaufen yes no wenn ich y für yes drücke springt er danach wieder zur main funktion zurück fahrkarte kaufen 1 beenden 2

    Also die aufgabe lautet nur als konsolenanwendung, ich würde es aber dennoch gerne einmal in windows lauffähig sehen, und werde mich mit diesem quellcode und meinen bestellten c++ büchern hinsetzen und lesen so dass ich deinen quellcode auch verstehe. ... denn ich will ja mal anwendungsentwickler werden( ich hoffe das ich bald was lernen denn ich habe nur 18 monate im gegensatz zu anderen die 3 jahre haben )



  • Hab ich irgendwas nicht mitbekommen? Seit wann werden hier komplette Hausaufgaben gelöst? 😕

    Sorry, aber das riecht doch schwer nach einem Fake: "Wenn ich diese Aufgabe nicht habe, kann ich einpacken!"
    Richtig so. Kräftig auf die Tränendrüse drücken, dann mutiert auch das hier zum Hausaufgabenforum.

    @tobiasl: Falls das doch kein Fake sein sollte, bedenke bitte: Wenn du diese Aufgabe nicht alleine löst, wie willst du dann später als Programmierer oder Fachinformatiker Probleme lösen?
    Wenn die Dozenten krank sind, und dieser Stoff so wichtig ist wie du sagst, dann setzt man sich in den daraus resultierenden Freistunden einfach hin und probiert selbst ein wenig aus. Am besten eignet sich dafür ein gutes Buch.



  • @cd9000 ich will dir gerne mal kurz ein statement liefern :
    Wir sind die erste IT gruppe die statt 21 monate nur noch 18 Monate zur verfügung hat, ferner hat das Arbeitsamt Hamburg im Dezember 2003 mitgeteilt das es 2004 keine umschulungen ( bildungsgutscheine) mehr geben wird. Diese Tendenz zeichnete sich bereits im Oktober letzten jahres ab, bestätigte sich also. Daraufhin wurde in unserme Bildunszentrum die anzahl der dozenten um die hälfte verkürzt. so das ist fakt ... daraus resultiert die demotivation der restlichen dozenten durch krankheit. kannst du mir vieleicht mal sagen wie ich da noch ne umschulung hinbekommen soll? ich selbst mache mir gedanken wie ich das schaffen soll, denn die prüfung vor der ihk bleibt die selbe.
    Ich habe aber auch noch 9 andere Fächer zu schaffen, wobei ich nur 2 doppelstunden an einem freitag in programmierung habe und ich habe meine umschulung am 01.12. begonnen und hatte érst 3 freitage programmierung, und auch da nichts produktives. Und jetzt kommen die sogenannten leistungskonferenzen wo halt geschaut werden soll passt das oder passt das nicht, aber das wir kaum unterricht hatten interessiert keinen....

    also wenn du das immer noch als fake bezeichnest so ist das deine meinung, mir ist jedenfalls der spaß vergangen und hier herrscht bei mir eher nackte panik als den drang das mir jemand die "hausaufgaben" machen soll....



  • Hmmm... das ist vielleicht doch kein Fake (auch aus anderen Gründen als das letzte Posting). 🙄
    In dem Fall ziehe ich meine Anschuldigung zurück.

    Allerdings finde ich trotzdem, dass man nicht ganze Aufgaben lösen lassen sollte. Auch aus rein praktischen Gründen: Wenn einer der Dozenten hier ins Forum kommt, sieht er evtl. den kompletten Quellcode, den du eingereicht hast.



  • tobiasl schrieb:

    also es läuft bis zu dem punkt fahrkarte kaufen yes no wenn ich y für yes drücke springt er danach wieder zur main funktion zurück fahrkarte kaufen 1 beenden 2

    Du musst ein großes Y eingeben, dann geht es.

    MfG Max



  • stimmt...dann geht es , aber was muß ich nun machen um den farhschein auf den drucker zu bekommen?


Anmelden zum Antworten