You are not logged in.

1

Thursday, April 9th 2009, 11:07pm

Taschenrechner (Anfänger) Kritik erwünscht

Hallo an alle.
Ich habe vor, einen Taschenrechner, mit allen möglichen Funktionen, wie zum Beispiel Volumen, Oberflächen oder Wurzeln zu erstellen.
Weil ich gerade Ferien habe(bin Schüler), habe ich genug Zeit, den Taschenrechner zu erstellen.
Hier schonmal ein Anfang.:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream>
#include<string>
using namespace std;
int main()
{
  int eingabe;
  float x;
  float y;
 
     cout << "Taschenrechner ©Pokertom" << endl;
      cout << endl;
        cout << "Addition <1>" << endl;
         cout << "Subtraktion <2>" << endl;
          cout << "Multiplikation <3>" << endl;
           cout << "Division <4>" << endl;
            cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
             cin >> eingabe;
              switch(eingabe)
{
             case 1:
 
 
           cout << "Geben Sie bitte den 1. Faktor an." << endl;
            cin >> x;
             cout << "+" << endl;
              cout << "Geben Sie bitte den 2. Faktor an." << endl;
               cin >> y;
                cout << "Die Summe von " << x <<  " und " << y << " sind " << x+y << "." << endl;
                 break;
 
 
 
           case 2:
 
 
             cout << "Geben Sie bitte den 1. Faktor an." << endl;
              cin >> x;
               cout << "-" << endl;
                cout << "Geben Sie bitte den 2. Faktor an." << endl;
                 cin >> y;
                  cout << "Die Differenz von " << x << " mit " << y << " sind " << x-y << "." << endl;
                   break;
 
 
         case 3:
 
 
            cout << "Geben Sie bitte den 1. Faktor an." << endl;
             cin >> x;
              cout << "*" << endl;
               cout << "Geben Sie bitte den 2. Faktor an." << endl;
                cin >> y;
                 cout << "Das Ergebnis der Muliplikation von " << x << " mit " << y << " ist " << x*y << "." << endl;
                  break;
 
 
             case 4:
 
 
            cout << "Geben Sie bitte den 1. Faktor an." << endl;
             cin >> x;
              cout << "/" << endl;
               cout << "Geben Sie bitte den 2. Faktor an." << endl;
                cin >> y;
                 cout << "Das Ergebnis der Division von " << x << " mit " << y << " ist " << x/y << "." << endl;
                  break;
}
return 0;
}

Würde mich über Anregungen, bzw. Verbesserungen freuen.
lg pokertom
Gute Nacht (gähn)

This post has been edited 1 times, last edit by "pokertom" (Apr 9th 2009, 11:20pm)


2

Friday, April 10th 2009, 1:05am

Hey

1. einen default in switch rein, falls einer Blödsinn eintippen sollte
2. würde ich eine schleife machen, damit man mehrere Operationen ausführen kann ohne die .exe jedes mal neu starten zu müssen (dann auch mit Beenden - Ziffer versehen)
3. Naja, Grammatisch sind paar Sachen nicht korrekt:
Addition: Summand + Summand = Summe
Subtraktion: Minuend - Subtrahend = Differenz
Multiplikation: Faktor * Faktor = Produkt
Division: Dividend / Divisor = Quotient


und Grammatik komplett würde ich noch überarbeiten. ^^

4. Rein als Vorschlag würde ich dir raten dein Einrück-System ebenfalls ein bisschen zu Überarbeiten ^^
5. und prüfe mal wie das Programm reagiert, wenn du einen Buchstaben eintippst :)

mfG

3

Friday, April 10th 2009, 10:19am

@Koljan777 Danke für die vielen Verbesserungsvorschläge, Sie haben mir viel geholfen.

