Java程序 检查TPP学生参加面试的资格
背景
TPP(Technology Pioneer Program)是一个由Google组织的免费的技术学习和人才推荐计划,旨在培养和推荐具有优秀技术和思维能力的高校学生。每年的计划需要经过严格的筛选和面试,才能有机会参加。
在对学生的筛选过程中,我们需要一个Java程序来检查学生是否符合参加面试的资格,以确保计划的公正性和可行性。在这篇文章中,我将介绍如何编写这个Java程序。
需求
在编写Java程序进行校验之前,我们需要了解TPP对学生的要求。学生参加TPP面试需要满足以下要求:
-年龄在18-25岁之间
-本科或硕士在读学生
-计算机或相关专业学科相关专业
-有较强的英语听说读写能力
-熟练掌握至少一门编程语言
根据以上要求,我们可以开始编写Java程序进行筛选和校验。
程序实现
我们先定义一个学生类,用于存储学生的信息:
public class Student {
private String name; //姓名
private int age; //年龄
private String major; //专业
private boolean isUndergraduate; //是否为本科在读学生
private boolean isGraduate; //是否为硕士在读学生
private boolean canSpeakEnglish; //是否具有良好的英语口语表达能力
private boolean canListenEnglish; //是否具有良好的英语听力能力
private boolean canWriteEnglish; //是否具有良好的英语写作能力
private boolean canReadEnglish; //是否具有良好的英语阅读能力
private List<String> programmingLanguages; //已掌握编程语言列表
//构造方法
public Student(String name, int age, String major, boolean isUndergraduate, boolean isGraduate, boolean canSpeakEnglish, boolean canListenEnglish, boolean canWriteEnglish, boolean canReadEnglish, List<String> programmingLanguages) {
this.name = name;
this.age = age;
this.major = major;
this.isUndergraduate = isUndergraduate;
this.isGraduate = isGraduate;
this.canSpeakEnglish = canSpeakEnglish;
this.canListenEnglish = canListenEnglish;
this.canWriteEnglish = canWriteEnglish;
this.canReadEnglish = canReadEnglish;
this.programmingLanguages = programmingLanguages;
}
//getter 和 setter 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public boolean isUndergraduate() {
return isUndergraduate;
}
public void setUndergraduate(boolean undergraduate) {
isUndergraduate = undergraduate;
}
public boolean isGraduate() {
return isGraduate;
}
public void setGraduate(boolean graduate) {
isGraduate = graduate;
}
public boolean isCanSpeakEnglish() {
return canSpeakEnglish;
}
public void setCanSpeakEnglish(boolean canSpeakEnglish) {
this.canSpeakEnglish = canSpeakEnglish;
}
public boolean isCanListenEnglish() {
return canListenEnglish;
}
public void setCanListenEnglish(boolean canListenEnglish) {
this.canListenEnglish = canListenEnglish;
}
public boolean isCanWriteEnglish() {
return canWriteEnglish;
}
public void setCanWriteEnglish(boolean canWriteEnglish) {
this.canWriteEnglish = canWriteEnglish;
}
public boolean isCanReadEnglish() {
return canReadEnglish;
}
public void setCanReadEnglish(boolean canReadEnglish) {
this.canReadEnglish = canReadEnglish;
}
public List<String> getProgrammingLanguages() {
return programmingLanguages;
}
public void setProgrammingLanguages(List<String> programmingLanguages) {
this.programmingLanguages = programmingLanguages;
}
}
然后我们定义一个校验类,用于校验学生是否符合TPP的要求:
public class Validator {
public boolean validate(Student student) {
//校验年龄
int age = student.getAge();
if (age < 18 || age > 25) {
return false;
}
//校验专业
String major = student.getMajor();
if (!major.contains("计算机") && !major.contains("软件工程")) {
return false;
}
//校验学位
boolean isUndergraduate = student.isUndergraduate();
boolean isGraduate = student.isGraduate();
if (!isUndergraduate && !isGraduate) {
return false;
}
//校验英语能力
boolean canSpeakEnglish = student.isCanSpeakEnglish();
boolean canListenEnglish = student.isCanListenEnglish();
boolean canWriteEnglish = student.isCanWriteEnglish();
boolean canReadEnglish = student.isCanReadEnglish();
if (!canSpeakEnglish || !canListenEnglish || !canWriteEnglish || !canReadEnglish) {
return false;
}
//校验已掌握的编程语言
List<String> programmingLanguages = student.getProgrammingLanguages();
if (programmingLanguages == null || programmingLanguages.size() == 0) {
return false;
}
return true;
}
}
最后,我们可以编写一个测试类,用于测试我们的校验程序:
public class Tester {
public static void main(String[] args) {
Validator validator = new Validator();
List<String> programmingLanguages1 = new ArrayList<String>();
programmingLanguages1.add("Java");
programmingLanguages1.add("Python");
Student student1 = new Student("张三", 21, "计算机科学与技术", true, false, true, true, true, true, programmingLanguages1);
boolean result1 = validator.validate(student1);
System.out.println("学生1是否符合参加面试的资格:" + result1);
List<String> programmingLanguages2 = new ArrayList<String>();
programmingLanguages2.add("C++");
Student student2 = new Student("李四", 26, "数学", false, true, false, false, false, false, programmingLanguages2);
boolean result2 = validator.validate(student2);
System.out.println("学生2是否符合参加面试的资格:" + result2);
}
}
运行结果
运行以上程序,我们得到的结果如下:
学生1是否符合参加面试的资格:true
学生2是否符合参加面试的资格:false
结论
通过以上的Java程序实现,我们可以快速简单地校验TPP参加者是否符合参加面试的资格,提高了筛选的效率和准确性,更好地保障了TPP计划的公正性和可行性。