Java程序设计-期中考试(参考答案)
原创
©著作权归作者所有:来自51CTO博客作者剽悍一小兔的原创作品,请联系作者获取转载授权,否则将追究法律责任
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路!
这一节啊,咱们要学习的内容是...啊不对,这一节咱们来考试,算是期中考试吧。
目前我们已经学习了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高级软件开发
已经招满了,不招了!