Bài toán: Xây dựng Lớp Phân Số. Tính toán Cộng, trừ, nhân, chia
class PhanSo
{
 private int tu, mau;
 public PhanSo(int tu, int mau)
 {
  this.tu=tu;
  this.mau=mau;
 }
 public void setTu(int tu)
 {
  this.tu=tu;
 }
 public void setMau(int mau)
 {
  this.mau=mau;
 }
 public int getTu()
 {
  return this.tu;
 }
 public int getMau()
 {
  return this.mau;
 }
 public int USCLN(int a, int b)
 {
  while(a!=b)
  {
   if(a>b) a=a-b;
   else b=b-a;
  }
   return a;
 }
 public void rutGon()
 {
  int i=USCLN(this.getTu(),this.getMau());
  this.setTu(this.getTu()/i);
  this.setMau(this.getMau()/i);
 }
 public void congPS(PhanSo ps)
 {
  int a=(this.getTu()*ps.getMau()) + (ps.getTu()*this.getMau());
  int b=ps.getMau()*this.getMau();
  PhanSo k=new PhanSo(a,b);
  k.rutGon();
  System.out.println("Ket qua Cong: " + k.tu + "/" + k.mau);
 }
 public void truPS(PhanSo ps)
 {
  int a=(this.getTu()*ps.getMau()) - (ps.getTu()*this.getMau());
  int b=ps.getMau()*this.getMau();
  PhanSo k=new PhanSo(a,b);
  k.rutGon();
  System.out.println("Ket qua Cong: " + k.tu + "/" + k.mau);
 }
 public void nhanPS(PhanSo ps)
 {
  int a=ps.tu*this.tu;
  int b=ps.mau*this.mau;
  PhanSo k=new PhanSo(a,b);
  k.rutGon();
  System.out.println("Ket qua Cong: " + k.tu + "/" + k.mau);
 }
 public void chiaPS(PhanSo ps)
 {
  int a=this.tu*ps.mau;
  int b=this.mau*ps.tu;
  PhanSo k=new PhanSo(a,b);
  k.rutGon();
  System.out.println("Ket qua Cong: " + k.tu + "/" + k.mau);
 }
 public static void main(String[] args)
 {
  PhanSo ps=new PhanSo(16,4);
  PhanSo ps2=new PhanSo(4,8);
  System.out.println("Phan so: " + ps.tu + "/" + ps.mau);
  System.out.println("USCLN: " + ps.USCLN(ps.tu,ps.mau));
  //ps.rutGon();
  //System.out.println("Phan so: " + ps.tu + "/" + ps.mau);
  ps.congPS(ps2);
  ps.truPS(ps2);
  ps.nhanPS(ps2);
  ps.chiaPS(ps2);
 }
}