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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

EnglishVietnamese