Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #include <iostream>;
  2. using namespace std;
  3. class fraction
  4. {
  5. private:
  6. int num, deno;
  7. public:
  8. fraction()
  9. {
  10. num = 1;
  11. deno = 1;
  12. }
  13. fraction (int l, int y)
  14. {
  15. num = l;
  16. deno = y;
  17. }
  18. void operator=(const fraction& f)
  19. {
  20. num=f.num;
  21. deno=f.deno;
  22. }
  23. void shorten();
  24. friend istream& operator>>(istream& is,fraction& ft); //nhap
  25. friend ostream& operator<<(ostream& os,const fraction& ft); //xuat
  26. //cac toan tu so sanh
  27. friend operator == (const fraction& ,const fraction& );
  28. friend operator != (const fraction& ft1,const fraction& ft2);
  29. friend operator > (const fraction& ft1,const fraction& ft2);
  30. friend operator < (const fraction& ft1,const fraction& ft2);
  31. };
  32. istream& operator>>(istream& is,fraction& f)
  33. {
  34. cout<<" Enter numerator: ";
  35. is>>f.num;
  36. cout<<" Enter denominator: ";
  37. do
  38. {
  39. if(f.deno==0)
  40. cout<<"Fraction error, try again: ";
  41. is>>f.deno;
  42. }
  43. while(f.deno==0);
  44. if(f.deno<0) //doi dau
  45. {
  46. f.num=-f.num;
  47. f.deno=-f.deno;
  48. }
  49. f.shorten();
  50. return is;
  51. }
  52. ostream& operator<<(ostream& os,const fraction& f)
  53. {
  54. {
  55. if(f.num==0)
  56. os<<"\nFraction =0"<<endl;
  57. if(f.num==f.deno)
  58. os<<"\nFraction =1"<<endl;
  59. else
  60. os<<"\nFraction ="<<f.num<<"/"<<f.deno<<endl;
  61. }
  62. return os;
  63. }
  64. // ham rut gon
  65. int divisor(int a,int b)
  66. {
  67. int x;
  68. while(b!=0)
  69. {
  70. x=a%b;
  71. a=b;
  72. b=x;
  73. }
  74. return a;
  75. }
  76. void fraction::shorten()
  77. {
  78. if(deno<0)
  79. {
  80. num=-num;
  81. deno=-deno;
  82. }
  83. int u=divisor(num,deno);
  84. num=num/u;
  85. deno=deno/u;
  86. }
  87.  
  88.  
  89.  
  90.  
  91. int main()
  92. {
  93. fraction a,b;
  94. cout<<"Enter fraction A:\n";
  95. cin>>a;
  96. cout<<"Enter fraction B:\n";
  97. cin>>b;
  98. cout<<a;
  99. cout<<b;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement