Cần giúp đỡ về chương trình quản lí nhân viên trong Java

Xin lỗi mọi người vì mình đã đặt một cái tiêu đề hơi chung chung. Nhưng mình thực sự không tìm được vấn đề nằm ở đâu.
Chương trình quản lí nhân viên viết bằng java của mình bao gồm 2 lớp. Trong lớp StaffList có 3 phương thức: nhập, xuất và tính tiền lương (mình đặt tên payroll).
Khi chạy chương trình thì không báo lỗi gì, nhập và xuất bình thương nhưng kết quả in ra không có tiền lương. Mình không tìm được nguyên nhân ở đâu và cách sửa thế nào.
Đây là code của mình, mong mọi người giúp đỡ. Cảm ơn các bạn

import java.util.*;
import java.text.*;
import java.io.*;

public class Staff {
    private int ID;
    private String Name;
    private String Date;
    private boolean Sex;
    private double Salary;
    
    public Staff (){
        this.ID = 0;
        this.Name = " ";
        this.Date = " ";
        this.Sex = false;
        this.Salary = 0.0;
    }
    public Staff (int ID, String Name, String Date, boolean Sex, double Salary){
        this.ID = ID;
        this.Name = Name;
        this.Date = Date;
        this.Sex = Sex;
        this.Salary = Salary;
    }

    public int getID(){
        return this.ID;
    }

    public String getName(){
        return this.Name;
    }

    public String getDate(){
        return this.Date;
    }

    public boolean getSex(){
        return this.Sex;
    }

    public double getSalary(){
        return this.Salary;
    }

    
    public void input(){
        Scanner scanner = new Scanner(System.in);
        this.ID = scanner.nextInt();
        this.Name = scanner.nextLine();
        scanner.nextLine();
        this.Date = scanner.nextLine();
        this.Sex = scanner.nextBoolean();
        this.Salary = scanner.nextDouble();                
    }
      
}
class StaffList {
    static int N;
    static Staff[] arr;
    public void setN(int n){
        this.N = n;
    }
    
    public int getN(){
        return N;
    }
    public void getInput(){
        arr = new Staff[N];
        for (int i = 0; i < N; i++){
            arr[i] = new Staff();
            arr[i].input();
        }
         
    }

    public void impOutput(int id){
        for (int i = 0; i<N; i++){
            if (arr[i].getID() == id){
                System.out.print(arr[i].getID() + "" + arr[i].getName() + " " + arr[i].getDate() + " " + arr[i].getSex() + " " +arr[i].getSalary());
                System.exit(0);
            }
        }
    }

    public void payroll(int id){
        for (int i = 0; i<N; i++){
            if (arr[i].getID() == id){
                double x = arr[i].getSalary()*970;
                System.out.print(x);
                System.exit(0);
            }
            System.out.print("error");
        }
    }
    
    public static void main(String[] args){
        StaffList stl = new StaffList();
        stl.setN(1);
        stl.getInput();
        stl.impOutput(1);
        stl.payroll(1);
    }
}

Đây là kết quả test
Capture

System.exit(0); bạn rất muốn thoát ra mọi lúc???

3 Likes

Không phải vậy ạ. Vì ID của mỗi nhân viên là duy nhất nên khi tìm thấy nhân viên đó rồi thì mình muốn thoát chương trình

:dizzy_face:
Vì bạn thoát mất tiêu nên có còn tính lương lậu được gì nữa!

3 Likes

Ôi cảm ơn bạn nhiều nhé =))
Tại mình chưa rõ mà đã dùng :joy::joy:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?