利用JAVA设计一个简化的教师年终业绩考核系统
/*
该系统包括一个接口和三个类:一个接口Calculateable具有一个抽象方法getGrade(),
用于根据职工的工作量分数计算职工的业绩等级数据。三个类分别是Teacher类,
Lecturer类(讲师类)和Professor类(教授类)。Teacher类是一个抽象类,包括教师工号,
姓名,年工作量属性,有一个抽象方法 getYearEarn计算年终奖,Lecturer类是Teacher类的子类,
实现了Calculateable接口,Professor类是Teacher类的子类,实现了Calculateable接口。
*/
import java.util.Scanner;
interface Calculateable{
int getGrade();
}
abstract class Teacher{
Scanner in=new Scanner(System.in);
int Tno;
String Name;
int Num_work;
public void SetName(){
System.out.println("请输入姓名:");
this.Name=in.next();
}
public void SetTno(){
System.out.println("请输入教师工号:");
this.Tno=in.nextInt();
}
public void SetNum_work(){
System.out.println("请输入年工作量:");
this.Num_work=in.nextInt();
}
abstract void getYearEarn();
}
class Lecturer extends Teacher implements Calculateable{
Lecturer(){
SetName();
SetTno();
SetNum_work();
}
public int getGrade(){
if(this.Num_work<300)
return 0;
else if(this.Num_work>300&&this.Num_work<400)
return 1;
else if(this.Num_work>400&&this.Num_work<600)
return 2;
else
return 3;
}
public void getYearEarn(){
int money=0;
int level=getGrade();
switch (level) {
case 0: money=-1000; break;
case 1: money=(Num_work-300)*50; break;
case 2: money=(Num_work-300)*70;break;
case 3: money=(Num_work-300)*90;break;
}
System.out.println(Name+"讲师所得到的年终奖金:\n"+money);
}
}
class Professor extends Teacher implements Calculateable{
Professor(){
SetName();
SetTno();
SetNum_work();
}
public int getGrade(){
if(this.Num_work<400)
return 0;
else if(this.Num_work>400&&this.Num_work<500)
return 1;
else if(this.Num_work>500&&this.Num_work<800)
return 2;
else
return 3;
}
public void getYearEarn(){
int money=0;
int level=getGrade();
switch (level) {
case 0: money=-2000; break;
case 1: money=(Num_work-400)*70; break;
case 2: money=(Num_work-400)*90;break;
case 3: money=(Num_work-400)*100;break;
}
System.out.println(Name+"教授所得到的年终奖金:\n"+money);
}
}
public class Test {
public static void main(String[] args){
Lecturer lecturer=new Lecturer();
lecturer.getYearEarn();
Professor professor=new Professor();
professor.getYearEarn();
}
}
举例输出: