java 编程 计算工人工资,

编程实现一个名为Employee的abstract类。Employee类的子类包括YearWorker、MonthWorker和WeekWorker。YearWorker... 编程实现一个名为 Employee 的 abstract 类。Employee 类的子类包括

YearWorker、 MonthWorker和WeekWorker。 YearWorker对象按年领取薪水 (12000

元/人) ;MonthWorker 对象按月领取薪水(2300 元/人) ;WeekWorker 对象按周

领薪(全年按 52 周计算,780 元/人)。Employee 类中有一个 abstract 方法,即

public abstract double earnings();

子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。

另需实现一个 Company类,该类用Employee 对象数组作为成员,Employee

对象数组的元素可以是YearWorker 对象的上转型对象、MonthWorker对象的上

转型对象或者WeekWorker 对象的上转型对象。该程序最终能输出 Company 对

象一年需要支付的薪水总数额。

上述程序已在源文件CompanySalary.java中实现,如图3 所示。要求根据所

提供的注释,将各个【代码】替换为合法的 Java 程序代码。填充完成后,正确

的程序运行结果如图4所示(实验报告中需给出替换各【代码】的java语句) 。
代码4怎么写
展开
 我来答
匿名用户
推荐于2017-07-28
展开全部
JAVA计算工人工资,参考例子如下:
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!
许诗文00
2015-07-14 · TA获得超过4291个赞
知道小有建树答主
回答量:425
采纳率:100%
帮助的人:26.7万
展开全部
用java设计一个员工类,可以计算工资个人所得税
题目内容
设计一个员工类。该员工具有下列私有属性:编号,姓名,基本工资,奖金 提供有参构造函数:Employee(Strng ID,String name), 提供上述私有属性的读写函数.
提供计算个人所得税的方法:
工资个税的计算公式为:应纳税额=(工资薪金所得 -“五险一金”-扣除数)×适用税率-速算扣除数
自己在实际代码中对上述问题做了一些改进
具体代码与解释
[java]
<span style="font-family:SimSun; font-size:14px">package Two;
/**
* @author Kun Sun
* @Date: 2013.10.15
*/
public class Employee { // 雇员类
private String ID; // ID
private String name; // 姓名
private int salary; // 工资薪金所得
private int insureHome; // “五险一金”数额
private int deduct; // 扣除数额

Employee(){

}

Employee(String ID,String name){ // 带参数的构造方法
this.ID = ID;
this.name = name;
}

Employee(String ID,String name,int salary,int insureHome,int deduct){ // 带参数的构造方法
this.ID = ID;
this.name = name;
this.salary = salary;
this.insureHome = insureHome;
this.deduct = deduct;
}

public String getID() {
return ID;
}

public String getName() {
return name;
}

public int getSalary() {
return salary;
}

public int getInsureHome() {
return insureHome;
}

public int getDeduct() {
return deduct;
}

public void setID(String iD) {
ID = iD;
}

public void setName(String name) {
this.name = name;
}

public void setSalary(int salary) {
this.salary = salary;
}

public void setInsureHome(int insureHome) {
this.insureHome = insureHome;
}

public void setDeduct(int deduct) {
this.deduct = deduct;
}

public void selfValue(){ // 个人所得税具体计算
double sefValue;
if(salary>=0 && salary<1500){
sefValue = (double)(salary-insureHome-deduct)*0.03 - 0;
}else if(salary>=1500 && salary<4500){
sefValue = (double)(salary-insureHome-deduct)*0.1 - 105;

}else if(salary>=4500 && salary<9000){
sefValue = (double)(salary-insureHome-deduct)*0.2 - 555;

}else if(salary>=9000 && salary<35000){
sefValue = (double)(salary-insureHome-deduct)*0.25 - 1005;

}else if(salary>=35000 && salary<55000){
sefValue = (double)(salary-insureHome-deduct)*0.30 - 2755;

}else if(salary>=55000 && salary<80000){
sefValue = (double)(salary-insureHome-deduct)*0.35 - 5505;

}else{
sefValue = (double)(salary-insureHome-deduct)*0.45 - 13505;
}
System.out.println(sefValue);
}
}
</span>

[java]
<span style="font-family:SimSun; font-size:14px">package Two;
/**
* @author Kun Sun
* @Date: 2013.10.15
*/
public class MainClass { // 用于测试雇员类

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("第一种调用方法:");
Employee emp = new Employee("1001","Sun");
emp.setSalary(12345);
emp.setInsureHome(890);
emp.setDeduct(55);
System.out.println("编号为"+emp.getID()+",姓名是"+emp.getName()+" 的应纳税额是:");
emp.selfValue();

System.out.println("------------------------\n第二种调用方法:");
Employee emp2 = new Employee("1001","Sun",12345,890,55);
System.out.println("编号为"+emp2.getID()+",姓名是"+emp2.getName()+" 的应纳税额是:");
emp2.selfValue();

System.out.println("------------------------\n第二种调用方法:");
Employee emp3 = new Employee();
emp3.setID("1001");
emp3.setName("Sun");
emp3.setSalary(12345);
emp3.setInsureHome(890);
emp3.setDeduct(55);
System.out.println("编号为"+emp3.getID()+",姓名是"+emp3.getName()+" 的应纳税额是:");
emp3.selfValue();
}
}
</span>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-11-06
展开全部
那是根据基本工资计算支付工资。代码4的地方不要写,因为是给子类覆盖的抽象方法。

要写的是代码1、代码2、代码3
追问
噢噢,那能帮忙写一下代码1、2、3吗
追答
计算年薪,其实,也不复杂。。。。。。。。。

YearWorker的就是返回12000了

MonthWorker的就是返回12*2300

WeekWorker的就是返回780*52
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邦德和他的007
2017-07-28 · 超过30用户采纳过TA的回答
知道答主
回答量:98
采纳率:29%
帮助的人:21.9万
展开全部
for(int i=0;i<this.length;i++){
    salaries += this[i].earnings();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式