java计算工资

综合练习(大作业二)
设计一个人员类(Person),其中包括一个方法pay,代表人员的工资支出。再从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfesson)和教授类(Professor)。其中:
工资支出=基本工资+授课时数×每课时兼课金
但助教基本工资为800元,每课时兼课金25元,讲师基本工资为1000元,每课时兼课金35元,副教授基本工资为1200元,每课时兼课金40元,教授基本工资为1400元,每课时兼课金50元。
1.将人员类定义为抽象类,pay为抽象方法,编写一个测试类测试你所编写的类,要求输入某个人员的职称和授课时数后显示他的工资支出。
2.将pay定义在接口中,设计程序实现多态性,编写一个测试类测试你所编写的类,要求输入某个人员的职称和授课时数后显示他的工资支出。

person类:
public abstract class Person {
public double pay; // 总工资
public int hour; // 课时

public double countPay(int hour) {
return pay;
}
}

助教类:
public class Assistant extends Person {
public final double BASE_PAY = 800; // 基本工资
public final double HOUR_PAY = 25; // 每课时的费用

public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}

讲师类:
public class Instructor extends Person {
public final double BASE_PAY = 1000; // 基本工资
public final double HOUR_PAY = 35; // 每课时的费用

public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}

副教授类:
public class AssistantProfesson extends Person {
public final double BASE_PAY = 1200; // 基本工资
public final double HOUR_PAY = 40; // 每课时的费用

public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}

教授类:
public class Professor extends Person {
public final double BASE_PAY = 1400; // 基本工资
public final double HOUR_PAY = 50; // 每课时的费用

public double countPay(int hour) {
pay = BASE_PAY + hour * HOUR_PAY;
return pay;
}
}

测试类:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test {

public static void main(String[] args) {
System.out.println("人员类型如下:");
System.out.println("1 = 助教\r\n2 = 讲师\r\n3 = 副教授\r\n4 = 教授");
System.out.print("请选择:");

BufferedReader personType = new BufferedReader(new InputStreamReader(
System.in));
String type = null;
int hour = 0;
try {
type = personType.readLine();
} catch (Exception e) {
e.printStackTrace();
}

if (type.matches("[1-4]{1}")) {
switch (Integer.valueOf(type)) {
case 1:
hour = getHour();
if(hour == 0){return;}
Person p1 = new Assistant();
double pay1 = p1.countPay(hour);
System.out.println("助教工作" + hour + "课时的工资为:" + pay1);
break;
case 2:
hour = getHour();
if(hour == 0){return;}
Person p2 = new Instructor();
double pay2 = p2.countPay(hour);
System.out.println("讲师工作" + hour + "课时的工资为:" + pay2);
break;
case 3:
hour = getHour();
if(hour == 0){return;}
Person p3 = new AssistantProfesson();
double pay3 = p3.countPay(hour);
System.out.println("副教授工作" + hour + "课时的工资为:" + pay3);
break;
case 4:
hour = getHour();
if(hour == 0){return;}
Person p4 = new Professor();
double pay4 = p4.countPay(hour);
System.out.println("教授工作" + hour + "课时的工资为:" + pay4);
break;
}
} else {
System.out.println("输入数据错误!程序提前推出!");
return;
}
}

public static int getHour() {
System.out.print("请输入工作时间:");
BufferedReader hours = new BufferedReader(new InputStreamReader(
System.in));
String strHour = null;
int hour = 0;
try {
strHour = hours.readLine();
} catch (Exception e) {
e.printStackTrace();
}
if (strHour.matches("^[0-9]+?")) {
hour = Integer.parseInt(strHour);
} else {
System.out.println("输入参数不正确!程序提前推出!");
}
return hour;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-10

Java计算工资,在控制台输入用户工作信息,然后在对话框输出工资信息,代码如下:

对话框输出:  

import java.util.Scanner;
import javax.swing.JOptionPane;
public class Gongzi{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String name=JOptionPane.showInputDialog(null,"请输入员工姓名","员工工资管理",JOptionPane.QUESTION_MESSAGE);
String time=JOptionPane.showInputDialog(null,"请输入每周工时数","员工工资管理",JOptionPane.QUESTION_MESSAGE);
double t =Double.parseDouble(time);
String money=JOptionPane.showInputDialog(null,"请输入每小时工资","员工工资管理",JOptionPane.QUESTION_MESSAGE);
double m =Double.parseDouble(money);
double l,q,z;
l=t*m;
q=l-l*0.2;
z=q-q*0.09;
String output="姓名:" + name + "\n每周工时数:" + time + 
"\n每小时工资:$" + money + "\n应得总工资数:$" + l + "\n扣除联邦税率%20后的工资:$"+ q + "\n再扣除州税率%9后的工资(即最后得到工资):$"+ z;
JOptionPane.showMessageDialog(null,output);
 }
}

控制台输出:

import java.util.Scanner;
public class Gongzi{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入员工姓名\n");
String name =input.nextLine();
System.out.print("请输入每周工时数\n");
String  time =input.next();
double t =Double.parseDouble(time);
System.out.print("请输入每小时工资\n");
String money =input.next();
double m =Double.parseDouble(money);
double l,q,z;
l=t*m;
q=l-l*0.2;
z=q-q*0.09;
System.out.print("姓名:" + name);
System.out.print("\n每周工时数:" + time + "小时");
System.out.print("\n每小时工资:$" + money);
System.out.print("\n应得总工资数:$"+ l);
System.out.print("\n扣除联邦税率%20后的工资:$"+ q);
System.out.print("\n再扣除州税率%9后的工资(即最后得到工资):$"+ z);
 }
}

第2个回答  2023-03-08
Java计算工资可以通过编写相应的代码来实现。根据工资的实际计算公式,可以使用Java程序来计算每位员工的工资。首先需要定义员工工资基本信息,如基本工资、岗位补贴、绩效奖金等。接下来,需要编写Java代码,根据公式计算员工的实际工资,包括基本工资、补贴、绩效奖金等各个部分。还需要考虑税前和税后工资的计算、税费的扣除等问题。综合考虑各项因素,按照规定的计算方法,使用Java语言就可以进行工资计算,进而实现工资的自动化发放和管理,提高工作效率和准确性。
相似回答