Programm funktioniert nicht, funktion wird als Klassendefintion gesehen (?)
-
Hallo ich habe in einem Programm zwei Header Dateien integriert. Auch ein paar Funktionen. Jetzt sieht mein Compiler zwei von dieser allerdings als Klassendefintionen..
/* Author: Julian S. */ //main.cpp #include <stdio.h> #include <cstdlib> #include <iostream> #include <stdlib.h> #include <math.h> #include "circalc.h" #include "sqrcalc.h" using namespace std; double circalc(); double sqrcalc(); void menu(); void menufora(); void menuforarea(); void menufordiagonal(); void menuforperimeter(); Square sqr1; int main(int argc, char const *argv[]) { menu(); return 0; } double sqrcalc(){ cout << "\tWhat do you want to calculate?\n" << "1. a (Side)\n" << "2. Area\n" << "3. Perimeter\n" << "4. Diagonal\n"; char inpt; cin >> inpt; switch (inpt) { case '1': system ("clear"); menufora(); break; case '2': system("clear"); menuforarea(); break; case '3': system("clear"); menuforperimeter(); break; case '4': system("clear"); menufordiagonal(); default: system("clear"); cout << "Seems like something went wrong- try again!" << '\n'; break; }} double circalc(){ cout << "\t Calculate area by:\n" << "1. Radius\n" << "2. Circumference\n" << "3. Diameter\n"; char inpt; cin >> inpt; Circle cir1; switch (inpt) { case '1': system("clear"); cout << "Please type in the radius: " << '\n'; cin >> cir1.cirradius; cout << "The area is: " << cir1.cirareabyradius() <<'\n'; cin.sync(); cin.get(); break; case '2': system("clear"); cout << "Please type in the circumference: " << '\n'; cin >> cir1.circumference; cout << "The area is: " << cir1.cirareabycircumference() <<'\n'; cin.sync(); cin.get(); break; case '3': system("clear"); cout << "Please type in the diameter: " << '\n'; cin >> cir1.cirdiameter; cout << "The area is: " << cir1.cirareabydiameter() <<'\n'; cin.sync(); cin.get(); break; default: cout << "Seems like something went wrong- try again!" << '\n'; break; }} void menu(){ cout << "Main menu: \n" << "\t1. CirCalc\n" << "\t2. SqrCalc\n"; char inpt; cin >> inpt; switch (inpt) { case '1': system("clear"); circalc(); break; case '2': system("clear"); sqrcalc(); break; default: cout << "Seems like something went wrong- try again!" << '\n'; break; } } void menufora(){ cout << "\t By what do you want to calculate a?\n" << "1. Area\n" << "2. Perimeter\n" << "3. Diagonal\n"; char inpt; cin >> inpt; switch (inpt) { case '1': system("clear"); cout << "Please type in the area\n"; cin >> sqr1.sqrarea; cout << "The side a is: " << sqr1.sqrabyarea() << "\n"; cin.sync(); cin.get(); break; case '2': system("clear"); cout << "Please type in the perimeter\n"; cin >> sqr1.sqrperimeter; cout << "The side a is: " << sqr1.sqrabyperimeter() << "\n"; cin.sync(); cin.get(); break; case '3': system("clear"); cout << "Please type in the diagonal\n"; cin >> sqr1.sqrdiagonal; cout << "The side a is: " << sqr1.sqrabydiagonal() << "\n"; cin.sync(); cin.get(); break; default: cout << "Something went wrong\n"; break; } } void menuforarea(){ cout << "\t By what do you want to calculate the area?\n" << "1. a\n" << "2. Perimeter\n" << "3. Diagonal\n"; char inpt; cin >> inpt; switch (inpt) { case '1': system("clear"); cout << "Please type in a\n"; cin >> sqr1.sqra; cout << "The area is: " << sqr1.sqrareabya() << "\n"; cin.sync(); cin.get(); break; case '2': system("clear"); cout << "Please type in the perimeter\n"; cin >> sqr1.sqrperimeter; cout << "The area is: " << sqr1.sqrareabyperimeter() << "\n"; cin.sync(); cin.get(); break; case '3': system("clear"); cout << "Please type in the diagonal\n"; cin >> sqr1.sqrdiagonal; cout << "The area is: " << sqr1.sqrareabydiagonal() << "\n"; cin.sync(); cin.get(); break; default: cout << "Something went wrong\n"; break; } void menufordiagonal(){ cout << "\t By what do you want to calculate the diagonal?\n" << "1. a\n" << "2. Perimeter\n" << "3. Area\n"; cin >> inpt; switch (inpt) { case '1': system("clear"); cout << "Please type in a\n"; cin >> sqr1.sqra; cout "The area is: " << sqr1.sqrdiagonalbya() << "\n"; cin.sync(); cin.get(); break; case '2': system("clear"); cout << "Please type in the perimeter\n"; cin >> sqr1.sqrperimeter; :cout "The area is: " << sqr1.sqrdiagonalbyperimeter() << "\n"; cin.sync(); cin.get(); break; case '3': system("clear"); cout << "Please type in the area\n"; cin >> sqr1.sqrarea; cout "The area is: " << sqr1.sqrdiagonalbyarea() << "\n"; cin.sync(); cin.get(); break; default: cout "Something went wrong\n"; break; } void menuforperimeter(){ cout << "\t By what do you want to calculate the perimeter?\n" << "1. a\n" << "2. Diagonal\n" << "3. Area\n"; cin >> inpt; switch (inpt) { case '1': system("clear"); cout << "Please type in a\n"; cin >> sqr1.sqra; cout "The area is: " << sqr1.sqrperimeterbya() << "\n"; cin.sync(); cin.get(); break; case '2': system("clear"); cout << "Please type in the diagonal\n"; cin >> sqr1.sqrdiagonal; :cout "The area is: " << sqr1.sqrperimeterbydiagonal() << "\n"; cin.sync(); cin.get(); break; case '3': system("clear"); cout << "Please type in the area\n"; cin >> sqr1.sqrarea; cout "The area is: " << sqr1.sqrperimeterbyarea() << "\n"; cin.sync(); cin.get(); break; default: cout "Something went wrong\n"; break; }
//CirCalc.h double circalc(); void menu(); /*Functions*/ class Circle { public: double cirdiameter; double cirradius; double circumference; double cirareabyradius() { /*area by radius*/ return M_PI * cirradius * cirradius; } double cirareabycircumference(){ /*area by circumference*/ return circumference / (2 * M_PI) * circumference / (2 * M_PI) * M_PI; } double cirareabydiameter(){ /*area by diameter*/ return M_PI * (cirdiameter / 2) * (cirdiameter / 2); } };
//sqrcalc.h void menu(); double sqrcalc(); class Square { public: double sqra; double sqrarea; double sqrperimeter; double sqrdiagonal; double sqrdiagonalba(){ return (sqrt(2)) * sqra; } double sqrdiagonalbyarea(){ return sqrt((sqrt(sqrarea))); } double sqrdiagonalbyperimeter(){ return sqrperimeter / 4; } double sqrperimeterbya(){ return sqra * 4; } double sqrperimeterbarea(){ return sqrt(sqrarea) * 4; } double sqrperimeterbydiagonal(){ return (sqrdiagonal * sqrt(2)) * 4; } double sqrareabydiagonal(){ return (sqrdiagonal * sqrt(2)) * (sqrdiagonal * sqrt(2)); } double sqrareabyperimeter(){ return (sqrperimeter / 4) * (sqrperimeter / 4); } double sqrareabya(){ return sqra * sqra; } double sqrabydiagonal(){ return sqrdiagonal / sqrt(2); } double sqrabyperimeter(){ return sqrperimeter / 4; } double sqrabyarea(){ return sqrt(sqrarea); } };
//Fehlercode /home/julian/Projekt/main.cpp: In Funktion »void menuforarea()«: /home/julian/Projekt/main.cpp:225:23: Fehler: a function-definition is not allowed here before »{« token void menufordiagonal(){ ^ /home/julian/Projekt/main.cpp:308:1: Fehler: expected »}« at end of input } ^
Kann mir jemand erklären, was da falsch Läuft?
-
Dir fehlt die schließende "}" der switch-Anweisungen in menuforarea (und den folgenden Funktionen).
-
Danke! Hätte ich so nie gesehen
-
SchnJulian schrieb:
Danke! Hätte ich so nie gesehen
Hast du die Fehlermeldung vom Compiler nicht gelesen oder verstehst du kein Englisch?
-
Ich bin der Julian und mag das lesen nicht so
-
SchnJuIian schrieb:
Ich bin der Julian und mag das lesen nicht so
Naja, Hauptsache für jeden Furz einen neuen Beitrag schreiben...