co można zrobić lepiej? czemu nie działa przestrzeń nazw, którą chciałem użyć w obliczenia.h> dlaczego program najpierw pyta o liczba 2, a nie odwrotnie opcja:1 Podaj liczbe: 2:5.4 Podaj liczbe: 1:2.5 main.cpp:
//c++ 20 #include #include "obliczenia.h" using namespace std; int main() { //constexpr string szMessage {"Podaj liczbe:"}; //constexpr char szMessage[] = {"Podaj liczbe:"}; const string szMessage{"Podaj liczbe:"}; while (true) { switch (iGetInteger("1.prostokat0.wyjdz\nopcja:")) { case 1: switch (iGetInteger("1.obwod \n2.pole \nopcja:")) { case 1: cout << (dblObwodProstokat(dblGetDouble(szMessage + " 1:"), dblGetDouble(szMessage + " 2:"))) << endl; break; case 2: cout << (dblPoleProstokat(dblGetDouble(szMessage + " 1:"), dblGetDouble(szMessage + " 2:"))) << endl; break; default: cout << "nie znaleziono takiej opcji"; break; } break; case 0: return 0; break; default: cout << "nie znaleziono takiej opcji"; break; } } }
obliczenia.cpp:
#include using namespace std; int iGetInteger(const string &szMessage) { int iNumber; cout << szMessage; cin >> iNumber; return iNumber; } double dblGetDouble(const string &szMessage) { double dblNumber; cout << szMessage; cin >> dblNumber; return dblNumber; } double dblObwodProstokat(double dblNumber1, double dblNumber2 = 898766.0) { if(dblNumber2==898766.0)dblNumber2=dblNumber1; if (dblNumber1 > 0.0 && dblNumber2 > 0.0) { return 2 * dblNumber1 + 2 * dblNumber2; } return 0; } double dblPoleProstokat(double dblNumber1, double dblNumber2) { if (dblNumber1 > 0 && dblNumber2 > 0) { return dblNumber1 * dblNumber2; } return 0; }
obliczenia.h:
#include using namespace std; #ifndef UNTITLED_OBLICZENIA_H #define UNTITLED_OBLICZENIA_H //namespace obliczenia { int iGetInteger(const string &szMessage);
double dblGetDouble(const string &szMessage);
double dblObwodProstokat(double dblNumber1, double dblNumber2 = 898766.0);
double dblPoleProstokat(double dblNumber1, double dblNumber2); //} #endif //UNTITLED_OBLICZENIA_H



