Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #ifndef FRACTION
  2. #define FRACTION
  3.  
  4. class Fraction
  5. {
  6. private:
  7. int num;
  8. int den;
  9. public:
  10. void setFraction(int n, int d);
  11. Fraction add(const Fraction &f);
  12. Fraction sub(const Fraction &f);
  13. Fraction mult(const Fraction &f);
  14. Fraction div(const Fraction &f);
  15. void printFraction();
  16.  
  17. //Constructors
  18. Fraction();
  19. Fraction(int num, int den);
  20. Fraction(std::string s);
  21. };
  22.  
  23. #endif
  24.  
  25. #include "Fraction.h"
  26. #include <iostream>
  27. #include <string>
  28.  
  29. using namespace std;
  30.  
  31. void Fraction::setFraction(int n, int d)
  32. {
  33. this->num = n;
  34. this->den = d;
  35. }
  36.  
  37. Fraction Fraction::add(const Fraction &f)
  38. {
  39. Fraction temp;
  40. temp.num = (this->num * f.den) + (f.num * this->den);
  41. temp.den = (f.den * this->den);
  42. return temp;
  43. }
  44.  
  45. Fraction Fraction::sub(const Fraction &f)
  46. {
  47. Fraction temp;
  48. temp.num = (this->num * f.den) - (f.num * this->den);
  49. temp.den = (f.den * this->den);
  50. if (temp.den < 0)
  51. temp.den *= -1;
  52. return temp;
  53. }
  54.  
  55. Fraction Fraction::mult(const Fraction &f)
  56. {
  57. Fraction temp;
  58. temp.num = this->num * f.num;
  59. temp.den = this->den * f.den;
  60. return temp;
  61. }
  62.  
  63. Fraction Fraction::div(const Fraction &f)
  64. {
  65. Fraction temp;
  66. temp.num = this->den * f.num;
  67. temp.den = this->num * f.den;
  68. return temp;
  69. }
  70.  
  71. void Fraction::printFraction()
  72. {
  73. cout << this->num << "/" << this->den;
  74. }
  75.  
  76. //constructors
  77.  
  78. Fraction::Fraction()
  79. {
  80. this->setFraction(1, 1);
  81. }
  82.  
  83. Fraction::Fraction(int num, int den)
  84. {
  85. this->setFraction(num, den);
  86. }
  87.  
  88. Fraction::Fraction(string s)
  89. {
  90. int numerator = 1;
  91. int denominator = 1;
  92.  
  93. for (int i = 0; i < s.length(); i++)
  94. {
  95. if (s.at(i) == ' ')
  96. {
  97. numerator = stoi(s.substr(0, i));
  98. denominator = stoi(s.substr(i+1, s.length() - (1 + i)));
  99. }
  100. }
  101.  
  102. setFraction(numerator, denominator);
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement