[Java] Chương trình tính lương cho công nhân – Share code

Trong bài viết này, chúng ta sẽ tiếp tục phát triển lớp Congnhan đã được giới thiệu trong Bài 3, bằng cách thêm vào phương thức tinhLuong để viết chương trình tính lương cho công nhân java dựa trên lương cơ bản, hệ số lương, và mức phụ cấp.

Xem thêm:

1. Bài toán tính lương cho công nhân java

Bài 9: Thêm vào lớp Congnhan đã cho ở Bài 3 phương thức: tinhLuong (pc:float), Luong=lcb*hsl*(1+pc).

Viết chương trình:

  • Cài đặt lương cơ bản của công nhân = 1150, nhập vào danh sách N công nhân (0<=n<=20).
  • Nhập mức phụ cấp P.
  • Hiện danh sách công nhân với các thông tin: Họ tên, Hệ số lương, Lương(chương bao gồm phụ cấp), LươngS(gồm phụ cấp)
  • Tính tổng số tiền chênh lệch do chi trả phụ cấp.

2. Code tham khảo

2.1 Class Congnhan

package bai9;

import java.util.Scanner;

public class CongNhan {
    float lcb=1150, hsl, luong=0, pc;

    public float getPc() {
        return pc;
    }

    public void setPc(float pc) {
        this.pc = pc;
    }
    String hoten;

    public float getLcb() {
        return lcb;
    }

    public void setLcb(float lcb) {
        this.lcb = lcb;
    }

    public float getHsl() {
        return hsl;
    }

    public void setHsl(float hsl) {
        this.hsl = hsl;
    }

    public String getHoten() {
        return hoten;
    }

    public void setHoten(String hoten) {
        this.hoten = hoten;
    }
    
    public void nhap(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhap ho ten: ");
        hoten=sc.nextLine();
        System.out.println("Nhap he so luong: ");
        hsl= sc.nextFloat();
        System.out.println("Nhap phu cap: ");
        pc=sc.nextFloat();
    }
    
    public float tinhLuongS(){
        return luong=lcb*hsl*(1+pc);
    }
    
    public float tinhLuongT(){
        return luong=lcb*hsl;
    }
    
    public void xuat(){
        System.out.printf("\n%25s%16.2f%12.2f%15.2f", hoten, hsl, tinhLuongT(), tinhLuongS());
    }
}

2.2 Class DanhSachCongNhan

Lớp DanhSachCongNhan này cung cấp các phương thức để nhập, xuất thông tin và tính toán chênh lệch trong lương của các công nhân trong danh sách.

import java.util.Scanner;

public class DanhSachCongNhan {
    CongNhan ds[];
    int n;
    
    public void nhapDS(){
        Scanner sc= new Scanner(System.in);
        do {            
            System.out.println("Nhap so luong cong nhan: ");
            n=sc.nextInt();
            if(n<=0 || n>20){
                System.out.println("So luong cong nhan khong hop le!");
            }
        } while (n<=0 || n>20);
        ds= new CongNhan[n];
        for(int i=0;i<n;i++){
            ds[i]= new CongNhan();
            ds[i].nhap();
        }
    }
    
    public void xuatDS(){
        System.out.println("Danh sach cong nhan:");
        System.out.printf("\n%25s%16s%12s%15s","Ten cong nhan","He so luong","Luong","Luong co PC");
        for(int i=0;i<n;i++){
            ds[i].xuat();
        }
        System.out.println("");
    }
    
    public void chenhLech(){
        float sumT=0, sumS=0;
        for(int i=0;i<n;i++){
            sumT+=ds[i].tinhLuongT();
        }
        
        for(int i=0;i<n;i++){
            sumS+=ds[i].tinhLuongS();
        }
        
        System.out.println("Tong so tien chenh lech do chi tra phu cap la: "+ (sumS-sumT));
    }
}

2.3 Class main

package bai9;

import java.util.Scanner;


public class Bai9 {

    static void menu(){
        System.out.println("1. Nhap danh sach cong nhan");
        System.out.println("2. Xuat danh sach cong nhan");
        System.out.println("3. Tong so tien chenh lech so chi tra phu cap");
        System.out.println("0. Thoat");
    }
    public static void main(String[] args) {
        DanhSachCongNhan ds = new DanhSachCongNhan();
        int chon;
        do {            
            menu();
            Scanner sc= new Scanner(System.in);
            System.out.println("Lua chon: ");
            chon = sc.nextInt();
            switch(chon){
                case 1: ds.nhapDS(); break;
                case 2: ds.xuatDS();  break;
                case 3: ds.chenhLech(); break;
                case 0: System.exit(0); break;
                default: break;
            }
        } while (chon!=0);
    }
    
}

3. Kết quả chạy chương trình

Danh sách công nhân

Source code FULL:

Như vậy, chúng ta đã tìm hiểu cách mở rộng lớp Congnhan bằng việc thêm vào phương thức tinhLuong, giúp tính toán lương của các công nhân dựa trên lương cơ bản, hệ số lương và mức phụ cấp. Cảm ơn bạn đã tham khảo bài tập lập trình hướng đối tượng java trên ttnguyen.net.

Bài viết liên quan:

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em