@aymax
2016-09-25T10:16:29.000000Z
字数 2948
阅读 1372
java作业
班级:计算机科学与技术 5 班
学号:3115005061
姓名:李文杰
- 定义一个Employee(雇员)类
1) 三个属性:雇员姓名(name,String),薪水(salary,double),开始雇佣时间(hireDay,Date)
2) 一个构造方法: 带参数,初始化各个属性,特别要求带有年月日的参数,并利用GregorianCalendar日历类生成日期并转化成对应的Date类的日期.
对于每个属性添加一个set和get方法(建议使用Eclipse的Refactor中的Encapsultion Fields);
3) 一个实现增长薪水的的方法raiseSalary,传递一个double类型的薪水增长率;
4)一个Employee类的数组:生成三个雇员类的对象填充到数组中.
--------------------------- 设计3个类,分别是学生类Student,本科生类Undergraduate,研究生类Postgraduate。
1) 其中Student类是一个抽象类,它包含一个学生的基本信息如姓名、平均成绩等,及一个计算课程成绩等级的抽象方法。
2) 类Undergraduate和Postgraduate是其子类,它们计算课程成绩等级的方法有所不同(自己设计)。
3) 设计一个学生数组,既能放本科生对象又能放研究生对象。编写测试类测试以上功能。
( 三个java文件在同一包内 )
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 学生测试
Student[] stuArr = new Student[5];
stuArr[0] = new Undergraduate("花花", 88.5);
stuArr[1] = new Undergraduate("木子", 99.8);
stuArr[2] = new Undergraduate("聪神", 59.98);
stuArr[3] = new Postgraduate("白白", 75);
stuArr[4] = new Postgraduate("诗诗", 100);
for (Student stu : stuArr) {
System.out.println(stu.getName() + "的评级为 " + stu.sortMarkLevel());
}
// 雇员测试
Employee shishi = new Employee("shishi", 8800, new Date());
Employee muzi = new Employee("muzi", 8000, new Date());
Employee haha = new Employee("haha", 2000, new Date());
Employee[] emps = new Employee[3];
emps[0] = shishi;
emps[1] = muzi;
emps[2] = haha;
for (Employee emp : emps) {
System.out.println(emp);
}
}
}
//定义抽象类 -- 学生
abstract class Student {
private String name;
private double avgMark;
public abstract String sortMarkLevel();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getAvgMark() {
return avgMark;
}
public void setAvgMark(double avgMark) {
this.avgMark = avgMark;
}
}
//定义本科生
class Undergraduate extends Student {
Undergraduate(String name, double avgMark) {
this.setName(name);
this.setAvgMark(avgMark);
}
public String sortMarkLevel() {
String level;
if(this.getAvgMark() > 90) {
level = "A";
} else if(this.getAvgMark() > 80) {
level = "B";
} else if(this.getAvgMark() > 70) {
level = "C";
} else {
level = "D";
}
return level;
}
}
//定义研究生
class Postgraduate extends Student {
Postgraduate(String name, double avgMark) {
this.setName(name);
this.setAvgMark(avgMark);
}
public String sortMarkLevel() {
String level;
if (this.getAvgMark() > 85) {
level = "A";
} else if(this.getAvgMark() > 60) {
level = "B";
} else {
level = "C";
}
return level;
}
}
import java.util.Date;
public class Employee {
private String name;
private double salary;
private Date hireDay;
Employee(String name, double salary, Date hireDay) {
this.setName(name);
this.setSalary(salary);
this.setHireDay(hireDay);
}
public void raiseSalary(double rate) {
this.setSalary(this.getSalary() * (1 + rate));
}
public String toString() {
return "姓名:" + this.getName() + " 工资:" + this.getSalary() +
" 雇佣日期:" + this.getHireDay().toLocaleString();
}
double getSalary() {
return salary;
}
void setSalary(double salary) {
this.salary = salary;
}
String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
Date getHireDay() {
return hireDay;
}
void setHireDay(Date hireDay) {
this.hireDay = hireDay;
}
}
花花的评级为 B
木子的评级为 A
聪神的评级为 D
白白的评级为 B
诗诗的评级为 A
姓名:shishi 工资:8800.0 雇佣日期:2016-9-21 18:27:15
姓名:muzi 工资:8000.0 雇佣日期:2016-9-21 18:27:15
姓名:haha 工资:2000.0 雇佣日期:2016-9-21 18:27:15