用Java写一个分部门和工作时间计算工资的程序,初学者难度的,求指导
该公司包括三个部门用“A,B,C”表示,每个部门是两个分支记为“1,2"。最后每个分支都有3个薪级表记为”a,b,c“.注意使用大小写字母。编写一个程序,将要求用户输入雇...
该公司包括三个部门用“A,B,C”表示,每个部门是两个分支记为“1,2"。最后每个分支都有3个薪级表记为”a,b,c“.注意使用大小写字母。编写一个程序,将要求用户输入雇员的名字和姓氏,然后要求用户输入自己所在的部门,分支机构和薪级表,最后要求输入本周的员工工作时间。
获取上述信息后,程序应该计算和报告,输入的信息以及员工一周的工资总和。如果在这计算过程遇到无效输入,程序应该报告”输入无效“,然后退出。注意:这不是一个非常强大的程序。程序应该验证有效的输入;这要求用户强制输入正确的值。稍后我们将面对这一切。薪酬的计算以每周40小时为正常工作时间,所以使用正常的工资率,但是超过40小时的部分按照1.5倍的工资率计算。每个小时的工资率如图片所示。
使用System.exit(0);来退出程序
使用名为charAt的方法来获取String的值
必须使用if-else-if
分支中的”1, 2”为字符而不是数字
如果有代码最好,或者大体结构。或者是关于它的想法,多谢 展开
获取上述信息后,程序应该计算和报告,输入的信息以及员工一周的工资总和。如果在这计算过程遇到无效输入,程序应该报告”输入无效“,然后退出。注意:这不是一个非常强大的程序。程序应该验证有效的输入;这要求用户强制输入正确的值。稍后我们将面对这一切。薪酬的计算以每周40小时为正常工作时间,所以使用正常的工资率,但是超过40小时的部分按照1.5倍的工资率计算。每个小时的工资率如图片所示。
使用System.exit(0);来退出程序
使用名为charAt的方法来获取String的值
必须使用if-else-if
分支中的”1, 2”为字符而不是数字
如果有代码最好,或者大体结构。或者是关于它的想法,多谢 展开
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!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询