Habe ihn nochmal überarbeitet, und sogar noch eine Währung eingebaut.Von einem Freund habe ich gehört,
dass Double genauere Ergebnisse anzeigt, vieleicht könnte ich statt float besser double benutzen?
Noch eine Frage, wenn ich als Währung/Einheit eine Zahl nehme, kommen ganz andere Ergebnisse.
Wie kann man das beheben und warum passiert das?
Bei einer Währung/Einheit aus Buchstaben passiert das ganze nicht.
Bin für Verbesserungsvorschläge und Antworten offen.
Grüße Pokertom

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
  int eingabe;
  float x; //double?
  float y; //double?
  string Waehrung;
  string info;
  bool z;
  bool wh = 0;
 
  while ( wh != 0 )
  {
    cout << "Taschenrechner ©Pokertom" << endl;
    cout << endl;
    cout << "Addition <1>" << endl;
    cout << "Subtraktion <2>" << endl;
    cout << "Multiplikation <3>" << endl;
    cout << "Division <4>" << endl;
    cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
    cin >> eingabe;
    cout << "Wollen Sie mit einer Waehrung/ Einheit rechnen?" << endl;
    cout << "Geben Sie 1/0 ein.(1 mit, 0 ohne)" << endl;
    cin >> z;
    if ( z = 1 )
    {
      switch ( eingabe )
      {
        case 1:
 
          cout << "Geben Sie bitte die Waehrung an." << endl;
          cin >> Waehrung;
          cout << "Geben Sie bitte den 1. Summand an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den 2. Summand an." << endl;
          cin >> y;
          cout << "Die Summe der Rechnung ergibt: " << x << Waehrung << " + " << y << Waehrung << " = " << x + y
               << Waehrung << "." << endl;
        break;
 
 
 
        case 2:
 
          cout << "Geben Sie bitte die Waehrung an." << endl;
          cin >> Waehrung;
          cout << "Geben Sie bitte den Minuent an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den Subtrahent an." << endl;
          cin >> y;
          cout << "Die Differenz der Rechnung ergibt: " << x << Waehrung << " - " << y << Waehrung << " = " << x - y
               << Waehrung << "." << endl;
        break;
 
 
        case 3:
 
          cout << "Geben Sie bitte die Waehrung an." << endl;
          cin >> Waehrung;
          cout << "Geben Sie bitte den 1. Faktor an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den 2. Faktor an." << endl;
          cin >> y;
          cout << "Das Produkt der Rechnung ergibt: " << x << Waehrung << " * " << y << Waehrung << " = " << x * y
               << Waehrung << "." << endl;
        break;
 
 
        case 4:
 
          cout << "Geben Sie bitte die Waehrung an." << endl;
          cin >> Waehrung;
          cout << "Geben Sie bitte den Dividend an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den Divisor an." << endl;
          cin >> y;
          cout << "Der Quotient der Rechnung ergibt: " << x << Waehrung << " / " << y << Waehrung << " = " << x / y
               << Waehrung << "." << endl;
        break;
        default:
          cout << "(Fehler: Ungueltige Eingabe!)";
        break;
      }
    }
    else if ( z = 0 )
    {
      switch ( eingabe )
      {
        case 1:
 
          cout << "Geben Sie bitte den 1. Summand an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den 2. Summand an." << endl;
          cin >> y;
          cout << "Die Summe der Rechnung ergibt: " << x << " + " << y << " = " << x + y << "." << endl;
        break;
 
 
 
        case 2:
 
          cout << "Geben Sie bitte den Minuent an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den Subtrahent an." << endl;
          cin >> y;
          cout << "Die Differenz der Rechnung ergibt: " << x << " - " << y << " = " << x - y << "." << endl;
        break;
 
 
        case 3:
 
 
          cout << "Geben Sie bitte den 1. Faktor an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den 2. Faktor an." << endl;
          cin >> y;
          cout << "Das Produkt der Rechnung ergibt: " << x << " * " << "." << endl;
        break;
 
 
        case 4:
 
 
          cout << "Geben Sie bitte den Dividend an." << endl;
          cin >> x;
          cout << "Geben Sie bitte den Divisor an." << endl;
          cin >> y;
          cout << "Der Quotient der Rechnung ergibt: " << x << " / " << y << " = " << x / y << "." << endl;
        break;
        default:
          cout << "(Fehler: Ungültige Eingabe!)";
        break;
      }
    }
    cout << endl;
    cout << "Wollen Sie nochmal rechnen?" << endl;
    cout << "<0> Nein, <1> Klar" << endl;
    cin >> wh;
    cout << endl;
  }
  return 0;
}

4

