题目:16版.人才市场找工作

该文描述了一个Java编程实验,涉及接口和实现类的使用。实验要求创建找工作接口SeekJob,包含专业平均分常量和获取姓名、平均分的方法。然后,创建了两个实体类SoftwareSeeker和BigDataSeeker,分别表示软件和大数据专业的求职者,实现了接口方法来计算专业平均分。最后,创建了人才市场类HrMarketer,根据平均分决定是否录用求职者。
摘要由CSDN通过智能技术生成

1、实验要求

    本实验要求:以毕业生在人才市场找工作为背景,体验接口与实现类的应用特性。

    1-1. 业务说明:

        1-1.1. 本实验以大学毕业生找工作为业务背景。

        1-1.2. 大学生有不同的专业背景,但通常都需要找工作。 

        1-1.3. 人才市场根据不同的专业和雇主要求为求职者提供工作机会。

        1-1.4. 人才市场需要每类专业的毕业生提供专业平均分和姓名。

    1-2. 创建工程并配置环境:

        1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E034;

        1-2.2. 限制2. 创建包,命名为:cn.campsg.java.experiment;

        1-2.3. 限制3. 创建包,命名为:cn.campsg.java.experiment.impl。

    1-3. 创建找工作接口类及分数常量:

        1-3.1. 限制1. 在cn.campsg.java.experiment 包中创建找工作接口类:SeekJob。

        1-3.2. 在SeekJob接口中创建专业课平均分常量:

            1)限制1. 常量命名为:SEEKER_AVERAGE_SCORE

            2)常量类型为:浮点类型;

            3)常量的值为:85.0f。

        1-3.3. 为SeekJob接口创建功能函数(一):

            1)限制1. 方法名为:getName。

            2)限制2. getName方法设定为0参的公共方法;

            3)getName方法的返回值为字符串类型。

            4)getName方法的作用是获取求职者的姓名。

        1-3.4. 为SeekJob接口创建功能函数(二):

            1)限制1. 方法名为:getSeekerAverage

            2)限制2. 方法设定为0参的公共方法;

            3)getSeekerAverage的返回值为浮点类型;

            4)getSeekerAverage方法的作用:获取求职者的专业课平均分数。

    1-4. 创建实体类,用于描述软件专业:

        1-4.1. 限制1. 在cn.campsg.java.experiment.impl包中创建实体类:

            1)类名:SoftwareSeeker。

            2)SoftwareSeeker类需实现SeekJob接口。

        1-4.2. 为SoftwareSeeker类创建如下属性:

            1)求职者姓名:字符串类型(String name);

            2)多门专业课分数:浮点数组类型(float[] scores);

            3)为属性添加setter/getter方法。

        1-4.3. 为SoftwareSeeker创建0参构造函数。

        1-4.4. 为SoftwareSeeker创建2参构造函数:

            1)第一个参数为:求职者姓名(String name);

            2)第二个参数为:多门专业课分数(float[] scores);

            3)在此构造器内实现该类对应属性的初始化。

        1-4.5. 在SoftwareSeeker类中实现SeekJob接口方法getSeekerAverage:

            1)此方法需要返回求职者专业课平均分,平均分计算规则如下:

                第1门专业课成绩 * 0.6 + 第2门专业课成绩 * 0.4。

                说明:第1门专业课,scores数组第0位成员。

                说明:第2门专业课,scores数组第1位成员。

            2)本方法作用:模拟计算软件工程专业课平均分。

    1-5. 创建实体类,用于描述大数据专业:

        1-5.1. 限制1 .在cn.campsg.java.experiment.impl包中创建实体类:

            1)类名:BigDataSeeker。

            2)BigDataSeeker类需实现SeekJob接口。

        1-5.2. 为BigDataSeeker类创建如下属性:

            1)求职者姓名:字符串类型(String name);

            2)多门专业课分数:浮点数组类型(float[] scores);

            3)为属性添加setter/getter方法。

        1-5.3. 为BigDataSeeker创建0参构造函数。

        1-5.4. 为BigDataSeeker创建2参构造函数:

            1)第一个参数为:求职者姓名(String name);

            2)第二个参数为:多门专业课分数(float[] scores);

            3)在此构造器内实现该类对应属性的初始化。

        1-5.5. 在BigDataSeeker类中实现SeekJob接口方法getSeekerAverage:

            1)此方法需要返回求职者专业课平均分,平均分计算规则如下:

                (第1门专业课成绩 + 第2门专业课成绩) / 2。

                说明:第1门专业课,scores数组第0位成员。

                说明:第2门专业课,scores数组第1位成员。

            2)本方法作用:模拟计算大数据专业课平均分。

    1-6. 创建实体类,用于描述人才市场:

        1-6.1. 限制1.在cn.campsg.java.experiment包中创建人才市场类:HrMarketer。

        1-6.2. 为HrMarketer类创建找工作方法

            1)限制1. 方法名为:seekJob;

            2)限制2. 方法带有1个SeekJob类型参数,代表求职者;

            3)限制3. SeekJob的返回值是字符串且为公共方法。

        1-6.3. seekJob方法的业务逻辑实现规则如下:

            1)获取求职者的专业平均分数(任意专业);

            2)当平均分高于SEEKER_AVERAGE_SCORE时,返回:求职者姓名 +“被本公司录用”。

            3)当平均分低于SEEKER_AVERAGE_SCORE时,返回:求职者姓名 +“成绩未达标,不予录用”。

            4)seekJob方法作用:根据求职者的专业平均分数判定是否可被录用。

    1-7. 显示人才市场为求职者找工作的结果:

        1-7.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;

        1-7.2. 为MainClass创建公共静态入口主方法:main;

        1-7.3. 在main方法中,创建一个人才市场类服务对象;

        1-7.4. 在main方法中,创建2个软件专业求职者和2个大数据专业求职者。

        1-7.5. 在main方法中,输出人才市场服务对象为4个不同求职者找工作的结果。

