用java编写一个程序:某个公司有3不同的雇员,分为A、B、C3个级别。。

某个公司有3不同的雇员,分为A、B、C3个级别。公司总的雇员数目因月份的不同可能发生
变化,各个级别的人数每个月也可能发生变化。每个级别的月薪是互不相同的。编写一个程序
计算公司一个月需要支付的全部薪水。
要求有一个abstract类,类名为Employee。Employee的子类有AgradeEmployee、BgradeEmployee
CgradeEmployee。Employee类中有一个abstract方法,子类重写父类方法,给出各自的月薪水数。
编写一个Company类,该类用Employee数组作为成员,该数组元素可以是三个子类的上转型对象。
Company类提供计算月薪总和的方法,使得程序能输出Company对象需要支付的月薪总额。

package com.lgy.question;
public abstract class Employee {
public abstract double pay();
}

package com.lgy.question;
/**
* @author LONGGUOYOU
*
* A类员工工资 APAY 变动就改2000.00处
*
*/
public class AgradeEmployee extends Employee {
private static final double APAY = 2000.00;
private int peopleANumber;
public AgradeEmployee(int numbers) {
// TODO Auto-generated constructor stub
this.peopleANumber = numbers;
}
@Override
public double pay() {
// TODO Auto-generated method stub
return APAY * peopleANumber;
}
}

package com.lgy.question;
/**
* @author LONGGUOYOU
*
* B类员工工资 BPAY 变动就改1000.00处
*
*/
public class BgradeEmployee extends Employee {
private static final double BPAY = 1000.00;
private int peopleBNumber;
public BgradeEmployee(int numbers) {
// TODO Auto-generated constructor stub
this.peopleBNumber = numbers;
}
@Override
public double pay() {
// TODO Auto-generated method stub
return BPAY * peopleBNumber;
}
}

package com.lgy.question;
/**
* @author LONGGUOYOU
*
* C类员工工资 CPAY 变动就改2200.00处
*
*/
public class CgradeEmployee extends Employee {
private static final double CPAY = 2200.00;
private int peopleCNumber;
public CgradeEmployee(int numbers) {
// TODO Auto-generated constructor stub
this.peopleCNumber = numbers;
}
@Override
public double pay() {
// TODO Auto-generated method stub
return CPAY * peopleCNumber;
}
}

package com.lgy.question;
import javax.swing.JOptionPane;
/**
*
* @author LONGGUOYOU
*
* /
public class Company {
/**
* 声明总工资
*/
public static double sumPay;
/**
* 求总共需要支付的工资
*/
public void sumPay(){
/**
* 以下是接受每个月人数的变动
*/
String anumbers = JOptionPane.showInputDialog("请输入A类员工人数:");
int Anumbers = Integer.parseInt(anumbers);
String bnumbers = JOptionPane.showInputDialog("请输入B类员工人数:");
int Bnumbers = Integer.parseInt(bnumbers);
String cnumbers = JOptionPane.showInputDialog("请输入C类员工人数:");
int Cnumbers = Integer.parseInt(cnumbers);
//将AgradeEmployee,BgradeEmployee,CgradeEmployee放进数组
final Employee[] employees = { new AgradeEmployee(Anumbers),
new BgradeEmployee(Bnumbers), new CgradeEmployee(Cnumbers) };
for (int i = 0; i < employees.length; i++) {
sumPay += employees[i].pay();
}
//对话框给出
JOptionPane.showMessageDialog(null,"总共需要支付工资:" + sumPay);
//控制台打印出来
System.out.println("总共需要支付工资:" + sumPay);
}
public static void main(String[] args) {
new Company().sumPay();
}
}
本人菜鸟一个,只供参考,大虾们请多多指教!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-30
public abstract class Employee {

public int theMoney(){
return 0;

}

}
class AgradeEmployee extends Employee{
private int theMoneyOfA;
public int theMoney(){
return theMoneyOfA;

}
}
class BgradeEmployee extends Employee{
private int theMoneyOfB;
public int theMoney(){
return theMoneyOfB;

}
}
class CgradeEmployee extends Employee{
private int theMoneyOfC;
public int theMoney(){
return theMoneyOfC;

}
}
class Company{
private int theNum;
Employee[] em=new Employee[theNum];
public void init(int i,Employee e){
em[i]=e;
}
public int sum(){
int sum=0;
for(int i=0;i<theNum;i++){
sum+=em[i].theMoney();
}
return sum;
}

}本回答被提问者和网友采纳
第2个回答  2011-05-15
11
第3个回答  2011-05-14
不行,你去把系统破解吧,去刷机!还有我要说下,你别怕刷坏.诺基亚系统刷坏了也没事,还可以从安装,也不用花钱.诺基亚不像苹果.苹果是只有进没有退.诺基亚手机是可以进退.楼主你放心的刷机吧.刷机很简单的塞班上面有教程.
第4个回答  2011-05-14
不行,你去把系统破解吧,去刷机!还有我要说下,你别怕刷坏.诺基亚系统刷坏了也没事,还可以从安装,也不用花钱.诺基亚不像苹果.苹果是只有进没有退.诺基亚手机是可以进退.楼主你放心的刷机吧.刷机很简单的塞班上面有教程.