“人才管理系统”
类描述:
人才信息,属性:姓名,性别,年龄,专业,毕业学校,掌握技能(list集合)
个人简历,继承人才信息,属性:个人简介
猎头公司,属性:公司名称,地址
接口描述:
- 增加人才信息
- 查询人才信息
- 根据年龄向控制台查询人才信息
- 根据专业向控制台查询人才信息
- 查询出技能中掌握java的人才信息
- 猎头公司可以查看人才系统所有人才
- 猎头公司根据选择的人才查看个人的简介
要求:
- 创建三个包,一个包为entity,存放类;一个包为service,存放所有属性接口;一个包为controller,存放测试类
- 增加人才信息时,每个人才信息创建一个文件夹单独存放,文件夹名称为姓名,文件夹内容为个人信息txt和个人介绍txt
- 循环展示人才管理系统的文件夹,通过判断控制台输入内容,查询到相应的人才文件夹,读取文件夹中txt内容,在控制台展示
- 所有输出语句均写在测试类中,方法🈯只做业务操作
- 类名要求按照帕斯卡命名法,首字母大写,其余单词字母均大写,例如:Student(学生类);属性要求按照匈牙利命名法命名,属性名=数据类型+描述,例如strName(姓名),intAge(年龄);方法名要求按照驼峰命名法命名,首字母小写,其余单词首字母大写,例如addStudent(新增学生)
package Service;
import java.util.List;
import Entity.Resume;
import Entity.SearchFirm;
//接口功能类
public interface Function {
public abstract boolean addTalent(Resume t);//1、增加人才信息
public abstract List<Resume> searchTalent();//2、查询人才信息
public abstract List<Resume> searchTalentByAge(int intAge);//3、根据年龄向控制台查询人才信息
public abstract List<Resume> searchTalentByMajor(String strMajor);//4、根据专业向控制台查询人才信息
public abstract List<Resume> searchTalentByJava();//5、查询出技能中掌握java的人才信息
public abstract List<Resume> allTalent(SearchFirm firm);//6、猎头公司可以查看人才系统所有人才
public abstract String resumeByTalent(Resume t);//7、猎头公司根据选择的人才查看个人的简介
}
package Entity;
import java.util.List;
//Talent人才类
public class Talent {
//属性:姓名,性别,年龄,专业,毕业学校,掌握技能(list集合)
private String strName;
private String strSex;
private int intAge;
private String strMajor;
private String strSchoolTag;
private List<String> listSkill;
public String getStrName() {
return strName;
}
public void setStrName(String strName) {
this.strName = strName;
}
public String getStrSex() {
return strSex;
}
public void setStrSex(String strSex) {
this.strSex = strSex;
}
public int getIntAge() {
return intAge;
}
public void setIntAge(int intAge) {
this.intAge = intAge;
}
public String getStrMajor() {
return strMajor;
}
public void setStrMajor(String strMajor) {
this.strMajor = strMajor;
}
public String getStrSchoolTag() {
return strSchoolTag;
}
public void setStrSchoolTag(String strSchoolTag) {
this.strSchoolTag = strSchoolTag;
}
public List<String> getListSkill() {
return listSkill;
}
public void setListSkill(List<String> listSkill) {
this.listSkill = listSkill;
}
public Talent(String strName, String strSex, int intAge, String strMajor, String strSchoolTag,
List<String> listSkill) {
super();
this.strName = strName;
this.strSex = strSex;
this.intAge = intAge;
this.strMajor = strMajor;
this.strSchoolTag = strSchoolTag;
this.listSkill = listSkill;
}
public Talent() {
super();
}
}
package Entity;
import java.util.List;
//Resume个人简历类
public class Resume extends Talent{
//继承人才信息,属性:个人简介
private String strResume;
public String getStrResume() {
return strResume;
}
public void setStrResume(String strResume) {
this.strResume = strResume;
}
public Resume(String strName, String strSex, int intAge, String strMajor, String strSchoolTag,
List<String> listSkill, String strResume) {
super(strName, strSex, intAge, strMajor, strSchoolTag, listSkill);
this.strResume = strResume;
}
public Resume() {
super();
}
public Resume(String strName, String strSex, int intAge, String strMajor, String strSchoolTag,
List<String> listSkill) {
super(strName, strSex, intAge, strMajor, strSchoolTag, listSkill);
}
@Override
public String toString() {
return "Resume [getStrName()="
+ getStrName() + ", getStrSex()=" + getStrSex() + ", getIntAge()=" + getIntAge() + ", getStrMajor()="
+ getStrMajor() + ", getStrSchoolTag()=" + getStrSchoolTag() + ", getListSkill()=" + getListSkill()
+ ", getStrResume()=" + getStrResume() + "]\n";
}
}
package Entity;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import Service.Function;
//SearchFirm猎头公司类
public class SearchFirm implements Function{
//属性:公司名称,地址
private String strName;
private String strAddress;
public SearchFirm(String strName, String strAddress) {
super();
this.strName = strName;
this.strAddress = strAddress;
}
public SearchFirm() {
super();
}
public String getStrName() {
return strName;
}
public void setStrName(String strName) {
this.strName = strName;
}
public String getStrAddress() {
return strAddress;
}
public void setStrAddress(String strAddress) {
this.strAddress = strAddress;
}
@Override
public boolean addTalent(Resume t) {//1、增加人才信息
boolean isOk=false;
File f0=new File(".\\Talent\\"+t.getStrName());
if(!f0.exists()){
f0.mkdirs();
}
File f1=new File(".\\Talent\\"+t.getStrName()+"\\个人信息.txt");
if(!f1.exists()){
try {
f1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
File f2=new File(".\\Talent\\"+t.getStrName()+"\\个人介绍.txt");
if(!f2.exists()){
try {
f1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//String strName, String strSex, int intAge, String strMajor, String strSchoolTag,
//List<String> listSkill, String strResume
String str1=t.getStrName()+","+t.getStrSex()+","+t.getIntAge()+","+t.getStrMajor()+","+t.getStrSchoolTag();
for (int i = 0; i < t.getListSkill().size(); i++) {
str1+=","+t.getListSkill().get(i);
}
String str2=t.getStrResume();
try {
FileWriter fw= new FileWriter(f1);
BufferedWriter bw=new BufferedWriter(fw,1024);
bw.write(str1);
bw.close();
fw.close();
FileWriter fw2= new FileWriter(f2);
BufferedWriter bw2=new BufferedWriter(fw2,1024);
bw2.write(str2);
bw2.close();
fw2.close();
isOk=true;
} catch (IOException e) {
e.printStackTrace();
}
return isOk;
}
@Override
public List<Resume> searchTalent() {
List<Resume> listResume=new ArrayList<Resume>();
File f0=new File(".\\Talent");
String[] strs=f0.list();
try {
for (int i = 0; i < strs.length; i++) {
File f1=new File(".\\Talent\\"+strs[i]+"\\个人信息.txt");
FileReader fr= new FileReader(f1);
BufferedReader br=new BufferedReader(fr,1024);
int temp=0;
String strTxt="";
while((temp=br.read())!=-1){
strTxt+=(char)temp;
}
String[] strTxtS=strTxt.split(",");
List<String> listSkillTxt=new ArrayList<String>();
for (int j = 5; j < strTxtS.length; j++) {
listSkillTxt.add(strTxtS[j]);
}
br.close();
fr.close();
File f2=new File(".\\Talent\\"+strs[i]+"\\个人介绍.txt");
FileReader fr2=new FileReader(f2);
BufferedReader br2=new BufferedReader(fr2,1024);
int temp2=0;
String strTxt2="";
while((temp2=br2.read())!=-1){
strTxt2+=(char)temp2;
}
br2.close();
fr2.close();
Resume a=new Resume(strTxtS[0],strTxtS[1],Integer.parseInt(strTxtS[2]),strTxtS[3],strTxtS[4],listSkillTxt,strTxt2);
listResume.add(a);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return listResume;
}
@Override
public List<Resume> searchTalentByAge(int intAge) {//3、根据年龄向控制台查询人才信息
List<Resume> listResume=searchTalent();
List<Resume> listS=new ArrayList<Resume>();
Resume r=null;
for (int i = 0; i <listResume.size(); i++) {
if(listResume.get(i).getIntAge()==intAge){
r=listResume.get(i);
listS.add(r);
}
}
return listS;
}
@Override
public List<Resume> searchTalentByMajor(String strMajor) {//4、根据专业向控制台查询人才信息
List<Resume> listResume=searchTalent();
List<Resume> listS=new ArrayList<Resume>();
Resume r=null;
for (int i = 0; i <listResume.size(); i++) {
if(listResume.get(i).getStrMajor().equals(strMajor)){
r=listResume.get(i);
listS.add(r);
}
}
return listS;
}
@Override
public List<Resume> searchTalentByJava() {//5、查询出技能中掌握java的人才信息
List<Resume> listResume=searchTalent();
List<Resume> listS=new ArrayList<Resume>();
Resume r=null;
for (int i = 0; i <listResume.size(); i++) {
List<String> listSkillS= listResume.get(i).getListSkill();
for (int j = 0; j < listSkillS.size(); j++) {
if("Java".equals(listSkillS.get(j))){
r=listResume.get(i);
listS.add(r);
}
}
}
return listS;
}
@Override
public List<Resume> allTalent(SearchFirm firm) {
return searchTalent();
}
@Override
public String resumeByTalent(Resume t) {
String str=t.getStrResume();
return str;
}
}
package Controller;
import java.util.ArrayList;
import java.util.List;
import Entity.Resume;
import Entity.SearchFirm;
//测试类
public class Test {
public static void main(String[] args) {
//初始人才数据
List<String> strSkill=new ArrayList<String>();
strSkill.add("Java");
strSkill.add("Html");
strSkill.add("C");
strSkill.add("C++");
Resume re1=new Resume("张三","女",18,"数字媒体技术","吉林大学",strSkill,"努力刻苦");
List<String> strSkill2=new ArrayList<String>();
strSkill2.add("Html");
strSkill2.add("C");
strSkill2.add("C++");
Resume re2=new Resume("李四","男",19,"计算机科学与技术","北京邮电大学",strSkill2,"勤学好问");
List<String> strSkill3=new ArrayList<String>();
strSkill3.add("Html");
strSkill3.add("C");
strSkill3.add("C++");
Resume re3=new Resume("王五","女",18,"数字媒体技术","北京邮电大学",strSkill3,"愿意加班");
List<String> strSkill4=new ArrayList<String>();
strSkill3.add("Html");
strSkill3.add("C++");
Resume re4=new Resume("楚六","男",19,"数字媒体技术","北京邮电大学",strSkill4,"智商高");
//初始公司数据
SearchFirm firm=new SearchFirm("神州","北京");
//1、增加人才信息
firm.addTalent(re1);
firm.addTalent(re2);
firm.addTalent(re3);
firm.addTalent(re4);
//2、查询人才信息
firm.searchTalent();
System.out.println("******查询人才信息功能******");
System.out.println(firm.searchTalent().toString());
//3、根据年龄向控制台查询人才信息
firm.searchTalentByAge(18);
System.out.println("******根据年龄向控制台查询人才信息******");
System.out.println(firm.searchTalentByAge(18).toString());
//4、根据专业向控制台查询人才信息
firm.searchTalentByMajor("数字媒体技术");
System.out.println("******根据专业向控制台查询人才信息******");
System.out.println(firm.searchTalentByMajor("数字媒体技术").toString());
//5、查询出技能中掌握java的人才信息
firm.searchTalentByJava();
System.out.println("******查询出技能中掌握java的人才信息******");
System.out.println(firm.searchTalentByJava().toString());
//6、猎头公司可以查看人才系统所有人才
firm.allTalent(firm);
System.out.println("******猎头公司可以查看人才系统所有人才******");
System.out.println(firm.allTalent(firm).toString());
//7、猎头公司根据选择的人才查看个人的简介
firm.resumeByTalent(re3);
System.out.println("******猎头公司根据选择的人才查看个人的简介******");
System.out.println(firm.resumeByTalent(re3).toString());
}
}