Friday, April 10th 2009, 3:53pm

1. Mach mal ein Screenshot von dem Fehler mit der Währung
2. Mach einen Leerzeichen zwischen Angabe der Summanden etc. und der Währung. das könnte leicht irritieren glaube ich
3. Als Programmierer muss man sich ständig bemühen Ressourcen wie RechnerZeit und RechnerKapazität zu sparen. Du hast den Code komplett runterkopiert um es mit und ohne Währung zu haben ;( . ich hätte da bei der frage mit der Währung (ob ja oder nein) die Währung gleich eingeben gelassen, wenn 1 oder Waehrung = "" wenn 0 eben. und dann nur den oberen Code ausgebenen. wenn Waehrung="" ausgegeben wird, tut es ja keinem weh ^^
4. wegen double - kannst du machen, wenn du es brauchst. float = 7 oder 8 nachkommastellen und bei double waren es 15 oder 16, wenn ich mich recht erinnere.
5. Variablen "eingabe" und "z" werden nicht auf Richtige Eingabe überprüft. was passiert wenn du bei Eingabe von "z" einen Buchstaben eintippst?
6. Anmerkung: bei default kannst du break weglassen, weil danach eh Rumpfende von switch folgt. ist aber kein Fehler!!

mfG

5

Friday, April 10th 2009, 4:55pm

kleine Anmerkung:
läuft das Programm so überhaupt?

C/C++ Quellcode

1
2
3
bool wh = 0;
 
  while ( wh != 0 )

denn du setzt wh auf 0 und führst direkt danach die Schleife nur dann aus, wenn wh ungleich 0 ist. Hier würde sich eine "do ... while" Schleife anbieten, damit er den Schleifenrumpf zumindest einmal ausführt.

6

Saturday, April 11th 2009, 6:02am

@Rondrer

das hat mich auch voll irritiert, aber ich habe geschwiegen :S

7

Sunday, April 12th 2009, 12:11am

Ich habe das Programm so oft überarbeitet(Wegen der Grammatik) und hin und wieder compiliert,
dass ich zum Schluss vergessen habe, noch mal zu compilieren.
So habe ich den Fehler nicht bemerkt.
Der Fehler mit den Zahlen als Waehrung existierte gar nicht,
ich habe mir nur eingebildet es wäre einer,
weil ich da noch keine Leerzeichen hatte und es deshalb so aussah,
als wäre da eine Rechnung durcheinandergeraten.
@Koljan777:Mit Leerzeichen sieht es wirklich übersichtlicher aus.
Vielen Dank für eure Hilfe.
Hier nun die aktuelle Version.:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
  int eingabe;
  double x;
  double y;
  double r;
  string Waehrung;
  bool z;
  bool wh = 1;
 
  while ( wh = 1 )
  {
    cout << "Taschenrechner ©Pokertom" << endl;
    cout << endl;
    cout << "Grundrechenarten <1>" << endl;
    cout << "Volumen von Geometrischen Koerpern <2>" << endl;
    cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
    cin >> eingabe;
    switch ( eingabe )
    {
      case 1:
        cout << "Addition <1>" << endl;
        cout << "Subtraktion <2>" << endl;
        cout << "Multiplikation <3>" << endl;
        cout << "Division <4>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Summand an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Summand an." << endl;
            cin >> y;
            cout << "Die Summe der Rechnung ergibt: " << x << " " << Waehrung << " + " << y << " " << " " << Waehrung << " = "
                 << x + y << " " << " " << Waehrung << "." << endl;
 
          case 2:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Minuent an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Subtrahent an." << endl;
            cin >> y;
            cout << "Die Differenz der Rechnung ergibt: " << x << " " << Waehrung << " - " << y << " " << Waehrung << " = "
                 << x - y << " " << Waehrung << "." << endl;
          break;
 
 
          case 3:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Faktor an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Faktor an." << endl;
            cin >> y;
            cout << "Das Produkt der Rechnung ergibt: " << x << " " << Waehrung << " * " << y << " " << Waehrung << " = " << x
                 * y << " " << Waehrung << "." << endl;
          break;
 
 
          case 4:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Dividend an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Divisor an." << endl;
            cin >> y;
            cout << "Der Quotient der Rechnung ergibt: " << x << " " << Waehrung << " / " << y << " " << Waehrung << " = "
                 << x / y << " " << Waehrung << "." << endl;
        }
      break;
      case 2:
        cout << "Volumen der Dreieckspyramide <1>" << endl;
        cout << "Volumen der Viereckspyramide  <2>" << endl;
        cout << "Volumen des Kegels <3>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie bitte die Grundseite(g) der Bodenflaeche an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Hoehe(h) der Bodenflaeche an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Dreieckspyramide an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen der Dreieckspyramide.:" << x * y / 2 * z / 2 << endl;
          break;
          case 2:
 
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Viereckseckspyramide an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen der Viereckspyramide.:" << x * y * z / 2 << endl;
          break;
 
          case 3:
            cout << "Geben Sie bitte den Radius des Bodenkreises an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) des Kegels an." << endl;
            cin >> y;
            x = r * r * 3.1415926535897932384426433832795 * y /3;
            cout << "Dies ist das Volumen des Kegels.:" << x << endl;
        }
      break;
      default:
        cout << "(Fehler: Ungueltige Eingabe!)";
    }
    cout << endl;
    cout << "Wollen Sie nochmal rechnen?" << endl;
    cout << "<0> Nein, <1> Klar" << endl;
    cin >> wh;
    cout << endl;
  }
}

