当前位置: 代码迷 >> Java相关 >> 求教一个简单的java问题
  详细解决方案

求教一个简单的java问题

热度:376   发布时间:2010-10-30 00:31:23.0
求教一个简单的java问题
某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。
这三类人员共同拥有的相关属性:姓名、编号; 相关方法:获取当月薪水的getPay()方法、显示个人信息的toString()方法。
人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。月薪计算方法:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。
要求:根据题意,自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写Java Applcation程序实现功能:存储若干个职工信息,然后分行显示所有职工的姓名、编号、月工资等相关信息,另外计算所有职工的月薪总和并显示出来。

class Person
{
String name;
static int no;

Person(String name,int no)
{
  this.name=name;
  no++;
}
}
class Manerger extends Person
{
Manerger(String name,int no)
{
  super(name,no);
}
public float getPay()
  {
   float wage;
   wage=8000;
   return wage;
  }
public String toString()
{return "name"+","+no+","+","+getPay();}
}
class TechPerson extends Person
{
float hour;
    TechPerson(String name,int no,float hour)
    {
     super(name,no);
     this.hour=hour;
    }
    public float getPay(float hour)
    {
        float wage;
        wage=100*hour;
        return wage;  
    }
    public String toString()
{return "name"+","+no+","+hour+","+TechPerson.getPay();}
}
class salesman extends Person
{
float money;
salesman(String name,int no,float money)
{
  super(name,no);
  this.money=money;
}
public float getPay(float money)
{
  float  wage;
  wage=0.04*money;
  return wage;
}
public String toString()
{return "name"+","+no+","+money+","+getPay();}
}
public class StuffPay
{
public static void main (String[] args)
{
        Manerger p1=new Manerger("李明",1000);
        TechPerson p2=new TechPerson("王刚",1001,3.50);
        salesman p3=new salesman("刘芳",1002,8800);
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
    }
}

以上是题目要求和我的程序,调试不能通过,希望前辈指教,共同进步,谢谢!
搜索更多相关的解决方案: java  

----------------解决方案--------------------------------------------------------
/*抽象员工类*/
public abstract class Person {
    private static int personNO;//员工编号
    static{
        personNO=1000;//初始化员工编号
    }
    private String name;
    private int wage;
   
    public void setWage(int wage) {
        this.wage = wage;
    }
    public Person(String name)
    {
        this.name=name;
        personNO++;
    }
    public abstract int getPay();//将工资计算方法定义为抽象的,具体实现在子类中
   
    public String toString()
    {
        System.out.println("****公司员工基本信息*****");
        return "员工姓名:"+name+"\n员工编号:"+personNO+"\n月薪水:"+wage;
    }
}
/*经理类*/
public class Manerger extends Person{

    public Manerger(String name)
    {
        super(name);
        System.out.println("经理创建成功");
    }

    public int getPay() {
        super.setWage(8000);
        return 8000;
    }

}
/*技术员类*/
public class TechPerson extends Person{

    private int hours;//当月的工作时(以小时计数)
    public TechPerson(String name,int hours)
    {
        super(name);
        this.hours=hours;
        System.out.println("技术员创建成功");
    }
   
    public int getPay()
    {
        super.setWage(100*hours);
        return 100*hours;
    }
}
public class Salesman extends Person{

    private int saleSum;//销售总额
    private float wagePercent;//提成比例
   
    public Salesman(String name,int saleSum,float wagePercent) {
        super(name);
        this.saleSum=saleSum;
        this.wagePercent=wagePercent;
        System.out.println("销售员创建成功");
    }

    public int getPay() {
        int temp;
        temp=(int)(this.wagePercent*this.saleSum);
        super.setWage(temp);
        return temp;
    }
}
/*测试类*/
public class Test {

    /**测试公司所有员工类
     * @param args
     */
    public static void main(String[] args) {

        Manerger manergerOne=new Manerger("张三");
        TechPerson techOne=new TechPerson("李四",40);
        Salesman saleOne=new Salesman("王五",6000,0.4f);
        
        //调用getWage()方法
        int manergeWage=manergerOne.getPay();
        int techWage=techOne.getPay();
        int saleWage=saleOne.getPay();
        System.out.println("经理月薪:"+manergeWage+"技术员月薪:"+techWage+"销售员月薪:"+saleWage);

        //打印员工具体信息
        System.out.println(manergerOne.toString());
        System.out.println(techOne.toString());
        System.out.println(saleOne.toString());
    }

}

----------------解决方案--------------------------------------------------------
看看行不啊,多多交流哦!
----------------解决方案--------------------------------------------------------
回复 3楼 chenjing502
你好!你的程序写的很好 有个小地方改一下就好啦~一个程序段里面只能有一个public类,用来存放main方法。把你上面的除主类的其他几个类的的修饰符去掉public 就可以啦
但是 你还是比我厉害多啦~呵呵 谢谢
----------------解决方案--------------------------------------------------------
呵呵,哪里哦!都差不多的,加个好友,方便今后互相交流学习啊!
----------------解决方案--------------------------------------------------------
回复 5楼 chenjing502
我qq:406662928 到时候验证码写一下 我就晓得是你拉 qq方便些
----------------解决方案--------------------------------------------------------
回复 2楼 chenjing502
这样的打印结果都会变成 大家的编号为1003
因为当创建一个对象时,系统会默认编号+1,
三个对象加完,编号为1003.
----------------解决方案--------------------------------------------------------
  相关解决方案