Java程序设计-期中考试(参考答案)

简介: 哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!这一节啊,咱们要学习的内容是...啊不对,这一节咱们来考试,算是期中考试吧。

哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!

这一节啊,咱们要学习的内容是...啊不对,这一节咱们来考试,算是期中考试吧。

10.jpg

目前我们已经学习了Java的很多基础知识了,那么怎么检查自己到底学的怎么样呢?


最好的办法,就是通过一场考试,来检验一下学习效果啦。


首先来看下业务场景,我们是一家软件公司,现在新发布一个【java高级软件开发】的招聘,预计招收2个人,月薪25k,要求年龄25周岁以下,并且需要有30年工作经验,不符合要求的简历将被系统自动过滤。


请编写Java程序来实现这个简历筛查工作。(忽略面试环节,符合招聘要求的自动视为录取)


需求分析:


1、简历类


属性:姓名(String)、年龄(int)、工作年限(int)、投递岗位(用岗位类的引用) 方法:介绍(打印个人信息)


2、岗位类 属性:岗位名称(String)、月薪(float)、简历(用简历类的数组)、已接收简历(int) 方法:介绍(打印岗位信息)、添加简历(需要对年龄和工作年限进行校验)


自行编写测试类,要求注释清晰,类结构合理。


参考答案:


简历类

package com.company.bean;
/**
 *
 * Resume类用于定义简历信息
 *
 * @author 作者名
 * @version 1.0
 *
 */
public class Resume {
    // 姓名
    private String name;
    // 年龄
    private int age;
    // 工作年限
    private int workYear;
    // 职位
    private Position position;
    /**
     * 构造函数
     * @param name 姓名
     * @param age 年龄
     * @param workYear 工作年限
     * @param position 职位
     */
    public Resume(String name, int age, int workYear, Position position) {
        this.name = name;
        this.age = age;
        this.workYear = workYear;
        this.position = position;
    }
    /**
     * 获取姓名
     * @return 姓名
     */
    public String getName() {
        return name;
    }
    /**
     * 设置姓名
     * @param name 姓名
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取年龄
     * @return 年龄
     */
    public int getAge() {
        return age;
    }
    /**
     * 设置年龄
     * @param age 年龄
     */
    public void setAge(int age) {
        this.age = age;
    }
    /**
     * 获取工作年限
     * @return 工作年限
     */
    public int getWorkYear() {
        return workYear;
    }
    /**
     * 设置工作年限
     * @param workYear 工作年限
     */
    public void setWorkYear(int workYear) {
        this.workYear = workYear;
    }
    /**
     * 获取职位
     * @return 职位
     */
    public Position getPosition() {
        return position;
    }
    /**
     * 设置职位
     * @param position 职位
     */
    public void setPosition(Position position) {
        this.position = position;
    }
    /**
     * 介绍简历信息
     */
    public void introduce() {
        System.out.println("姓名: " + name + " ,年龄: " + age + " ,工作年限: " + workYear + " ,职位: " + position.getName());
    }
}

岗位类

package com.company.bean;
/**
 *
 * Position类用于定义职位信息
 *
 * @author 作者名
 * @version 1.0
 *
 */
public class Position {
    // 职位名称
    private String name;
    // 职位薪资
    private double salary;
    // 简历信息
    private Resume[] resumes = new Resume[2];
    // 已接受的简历数量
    private int acceptedResumes = 0;
    /**
     * 构造函数
     * @param name 职位名称
     * @param salary 职位薪资
     */
    public Position(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }
    /**
     * 获取职位名称
     * @return 职位名称
     */
    public String getName() {
        return name;
    }
    /**
     * 获取职位薪资
     * @return 职位薪资
     */
    public double getSalary() {
        return salary;
    }
    /**
     *  介绍职位信息
     */
    public void introduce() {
        System.out.println("职位:" + name + ",薪资:" + salary);
    }
    /**
     * 添加简历
     * @param resume 简历信息
     */
    public void addResume(Resume resume) {
        //判断招聘是否结束?
        if(acceptedResumes == resumes.length ){
            System.out.println("已经招满了,不招了!");
            System.exit(0);
            return;
        }
        // 年龄小于25岁并且工作年限大于30年的简历接受
        if (resume.getAge() < 25 && resume.getWorkYear() > 30) {
            resumes[acceptedResumes] = resume;
            acceptedResumes++;
        } else {
            System.out.println(resume.getName() + "的简历被刷掉了!");
        }
    }
}

测试类

package com.company.test;
import com.company.bean.Position;
import com.company.bean.Resume;
// 测试类
public class TestPosition {
    public static void main(String[] args) {
        Position position = new Position("Java高级软件开发", 25000);
        position.introduce();
        Resume resume1 = new Resume("张三", 24, 32, position);
        position.addResume(resume1);
        resume1.introduce();
        Resume resume2 = new Resume("李四", 30, 30, position);
        resume2.introduce();
        position.addResume(resume2);
        Resume resume3 = new Resume("王五", 22, 38, position);
        position.addResume(resume3);
        resume3.introduce();
        Resume resume4 = new Resume("赵六", 22, 38, position);
        position.addResume(resume4);
        resume4.introduce();
    }
}


测试结果

职位:Java高级软件开发,薪资:25000.0


姓名: 张三 ,年龄: 24 ,工作年限: 32 ,职位: Java高级软件开发


姓名: 李四 ,年龄: 30 ,工作年限: 30 ,职位: Java高级软件开发


李四的简历被刷掉了!


姓名: 王五 ,年龄: 22 ,工作年限: 38 ,职位: Java高级软件开发


已经招满了,不招了!


相关文章
|
2月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
113 63
|
2月前
|
XML Java 数据格式
Java正则表达式大全(参考)
Java正则表达式大全(参考)
|
5月前
|
移动开发 JavaScript 搜索推荐
2024年最新1000个Java毕业设计选题参考
2024年最新1000个Java毕业设计选题参考
496 1
|
6月前
|
存储 小程序 前端开发
java毕设项目|宿舍管理系统小程序设计与实现
java毕设项目|宿舍管理系统小程序设计与实现
|
6月前
|
监控 Java API
Java 程序设计 第八章 线程
Java 程序设计 第八章 线程
|
6月前
|
Java 编译器 C语言
Java 程序设计 第2章 Java基本语法 笔记
Java 程序设计 第2章 Java基本语法 笔记
|
6月前
|
Java
Java 程序设计 第七章 文件管理与输入/输出 笔记
Java 程序设计 第七章 文件管理与输入/输出 笔记
|
6月前
|
Java Android开发
Java 程序设计 第6章 异常与断言 笔记
Java 程序设计 第6章 异常与断言 笔记
|
6月前
|
Java 编译器
Java 程序设计 第4章 继承 笔记
Java 程序设计 第4章 继承 笔记
|
6月前
|
安全 Java 数据安全/隐私保护
Java 程序设计 第3章 类与对象 笔记
Java 程序设计 第3章 类与对象 笔记