This post has been edited 3 times, last edit by "pokertom" (Apr 12th 2009, 11:04am)


8

Sunday, April 12th 2009, 11:54am

Habe es nochmals überarbeitet.
Einheiten dafür folgen noch.
Dies hier folgt noch in der Oberflaechenberechnung:
Kugel (verstehe ich nicht)
Zylinder
Dreieckspyramide
Viereckspyramide
Kegel (das auch nicht)
Werde es trotzdem versuchen und hoffentlich klappt's.
Grüße Pokertom

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
  int eingabe;
  double x;
  double y;
  double z;
  double r;
  string Waehrung;
  bool wh = 1;
  const double pi = 3.141592653589793;
 
  while ( wh = 1 )
  {
    cout << "Taschenrechner ©Pokertom" << endl;
    cout << endl;
    cout << "Grundrechenarten <1>" << endl;
    cout << "Volumen von Geometrischen Koerpern <2>" << endl;
    cout << "Oberflaeche von Geometrischen Koerpern <2>" << endl;
    cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
    cin >> eingabe;
    switch ( eingabe )
    {
      case 1:
        cout << "Addition <1>" << endl;
        cout << "Subtraktion <2>" << endl;
        cout << "Multiplikation <3>" << endl;
        cout << "Division <4>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Summand an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Summand an." << endl;
            cin >> y;
            cout << "Die Summe der Rechnung ergibt: " << x << " " << Waehrung << " + " << y << " " << " " << Waehrung << " = "
                 << x + y << " " << " " << Waehrung << "." << endl;
 
          case 2:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Minuent an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Subtrahent an." << endl;
            cin >> y;
            cout << "Die Differenz der Rechnung ergibt: " << x << " " << Waehrung << " - " << y << " " << Waehrung << " = "
                 << x - y << " " << Waehrung << "." << endl;
          break;
 
 
          case 3:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Faktor an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Faktor an." << endl;
            cin >> y;
            cout << "Das Produkt der Rechnung ergibt: " << x << " " << Waehrung << " * " << y << " " << Waehrung << " = " << x
                 * y << " " << Waehrung << "." << endl;
          break;
 
 
          case 4:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Dividend an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Divisor an." << endl;
            cin >> y;
            cout << "Der Quotient der Rechnung ergibt: " << x << " " << Waehrung << " / " << y << " " << Waehrung << " = "
                 << x / y << " " << Waehrung << "." << endl;
        }
      break;
      case 2:
        cout << "Volumen des Wuerfels <1>" << endl;
        cout << "Volumen des Quaders <2>" << endl;
        cout << "Volumen der Kugel <3>" << endl;
        cout << "Volumen des Zylinders <4>" << endl;
        cout << "Volumen der Dreieckspyramide <5>" << endl;
        cout << "Volumen der Viereckspyramide  <6>" << endl;
        cout << "Volumen des Kegels <7>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Dies ist das Volumen des Wuerfels.:" << x * x * x << endl;
          break;
          case 2:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Laenge der Seite c an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen des Wuerfels.:" << x * y * z << endl;
          break;
          case 3:
            cout << "Geben Sie bitte den Radius(r)der Kugel an." << endl;
            cin >> r;
            cout << "Dies ist das Volumen der Kugel.:" << r * r * r / 3 * 4 * pi << endl;
          break;
 
          case 4:
            cout << "Geben Sie bitte den Radius des Bodenkreises an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) des Zylinders an." << endl;
            cin >> y;
            x = r * r * pi * y;
            cout << "Dies ist das Volumen des Zylinders.:" << x << endl;
 
          case 5:
            cout << "Geben Sie bitte die Grundseite(g) der Bodenflaeche an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Hoehe(h) der Bodenflaeche an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Dreieckspyramide an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen der Dreieckspyramide.:" << x * y / 2 * z / 2 << endl;
          break;
          case 6:
 
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Viereckseckspyramide an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen der Viereckspyramide.:" << x * y * z / 2 << endl;
          break;
 
          case 7:
            cout << "Geben Sie bitte den Radius des Bodenkreises an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) des Kegels an." << endl;
            cin >> y;
            x = r * r * pi * y / 3;
            cout << "Dies ist das Volumen des Kegels.:" << x << endl;
 
          default:
            cout << "(Fehler: Ungueltige Eingabe!)";
        }
      break;
      case 3:
        cout << "Oberflaeche von einem Wuerfel <1>" << endl;
        cout << "Oberflaeche von einem Quader <2>" << endl;
        cout << "Oberflaeche von einer Kugel <3>" << endl;
        cout << "Oberflaeche von einem Zylinder <4>" << endl;
        cout << "Oberflaeche von einer Dreieckspyramide <5>" << endl;
        cout << "Oberflaeche von einer Viereckspyramide <6>" << endl;
        cout << "Oberflaeche von einem Kegel <7>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
         case 1:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Dies ist die Oberfaeche des Wuerfels.:" << x * x * 6 << endl;
          break;
          case 2:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Laenge der Seite c an." << endl;
            cin >> z;
            cout << "Dies ist die Oberflaeche des Quaders.:" << 2*(x*y)+2*(x*z)+2*(y*z) << endl;
          break;
          default:
            cout << "(Fehler: Ungueltige Eingabe!)";
    }
    cout << endl;
    cout << "Wollen Sie nochmal rechnen?" << endl;
    cout << "<0> Nein, <1> Klar" << endl;
    cin >> wh;
    cout << endl;
  }
}
}

This post has been edited 1 times, last edit by "pokertom" (Apr 12th 2009, 1:49pm)


9

Sunday, April 12th 2009, 3:40pm

Ich habe ich noch den Taschenrechner nochmals überarbeitet, und langsam gehenmir die Ideen aus. :thumbdown:
Wenn zum Beispiel bei einer Rechnnung m*m angegeben wird, muss dann ja m² dort stehen.
Hat jemand 'ne Idee, wie Ich das Bewältigen kann?
Mir fiel nur ein, für jede Längeneinheit eine if & else abfragung durchzuführen, was bei den vielen Längeneinheiten die es gibt problematisch sein dürfte. :huh:
Gruss Pokertom

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
  int eingabe;
  double x;
  double y;
  double z;
  double r;
  double h;
  string Waehrung;
  bool wh = 1;
  const double pi = 3.141592653589793;
 
  while ( wh = 1 )
  {
    cout << "Taschenrechner ©Pokertom" << endl;
    cout << endl;
    cout << "Grundrechenarten <1>" << endl;
    cout << "Volumen von Geometrischen Koerpern <2>" << endl;
    cout << "Oberflaeche von Geometrischen Koerpern <3>" << endl;
    cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
    cin >> eingabe;
    switch ( eingabe )
    {
      case 1:
        cout << "Addition <1>" << endl;
        cout << "Subtraktion <2>" << endl;
        cout << "Multiplikation <3>" << endl;
        cout << "Division <4>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Summand an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Summand an." << endl;
            cin >> y;
            cout << "Die Summe der Rechnung ergibt: " << x << " " << Waehrung << " + " << y << " " << " " << Waehrung << " = "
                 << x + y << " " << " " << Waehrung << "." << endl;
 
          case 2:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Minuent an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Subtrahent an." << endl;
            cin >> y;
            cout << "Die Differenz der Rechnung ergibt: " << x << " " << Waehrung << " - " << y << " " << Waehrung << " = "
                 << x - y << " " << Waehrung << "." << endl;
          break;
 
 
          case 3:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den 1. Faktor an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den 2. Faktor an." << endl;
            cin >> y;
            cout << "Das Produkt der Rechnung ergibt: " << x << " " << Waehrung << " * " << y << " " << Waehrung << " = " << x
                 * y << " " << Waehrung << "." << endl;
          break;
 
 
          case 4:
            cout << "Geben Sie die Waehrung/Einheit ein." << endl;
            cin >> Waehrung;
            cout << "Geben Sie bitte den Dividend an." << endl;
            cin >> x;
            cout << "Geben Sie bitte den Divisor an." << endl;
            cin >> y;
            cout << "Der Quotient der Rechnung ergibt: " << x << " " << Waehrung << " / " << y << " " << Waehrung << " = "
                 << x / y << " " << Waehrung << "." << endl;
        }
      break;
      case 2:
        cout << "Volumen des Wuerfels <1>" << endl;
        cout << "Volumen des Quaders <2>" << endl;
        cout << "Volumen der Kugel <3>" << endl;
        cout << "Volumen des Zylinders <4>" << endl;
        cout << "Volumen der Dreieckspyramide <5>" << endl;
        cout << "Volumen der Viereckspyramide  <6>" << endl;
        cout << "Volumen des Kegels <7>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Dies ist das Volumen des Wuerfels.:" << x * x * x << endl;
          break;
          case 2:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Laenge der Seite c an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen des Wuerfels.:" << x * y * z << endl;
          break;
          case 3:
            cout << "Geben Sie bitte den Radius(r)der Kugel an." << endl;
            cin >> r;
            cout << "Dies ist das Volumen der Kugel.:" << r * r * r / 3 * 4 * pi << endl;
          break;
 
          case 4:
            cout << "Geben Sie bitte den Radius des Bodenkreises an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) des Zylinders an." << endl;
            cin >> h;
            x = r * r * pi * h;
            cout << "Dies ist das Volumen des Zylinders.:" << x << endl;
 
          case 5:
            cout << "Geben Sie bitte die Grundseite(g) der Bodenflaeche an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Hoehe(h) der Bodenflaeche an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Dreieckspyramide an." << endl;
            cin >> h;
            cout << "Dies ist das Volumen der Dreieckspyramide.:" << x * y / 2 * h / 2 << endl;
          break;
          case 6:
 
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Hoehe(h) der Viereckseckspyramide an." << endl;
            cin >> h;
            cout << "Dies ist das Volumen der Viereckspyramide.:" << x * h * z / 2 << endl;
          break;
 
          case 7:
            cout << "Geben Sie bitte den Radius des Bodenkreises an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) des Kegels an." << endl;
            cin >> h;
            x = ( pi / 3 ) * r * r * h;
            cout << "Dies ist das Volumen des Kegels.:" << x << endl;
 
          default:
            cout << "(Fehler: Ungueltige Eingabe!)";
        }
      break;
      case 3:
        cout << "Oberflaeche von einem Wuerfel <1>" << endl;
        cout << "Oberflaeche von einem Quader <2>" << endl;
        cout << "Oberflaeche von einer Kugel <3>" << endl;
        cout << "Oberflaeche von einem Zylinder <4>" << endl;
        cout << "Oberflaeche von einer Dreieckspyramide <5>" << endl;
        cout << "Oberflaeche von einer Viereckspyramide <6>" << endl;
        cout << "Oberflaeche von einem Kegel <7>" << endl;
        cout << "Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!" << endl;
        cin >> eingabe;
        switch ( eingabe )
        {
          case 1:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Dies ist die Oberfaeche des Wuerfels.:" << x * x * 6 << endl;
          break;
          case 2:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite c an." << endl;
            cin >> z;
            cout << "Dies ist die Oberflaeche des Quaders.:" << 2 * ( x * y ) + 2 * ( x * z ) + 2 * ( y * z ) << endl;
          break;
 
          case 3:
            cout << "Geben Sie den Radius(r) an." << endl;
            cin >> r;
            cout << "Dies ist die Oberflaeche der Kugel.:" << 4 * pi * r * r << endl;
          break;
 
          case 4:
            cout << "Geben sie den Radius(r) der Bodenflaeche an." << endl;
            cin >> r;
            cout << "Geben Sie bitte die Hoehe(h) an." << endl;
            cin >> h;
            cout << "Dies ist die Oberflaeche des Zylinders.:" << r * r * pi * h << endl;
          break;
          case 5:
            cout << "Geben Sie die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie die Seite(s) an." << endl;
            cin >> z;
            cout << "Dies ist die Oberflaeche der Dreieckspyramide.:" << ( x * x / 2 ) + 3 * ( x * z / 2 ) << endl;
          break;
 
          case 6:
            cout << "Geben Sie die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie die Seite(s) an." << endl;
            cin >> z;
            cout << "Dies ist die Oberflaeche der Viereckspyramide.:" << ( x * x ) + 4 * ( x * z / 2 ) << endl;
          break;
 
          case 7:
            cout << "Geben Sie den Radius(r) an." << endl;
            cin >> r;
            cout << "Geben Sie die Seite(s) an." << endl;
            cin >> z;
            cout << "Dies ist die Oberflaeche des Kegels.:" << ( pi * r * r ) + ( pi * r * z ) << endl;
          break;
 
 
          default:
            cout << "(Fehler: Ungueltige Eingabe!)";
        }
    }
    cout << endl;
    cout << "Wollen Sie nochmal rechnen?" << endl;
    cout << "<0> Nein, <1> Klar" << endl;
    cin >> wh;
    cout << endl;
 
  }
}

This post has been edited 1 times, last edit by "pokertom" (Apr 12th 2009, 3:46pm)


10

Sunday, April 12th 2009, 4:09pm

Ich habe noch ein anderes Problem:
Wieso zeigt Die Eingabeaufforderung die default anweisung an?
Kann keinen Fehler entdecken!

Taschenrechner ©Pokertom
Grundrechenarten <1>
Volumen von Geometrischen Koerpern <2>
Oberflaeche von Geometrischen Koerpern <2>
Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!
2
Volumen des Wuerfels <1>
Volumen des Quaders <2>
Volumen der Kugel <3>
Volumen des Zylinders <4>
Volumen der Dreieckspyramide <5>
Volumen der Viereckspyramide <6>
Volumen des Kegels <7>
Geben Sie eine der Zahlen in <?> ein, um das Programm zu starten!
7
Geben Sie bitte den Radius des Bodenkreises an.
5
Geben Sie bitte die Hoehe(h) des Kegels an.
10
Dies ist das Volumen des Kegels.:261.799
(Fehler: Ungueltige Eingabe!)//Wieso kommt das?
Wollen Sie nochmal rechnen?
<0> Nein, <1> Klar

11

Sunday, April 12th 2009, 7:45pm

Hmmm sieht so aus, als ob der Fehler nur beim Kegel auftreten würde, oder?
Beim Würfel und Quader passt es, aber da hast du ein Schreibfehler drin:

