import java.util.Scanner;

// Base class (Parent)
class Employee {
    protected String Emp_name;
    protected String Emp_id;
    protected String Mail_id;
    protected String Mobile_no;
    protected String Designation;

    public void input() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Employee Name: ");
        Emp_name = sc.nextLine();
        System.out.print("Enter the Employee Id: ");
        Emp_id = sc.nextLine();
        System.out.print("Enter the Mail_id: ");
        Mail_id = sc.nextLine();
        System.out.print("Enter the Mobile no.: ");
        Mobile_no = sc.nextLine();
        System.out.print("Enter the Designation (Programmer/AsstProf/AssocProf/Professor): ");
        Designation = sc.nextLine();
    }
}

// Child class 1
class Programmer extends Employee {
    private double BP, DA, HRA, PF, Club_fund, Gross_Salary, Net_Salary;

    public void inputBP() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Basic Pay: ");
        BP = sc.nextDouble();
    }

    public void calculate() {
        DA = BP * 0.97;
        HRA = BP * 0.10;
        PF = BP * 0.12;
        Club_fund = BP * 0.01;
        Gross_Salary = BP + DA + HRA;
        Net_Salary = Gross_Salary - (PF + Club_fund);
    }

    public void display() {
        System.out.println("\nEmployee Name: " + Emp_name);
        System.out.println("Employee Id: " + Emp_id);
        System.out.printf("The DA is: %,.2f\n", DA);
        System.out.printf("The HRA is: %,.2f\n", HRA);
        System.out.printf("The PF is: %,.2f\n", PF);
        System.out.printf("The Club Fund is: %,.2f\n", Club_fund);
        System.out.printf("The Gross Salary is: %,.2f\n", Gross_Salary);
        System.out.printf("The Net Salary is: %,.2f\n", Net_Salary);
    }
}

// Child class 2
class AssistantProfessor extends Employee {
    private double BP, DA, HRA, PF, Club_fund, Gross_Salary, Net_Salary;

    public void inputBP() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Basic Pay: ");
        BP = sc.nextDouble();
    }

    public void calculate() {
        DA = BP * 0.97;
        HRA = BP * 0.10;
        PF = BP * 0.12;
        Club_fund = BP * 0.01;
        Gross_Salary = BP + DA + HRA;
        Net_Salary = Gross_Salary - (PF + Club_fund);
    }

    public void display() {
        System.out.println("\nEmployee Name: " + Emp_name);
        System.out.println("Employee Id: " + Emp_id);
        System.out.printf("The DA is: %,.2f\n", DA);
        System.out.printf("The HRA is: %,.2f\n", HRA);
        System.out.printf("The PF is: %,.2f\n", PF);
        System.out.printf("The Club Fund is: %,.2f\n", Club_fund);
        System.out.printf("The Gross Salary is: %,.2f\n", Gross_Salary);
        System.out.printf("The Net Salary is: %,.2f\n", Net_Salary);
    }
}

// Child class 3
class AssociateProfessor extends Employee {
    private double BP, DA, HRA, PF, Club_fund, Gross_Salary, Net_Salary;

    public void inputBP() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Basic Pay: ");
        BP = sc.nextDouble();
    }

    public void calculate() {
        DA = BP * 0.97;
        HRA = BP * 0.10;
        PF = BP * 0.12;
        Club_fund = BP * 0.01;
        Gross_Salary = BP + DA + HRA;
        Net_Salary = Gross_Salary - (PF + Club_fund);
    }

    public void display() {
        System.out.println("\nEmployee Name: " + Emp_name);
        System.out.println("Employee Id: " + Emp_id);
        System.out.printf("The DA is: %,.2f\n", DA);
        System.out.printf("The HRA is: %,.2f\n", HRA);
        System.out.printf("The PF is: %,.2f\n", PF);
        System.out.printf("The Club Fund is: %,.2f\n", Club_fund);
        System.out.printf("The Gross Salary is: %,.2f\n", Gross_Salary);
        System.out.printf("The Net Salary is: %,.2f\n", Net_Salary);
    }
}

// Child class 4
class Professor extends Employee {
    private double BP, DA, HRA, PF, Club_fund, Gross_Salary, Net_Salary;

    public void inputBP() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Basic Pay: ");
        BP = sc.nextDouble();
    }

    public void calculate() {
        DA = BP * 0.97;
        HRA = BP * 0.10;
        PF = BP * 0.12;
        Club_fund = BP * 0.01;
        Gross_Salary = BP + DA + HRA;
        Net_Salary = Gross_Salary - (PF + Club_fund);
    }

    public void display() {
        System.out.println("\nEmployee Name: " + Emp_name);
        System.out.println("Employee Id: " + Emp_id);
        System.out.printf("The DA is: %,.2f\n", DA);
        System.out.printf("The HRA is: %,.2f\n", HRA);
        System.out.printf("The PF is: %,.2f\n", PF);
        System.out.printf("The Club Fund is: %,.2f\n", Club_fund);
        System.out.printf("The Gross Salary is: %,.2f\n", Gross_Salary);
        System.out.printf("The Net Salary is: %,.2f\n", Net_Salary);
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Choose Employee Type:");
        System.out.println("1. Programmer");
        System.out.println("2. Assistant Professor");
        System.out.println("3. Associate Professor");
        System.out.println("4. Professor");
        System.out.print("Enter choice (1-4): ");
        int choice = sc.nextInt();

        switch (choice) {
            case 1:
                Programmer p = new Programmer();
                p.input();
                p.inputBP();
                p.calculate();
                p.display();
                break;
            case 2:
                AssistantProfessor ap = new AssistantProfessor();
                ap.input();
                ap.inputBP();
                ap.calculate();
                ap.display();
                break;
            case 3:
                AssociateProfessor aap = new AssociateProfessor();
                aap.input();
                aap.inputBP();
                aap.calculate();
                aap.display();
                break;
            case 4:
                Professor prof = new Professor();
                prof.input();
                prof.inputBP();
                prof.calculate();
                prof.display();
                break;
            default:
                System.out.println("Invalid choice!");
        }
    }
}
  
// Converter.java
package converter;

public interface Converter {
    public void input();
    public void convert();
    public void display();
}

// Currency.java
package converter;

import java.util.Scanner;

public class Currency implements Converter {
    private double inr;
    private double yen;
    private double usd;
    private double euro;

    @Override
    public void input() {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the Indian rupee: ");
        inr = sc.nextDouble();
    }

    @Override
    public void convert() {
        yen = inr * 1.628;  // 1 INR = 1.628 Yen (approx)
        usd = inr * 0.015;  // 1 INR = 0.015 USD (approx)
        euro = inr * 0.013; // 1 INR = 0.013 Euro (approx)
    }

    @Override
    public void display() {
        System.out.printf("Japanese Yen: %.2f\n", yen);
        System.out.printf("US Dollar: $%.2f\n", usd);
        System.out.printf("Euro: %.2f\n", euro);
    }

    public static void main(String[] args) {
        Currency converter = new Currency();
        converter.input();
        converter.convert();
        converter.display();
    }
}