Java问题

HAN_LJ2014 2014-04-02 07:44:06
设计一个人员类(Person),以及从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfesson)和教授类(Professor)。四种类型教师的工资收入计算公式如下:

工资收入=基本工资+授课时数×每课时报酬

其中,助教基本工资为800元,每课时报酬25元,讲师基本工资为1000元,每课时报酬35元,副教授基本工资为1200元,每课时报酬40元,教授基本工资为1400元,每课时报酬50元。

将人员类定义为抽象类,具体定义如下:
abstract class Person {
String name;
double salary; //工资收入
  int hour; //课时
  abstract double countSalary(int hour);//计算工资收入
  abstract public String toString();//返回员工的姓名、职称、收入字符串
  abstract public boolean equals(Person p);//与另一员工比较职称及工资收入是否一样
}
请为四种类型教师自行设计合理的类,但必须继承自Person类,另编写一个测试类测试你所编写的类,要求输入两个员工的姓名,职称和授课时数后分别显示他们的姓名、职称、收入,并比较两人职称及工资收入是否一样。
...全文
3061 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee790608 2016-02-26
  • 打赏
  • 举报
回复
。。。。。 学习? 求助? 抄? 。。。。
地下室森林 2016-02-23
  • 打赏
  • 举报
回复
引用 11 楼 xiesq5112 的回复:
[quote=引用 1 楼 a1006570862 的回复:] person类: public abstract class Person { public double pay; // 总工资 public int hour; // 课时 public double countPay(int hour) { return pay; } } 助教类: public class Assistant extends Person { public final double BASE_PAY = 800; // 基本工资 public final double HOUR_PAY = 25; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 讲师类: public class Instructor extends Person { public final double BASE_PAY = 1000; // 基本工资 public final double HOUR_PAY = 35; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 副教授类: public class AssistantProfesson extends Person { public final double BASE_PAY = 1200; // 基本工资 public final double HOUR_PAY = 40; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 教授类: public class Professor extends Person { public final double BASE_PAY = 1400; // 基本工资 public final double HOUR_PAY = 50; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 测试类: import java.io.BufferedReader; import java.io.InputStreamReader; public class Test { public static void main(String[] args) { System.out.println("人员类型如下:"); System.out.println("1 = 助教\r\n2 = 讲师\r\n3 = 副教授\r\n4 = 教授"); System.out.print("请选择:"); BufferedReader personType = new BufferedReader(new InputStreamReader( System.in)); String type = null; int hour = 0; try { type = personType.readLine(); } catch (Exception e) { e.printStackTrace(); } if (type.matches("[1-4]{1}")) { switch (Integer.valueOf(type)) { case 1: hour = getHour(); if(hour == 0){return;} Person p1 = new Assistant(); double pay1 = p1.countPay(hour); System.out.println("助教工作" + hour + "课时的工资为:" + pay1); break; case 2: hour = getHour(); if(hour == 0){return;} Person p2 = new Instructor(); double pay2 = p2.countPay(hour); System.out.println("讲师工作" + hour + "课时的工资为:" + pay2); break; case 3: hour = getHour(); if(hour == 0){return;} Person p3 = new AssistantProfesson(); double pay3 = p3.countPay(hour); System.out.println("副教授工作" + hour + "课时的工资为:" + pay3); break; case 4: hour = getHour(); if(hour == 0){return;} Person p4 = new Professor(); double pay4 = p4.countPay(hour); System.out.println("教授工作" + hour + "课时的工资为:" + pay4); break; } } else { System.out.println("输入数据错误!程序提前推出!"); return; } } public static int getHour() { System.out.print("请输入工作时间:"); BufferedReader hours = new BufferedReader(new InputStreamReader( System.in)); String strHour = null; int hour = 0; try { strHour = hours.readLine(); } catch (Exception e) { e.printStackTrace(); } if (strHour.matches("^[0-9]+?")) { hour = Integer.parseInt(strHour); } else { System.out.println("输入参数不正确!程序提前推出!"); } return hour; } }
你人真好! 现在什么级别了,带我飞可好![/quote] 那个哪个,大兄弟,我现在不做java了,愧对之前的汗水啊
justin_jia_92 2016-01-29
  • 打赏
  • 举报
回复
真的有人上代码!!!!!!!!!!!!!!!!!!!!
图灵转世 2015-09-23
  • 打赏
  • 举报
回复
也正在学java,代码还可以。
心随自在飞 2015-09-18
  • 打赏
  • 举报
回复
引用 1 楼 a1006570862 的回复:
person类: public abstract class Person { public double pay; // 总工资 public int hour; // 课时 public double countPay(int hour) { return pay; } } 助教类: public class Assistant extends Person { public final double BASE_PAY = 800; // 基本工资 public final double HOUR_PAY = 25; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 讲师类: public class Instructor extends Person { public final double BASE_PAY = 1000; // 基本工资 public final double HOUR_PAY = 35; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 副教授类: public class AssistantProfesson extends Person { public final double BASE_PAY = 1200; // 基本工资 public final double HOUR_PAY = 40; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 教授类: public class Professor extends Person { public final double BASE_PAY = 1400; // 基本工资 public final double HOUR_PAY = 50; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 测试类: import java.io.BufferedReader; import java.io.InputStreamReader; public class Test { public static void main(String[] args) { System.out.println("人员类型如下:"); System.out.println("1 = 助教\r\n2 = 讲师\r\n3 = 副教授\r\n4 = 教授"); System.out.print("请选择:"); BufferedReader personType = new BufferedReader(new InputStreamReader( System.in)); String type = null; int hour = 0; try { type = personType.readLine(); } catch (Exception e) { e.printStackTrace(); } if (type.matches("[1-4]{1}")) { switch (Integer.valueOf(type)) { case 1: hour = getHour(); if(hour == 0){return;} Person p1 = new Assistant(); double pay1 = p1.countPay(hour); System.out.println("助教工作" + hour + "课时的工资为:" + pay1); break; case 2: hour = getHour(); if(hour == 0){return;} Person p2 = new Instructor(); double pay2 = p2.countPay(hour); System.out.println("讲师工作" + hour + "课时的工资为:" + pay2); break; case 3: hour = getHour(); if(hour == 0){return;} Person p3 = new AssistantProfesson(); double pay3 = p3.countPay(hour); System.out.println("副教授工作" + hour + "课时的工资为:" + pay3); break; case 4: hour = getHour(); if(hour == 0){return;} Person p4 = new Professor(); double pay4 = p4.countPay(hour); System.out.println("教授工作" + hour + "课时的工资为:" + pay4); break; } } else { System.out.println("输入数据错误!程序提前推出!"); return; } } public static int getHour() { System.out.print("请输入工作时间:"); BufferedReader hours = new BufferedReader(new InputStreamReader( System.in)); String strHour = null; int hour = 0; try { strHour = hours.readLine(); } catch (Exception e) { e.printStackTrace(); } if (strHour.matches("^[0-9]+?")) { hour = Integer.parseInt(strHour); } else { System.out.println("输入参数不正确!程序提前推出!"); } return hour; } }
你人真好! 现在什么级别了,带我飞可好!
summer_sunrise 2015-03-04
  • 打赏
  • 举报
回复
lz 自己动手写写代码,这样才有提高(大学不能这么荒废呀)
AI周红伟 2015-02-19
  • 打赏
  • 举报
回复
写代码就是学习
hengh1234 2014-12-14
  • 打赏
  • 举报
回复
什么问题?让别人替你写全部?
Du_allan 2014-09-12
  • 打赏
  • 举报
回复
还真有人愿意直接上代码啊
程序男 2014-07-31
  • 打赏
  • 举报
回复
你这是作业吧
m529031854 2014-04-10
  • 打赏
  • 举报
回复
问题呢?个人建议最好说问题,别让别人给你完整代码
fantian830211 2014-04-04
  • 打赏
  • 举报
回复
你的问题是什么? 另外,为什么不用接口,而用抽象类?
地下室森林 2014-04-02
  • 打赏
  • 举报
回复
person类: public abstract class Person { public double pay; // 总工资 public int hour; // 课时 public double countPay(int hour) { return pay; } } 助教类: public class Assistant extends Person { public final double BASE_PAY = 800; // 基本工资 public final double HOUR_PAY = 25; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 讲师类: public class Instructor extends Person { public final double BASE_PAY = 1000; // 基本工资 public final double HOUR_PAY = 35; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 副教授类: public class AssistantProfesson extends Person { public final double BASE_PAY = 1200; // 基本工资 public final double HOUR_PAY = 40; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 教授类: public class Professor extends Person { public final double BASE_PAY = 1400; // 基本工资 public final double HOUR_PAY = 50; // 每课时的费用 public double countPay(int hour) { pay = BASE_PAY + hour * HOUR_PAY; return pay; } } 测试类: import java.io.BufferedReader; import java.io.InputStreamReader; public class Test { public static void main(String[] args) { System.out.println("人员类型如下:"); System.out.println("1 = 助教\r\n2 = 讲师\r\n3 = 副教授\r\n4 = 教授"); System.out.print("请选择:"); BufferedReader personType = new BufferedReader(new InputStreamReader( System.in)); String type = null; int hour = 0; try { type = personType.readLine(); } catch (Exception e) { e.printStackTrace(); } if (type.matches("[1-4]{1}")) { switch (Integer.valueOf(type)) { case 1: hour = getHour(); if(hour == 0){return;} Person p1 = new Assistant(); double pay1 = p1.countPay(hour); System.out.println("助教工作" + hour + "课时的工资为:" + pay1); break; case 2: hour = getHour(); if(hour == 0){return;} Person p2 = new Instructor(); double pay2 = p2.countPay(hour); System.out.println("讲师工作" + hour + "课时的工资为:" + pay2); break; case 3: hour = getHour(); if(hour == 0){return;} Person p3 = new AssistantProfesson(); double pay3 = p3.countPay(hour); System.out.println("副教授工作" + hour + "课时的工资为:" + pay3); break; case 4: hour = getHour(); if(hour == 0){return;} Person p4 = new Professor(); double pay4 = p4.countPay(hour); System.out.println("教授工作" + hour + "课时的工资为:" + pay4); break; } } else { System.out.println("输入数据错误!程序提前推出!"); return; } } public static int getHour() { System.out.print("请输入工作时间:"); BufferedReader hours = new BufferedReader(new InputStreamReader( System.in)); String strHour = null; int hour = 0; try { strHour = hours.readLine(); } catch (Exception e) { e.printStackTrace(); } if (strHour.matches("^[0-9]+?")) { hour = Integer.parseInt(strHour); } else { System.out.println("输入参数不正确!程序提前推出!"); } return hour; } }

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