Tạo và sử dụng lớp số phức trong Java



Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Java tạo và sử dụng lớp số phức Complex gồm 2 thuộc tính là a và b (a là phần thực và b là phần ảo). Và các phương thức: khởi tạo, cộng, trừ, nhân, chia hai số phức, hiển thị số phức theo đúng định dạng a + b*i
Yêu cầu kiến thức:

  • Xác định, chuyển từ đối tượng thực tế thành các đối tượng chương trình
  • Xác định thuộc tính và phương thức cho lớp và đối tượng
  • Xác định kiểu dữ liệu cho mỗi thuộc tính và phương thức

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


package BuildClass;

import java.util.Scanner;

public class Complex {
    // Thuoc tinh
    private double a;
    private double b;

    // Phuong thuc
    // Ham khoi tao khong doi so
    public Complex() {
        a = 0;
        b = 0;
    }

    // Ham khoi tao co doi so
    public Complex(double a, double b) {
        this.a = a;
        this.b = b;
    }

    // Ham nhap so phuc
    public void nhap(Scanner sc) {
        System.out.print("\tNhap vao phan thuc: ");
        a = sc.nextDouble();
        System.out.print("\tNhap vao phan ao: ");
        b = sc.nextDouble();
    }

    // Ham hien thi so phuc
    public void hienThi() {
        if (b < 0) {
            System.out.println(a + " - " + Math.abs(b) + "*i");
        } else {
            System.out.println(a + " + " + b + "*i");
        }
    }

    // Ham cong 2 so phuc
    public Complex congSP(Complex sp2) {
        double thuc = a + sp2.a;
        double ao = b + sp2.b;
        return new Complex(thuc, ao);
    }

    // Ham tru 2 so phuc
    public Complex truSP(Complex sp2) {
        double thuc = a - sp2.a;
        double ao = b - sp2.b;
        return new Complex(thuc, ao);
    }

    // Ham nhan 2 so phuc
    public Complex nhanSP(Complex sp2) {
        double thuc = a * sp2.a - b * sp2.b;
        double ao = a * sp2.b + sp2.a * b;
        return new Complex(thuc, ao);
    }

    // Ham chia 2 so phuc
    public Complex chiaSP(Complex sp2) {
        double thuc = (a * sp2.a + b * sp2.b) / (sp2.a * sp2.a + sp2.b * sp2.b);
        double ao = (sp2.a * b - a * sp2.b) / (sp2.a * sp2.a + sp2.b * sp2.b);
        return new Complex(thuc, ao);
    }
}

File MainClass.java:


package UseClass;

import BuildClass.Complex;

import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Khai bao doi tuong
        Complex sp1 = new Complex();
        Complex sp2 = new Complex();
        Complex spThuong = new Complex();

        // Nhap
        System.out.println("Nhap vao so phuc 1:");
        sp1.nhap(sc);
        System.out.println("Nhap vao so phuc 2:");
        sp2.nhap(sc);

        // Hien thi
        System.out.println("So phuc 1 la:");
        sp1.hienThi();
        System.out.println("So phuc 2 la:");
        sp2.hienThi();

        // Chia sp1 cho sp2
        spThuong = sp1.chiaSP(sp2);

        // Hien thi
        System.out.println("Ket qua cua phep chia sp1 cho sp2 la:");
        spThuong.hienThi();

        sc.close();
    }
}


Kết luận:

  • 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