Tìm kiếm

BT Về Lập trình hướng đối tượng (Mở đầu)

1. Xây dựng lớp phân số gồm các thành phần:
-DL: tử số, mẫu số
-Pt: nhập, in, tối giản, so sánh 2 ps
Hàm main:
-Nhập mảng có n phân số (n<=10)
-Sắp xếp mảng PS theo thứ tự giảm dần
-In mảng sau khi xếp
Code:

#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<math.h>
int uc(int a,int b)
 {
  if (a*b==0)

 return 1;
  else
  {
 while (a!=b)
 {
  if (a>b)
 a=a-b;
  else
 b=b-a;
 }
 return a;
  }
 }
class PS
{
 private:
  int t;
  int m;
  public:
 PS()
 {
  t=0;
  m=1;
 }
 friend ostream& operator<< (ostream& os,PS x)
 {
  os<< x.t << "/" << x.m;
  return os;
 }
 friend istream& operator>> (istream& is,PS &x)
 {
  cout<<"Nhap tu: ";
  is>>x.t;
  cout<<"Nhap mau: ";
  is>>x.m;
  return is;
 }
 PS operator+(PS b)
 {
  PS c;
  c.t=t*b.m+m*b.t;
  c.m=m*b.m;
  return tg(c);
 }
 PS operator-(PS b)
 {
  PS c;
  c.t = t*b.m-m*b.t;
  c.m = m*b.m;
  return tg(c);
 }
PS operator*(PS b)
 {
  PS c;
  c.t = t*b.t;
  c.m=m*b.m;
  return tg(c);
 }
PS operator/(PS b)
 {
  PS c;
  c.t=t*b.m;
  c.m = m*b.t;
  return tg(c);
 }
PS tg(PS x)
 {
  int s = uc(x.t,x.m);
  x.t=x.t/s;
  x.m=x.m/s;
  return x;
 }
 int operator>(PS x)
 {
  return (((t*x.m-m*x.t)*m*x.m)>0);
 }
 };
void main()
 {
  clrscr();
  int n;
  PS temp;
  cout<<"Nhap so phan so :\n";
  cin>>n;
  PS *p = new PS[n+1];
  for (int i=1;i<=n;i++)
 {
  cout<<"Nhap phan so thu "<<i<<" :\n";
  cin>>p[i];
 }
 cout<<"Mang phan so :\n";
  for (i=1;i<=n;i++)
 cout<<p[i]<<"   ";
 cout<<"\n";
  for (int j=1;j<n;j++)
 for (int k = j+1;k<=n;k++)
  if (p[k]>p[j])
   {
  temp = p[k];
  p[k] = p[j];
  p[j] = temp;
   }
  cout<<"Mang phan so sau khi sap xep :\n";
  for (i=1;i<=n;i++)
 cout<<p[i]<<"   ";
  getch();
 }

Read Users' Comments (0)

0 Response to "BT Về Lập trình hướng đối tượng (Mở đầu)"

Đăng nhận xét

Support

Liên hệ DMTuan-Uneti
Mọi thông tin góp ý các bạn liên hệ với mình ! Mail:
  1. manhtuan.leo@gmail.com
  2. manhtuan.itvp@gmail.com

Y!M: manhtuan.it92