开发一个JAVA应用程序,确定3个雇员中每个人的工资总额.对于每个雇员的前40个小时工作时间,公司按正规工作时间付费,超过40小时之后按一半的工作时间付费.已经给出了公司雇员的清单,上周每个雇员的工作时数以及每个雇员的每小时工作费用标准.程序应该能够输入每个雇员的这些信息,确定并显示雇员的工资总额.使用Scanner类输入数据.
解决方案 »
- 需要反射来执行一个带有Main方法的类,而这个Main方法还有需要对控制台的输入进行处理
- 如何在面板内添加文件选择功能
- 实现:在键盘上输入一个数字序列并存储在Vector中,最后在屏幕上打印出每位数字相加的结果。编译可以通过,最后出不来结果。
- 05年高级程序几分算过的啊??
- 怎样判断String类型里是否有汉字?
- 在applet中加入swing的组件页面打时就提示错误,怎么回事?
- 为什么用getInt()可以用getString()却不可以呢?
- EJB test client中有两个方法不能被解析,该导入什么类?
- 中文字符串截取问题
- 这写包在jdk 哪个目录里?
- 用java编写邮件收发程序
- java有没有指针
大家都来看看...给我个答然啊!
import java.io.*;
class XXXX
{
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
Map map = new HashMap();
String line = br.readLine();
while(line != null && !line.equals("")){
String[] s = line.split("\\s+");
System.out.println(s[0]);
System.out.println(s[1]);
int hour = Integer.parseInt(s[1]);
if(map.containsKey(s[0])){
((Hour)map.get(s[0])).hour+=hour;
}else{
map.put(s[0],new Hour(hour));
}
line = br.readLine();
}
System.out.println(map);
}
}
class Hour{
int hour;
Hour(int hour){
this.hour = hour;
}
public String toString(){
return ""+hour;
}
}
=============================
这里有个用System.in的例子,你自己参考一下吧。Scanner 差不多,就是用nextLine()
if(x > 40) {
wage = 40* hourwage + (x-40)*hourwage/2;
} else {
wage = x* hourwage;
}
/**
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for (int i = 1; i <= 3; i++) {
System.out.println("请输入第" + i + "个雇员的姓名:");
String name = in.next();
System.out.println("该雇员的时薪:");
double salaryPerHour = in.nextDouble();
System.out.println("该位雇员本星期工作的小时数:");
int workTime = in.nextInt();
Employee employee = new Employee();
employee.setName(name);
employee.setSalaryPerHour(salaryPerHour);
employee.setWorkTime(workTime);
employee.setSalary(Employee.accountSalary(salaryPerHour, workTime));
employee.description();
}}}class Employee {
private String name; private double salary; private double salaryPerHour; private int workTime; public String getname() {
return this.name;
} public void setName(String name) {
this.name = name;
} public double getSalary() {
return this.salary;
} public void setSalary(double salary) {
this.salary = salary;
} public double getsalaryPerHour() {
return this.salaryPerHour;
} public void setSalaryPerHour(double salaryPerHour) {
this.salaryPerHour = salaryPerHour;
}
public int getWorkTime(){
return this.workTime;
}
public void setWorkTime(int workTime){
this.workTime = workTime;
} public void description() {
System.out.println("雇员名字:" + this.name + " 时薪:"
+ this.salaryPerHour);
System.out.println("工作时间(时)" + this.workTime
+ "应付工资:" + this.salary);
}
public static double accountSalary(double salaryPerHour, int workTime){
if( workTime <= 40){
return salaryPerHour * workTime;
}
else{
return salaryPerHour * 40 + salaryPerHour *( workTime - 40)/2;
}
}
}
=====================================================
Test:
请输入第1个雇员的姓名:
name1
该雇员的时薪:
10
该位雇员本星期工作的小时数:
20
雇员名字:name1 时薪:10.0
工作时间(时)20应付工资:200.0
请输入第2个雇员的姓名:
name2
该雇员的时薪:
30
该位雇员本星期工作的小时数:
40
雇员名字:name2 时薪:30.0
工作时间(时)40应付工资:1200.0
请输入第3个雇员的姓名:
name3
该雇员的时薪:
20
该位雇员本星期工作的小时数:
60
雇员名字:name3 时薪:20.0
工作时间(时)60应付工资:1000.0