C/C++ Quellcode

1
2
3
4
5
6
7
8
case 2:
            cout << "Geben Sie bitte die Laenge der Seite a an." << endl;
            cin >> x;
            cout << "Geben Sie bitte die Laenge der Seite b an." << endl;
            cin >> y;
            cout << "Geben Sie bitte die Laenge der Seite c an." << endl;
            cin >> z;
            cout << "Dies ist das Volumen des [b]Wuerfels[/b].:" << x * y * z << endl;

Sollte Quader statt Würfel stehen, nehm ich an.


Zum Prob: hast einn break; vergessen, in Zeile 149 ;)
MlG
SwiPP

12

Sunday, April 12th 2009, 8:10pm

@SwiPP
Danke, habe ich verbessert.
Hab an der falschen Stelle geguckt, und so nicht gefunden worans lag.

Noch mal an alle.:
Habt ihr vieleicht noch Ideen, was ich in den Taschenrechner einbauen könnte?
Natürlich nur Sachen die zu bewerkstelligen sind.
Bitte keine komplizierten Algorithmen oder ähnliches Zeug. 8o
Sag danke schon mal im voraus.
Grüsse Pokertom

13

Sunday, April 12th 2009, 9:20pm

Habe zuerst auch weiter unten geguckt^^

Zur Frage:

