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();
}
0 nhận xét:
Đăng nhận xét