Thiết kế lớp
PhanSo (Phân số) gồm có:
+ 2 thuộc
tính tử số và mẫu số thuộc kiểu nguyên
+ Các
phương thức:
-
Phương thức khởi tạo.
-
Phương thức in phân số.
-
Phương thức nghịch đảo phân số.
-
Phương thức trả về giá trị thực của phân số
-
Hàm cộng, trừ, nhân, chia 2 phân số.
+ Phương
thức main() sử dụng lớp PhanSo.
--------------------------------------------
import java.io.*;
public class PhanSo{
protected
int ts,ms;
PhanSo(){
}
PhanSo(int
t, int m){
ts=t;
ms=m;
}
static
int nhapgt() throws IOException{
InputStreamReader
isr = new InputStreamReader(System.in);
BufferedReader
br = new BufferedReader(isr);
String
str = br.readLine();
return
Integer.valueOf(str).intValue();
}
PhanSo
nhapps(int x) throws IOException{
int
tu,mau;
System.out.println("Nhap
phan so thu: " +x);
System.out.print("Tu
so: ");
tu=nhapgt();
System.out.print("Mau
so: ");
do{
mau=nhapgt();
if(mau==0)
System.out.print("Nhap lai mau so");
}while(mau==0);
PhanSo
ps = new PhanSo(tu,mau);
return
ps;
}
static
int UCLN(int a, int b){
while(a!=b){
if(a>b)
a=a-b;
else
b=b-a;
}
return
a;
}
static
PhanSo toigian(PhanSo ps){
PhanSo
phanso = new PhanSo();
phanso.ts
= ps.ts/UCLN(Math.abs(ps.ts),Math.abs(ps.ms));
phanso.ms
= ps.ms/UCLN(Math.abs(ps.ts),Math.abs(ps.ms));
return
phanso;
}
static
PhanSo tong(PhanSo ps1, PhanSo ps2){
PhanSo
phanso = new PhanSo();
phanso.ts=
ps1.ts*ps2.ms + ps2.ts*ps1.ms;
phanso.ms=
ps1.ms*ps2.ms;
if(phanso.ts!=0)
phanso=toigian(phanso);
return
phanso;
}
static
PhanSo hieu(PhanSo ps1, PhanSo ps2){
PhanSo
phanso = new PhanSo();
phanso.ts
= ps1.ts*ps2.ms - ps2.ts*ps1.ms;
phanso.ms
= ps1.ms*ps2.ms;
if(phanso.ts!=0)
phanso
= toigian(phanso);
return
phanso;
}
static
PhanSo tich(PhanSo ps1, PhanSo ps2){
PhanSo
phanso = new PhanSo();
phanso.ts
= ps1.ts*ps2.ts;
phanso.ms
= ps1.ms*ps2.ms;
if(phanso.ts!=0)
phanso
= toigian(phanso);
return
phanso;
}
static
PhanSo thuong(PhanSo ps1,PhanSo ps2){
PhanSo
phanso=new PhanSo();
phanso.ts
= ps1.ts*ps2.ms;
phanso.ms
= ps1.ms*ps2.ts;
if(phanso.ts!=0)
phanso=toigian(phanso);
return
phanso;
}
static
void Hienthi(PhanSo ps){
if(ps.ts==0
|| ps.ms==1) System.out.print(ps.ts);
else
System.out.println(ps.ts+"/"+ps.ms);
}
public
static void main(String args[]) throws IOException{
PhanSo
ps1 = new PhanSo();
PhanSo
ps2 = new PhanSo();
ps1=ps1.nhapps(1);
ps2=ps2.nhapps(2);
if(ps1.ts!=0)
ps1=toigian(ps1);
if(ps2.ts!=0)
ps2=toigian(ps2);
System.out.println("Phan
so 1 o dang toi gian: "); Hienthi(ps1);
System.out.println();
System.out.println("Phan
so 2 o dang toi gian: "); Hienthi(ps2);
System.out.println();
System.out.print("Phan
so tong: "); Hienthi(tong(ps1,ps2));
System.out.print("Phan
so hieu: "); Hienthi(hieu(ps1,ps2));
System.out.print("Phan
so tich: "); Hienthi(tich(ps1,ps2));
if
(ps2.ts!=0){
System.out.print("Phan
so thuong(phan so 1/phan so 2): ");
Hienthi(thuong(ps1,ps2));
}
else
System.out.print("Khong the thuc hien phep chia phan so 1/phan so 2
");
System.out.println();
if
(ps1.ts!=0){
System.out.print("Phan
so thuong(phan so 2/phan so 1): ");
Hienthi(thuong(ps2,ps1));
}
else
System.out.print("Khong the thuc hien phep chia phan so 2/phan so 1
");
System.out.println();
}