C++: Wie kann ich eine Abfrage für die Wiederholung meines Programms einbauen?

Ich habe einen C++-Programmcode geschrieben, welcher zwei Zahlen addiert oder subtrahiert.

Nach der Ausgabe habe ich eine Abfrage eingebaut, welche abfragt, ob man noch eine weitere Addition/Subtraktion durchführen oder das Programm beenden möchte.

Leider funktioniert das nicht, obwohl es dies eigentlich tun sollte.

Ich komme nicht mehr weiter. Vielleicht kann jemand von euch mir helfen.

Hier der C++-Code:

#include <iostream>

using namespace std;

int entscheidung() {
  cout << "Hallo" << endl;
  cout << "1 zum addieren zweier Zahlen" << endl;
  cout << "2 zum subtrahieren zweier Zahlen" << endl;
  cout << "" << endl;

  int a;
  cin >> a;
  cout << "" << endl;
  cout << "" << endl;

  return a;
}

int rechner(int a) {
  if (a == 1) {
    cout << "Eingabe zweier Zahlen" << endl;
    cout << "Diese werden addiert" << endl;
    cout << "" << endl;

    int zahl1, zahl2;
    cin >> zahl1;
    cin >> zahl2;

    int zwischenergebnis = zahl1 + zahl2;
    cout << "" << endl;
    cout << zahl1 << " + " << zahl2 << " = ";

    return zwischenergebnis;
  }
  else if (a == 2) {
    cout << "Eingabe zweier Zahlen" << endl;
    cout << "Diese werden addiert" << endl;
    cout << "" << endl;

    int zahl1, zahl2;
    cin >> zahl1;
    cin >> zahl2;

    int zwischenergebnis2 = zahl1 - zahl2;
    cout << "" << endl;
    cout << zahl1 << " - " << zahl2 << " = ";

    return zwischenergebnis2;
  }
  else {
    cout << "---FEHLER---" << endl;
  }
}

int main() {
  int zahl = entscheidung();
  int a = rechner(zahl);
  cout << a << endl;
  cout << "" << endl;
  cout << "Moechten Sie weiter machen?" << endl;
  cout << "Geben Sie die Zahl 1 ein zum --FORTSETZEN-- !" << endl;
  cout << "Gebens Sie die Zahl 0 ein zum --STOPPEN--  !" << endl;

  int b;
  cin >> b;

  if (b == 1) {
    cout << "" << endl;
    return entscheidung();
  }
  else {
    cout << "ENDE" << endl;
    return 0;
  }
}
Cplusplus, CPP, Programmiersprache
Python Pickle Vokabeltrainer?

Hallo,

ich will einen simplen Vokabeltrainer mit python programmieren. Um die Vokabeln die vom user eingeben werden zu speichern verwende ich pickle. Leider werden ohne Fehlermeldung keine Vokabeln in der von mir angelegten Datei gespeichert.

import random
import pickle



class Entry:
    def __init__(self, deutsch, englisch):
        self.deutsch = deutsch
        self.englisch = englisch


    def toString(self):
        return self.deutsch + " - " + self.englisch
        
eintraege = [Entry("hallo", "hello")]


def save():
    with open('vocabulary.pkl', 'wb') as voc_pkl:
        pickle.dump(eintraege, voc_pkl)


save()
 
with open('vocabulary.pkl', 'rb') as voc_pkl:
    eintraege = pickle.load(voc_pkl)



def eingabe():
    while True:
        deutsch = input("Deutsches Wort: ")
        if deutsch == "#fertig":
            return
        englisch = input("Englisches Wort: ")
        if englisch == "#fertig":
            return
        eintraege.append(Entry(deutsch, englisch))
        save()
        
def abfrage():
    while True:
        i = random.randint(0,len(eintraege)-1)
        englisch = input("Englische Übersetzung von " + eintraege[i].deutsch + ": ")
        if(englisch == "#fertig"):
            return
        if eintraege[i].englisch == englisch:
            print("korrekt!")
        else:
            print("leider falsch. Richtige Antwort: " + eintraege[i].englisch)
            
def printall():
    for eintrag in eintraege:
        print(eintrag.toString())
        
while True:
    befehl = input("Befehl: ")
    if befehl == "eingabe":
        eingabe()
    elif befehl == "abfrage":
        abfrage()
    elif befehl == "beenden":
        break
    elif befehl == "ausgabe":
        printall()
    else:
        print("keine bekannte Ausgabe. Tippe: eingabe, abfrage, ausgabe oder beenden.")
Programmiersprache, Python
C# Aus der While Schleife & Switch rauskommen?

servus,

ich habe versucht die Grundlage für den Münzeneinwurf zu coden, kann aber nicht aus der Schleife rauskommen, da immer wenn ich Enter drücke, was dafür sorgen soll, dass die Schleife endet, jedesmal 10 Cent zum Guthaben addiert werden.

Code:

while (choosedCoin.Key != ConsoleKey.Enter)
            {
                    switch (choosedCoin.Key)
                    {
                        case ConsoleKey.F3:
                         depositedAmount = depositedAmount + 200;
                         Console.WriteLine("|  Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F4:
                         depositedAmount = depositedAmount + 100;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F5:
                         depositedAmount = depositedAmount + 50;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F6:
                         depositedAmount = depositedAmount + 20;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F7:
                         depositedAmount = depositedAmount + 10;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F8:
                         depositedAmount = depositedAmount + 5;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F9:
                         depositedAmount = depositedAmount + 2;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                        case ConsoleKey.F10:
                         depositedAmount = depositedAmount + 1;
                         Console.WriteLine("Your current Credit: {0} €  ", depositedAmount/100);
                            break;

                    default:
                       Console.WriteLine("\n");
                       Console.Write("# Unidentified Key, try again! ");
                            break;
                    }
                    DepositCoin(Console.ReadKey());              
            }
Schleifen, C Sharp, Programmiersprache, Switch, Loop

Meistgelesene Beiträge zum Thema Programmiersprache