Ich bin ein Neuling für die Programmierung und das ist das erste Programm, das ich entwerfe. Es ist ein Taschenrechner und in einem Abschnitt frage ich den Benutzer, ob er/sie eine andere Summe eingeben möchte, und wenn er ja sagt, wiederhole die Eingabe x, Eingabeoperator, Eingabe y und füge alle Prozesse hinzu. Das einzige Problem, das ich habe, ist, dass, wenn Sie den Prozess mehr als einmal wiederholen und dann beenden ... die Funktion kehrt zu sich selbst (der vorherige Aufrufer) und nicht zu main, wie ich es will. Bisher habe ich versucht, #pragma once
, #define
und eine zusätzliche Funktion verwenden, aber die Lösung geht immer noch Hosen runter.Zurück zu int main() anstatt zur vorherigen Funktion?
Ich finde das schwer zu erklären, also hier ist das ganze Programm, so dass Sie sehen können, was. Ich spreche über:
// Simple Calculator v3.cpp : Defines the entry point for the console application.
//
#include "tots.h"
double userInput()
{
using namespace std;
//Prompt the user to enter a digit
cout << " Please enter a digit: " << endl;
cout << " ";
//Declare a variable and assign the user's input to that variable
double input;
cin >> input;
//Return the digit the user entered
return input;
}
int userOperatorInput()
{
using namespace std;
//Prompt the user to enter an operator
cout << " Please enter the desired mathematical operation: "
<< "+ = 1; - = 2, * = 3,/= 4 " << endl;
cout << " ";
//Declare a variable and assign the user's input to that variable
int op;
cin >> op;
//Return the operator the user entered;
return op;
}
int userFinished()
{
using namespace std;
/*Ask the user whether he/she has entered the function he/she desires or if they have not
yet finished*/
cout << " Have you finished the function? "
<< "yes = 1; no = 0" << endl;
cout << " ";
//Declare a variable and assign the user's input to that variable
int userfinished;
cin >> userfinished;
//Return the user's input
return userfinished;
}
double calculateSolution(double input1, int op, double input2)
{
//Determine which operator the user entered and calculate the solution accordingly
if (op == 1)
return input1 + input2;
else if (op == 2)
return input1 - input2;
else if (op == 3)
return input1 * input2;
else if (op == 4)
return input1/input2;
else return -1;
}
double moreCalculus(double solution)
{
double xtrainput1 = solution;
int xtraop = userOperatorInput();
double xtrainput2 = userInput();
double xtrasolution = calculateSolution(xtrainput1, xtraop, xtrainput2);
bool xtrafinished = userFinished();
if (xtrafinished == 0)
moreCalculus(xtrasolution);
else
{
#ifndef RETURN
#define RETURN
return xtrasolution;
#endif
}
}
void displaySolution(double input1, int op, double input2, double solution)
{
using namespace std;
cout << " " << input1 << " " << op << " " << input2 << " = " << solution << endl;
}
void displayXtraSolution(double xtrasolution)
{
using namespace std;
cout << setprecision(20);
cout << " Solution: " << xtrasolution;
}
void end()
{
using namespace std;
int x;
cin >> x;
}
int main()
{
//Input from the user
double input1 = userInput();
//Operation user requires
int op = userOperatorInput();
//Second input from user
double input2 = userInput();
/*Declare and assign a boolean that informs whether the user has finished
the operation or not*/
bool finished = userFinished();
//Calculate the solution
double solution = calculateSolution(input1, op, input2);
//If the user has finished, display the solution
/*If the user hasn't finished, assign the required inputs from the user and calculate the
solution*/
if (finished == 1)
{
displaySolution(input1, op, input2, solution);
}
else
{
double xtrasolution = moreCalculus(solution);
displayXtraSolution(xtrasolution);
}
/*Finally, display some information on screen and ask whether the user requires to calculate
any more operations or if he/she wants to terminate the application*/
Bitte beachte, dass ich eine Header-Datei aus, die "stdafx.h"
und <iostream>
enthält.
Wenn Sie denken, '#pragma once' würde irgendwie helfen, Sie dann * wirklich * müssen zurück gehen, was auch immer Ressource Sie haben C++ zu lernen. Davon abgesehen, was Sie wollen, ist eine Schleife. – Biffen
so hin und her zu springen ist das, was [BASIC] (https://en.wikipedia.org/wiki/BASIC) zu einer so verhassten Sprache gemacht hat, da es [* spaghetti code *] erzeugt (https: //en.wikipedia .org/wiki/Spaghetti_code), der schwer zu folgen, zu verstehen und zu pflegen ist. –