用Java写一个分部门和工作时间计算工资的程序,初学者难度的,求指导

2024-12-26 17:08:02
推荐回答(1个)
回答1:

写了一个功能实现了,不知道是不是你想要的:

package baidu;
import java.util.Scanner;
public class Demo00 {
 //定义一个三维数组,用于记录每个部门、分支、绩效工资
 private static final float[][][] SALARY_OF_PER_HOUR = {
  {{10.75f,12.50f,14.50f},{11.75f,14.50f,17.50f}},
  {{13.00f,16.00f,18.50f},{15.00f,18.50f,22.00f}},
  {{16.75f,18.50f,20.50f},{19.25f,25.00f,30.00f}}
 };
 
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  //输入姓名
  System.out.println("请输入姓名:");
  String name = sc.nextLine();
  
  //输入部门并验证
  System.out.println("请输入部门: A,B,C");
  char dept = sc.nextLine().charAt(0);
  if(dept<'A'||dept>'C')
  {
   System.out.println("输入有误,系统将退出");
   System.exit(0);
  }
  
  //输入分支机构并验证
  System.out.println("请输入分支机构: 1,2");
  char div = sc.nextLine().charAt(0);
  if(div<'1'||div>'2')
  {
   System.out.println("输入有误,系统将退出");
   System.exit(0);
  }
   
  //输入薪绩表并验证
  System.out.println("请输入薪绩表: a,b,c");
  char sal = sc.nextLine().charAt(0);
  if(sal<'a'||sal>'c')
  {
   System.out.println("输入有误,系统将退出");
   System.exit(0);
  }
  
  //输入小时数
  System.out.println("请输入本周工作时间(整小时数):");
  int hours = sc.nextInt();
  
  float salary = 0;
  //每个小时的薪水
  float salaryPerHour = SALARY_OF_PER_HOUR[dept-'A'][div-'1'][sal-'a'];
  
  //分别计算40小时内和超过40小时的薪水
  if(hours<=40)
  {
   salary += salaryPerHour*hours;
  }
  else
  {
   salary += salaryPerHour*hours+(hours-40)*1.5*salaryPerHour;
  }
  //输出结果
  System.out.println("姓名:\t"+name+"\n部门:\t"+dept+"\n分支机构:\t"+div
    +"\n薪绩表:\t"+sal+"\n工作时间:\t"+hours+"\n薪水:\t"+salary);
  
 }
}
//Best wishes!