2、实现思路

    2-1. 创建工程并配置环境。

    2-2. 创建找工作接口类及分数常量:

        2-2.1. 在cn.campsg.java.experiment 包中创建找工作接口:SeekJob;

        2-2.2. 为SeekJob定义专业课平均分常量:

            1)定义公共静态常量:float SEEKER_AVERAGE_SCORE=85.0f;

        2-2.3. 为SeekJob类创建接口方法:getName,其形式如下:

  + 提示

  public String getName() ;

        2-2.4. 为SeekJob类创建接口方法:getSeekerAverage,其形式如下:

  + 提示

  public float getSeekerAverage();

    2-3. 创建实体类,用于描述软件专业

        2-3.1. 在cn.campsg.java.experiment.impl包中创建软件专业实体类:

            1)类名:SoftwareSeeker;

            2)SoftwareSeeker类需实现SeekJob接口;

        2-3.2. 为SoftwareSeeker类定义私有属性:

            1)求职者姓名:String name;

            2)多门专业课分数:float[] scores = null ;

            3)实现属性的setter/getter方法。

  + 提示

  1)由于本类是SeekJob的实现类,故需要实现接口的getName方法;

  2)name的getter方法正好与接口方法getName一致,一举两得。

        2-3.3. 为SoftwareSeeker创建0参默认构造器。

        2-3.4. 为SoftwareSeeker类创建2参构造器,其形式如下:

  + 提示

  public float getSeekerAverage() {

    }

            1)在2参构造器内完成对该类两个属性的赋值:

                求职者姓名(name)= 参数name;

                多门专业课分数(scores)= 参数scores。

        2-3.5. 在类SoftwareSeeker中实现接口方法:getSeekerAverage,其形式如下:

  + 提示

  public float getSeekerAverage() {

    }

        2-3.6. getSeekerAverage平均分计算规则如下:

            1)定义浮点数变量:float average;

            2)average = scores[0] * 0.6f + scores[1] * 0.4f;

            3)返回专业课平均分数:average。

            4)本方法用于模拟计算软件工程专业课平均分。

    2-4. 创建实体类,用于描述大数据专业:

        2-4.1. 在cn.campsg.java.experiment.impl包中创建大数据专业实体类:

            1)类名:BigDataSeeker;

            2)BigDataSeeker类需实现SeekJob接口;

        2-4.2. 为BigDataSeeker类定义私有属性:

            1)求职者姓名:String name;

            2)多门专业课分数:float[] scores = null ;

            3)实现属性的setter/getter方法。

  + 提示

  1)由于本类是SeekJob的实现类,故需要实现接口的getName方法;

  2)name的getter方法正好与接口方法getName一致,一箭双雕。

        2-4.3. 为BigDataSeeker类创建0参构造器。

        2-4.4. 为BigDataSeeker类创建2参构造器,并实现:

  + 提示

  public BigDataSeeker(String name, float[] scores) {

    }

            1)在2参构造器内完成对该类两个对应属性的赋值:

                求职者姓名(name) = 参数name。

                多门专业课分数(scores) = 参数scores。

        2-4.5. 在类BigDataSeeker中实现接口方法:getSeekerAverage,其形式如下:

  + 提示

  public float getSeekerAverage() {

    }

        2-4.6. getSeekerAverage平均分计算规则如下:

            1)定义浮点数变量:float average ;

            2)为变量进行赋值计算:average = (scores[0] + scores[1]) / 2;

            3)返回专业课平均分数。

            4)本方法用于模拟计算大数据专业课平均分。

    2-5. 创建实体类,用于描述人才市场:

        2-5.1. 在cn.campsg.java.experiment包中创建类:HrMarketer。

        2-5.2. 为类HrMarketer创建默认构造器。

        2-5.3. 为HrMarketer类创建找工作方法seekJob,其形式如下:

  + 提示

  public String seekJob(SeekJob seeker) {

    }

        2-5.4. seekJob方法实现的业务逻辑为:

            1)调用参数seeker对象的getSeekerAverage函数获取求职者平均分。

            2)当求职者平均分大于常量SEEKER_AVERAGE_SCORE时,返回结果如下:

                求职者姓名 +“被本公司录用”

            3)当求职者平均分小于常量SEEKER_AVERAGE_SCORE时,返回结果如下:

                求职者姓名+“成绩未达标,不予录用”

    2-6. 显示人才市场为求职者找工作的结果:

        2-6.1. 在包cn.campsg.java.experiment中创建业务主类:MainClass;

        2-6.2. 在MainClass中定义主函数main;

        2-6.3. 在main方法中,创建一个HrMarketer服务对象:hrm;

        2-6.4. 在main方法中创建2个软件专业求职者和2个大数据专业求职者:

  + 提示

  HrMarketer hrm = new HrMarketer();

  SoftwareSeeker soft1 = new SoftwareSeeker("张小  龙",new float[]{10.0f,100.0f});

  SoftwareSeeker soft2 = new SoftwareSeeker("李小  龙",new float[]{80.0f,100.0f});

  BigDataSeeker bdata1 = new BigDataSeeker("张彦  宏",new float[]{10.0f,100.0f});

  BigDataSeeker bdata2 = new BigDataSeeker("李彦  宏",new float[]{80.0f,100.0f});

        2-6.5. 模拟HrMarketer服务对象为4个求职者找工作:

            1)调用HrMarketer对象的seekJob方法依次为四个求职者找工作;

            2)通过控制台API,依次输出所有求职者找工作的结果。