Sinus, Cosinus, Tangens, Arcustangens, Arcussinus, Arcustangens =) Könnte ich gerade brauchen xD

Naja, sonst halt Brüche ausdividieren. Vielleicht.

Wurzel ziehen und quadrieren (oder sonstige Potenzen).
öhmm was kommt mir noch in den Sinn. ein ggT, kgV berechner.
Joah, kannst noch einiges einabuen, wenn du Lust hast^^

//E: Irgend etwas in Snne eines Durchschnittserrechners ist mir noch in den Sinn gekommen.

14

Sunday, April 12th 2009, 11:25pm

@SwiPP Danke für die vielen Vorschläge. :thumbsup:
Habe einige Vordefinierten Funktionen der Bibliothek <cmath> in mein Projekt eingebunden.
Brüche hatte ich auch schon im Visier, muss mir nur über den Aufbau noch Gedanken machen.
Ich lade den Text jetzt in .txt Dateien hoch, damit es nicht so unübersichtlich wird. (Bei knapp 360 Zeilen Text)
Grüsse Pokertom
pokertom has attached the following file:

15

Monday, April 13th 2009, 11:07am

Habe jetzt auch Addition, Subraktion, Multiplikation und Division von Brüchen eingefügt. :D
@SwiPP
Durchschnitt ist zu scher umzusetzen, aber der ggT und der kgT sind eine gute Idee.
Guck mal, ob ichs mit dem Modulo Opperator hinkriege, wiegesagt, ich arbeite noch nicht so lange mit C++.

Grüsse Pokertom
pokertom has attached the following file:

16

Monday, April 13th 2009, 11:48am

Ich bin mal ehrlich: Das hier ist doch nix gekonnt, nichtmal für nen Anfänger.
Bau das doch mal so um, dass man die Rechnung direkt eingeben kann und der das automatisch rechnet.
rya.

17

Monday, April 13th 2009, 1:12pm

was soll die währung/einheit sein?
was passiert dann, wenn du durch 0 dividierst (x/0)? ne fehlermeldung wäre schön bzw. ne neuberechnung:

Source code

1
2
3
4
5
6
7
Geben Sie die Waehrung/Einheit ein.
12
Geben Sie bitte den Dividend an.
13
Geben Sie bitte den Divisor an.
0
Der Quotient der Rechnung ergibt: 13 12/0 12=1.#INF 12.


die darstellung ist viel zu kompliziert. könnte viel einfacher sein ;)
wann kann man das programmende erreichen? wenn eine berechnung durchgeführt wurde, dann sollte es eine meldung erscheinen, ob man weitere berechnungen durchführen möchte oder das programm beenden.


lg

18

Monday, April 13th 2009, 5:58pm

@ Composer.
Man kann ja auswählen, ob man noch eine Rechnung durchführen will oder nicht.

@ superuser.
Ich finde es ist für den Beginn eine gute Übung, um zu sehen, wie ein Programm funktioniert, wie weit man mit if und while gehen kann. Klar kann man das auch mit Arrays schöner darstellen, aber für den Beginn ist das doch ganz gut, mMn.

19

Monday, April 13th 2009, 8:13pm

eigentlich meinte ich, dass man die ganze prozedur von anfang an machen muss. zb. der user will ganze zeit nur additionsbeispiele machen und da muss er jedes mal zuerst in die oberste stufe (das hauptmenü) springen. ;)
genau da soll es erscheinen, ob er weitere berechnungen durchführen möchte, oder lieber ins hauptmenü gelangen möchte

20

Monday, April 13th 2009, 8:42pm

Eine Verbesserung habe ich oben schon vorgeführt, die Abfrage für die Währung aus dem switch raus nehmen, damit du es nicht 4 mal in jedem case drin hast...

Social bookmarks