展开全部
public class Employee {
String name;
double salary;
double subsidy;
private Scanner sc;
public void setA() {
sc = new Scanner(System.in);
System.out.println("请输入员工的姓名:");
name = sc.next();
try {
name = new String(name.getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 可是我怎么都32313133353236313431303231363533e78988e69d8331333335313762运行不出来,求好心人帮帮忙看看!!
System.out.println("请输入员工工资:");
salary = sc.nextDouble();
System.out.println("请输入员工的加班补贴:");
subsidy = sc.nextDouble();
}
public void getshuishou() {
double before = 0;
double after = 0;
double suodeshui = 0;
before = salary + subsidy;
if (before >= 2000 && before
suodeshui = ((before - 2000) * 0.05);
} else if (before >= 2500 && before
suodeshui = ((before - 2000) * 0.1);
} else if (before >= 4000 && before
suodeshui = ((before - 2000) * 0.15);
} else if (before >= 7000 && before
suodeshui = ((before - 2000) * 0.2);
} else if (before >= 22000) {
suodeshui = ((before - 2000) * 0.3);
} else {
suodeshui = 0;
}
after = before - suodeshui; //把这句放到这里。
System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
+ after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
}
public static void main(String[] args) {
Employee emp = new Employee();
emp.setA();
emp.getshuishou();
}
}
我给你修改了一下。。你看看。
我给你把这个代码 改了一下,你看,你能不能看出它的好处。。public class Employee {
private String name;
private double salary;
private double subsidy;
/**
* 无参构造
*/
public Employee() {
// TODO Auto-generated constructor stub
}
/**
* 有参构造
* @param name
* @param salary
* @param subsidy
*/
public Employee(String name,double salary,double subsidy) {
this.name = name;
this.salary = salary;
this.subsidy = subsidy;
}
/**
* 计算税收
* @author 朱泽江
* @date 2014-4-11 下午05:40:37
*/
public void getshuishou() {
double before = 0;
double after = 0;
double suodeshui = 0;
before = salary + subsidy;
if (before >= 2000 && before
suodeshui = ((before - 2000) * 0.05);
} else if (before >= 2500 && before
suodeshui = ((before - 2000) * 0.1);
} else if (before >= 4000 && before
suodeshui = ((before - 2000) * 0.15);
} else if (before >= 7000 && before
suodeshui = ((before - 2000) * 0.2);
} else if (before >= 22000) {
suodeshui = ((before - 2000) * 0.3);
} else {
suodeshui = 0;
}
after = before - suodeshui;
System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
+ after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
}
/**
* 测试的方法
* @author 朱泽江
* @date 2014-4-11 下午05:41:16
* @param args
* 这样写的好处是把业务类,与测试类,分开
*/
public static void main(String[] args) {
Scanner sc;
sc = new Scanner(System.in);
System.out.println("请输入员工的姓名:");
String name = sc.next();
try {
name = new String(name.getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 可是我怎么都运行不出来,求好心人帮帮忙看看!!
System.out.println("请输入员工工资:");
double salary = sc.nextDouble();
System.out.println("请输入员工的加班补贴:");
double subsidy = sc.nextDouble();
Employee emp = new Employee(name,salary,subsidy);
emp.getshuishou();
}
}