【java】试创建学院几名讲师,几名教授,给定工作量分别计算输出各自的年终评级以及年终奖金。

试创建信息学院几名讲师,几名教授,给定工作量分别计算输出各自的年终评级以及年终奖金。

要求

设计一个简化的学院教师年终业绩考核系统(如有雷同,纯属巧合),用于对职工的业绩进行简单评定管理。该系统包括一个接口和三个类:一个接口Calculateable具有一个抽象方法getGrade(),用于根据职工的工作量分数计算职工的业绩等级数据。三个类分别是Teacher类,Lecturer类(讲师类)和Professor类(教授类)。Teacher类是一个抽象类,包括教师工号,姓名,年工作量属性,有一个抽象方法 getYearEarn计算年终奖,Lecturer类是Teacher类的子类,实现了Calculateable接口,Professor类是Teacher类的子类,实现了Calculateable接口。

代码

package exam5.homework_assemeement;

import java.util.Scanner;

public interface Calculateable
{
    public int getGrade();
    public void show();
}
abstract class Teacher implements Calculateable
{
    long TeacherId;
    String name;
    int yearWorkTime;
    public abstract double getYearEarn();
}

class Lecturer extends Teacher//讲师类
{
    Lecturer(long TeacherId,String name,int yearWorkTime)
    {
        this.TeacherId=TeacherId;
        this.name = name;
        this.yearWorkTime=yearWorkTime;
    }
    int grade=-1;
    int bonus=-1;
    public int getGrade()
    {
        if(yearWorkTime<300)
            grade=0;
        else if(yearWorkTime>300&&yearWorkTime<400)
            grade=1;
        else if(yearWorkTime>400&&yearWorkTime<600)
            grade = 2;
        else if(yearWorkTime>600)
            grade=3;
        return grade;
    }
    public double getYearEarn()
    {
        if(grade==0)
            bonus=-1000;
        else if(grade==1)
            bonus=50*(yearWorkTime-300);
        else if(grade==2)
            bonus=70*(yearWorkTime-300);
        else if(grade==3)
            bonus=90*(yearWorkTime-300);
        return bonus;
    }
    public void show()
    {
        System.out.println("Id为:"+TeacherId+",老师"+name+"的年工作时长为"+yearWorkTime+"h,等级为:"+getGrade()+",年终奖金为:"+getYearEarn()+"元");
    }
}

class Professor extends Teacher
{
    int grade = -1;
    int bonus = -1;
    Professor(long TeacherId,String name,int yearWorkTime)
    {
        this.TeacherId=TeacherId;
        this.name=name;
        this.yearWorkTime=yearWorkTime;
    }
    public int getGrade()
    {
        if(yearWorkTime<400)
            grade = 0;
        else if(yearWorkTime>400&&yearWorkTime<500)
            grade = 1;
        else if(yearWorkTime>500&&yearWorkTime<800)
            grade = 2;
        else if(yearWorkTime>800)
            grade = 3;
        return grade;
    }
    public double getYearEarn()
    {
        if (grade == 0)
        {
            bonus = -2000;
        }
        else if ( grade == 1)
        {
            bonus = (yearWorkTime - 400 ) * 70;
        }
        else if (grade == 2 )
        {
            bonus = (yearWorkTime - 400 ) * 90;
        }
        else if (grade == 3)
        {
            bonus = (yearWorkTime - 400) * 100;
        }
        return bonus;
    }
    public void show()
    {
        System.out.println("Id为:"+TeacherId+",教授"+name+"的年工作时长为"+yearWorkTime+"h,等级为:"+getGrade()+",年终奖金为:"+getYearEarn()+"元");
    }
}
class defCharacter
{
    Scanner se= new Scanner(System.in);
    public int getCharacter()
    {
        System.out.println("请输入1--老师 2--教授");
        int a = se .nextInt();
        if(a==1)
            return 1;
        else
            return 0;
    }
    public String getname()
    {
        System.out.println("请输入姓名:");
        String name=se.next();
        return name;
    }
    public long getId()
    {
        System.out.println("请输入工号:");
        long id=se.nextLong();
        return id;
    }
    public int getyeartime()
    {
        System.out.println("请输入年工作时长:");
        int time = se.nextInt();
        return time;
    }
}


package exam5.homework_assemeement;

public class show
{
    public static void main(String[] args)
    {
        Lecturer l1 = new Lecturer(2000000001,"AA",605);
        Lecturer l2 = new Lecturer(2000000002,"BB",806);
        Lecturer l3 = new Lecturer(2000000003,"CC",205);
        Lecturer l4 = new Lecturer(2000000004,"DD",705);
        Lecturer l5 = new Lecturer(2000000005,"EE",360);
        l1.show();
        l2.show();
        l3.show();
        l4.show();
        l5.show();
        Teacher t1 = new Professor(100000001,"P1",950);
        Teacher t2 = new Professor(100000002,"P2",631);
        Teacher t3 = new Professor(100000003,"P3",302);
        Teacher t4 = new Professor(100000004,"P4",466);
        Teacher t5 = new Professor(100000005,"P5",497);
        t1.show();
        t2.show();
        t3.show();
        t4.show();
        t5.show();
        System.out.println("——————————————————————————————————————————————————————————————————\n" +
                "请输入两个自定义角色:");
        for(int i=0;i<2;i++) {
            defCharacter c1 = new defCharacter();
            if (c1.getCharacter() == 1) {
                Lecturer l6 = new Lecturer(c1.getId(), c1.getname(), c1.getyeartime());
                l6.show();
            }
            else
            {
                Professor p=new Professor(c1.getId(),c1.getname(),c1.getyeartime());
                p.show();
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值