quang_cPhanSo
using System;
using System.Collections.Generic;
using System.Text;
namespace PhanSo
{
class cPhanSo
{
int tu, mau;
//Property
public int Tu
{
get { return tu; }
set { tu = value; }
}
public int Mau
{
get { return mau; }
set
{
if (KTMauSo(value))
mau = value;
}
}
//Nhom khoi tao
public bool Nhap()
{
int m;
Console.Write("Nhap tu so: ");
tu = int.Parse(Console.ReadLine());
Console.Write("Nhap mau so: ");
m = int.Parse(Console.ReadLine());
if (KTMauSo(m) == false)
return false;
mau = m;
return true;
}
public void PhatSinh()
{
Random rd = new Random();
tu = rd.Next(1, 100);
mau = rd.Next(1, 100);
}
public void KhoiTao()
{
tu = mau = 1;
}
public bool KhoiTao(int t, int m)
{
if (KTMauSo(m) == false)
return false;
tu = t;
mau = m;
return true;
}
public void KhoiTao(cPhanSo ps)
{
tu = ps.tu;
mau = ps.mau;
}
public cPhanSo()
{
tu = mau = 1;
}
public cPhanSo(int t, int m)
{
if (KTMauSo(m))
{
tu = t;
mau = m;
}
}
public cPhanSo(cPhanSo ps)
{
tu = ps.tu;
mau = ps.mau;
}
//Nhom kiem tra rang buoc
public bool KTMauSo(int m)
{
return m != 0;
}
//Nhom cap nhat
public int USCLN(int a, int b)
{
if (a == 0 || b == 0)
return a + b;
while (a != b)
{
if (a > b)
a -= b;
else
b -= a;
}
return a;
}
public int BSCNN(int a, int b)
{
return (a * b) / USCLN(a, b);
}
public void RutGon()
{
int uscln;
if (tu <= 0 && mau < 0)
{
tu = -tu;
mau = -mau;
}
if (tu >= 0 && mau > 0)
{
uscln = USCLN(tu, mau);
tu /= uscln;
mau /= uscln;
}
if (tu >= 0 && mau < 0)
{
uscln = USCLN(tu, - mau);
tu /= uscln;
mau /= uscln;
}
if (tu < 0 && mau > 0)
{
uscln = USCLN(-tu, mau);
tu /= uscln;
mau /= uscln;
}
if (mau < 0)
{
tu = -tu;
mau = -mau;
}
}
//Nhom cung cap thong tin
public void Xuat()
{
Console.Write("{0}/{1}", tu, mau);
}
//Nhom xu ly tinh toan
public cPhanSo Cong(cPhanSo ps2)
{
cPhanSo tong = new cPhanSo();
this.RutGon();
ps2.RutGon();
int bscnn = BSCNN(mau, ps2.mau);
tong.tu = (bscnn / mau) * tu + (bscnn / ps2.mau) * ps2.tu;
tong.mau = bscnn;
tong.RutGon();
return tong;
}
public cPhanSo Tru(cPhanSo ps2)
{
cPhanSo hieu = new cPhanSo();
this.RutGon();
ps2.RutGon();
int bscnn = BSCNN(mau, ps2.mau);
hieu.tu = (bscnn / mau) * tu - (bscnn / ps2.mau) * ps2.tu;
hieu.mau = bscnn;
hieu.RutGon();
return hieu;
}
public cPhanSo Nhan(cPhanSo ps2)
{
cPhanSo tich = new cPhanSo();
this.RutGon();
ps2.RutGon();
tich.tu = tu * ps2.tu;
tich.mau = mau * ps2.mau;
tich.RutGon();
return tich;
}
public cPhanSo Chia(cPhanSo ps2)
{
cPhanSo thuong = new cPhanSo();
this.RutGon();
ps2.RutGon();
thuong.tu = tu * ps2.mau;
thuong.mau = mau * ps2.tu;
thuong.RutGon();
return thuong;
}
public bool LonHon(cPhanSo ps2)
{
this.RutGon();
ps2.RutGon();
int bsc = BSCNN(mau, ps2.mau);
return ((bsc / mau) * tu) > ((bsc / ps2.mau) * ps2.tu);
}
public bool NhoHon(cPhanSo ps2)
{
this.RutGon();
ps2.RutGon();
int bsc = BSCNN(mau, ps2.mau);
return ((bsc / mau) * tu) < ((bsc / ps2.mau) * ps2.tu);
}
public bool Bang(cPhanSo ps2)
{
this.RutGon();
ps2.RutGon();
int bsc = BSCNN(mau, ps2.mau);
return ((bsc / mau) * tu) == ((bsc / ps2.mau) * ps2.tu);
}
public static cPhanSo operator +(cPhanSo ps1, cPhanSo ps2)
{
cPhanSo tong = new cPhanSo();
ps1.RutGon();
ps2.RutGon();
int bscnn = tong.BSCNN(ps1.mau, ps2.mau);
tong.tu = (bscnn / ps1.mau) * ps1.tu + (bscnn / ps2.mau) * ps2.tu;
tong.mau = bscnn;
tong.RutGon();
return tong;
}
public static cPhanSo operator -(cPhanSo ps1, cPhanSo ps2)
{
cPhanSo hieu = new cPhanSo();
ps1.RutGon();
ps2.RutGon();
int bscnn = hieu.BSCNN(ps1.mau, ps2.mau);
hieu.tu = (bscnn / ps1.mau) * ps1.tu - (bscnn / ps2.mau) * ps2.tu;
hieu.mau = bscnn;
hieu.RutGon();
return hieu;
}
public static cPhanSo operator *(cPhanSo ps1, cPhanSo ps2)
{
cPhanSo tich = new cPhanSo();
ps1.RutGon();
ps2.RutGon();
tich.tu = ps1.tu * ps2.tu;
tich.mau = ps1.mau * ps2.mau;
tich.RutGon();
return tich;
}
public static cPhanSo operator / (cPhanSo ps1, cPhanSo ps2)
{
cPhanSo thuong = new cPhanSo();
ps1.RutGon();
ps2.RutGon();
thuong.tu = ps1.tu * ps2.mau;
thuong.mau = ps1.mau * ps2.tu;
thuong.RutGon();
return thuong;
}
public static bool operator >(cPhanSo ps1, cPhanSo ps2)
{
ps1.RutGon();
ps2.RutGon();
int bsc = ps1.BSCNN(ps1.mau, ps2.mau);
return (bsc / ps1.mau) * ps1.tu > (bsc / ps2.mau) * ps2.tu;
}
public static bool operator <(cPhanSo ps1, cPhanSo ps2)
{
ps1.RutGon();
ps2.RutGon();
int bsc = ps1.BSCNN(ps1.mau, ps2.mau);
return (bsc/ps1.mau)*ps1.tu < (bsc/ps2.mau) *ps2.tu;
}
public static bool operator ==(cPhanSo ps1, cPhanSo ps2)
{
ps1.RutGon();
ps2.RutGon();
int bsc = ps1.BSCNN(ps1.mau, ps2.mau);
return ((bsc / ps1.mau) * ps1.tu) == ((bsc / ps2.mau) * ps2.tu);
}
public static bool operator !=(cPhanSo ps1, cPhanSo ps2)
{
ps1.RutGon();
ps2.RutGon();
int bsc = ps1.BSCNN(ps1.mau, ps2.mau);
return ((bsc / ps1.mau) * ps1.tu) != ((bsc / ps2.mau) * ps2.tu);
}
}
}
===================================================================================
namespace PhanSo
{
class Program
{
static void Main(string[] args)
{
cPhanSo ps = new cPhanSo();
cPhanSo ps2 = new cPhanSo();
//cPhanSo tong = new cPhanSo();
//cPhanSo hieu = new cPhanSo();
//cPhanSo tich = new cPhanSo();
//cPhanSo thuong = new cPhanSo();
ps.Nhap();
ps.Xuat();
Console.WriteLine("");
Console.WriteLine("nhap ps 2: ");
ps2.Nhap();
ps2.Xuat();
Console.WriteLine("");
if(ps>ps2)
{
ps.Xuat();
Console.Write(" > ");
ps2.Xuat();
}
Console.WriteLine("");
if (ps<ps2)
{
ps.Xuat();
Console.Write(" < ");
ps2.Xuat();
}
Console.WriteLine("");
if (ps==ps2)
{
ps.Xuat();
Console.Write(" = ");
ps2.Xuat();
}
//tong = ps + ps2;
//Console.Write("tong la: ");
//tong.Xuat();
//Console.ReadLine();
// hieu = ps - ps2;
//Console.Write("hieu la: ");
//hieu.Xuat();
//Console.ReadLine();
//tich = ps * ps2;
//Console.Write("tich la:");
//tich.Xuat();
//Console.ReadLine();
//thuong = ps / ps2;
//Console.Write("thuong la: ");
//thuong.Xuat();
//Console.ReadLine();
}
}
}
======================================================
the end
Bạn đang đọc truyện trên: Truyen2U.Com