Ergebnis 1 bis 10 von 10

Thema: [C(++)] Linux

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Hey, Leute ihr habt mir echt geholfen bei meinem 1. C++ Proggy unter Linux

    Deshalb hab ich euch mal mit in den Source geschoben...

    Entstanden ist aus euren Tipps das Programm Calki, das einen Taschenrechner darstellt:

    Man kann es über ./Calki starten, dann fragt es die ganzen Daten (Zahle etc) ab oder man startet es direkt über
    ./Calki -a 10 -b 11 -c * [Für 10 * 11]

    Wenn man es direkt über ./Calki startet fragt es am Ende jeder Berechnung ob eine weitere durchgeführt werden soll. Falls ihr ja sagt, dann wird bei der nächsten Abfrage die Zahl 0 automatisch durch das letzte Ergebis ersetzt.

    So, hier ist der Source:

    Code:
    // Calki 1.0 by B.G.
    // (c) 2005 by Fat Fish Software ··· [B.G.]
    
    #include <iostream.h>
    #include <stdio.h>
    #include <unistd.h>
    
    float Zahl1 = 0;
    float Zahl2 = 0;
    float Ergebnis = 0;
    char art = '+';
    int Fortsetzen(void);
    float last = 0;
    int o = 0;
    
    int main (int argc, char **argv)
    {
      int c;
         
      opterr = 0;
         
      while ((c = getopt (argc, argv, "a:b:c:")) != -1)
        switch (c)
        {
          case 'a':
            sscanf(optarg,"%f",&Zahl1);
            o = 1;
            break;
          case 'b':
            sscanf(optarg,"%f",&Zahl2);
            o = 1;
            break;
          case 'c':
            art = optarg[0];
            o = 1;
            break;
          case '?':
            if (isprint (optopt))
              fprintf (stderr, "Unknown option `-%c'.\n", optopt);
            else
              fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
              return 1;
         }
      if (o == 1)
      {
        if (art != '+')
        {
          if (art != '-')
          {
            if (art != '/')
            {
              if (art != 'x')
              {
                cout << "\n\nUngueltiger Operator!\n\n";
                return(0);
              }
            }
          }
        }
         if (art == '+')
        {
          Ergebnis = Zahl1 + Zahl2; 
        }
        if (art == '-')
        {
          Ergebnis = Zahl1 - Zahl2; 
        }
        if (art == 'x')
        {
          Ergebnis = Zahl1 * Zahl2; 
        }
        if (art == '/')
        {
          Ergebnis = Zahl1 / Zahl2; 
        }
        cout << "\n\n" << Zahl1 << " " << art << " " << Zahl2 << " = " << Ergebnis;   
        return(0);
      }
                
    
      cout << "\n\nCalki! 1.0 by B.G.\n";
      cout << "Thx to masterquest, MuadDib and to Jesus_666\n\n";
      do
      {
        cout << "\nGeben Sie einen Operator ein: [+|-|/|x]";
        cin >> art;
        if (art != '+')
        {
          if (art != '-')
          {
            if (art != '/')
            {
              if (art != 'x')
              {
                cout << "\n\nUngueltiger Operator!\n\n";
                return(0);
              }
            }
          }
        }
        cout << "Geben Sie nun die Erste Zahl ein: ";
        cin >> Zahl1;
        cout << "Geben Sie nun die Zweite Zahl ein: ";
        cin >> Zahl2;
    
        if (Zahl1 == 0)
        {
          Zahl1 = last;
          cout << "\nDie 1. Zahl nimmt Wert der letzten Berechnung an (" << last << ")";
        }
        if (Zahl2 == 0)
        {
          Zahl2 = last;
          cout << "\nDie 2. Zahl nimmt Wert der letzten Berechnung an (" << last << ")";
        }
    
        if (art == '+')
        {
          Ergebnis = Zahl1 + Zahl2; 
        }
        if (art == '-')
        {
          Ergebnis = Zahl1 - Zahl2; 
        }
        if (art == 'x')
        {
          Ergebnis = Zahl1 * Zahl2; 
        }
        if (art == '/')
        {
          Ergebnis = Zahl1 / Zahl2; 
        }
        last = Ergebnis;
        cout << "\n\n" << Zahl1 << " " << art << " " << Zahl2 << " = " << Ergebnis;
      }
      while(Fortsetzen()!=0);
      return 0;
    }
    
    int Fortsetzen(void)
    {
      char JaNein = 'j';
    
      cout << "\n\nWeitere Berechnung durchführen?";
      cin >> JaNein;
      if('j' == JaNein)
      {
        return(1);
      }
      if('n' == JaNein)
      {
        return(0);
      }
    }
    Nennt die Source-Datei 'Calki.cpp' und erstellt noch diese makefile (nenn sie 'makefile')

    Code:
    all: Calki
    
    Calki: Calki.cpp
    	g++ Calki.cpp -o Calki
    	
    run: Calki
    	./Calki
    	
    clean:
    	rm -f Calki
    Jetzt wechsle ins Verzeichnis und führe make [run] aus...

    EDIT:
    Es gibt seltsammerweise einen Fehler... wenn man das Prog .\Calki -a 10 -b 10 -c * [also überhaupt mit mal] aufruft rechnet er nicht... kA worans liegt...

    Edit2:
    Habs gelöst... Man muss jetzt aber statt * ein x für mal setzen...
    ./Calki -a 10 -b 10 -c x

    Ausgabe: 10 x 10 = 100

    Edit3:
    Danke, hab die Datei in .cpp umbenannt und die Make angepasst...

    Thx für die Infos

    Geändert von Crash-Override (12.02.2005 um 23:40 Uhr)

Berechtigungen

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