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类,另编写一个测试类测试你所编写的类,要求输入两个员工的姓名,职称和授课时数后分别显示他们的姓名、职称、收入,并比较两人职称及工资收入是否一样。
...全文
3048 17 打赏 收藏 转发到动态 举报
写回复
用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; } }
【为什么学习Java?】 1.因为Java是全球排名第一的编程语言,Java工程师也是市场需求最大的软件工程师,选择Java,就是选择了高薪。2.Java语言常年霸占着三大市场:互联网和企业应用,这是Java EE的长期优势和市场地位;大数据平台,主要有Hadoop、Spark、Flink等,他们都是Java或Scala(一种运行于JVM的编程语言)开发的;Android移动平台。这意味着Java拥有最广泛的就业市场。【我将如何教你?】 本课程囊括了Java语言的基本知识点,可以在短时间内带领学生概览Java语言的全貌,先了解再深入,花最少量的钱,做最快的实验,看你是否对Java感兴趣,有信心。绝对是一门小白学习的必修课程!本课程分为三大模块: 初识篇:主要以Java的环境安装及基础语法为主要内容,帮助学员解决Java基础语法问题,并对Java做一定的介绍,为后续的进阶课程内容展开做好语言基础。进阶篇:带你玩转Java进阶必学的类库和各类API知识,搞清Java最重要的核心编程思想面向对象编程。扩展篇:本篇包含了JDBC、GUI、网络编程、多线程编程等Java高阶应用技巧和核心原理。【报名须知】课程采取录播模式,课程永久有效,可无限次观看课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化【如何开始学习?】PC端:报名成功后可以直接进入课程学习移动端:下载CSDN学院或CSDN

13,100

社区成员

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

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