fork download
  1. #include <iostream>
  2. using namespace std;
  3. enum ACTION{EXIT,ADD,SUB,MUL,DIV};
  4. class Zespolona
  5. {
  6. public:
  7. Zespolona() : rzeczywista(0), urojona(0){}
  8. Zespolona(double a,double b) : rzeczywista(a), urojona(b){}
  9. double rzeczywista;
  10. double urojona;
  11. };
  12. Zespolona *dodawanie(Zespolona liczba1, Zespolona liczba2)
  13. {
  14. Zespolona *zmienna;
  15. zmienna = new Zespolona(liczba1.rzeczywista+liczba2.rzeczywista, liczba1.urojona+liczba2.urojona);
  16.  
  17. return zmienna;
  18. }
  19.  
  20. void wczytywanie(Zespolona& liczba1, Zespolona& liczba2)
  21. {
  22.  
  23. cout << "Podaj pierwsza liczbe zespolona:" << endl;
  24. cout << "Czesc rzeczywista: ";
  25. cin >> liczba1.rzeczywista;
  26. cout << endl << "Czesc urojona: ";
  27. cin >> liczba1.urojona;
  28. cout << "Podaj druga liczbe zespolona: " << endl;
  29. cout << "Czesc rzeczywista: ";
  30. cin >> liczba2.rzeczywista;
  31. cout << endl << "Czesc urojona: ";
  32. cin >> liczba2.urojona;
  33.  
  34. }
  35. void print(const Zespolona* _xd){
  36. std::cout << "\nReal:" << _xd->rzeczywista << " Imag:" << _xd->urojona << std::endl;
  37. }
  38. int main()
  39. {
  40. Zespolona liczba1;
  41. Zespolona liczba2;
  42. wczytywanie(liczba1,liczba2);
  43. int a;
  44. std::cout << "Podaj typ operacji:";
  45. std::cin >> a;
  46. ACTION act = (ACTION)a;
  47. Zespolona* wynik = NULL;
  48. switch(act)
  49. {
  50. case EXIT:
  51. return 0;
  52. break;
  53. case ADD:
  54. wynik = dodawanie(liczba1,liczba2);
  55. break;
  56. //itd
  57. default:
  58. return 0;
  59. }
  60. print(wynik);
  61. delete wynik;
  62.  
  63. }
Success #stdin #stdout 0s 3236KB
stdin
2.12
3.13
1.32
8.23
1
stdout
Podaj pierwsza liczbe zespolona:
Czesc rzeczywista: 
Czesc urojona: Podaj druga liczbe zespolona: 
Czesc rzeczywista: 
Czesc urojona: Podaj typ operacji:
Real:3.44 Imag:11.36