3、验证与测试

    3-1. 在工程中定位主类MainClass。

    3-2. 右键点击MainClass类,依次选择:Run As->Java Application。

    3-3. 运行程序,查看输出结果是否符合预期。

// 在cn.campsg.java.experiment.impl包中创建实体类:BigDataSeeker
package cn.campsg.java.experiment.impl;

import cn.campsg.java.experiment.SeekJob;

public class BigDataSeeker implements SeekJob {
    private String name;
    private float[] scores;

    public BigDataSeeker() {
        // 0参构造函数
    }

    public BigDataSeeker(String name, float[] scores) {
        this.name = name;
        this.scores = scores;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float[] getScores() {
        return scores;
    }

    public void setScores(float[] scores) {
        this.scores = scores;
    }

    public float getSeekerAverage() {
        // 求职者专业课平均分计算规则:(第1门专业课成绩 + 第2门专业课成绩) / 2
        return (scores[0] + scores[1]) / 2;
    }
}
// 在cn.campsg.java.experiment.impl包中创建实体类:SoftwareSeeker
package cn.campsg.java.experiment.impl;

import cn.campsg.java.experiment.SeekJob;

public class SoftwareSeeker implements SeekJob {
    private String name;
    private float[] scores;

    public SoftwareSeeker() {
        // 0参构造函数
    }

    public SoftwareSeeker(String name, float[] scores) {
        this.name = name;
        this.scores = scores;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float[] getScores() {
        return scores;
    }

    public void setScores(float[] scores) {
        this.scores = scores;
    }

    public float getSeekerAverage() {
        // 求职者专业课平均分计算规则:第1门专业课成绩 * 0.6 + 第2门专业课成绩 * 0.4
        return scores[0] * 0.6f + scores[1] * 0.4f;
    }
}
// 在cn.campsg.java.experiment包中创建人才市场类:HrMarketer
package cn.campsg.java.experiment;

public class HrMarketer {
    public String seekJob(SeekJob seeker) {
        float averageScore = seeker.getSeekerAverage();

        if (averageScore > SeekJob.SEEKER_AVERAGE_SCORE) {
            return seeker.getName() + "被本公司录用";
        } else {
            return seeker.getName() + "成绩未达标,不予录用";
        }
    }
}
// 在cn.campsg.java.experiment包中创建主类:MainClass
package cn.campsg.java.experiment;

import cn.campsg.java.experiment.impl.BigDataSeeker;
import cn.campsg.java.experiment.impl.SoftwareSeeker;

public class MainClass {
    public static void main(String[] args) {
        HrMarketer hr = new HrMarketer();

        SoftwareSeeker softwareSeeker1 = new SoftwareSeeker("SoftwareSeeker1", new float[]{90f, 85f});
        SoftwareSeeker softwareSeeker2 = new SoftwareSeeker("SoftwareSeeker2", new float[]{75f, 80f});
        BigDataSeeker bigDataSeeker1 = new BigDataSeeker("BigDataSeeker1", new float[]{90f, 90f});
        BigDataSeeker bigDataSeeker2 = new BigDataSeeker("BigDataSeeker2", new float[]{80f, 82f});

        System.out.println(hr.seekJob(softwareSeeker1));
        System.out.println(hr.seekJob(softwareSeeker2));
        System.out.println(hr.seekJob(bigDataSeeker1));
        System.out.println(hr.seekJob(bigDataSeeker2));
    }
}
// 在cn.campsg.java.experiment包中创建找工作接口类:SeekJob
package cn.campsg.java.experiment;

public interface SeekJob {
    float SEEKER_AVERAGE_SCORE = 85.0f;

    String getName();

    float getSeekerAverage();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

板砖拍在墙上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值