main.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include <iostream>
  2. #include "mathFunction.h"
  3. template<typename T>
  4. T Input()
  5. {
  6. while (true)
  7. {
  8. T value;
  9. std::cin>>value;
  10. std::cin.clear();
  11. std::cin.sync();
  12. if(std::cin.fail() == false)
  13. return value;
  14. else
  15. std::cout<<"Некорректный ввод"<<std::endl;
  16. }
  17. }
  18. bool countAndPrint(char ch, double a, double b)
  19. {
  20. switch (ch)
  21. {
  22. case '+':
  23. std::cout<<MyMath::sum(a,b)<<std::endl;
  24. break;
  25. case '/':
  26. std::cout<<MyMath::div(a,b)<<std::endl;
  27. break;
  28. case '*':
  29. std::cout<<MyMath::multiply(a,b)<<std::endl;
  30. break;
  31. case '-':
  32. std::cout<<MyMath::dif(a,b)<<std::endl;
  33. break;
  34. default:
  35. std::cout<<"Нет такого оператора"<<std::endl;
  36. return false;
  37. break;
  38. }
  39. return true;
  40. }
  41. int main()
  42. {
  43. std::cout<<"Введите число 1"<<std::endl;
  44. double a = Input<double>();
  45. std::cout<<"Введите число 2"<<std::endl;
  46. double b = Input<double>();
  47. char ch;
  48. do
  49. {
  50. std::cout<<"Введите оператор"<<std::endl;
  51. ch = Input<char>();
  52. }
  53. while (countAndPrint(ch, a, b) == false);
  54. return 0;
  55. }