| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1035 人关注过本帖
标题:求教一个简单的java问题
只看楼主 加入收藏
瑞瑞余之yzr
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-5-17
结帖率:40%
收藏
 问题点数:0 回复次数:6 
求教一个简单的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 
2010-10-30 00:31
chenjing502
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-21
收藏
得分:0 
/*抽象员工类*/
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());
    }

}
2010-10-30 14:54
chenjing502
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-21
收藏
得分:0 
看看行不啊,多多交流哦!
2010-10-30 14:55
瑞瑞余之yzr
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-5-17
收藏
得分:0 
回复 3楼 chenjing502
你好!你的程序写的很好 有个小地方改一下就好啦~一个程序段里面只能有一个public类,用来存放main方法。把你上面的除主类的其他几个类的的修饰符去掉public 就可以啦
但是 你还是比我厉害多啦~呵呵 谢谢
2010-10-30 16:58
chenjing502
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-21
收藏
得分:0 
呵呵,哪里哦!都差不多的,加个好友,方便今后互相交流学习啊!
2010-10-31 13:59
瑞瑞余之yzr
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-5-17
收藏
得分:0 
回复 5楼 chenjing502
我qq:406662928 到时候验证码写一下 我就晓得是你拉 qq方便些
2010-10-31 17:39
shui1112
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2010-10-31
收藏
得分:0 
回复 2楼 chenjing502
这样的打印结果都会变成 大家的编号为1003
因为当创建一个对象时,系统会默认编号+1,
三个对象加完,编号为1003.
2010-11-01 00:45
快速回复:求教一个简单的java问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018898 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved