Kiểm tra định dạng phân số trong Java Exception



Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java xây dựng lớp FractionException dùng để biểu diễn lỗi địa chỉ phân số không hợp lệ. Viết chương trình tạo lớp Fraction biểu diễn một phân số và thực hiện phép chia hai phân số. Trường hợp mẫu số có giá trị 0, chương trình sẽ sinh ra một đối tượng biệt lệ Fraction Exception.
Yêu cầu kiến thức:

  • Kiến thức về lớp con kế thừa lớp cha. Ở đây tôi sẽ thiết kế thông báo lỗi bằng cách xây dựng 1 lớp sinh ra thông báo lỗi, lớp này được kế thừa từ lớp Exception.
  • Xác định kiểu dữ liệu cho các hàm và các biến cần sử dụng.
  • Kiến thức về biểu thức chính quy (Regular Expression).

Cấu trúc thư mục:
src
|——fractionEception
   |——FractionEception.java
|——checkFraction
   |——FractionCheck.java
|——Using
   |——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File FractionEception.java:


package fractionException;

public class FractionException extends Exception {
    // Ham khoi tao
    public FractionException(String str) {
        super(str);
    }
}

File FractionCheck.java:


package checkFraction;

import fractionException.FractionException;

public class FractionCheck {
    // Thuoc tinh
    private int tuSo;
    private int mauSo;

    // Phuong thuc
    // Ham khoi tao
    public FractionCheck(int tuSo, int mauSo) throws FractionException {
        if (mauSo == 0) {
            throw new FractionException("Loi: mau = 0");
        }

        // Neu hop le thi cap nhat gia tri thuoc tinh
        this.tuSo = tuSo;
        this.mauSo = mauSo;
    }

    // Ham hien thi
    public void hienThi() {
        if (tuSo * mauSo < 0) {
            System.out.println("-" + Math.abs(tuSo) + "/" + Math.abs(mauSo));
        } else {
            System.out.println(Math.abs(tuSo) + "/" + Math.abs(mauSo));
        }
    }

    // Ham chia 2 phan so
    public FractionCheck chiaPS(FractionCheck ps2) throws FractionException {
        // Neu tu so cua ps2 = 0 thi loi vi chia la nhan nghich dao
        if (ps2.tuSo == 0) {
            throw new FractionException("Loi: chia cho 0");
        }

        // Neu hop le thi thuc hien nhan nghich dao
        int ts = tuSo * ps2.mauSo;
        int ms = mauSo * ps2.tuSo;

        return new FractionCheck(ts, ms);
    }
}

File FractionCheck.java:


package Using;

import checkFraction.FractionCheck;
import fractionException.FractionException;

public class MainClass {
    public static void main(String[] args) {
        // Khai bao doi tuong
        FractionCheck ps1, ps2, ps3;

        try {
            // Khoi tao gia tri
            ps1 = new FractionCheck(1, 2);
            ps2 = new FractionCheck(0, 1);

            ps3 = ps1.chiaPS(ps2);
            System.out.println("Phan so 1 chia cho phan so 2 la:");
            ps3.hienThi();
        } catch (FractionException ex) {
            System.out.println(ex.getMessage());
        }
    }
}


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình Java từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese