Thứ Ba, 13 tháng 9, 2016

Java: Xây dựng lớp Phân Số và các Hàm toán học (cộng, trừ, nhân, chia, nghịch đảo) của Phân số



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: