Heute noch C++ für Unternehmenssoftware



  • Nachdem ich soviel geflame gelesen habe bin ich ganz dursting. Gibts hier irgendwo nen Getränkeautmat?



  • KarlHeinzRamsi schrieb:

    Nachdem ich soviel geflame gelesen habe bin ich ganz dursting. Gibts hier irgendwo nen Getränkeautmat?

    Ist der dan wenigstens mit c++ programmiert?



  • Artchi schrieb:

    Zumal ich ja für Java eine Lanze bzgl. GUI gebrochen habe, in dem ich SWT als Alternative genannt habe. Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen.

    es war diesmal auch ein recht schwacher versuch von dir, auf diffizile art den flamewar anzuheizen. das hast du schon mal besser hingekriegt...



  • Artchi schrieb:

    Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen. Jetzt kommt aber die Wahrheit raus. :p 😃

    Mmmmmmmmhhhhhhhmmmmmm, jetzt darf neuerdings nicht mehr jeder seine eigene Meinung zu Swing haben, ok.



  • Nachdem ich soviel geflame gelesen habe bin ich ganz dursting. Gibts hier irgendwo nen Getränkeautmat?

    Ist der dan wenigstens mit c++ programmiert?

    // Klassendeklaration zur Simulation eines Getränkeautomaten
    #ifndef AUTOMAT_H
    #define AUTOMAT_H
    
    class GetraenkeAutomat
    {
        public:
          GetraenkeAutomat( int Anzahl, int Dosenpreis );
    
          bool istGesperrt() const { return gesperrt; }
    
          bool istRueckgeldVorhanden() const
          {
              return Rueckgeld > 0;
          }
    
          bool DoseHerausgegeben() const { return DoseInAusgabe;}
    
          int  getGetraenkePreis() const { return PreisProDose;}
    
          void DoseFreigeben() { DoseInAusgabe = false; }
    
          void GeldPruefenUndDoseHerausgeben();
    
          void MuenzenAkzeptieren( int M );
    
          int GeldRueckGabe();
    
          int getAnzahlDosen() { return AnzahlDosen; }
    
        private:
          int AnzahlDosen;
          int PreisProDose;
          int Einnahmen;
          int eingeworfeneMuenzen;
          int Rueckgeld;
          bool DoseInAusgabe;
          bool gesperrt;
    
          GetraenkeAutomat( const GetraenkeAutomat & ); // Übergabe per Wert verbieten
    };
    #endif
    
    #include "automat.h"
    #include <iostream>
    using namespace std;
    
    GetraenkeAutomat::GetraenkeAutomat( int Anzahl, int Dosenpreis)
    : AnzahlDosen(Anzahl), PreisProDose(Dosenpreis), Einnahmen(0), Rueckgeld(0),
      DoseInAusgabe(false), gesperrt(Anzahl <= 0) 
    {}
    
    void GetraenkeAutomat::GeldPruefenUndDoseHerausgeben()
    {
         if( gesperrt )
         {
              cout << " Automat leer/gesperrt!" << endl;
              Rueckgeld = eingeworfeneMuenzen;
         }
         else
             if (eingeworfeneMuenzen < PreisProDose)
             {
                  cout << " Geld reicht nicht!" << endl;
                  Rueckgeld = eingeworfeneMuenzen;
             }
             else
             {
                 Einnahmen += PreisProDose;
                 Rueckgeld = eingeworfeneMuenzen - PreisProDose;
                 cout << " Dose faellt in Ausgabe! (rumpel)" << endl;
                 DoseInAusgabe = true;
                 if( --AnzahlDosen == 0 )
                     gesperrt = true;
             }
    }
    
    void GetraenkeAutomat::MuenzenAkzeptieren(int M)
    {
         eingeworfeneMuenzen = M;
         cout<< " " << M << " Euro eingeworfen" << endl;
    }
    
    int GetraenkeAutomat::GeldRueckGabe()
    {
        int temp = Rueckgeld;
        Rueckgeld = 0;
        cout << " Geldrueckgabe: " << temp << " Euro" << endl;
    
        return temp;
    }
    
    // Alle Methoden sind inline, weil sie sehr kurz sind, daher keine cpp-Datei.
    #ifndef PERSON_H
    #define PERSON_H 
    
    #include <iostream>
    #include <string>
    #include "automat.h"
    using namespace std;
    
    class Person
    {
      public:
        // Konstruktor mit Initialisierungsliste 
        Person( int anfaenglicheGelEuroenge ) : Geld( anfaenglicheGelEuroenge )
        {
            cout << endl << " Eine Person mit " << Geld << " Euro kommt." << endl;
        }
    
        ~Person() // Destruktor                       
        {
            cout << " Eine Person geht mit " << Geld << " Euro." << endl;
        }
    
        bool genugGeld( int Preis ) const { return  Preis <= Geld; }
    
        int  wievielGeld() const { return Geld; }
    
        void sagt( string text ) const { cout << text << endl; }
    
        void trinkt() const { sagt(" Person sagt: \"gluckgluck... aaaah!\""); }
    
        void DoseEntnehmen( GetraenkeAutomat & a ) const { a.DoseFreigeben(); }
    
        void GeldEntnehmen( int Muenzen) { Geld += Muenzen; }
    
        void GeldEinwerfen( GetraenkeAutomat & a, int Muenzen )
        {
            Geld -= Muenzen;       
            a.MuenzenAkzeptieren( Muenzen );
        }
    
        void KnopfDruecken( GetraenkeAutomat & a ) { a.GeldPruefenUndDoseHerausgeben(); }
    
      private:
        int Geld;  // Die wichtigste Eigenschaft von Kunden!
    };
    #endif
    
    // Basiert auf einem Programm aus dem Lehrbuch von Prof. Ulrich Breymann
    // C++ Eine Einführung, 5. Auflage, Hanser-Verlag
    
    #include "person.h"
    #include "automat.h"
    #include <cstdlib>
    #include <conio.h>
    
    int zufall( int x ) // Pseudo-Zufallszahl zwischen 0 und x
    {
        return rand() % x + 1; 
    }
    
    int main()
    {
        const int DOSENANZAHL = 5, DOSENPREIS = 2, MAXGELD = 10;
    
        GetraenkeAutomat objAutomat( DOSENANZAHL, DOSENPREIS ); // Objekt Automat
    
        while( !objAutomat.istGesperrt() ) // solange Dosen im Automat sind
        {
            cout << endl << " Anzahl Dosen: " << objAutomat.getAnzahlDosen() << endl;
    
            Person objPerson( zufall(MAXGELD) ); // eine Person betritt die Szene (ctor)
    
            if( objPerson.genugGeld( objAutomat.getGetraenkePreis() ) )
            {
                int geld = zufall( objPerson.wievielGeld() );
                objPerson.GeldEinwerfen( objAutomat, geld );
                objPerson.KnopfDruecken( objAutomat );
    
                if( objAutomat.istRueckgeldVorhanden() )
                   objPerson.GeldEntnehmen( objAutomat.GeldRueckGabe() );
    
                if( objAutomat.DoseHerausgegeben() )
                {
                    objPerson.DoseEntnehmen( objAutomat );
                    objPerson.trinkt();
                }
    
                if( objAutomat.istGesperrt() )
                    cout << endl << " AUTOMAT GESPERRT!!! (leer)"  << endl << endl;
            }
            else objPerson.sagt( " Leider zuwenig Geld." );
        }// eine Person verlässt die Szene (dtor)
        getch();
    }
    

    👍



  • Optimizer schrieb:

    Artchi schrieb:

    Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen. Jetzt kommt aber die Wahrheit raus. :p 😃

    Mmmmmmmmhhhhhhhmmmmmm, jetzt darf neuerdings nicht mehr jeder seine eigene Meinung zu Swing haben, ok.

    Ach komm. Du weißt doch ganz genau wie ich das gemeint habe... 🙄



  • vista schrieb:

    Artchi schrieb:

    Zumal ich ja für Java eine Lanze bzgl. GUI gebrochen habe, in dem ich SWT als Alternative genannt habe. Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen.

    es war diesmal auch ein recht schwacher versuch von dir, auf diffizile art den flamewar anzuheizen. das hast du schon mal besser hingekriegt...

    Du bist wohl hier im Forum, um mir immer vorzuhalten, das ich Flamewars anzettel. Naja, haste wenigstens deine Berufung gefunden. Können wir uns beide die Hand reichen! 😃



  • Artchi schrieb:

    Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen. Jetzt kommt aber die Wahrheit raus. :p 😃

    Kritik an Java wird von der Java-Community durchaus wahrgenommen und auch von Organisationen, die im JCP organisiert sind. Entsprechend werden die Schwächen von Java durchaus in jeder neuen Version verringert. Das betrifft die Performance, das betrifft auch die Integration. Mit Java 6 sind zum Beispiel solche Sachen wie die Tray-Icon-API oder auch die Tools-API hinzugekommen, die eine bessere Integration ermöglichen. Auch am Look&Feel wird ständig gearbeitet und inzwischen ist es schon ziemlich gut.

    Mit der Kritik von Java ist es aber auch so eine Sache. Java entwickelt sich weiterhin relativ schnell weiter. Man hat alle 2 Jahre oder so eine neue Version, die auch starke Fortschritte macht. Das wird von den Kritikern im Allgemeinen nicht gewürdigt. Stattdesen wird die Kritik so geäußert, dass man als Nutzer einer neueren Javaversion den Eindruck hat, dass dort Probleme angesprochen werden, die einfach schon lange gelöst sind oder zumindest inzwischen stark abgeschwächt wurden.

    Die Vorteile von SWT gegenüber Swing sind zum Beispiel auch so ein Beispiel. IMHO hat SWT heutzutage keine wirkliche Daseinsberechtigung mehr. Zumindest nicht für neue Projekte. Die Vorteile von SWT haben sich inzwischen stark relativiert und die Nachteile in Form von einem echt miesen Design spielen somit eine viel stärkere Rolle.

    Disclaimer: "Mieses Design" ist vielleicht der falsch Ausdruck. SWT zwingt einen halt zu einem Programmierstil, der nicht zu Java passt.



  • IMHO hat SWT heutzutage keine wirkliche Daseinsberechtigung mehr. Zumindest nicht für neue Projekte. Die Vorteile von SWT haben sich inzwischen stark relativiert und die Nachteile in Form von einem echt miesen Design spielen somit eine viel stärkere Rolle.

    Das würde ich so auch nicht behaupten, denn so sehr Swing auch technisch gesehen aufholen mag, SWT ist meiner Meinung nach immer noch vorne. Ich setze beispielsweise unter Linux zwei, manchmal drei verschiedene Java IDEs ein und Eclipse hat integrationstechnisch die Nase einfach weit vorne. Ab und an verwende ich gerne mal die Beryl-XGL Kombo, nachdem Features wie die Exposé-Kopie ganz angenehm zur Fensterverwaltung beitragen. Eclipse läuft wie gewohnt völlig anstandslos, sämtliche Effekte werden sowohl bei Popups, Menüs, etc.. übernommen. Netbeans hingegen stürzt entweder ab oder es wird einfach nichts gerendert, damit ist es also nicht nur unnötig erschwert sondern sogar völlig unmöglich zu arbeiten. Natürlich kenne ich auch die entsprechenden Workarounds, allerdings ist das meiner Meinung nach nicht Sinn der Sache.

    Ansonsten würde es mich halt interessieren, wie es da zukunftsmäßig weitergehen soll mit Java am Desktop, denn wer sich Demos von der Microsoft Windows Presentation Foundation oder von Adobe Apollo angesehen hat, überlegt schon, wie Java da mithalten will.

    P.S: Aussagen wie "Aber die Herren Javaisten sind sich zu fein, Kritik an ihrer Lieblingssprache zu zuilassen." sind meiner Meinung nach unnötige Tiefschläge. Wie wenn es unmöglich wäre objektiv zu beurteilen, wenn man Java Anhänger ist. Das scheint ein Privileg zu sein, dass C++ Programmierern vorbehalten ist. 🙄 (Auch wenn es in diesem Beitrag nicht hervorgeht, ich bin auch überzeugter Java Programmierer).



  • gleich kommt wieder ein:

    Artchi schrieb:

    Die java-fanboys nerven, weil sie immer ins c++.de forum kommen und flamewars starten 👎 👎 👎

    👍



  • Anzahl Dosen: 5

    Eine Person mit 2 Euro kommt.
    2 Euro eingeworfen
    Dose faellt in Ausgabe! (rumpel)
    Person sagt: "gluckgluck... aaaah!"
    Eine Person geht mit 0 Euro.

    Anzahl Dosen: 4

    Eine Person mit 5 Euro kommt.
    1 Euro eingeworfen
    Geld reicht nicht!
    Geldrueckgabe: 1 Euro
    Eine Person geht mit 5 Euro.

    Anzahl Dosen: 4

    Eine Person mit 10 Euro kommt.
    5 Euro eingeworfen
    Dose faellt in Ausgabe! (rumpel)
    Geldrueckgabe: 3 Euro
    Person sagt: "gluckgluck... aaaah!"
    Eine Person geht mit 8 Euro.

    Anzahl Dosen: 3

    Eine Person mit 9 Euro kommt.
    1 Euro eingeworfen
    Geld reicht nicht!
    Geldrueckgabe: 1 Euro
    Eine Person geht mit 9 Euro.

    Anzahl Dosen: 3

    Eine Person mit 3 Euro kommt.
    3 Euro eingeworfen
    Dose faellt in Ausgabe! (rumpel)
    Geldrueckgabe: 1 Euro
    Person sagt: "gluckgluck... aaaah!"
    Eine Person geht mit 1 Euro.

    Anzahl Dosen: 2

    Eine Person mit 6 Euro kommt.
    6 Euro eingeworfen
    Dose faellt in Ausgabe! (rumpel)
    Geldrueckgabe: 4 Euro
    Person sagt: "gluckgluck... aaaah!"
    Eine Person geht mit 4 Euro.

    Anzahl Dosen: 1

    Eine Person mit 2 Euro kommt.
    2 Euro eingeworfen
    Dose faellt in Ausgabe! (rumpel)
    Person sagt: "gluckgluck... aaaah!"

    AUTOMAT GESPERRT!!! (leer)

    Eine Person geht mit 0 Euro.



  • 😋 👍
    Wo bleibt der java-Getränkeautomat?



  • Der lädt noch.




Anmelden zum Antworten